<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
Hello
<div><br>
</div>
<div>This is my first time posting in this mailing list and I thought it would be the quickest way to contact the developers for more than a half dozen ideas to improve the playback speed feature.  I do not know any computer programming at all, but, I have
 downloaded the source from github, extracted, and renamed several .kt files and added .txt to look through them.  After pouring over the files for a few hours, I have concluded that I am only able to currently understand how to implement two of my many, many
 ideas.  This is more of a "nice to have" feature set request, but would greatly expand the usability and customization of the playback speed graphical interface, and add many new features.  If this is too non-technical, please explain where to submit this
 elsewhere.  When I tried to join your forums, the cloudflare security check was unable to load, due to my misconfigured Android Fennec javascript memory allocations (slightly too low) and after upping the settings just enough so pages don't freeze my device,
 the pass has been cleared more than once, but I am still banned at the public IP level, last I checked, so I'm posting here.  I hope this is appropriate placement for such a discussion.</div>
<div><br>
</div>
<div>For first run welcome screen, make A HUGE deal about playback speed, and multiple steps.  I think it is already explained how to access the menu for the equalizer and all that, so let's add another HUGE feature highlight for playback speed, and make it
 difficult to quickly skip.</div>
<div><br>
</div>
<div>I would even more like to also see an even more noticable note about timestretch and here is why:</div>
<div><br>
</div>
<div>Faster speeds work great, but anything below normal gives a very robotic sound.  I would greatly appreciate a major, major note about this feature, right after showing the playback speed.  Explain that if slower speeds are used, by default, this will result
 in robotic sound effect.  The alternative is allowing a lower pitch so that the sound or music is played smoothly, similar to a record played slow.  I want this to be displayed because I remember using Windows media player when playback speed was added, tried
 low settings, and even 75-80% and heard the robor sound, and not even once considered using it ever again, although I did like the idea, but not if it is going to sound awful.  This way users are already aware of how this feature works, and the available options
 for it.  If this is completely over the top, then alternatively, have a very visible (orange ? Icon or something) hint to access a message to understanding what timestretch is when accessing the playback speed option.</div>
<div><br>
</div>
<div>Regardless, I desparately want playback speed to be shown directly on the main welcome screen, and maybe even have a wait-time of at least 10 seconds, in case it is accidentally or intentionaly quickly skipped over.  This way, it is GUARENTEED that all
 vlc users know it exists and the thought will be there.  You don't know the wonderful musical experience you are missing if you don't give this a try.</div>
<div><br>
</div>
<div>Changes to how the playback speed slider operates:</div>
<div><br>
</div>
<div>* Currently there is drag delay, so that, combined with the very wide default range, makes it impossible to smoothly change to a very nearby speed.</div>
<div>Whatever code is involved in modifying how this bar operates, that is different from the playback position, please consider just getting rid of it entirely, it just makes the slider annoying to use, causing pauses and skips in the audio.</div>
<div><br>
</div>
<div>* Allow custom range for slider GUI.</div>
<div>if range <0.25 || >4</div>
<div>doesn't seem to be for the GUI but for the actual function so I couldn't find the code for that</div>
<div><br>
</div>
<div>* It is quite simple to change the code for the up down speed arrows from 0.05f to a different value, I'd like to use this to allow an option for a custom decimal percent, and turn off "round.toInteger" at least as yet another custom option.</div>
<div><br>
</div>
<div>* Option to remove "Round.toInt" code, so that the rate precision can be customized.  This might be two-part option, one for precision value of slider values or alternatively using the arrows only for fine-grained changes.  I saw precision code inside
 Equalizer dialog box, but don't quite understand it.  20 * 100 makes 0.1 level precision, but I don't know how to use that infornation.<br>
</div>
<div><br>
</div>
<div>* allow the slider to move by 1% at all ranges, I couldn't find this code either, certain percents are missing, and many cannot be selected with the slider but .05 is always selectable with arrows, 1.05x for example, and 0.98, 0.94, 0.89 and 0.83 are missing,
 all lower percents are available, why, and how can this be fixed?</div>
<div><br>
</div>
<div>* UI, copy checkbox code from settings (or positioning of the checkbox from equalizer) and copy the following settings onto the speed selection bar, somewhere:</div>
<div><br>
</div>
<div>timestretch</div>
<div>save speed</div>
<div><br>
</div>
<div>I have discussed this with others, trying to explain how to disable timestretch, by going to advanced, but their reply was that it sounded the same, so I know for a fact that having the option directly visible will increase this option's visibility for
 the 250+ million vlc android users, and the ease of toggling the feature.</div>
<div><br>
</div>
<div>* Add a new feature, utilizing the existing "add bookmark" code, but modify it to function the same as the current "save speed" / or get current rate code.  This would allow saving a custom speed preset, instead of current playback time, and save that
 listing indefinitely.  I know this is quite a wild idea, but think about it:  If someone wants to change the speed anyway, they may want to save the speed specifically for that song, instead of overall, as a song sounds better at a particular speed vs just
 whatever the overall setting is.</div>
<div><br>
</div>
<div>* Delay and smooth the speed changes when sliding the bar, even if it takes a few seconds longer, it would be better than the sound skipping during adjustment.  This was also explained above, and I don't have the code understanding to add or modify the
 delay / transtion.  I have no idea how it might work, nor how often the speed should update itself, nor how many speed steps inbetween current and new speed level to change without audio interruption.</div>
<div><br>
</div>
<div>* Add a song to a playlist, and using some form of the bookmarks, to be used as a holder for multiple saved speeds, allow choosing a speed for each song (in the preset, or even modifying that preset or adding yet another one!) specifically for that playlist.
  This idea is quite far out, I'm probably the only person ever that has had this idea, but I guess it takes all kinds to make the world go round.  The idea would be to create a playlist of songs within a tempo/speed range, so each song is somewhat in-line
 with a desired tempo similar to all other songs.  Yeah, it's a far-out idea, but think of how incredibly unique the idea is.  Instead of a global speed control, you could possibly even set a base level speed for all songs (83.72% for example) and adding each
 song, also set a speed bookmark preset for each listing.  Then, you could manually play the entire list (short duration to hear tempo) and match each song with double digit precision to match up all the songs to the same speed.  I know how it reads... but
 I don't care, I think it is the needed evolution of this setting.  Why even have a playback speed if it needs to be constantly changed to keep a similar tempo, like during a shuffle?  The presets would allow to fine-tune this during shuffle, and additional
 presets would allow playlists for multiple speed groupings.</div>
<div><br>
</div>
<div>There could be a playlist speed set for songs approxinately 7% slower, with all songs individually tuned to be nearly identical tempo, and another speed-set playlist for 18% slower songs etc. I might be the only one who uses the feature, but I think in
 time it would eventually catch on.</div>
<div><br>
</div>
<div>* Adjust timestretch code (couldn't find this at all, I really looked around, where is it, as I'd like to see what it is doing) to be less robotic, strobed.  Is this even a possibility, because I think I have a vague understanding of what's happening,
 but I'd definitely like to learn more about it.  My two cents is in order to play slower but match pitch, nearly ALL notes / (each two sound frequency plots in the file) must be re-adjusted on-the-fly, into a higher frequency.  I don't understand anything
 else going on with it.</div>
<div><br>
</div>
<div>* A similar note:  There is a feature request to help make faster speeds not echo or drop sound.  I don't use faster speeds with videos or podcast so I haven't noticed, but playing a song at 3x or 4x causes some notes or beats to be completely skipped
 over, and so it may be useful to help improve this code.  The posr explaining this says that Windows media player is smooth at 4x so surely there is improvements to be made.</div>
<div><br>
</div>
<div>Design for the slider</div>
<div><br>
</div>
<div>Orange lines for every 5% would look very nice, and give extra detail to an otherwise somewhat boring slider so it appears more interesting, and it is obvious where different speed are.  This would allow quickly dragging to a desired speed, instead of
 guessing where any particular speed is.  It would also be helpful to have orange lines for every other percent although that gets tricky, so might be easier to have very short (and bold), then longer, and bolder lines for each mark.  Then 5% have even bolder
 and long lines, with 10% being the longest and thickest.  This would increase ease-of-use instead of a blind guess as to how much of a change sliding will make, with only the number and previous experience of using the slider.</div>
<div><br>
</div>
<div>* Code: Please!  Simply the code for the math that generates the speed, just looking at it makes my head spin.  Why are there both division and multiplication, as well as additon or subtraction operations all going on?  That took some work to code that
 in I'm certain!  Thanks, but can it be simplified to just divide by 100 or whatever need by, so that the rate is just the rate, without all these extra cpu cycles to compute the new speed.  I bet this would increase performance, decrease battery drain, and
 help avoid all the stuttering, skips, pauses and delays when changing the speed as well as making it significantly easier to modify the rate code.  As is I can't understand it at all, and it seems unnecesaarily complex.  This work may allow easier additons
 for transitions between speeds to avaoid such skips, improving the experience imnensely.</div>
<div><br>
</div>
<div>* Keep overall playback speed, and when a "speed preset" playlist is all set up, even if those songs are all at different speeds, allow a delta from set speed for any / all songs, to further customize overall speed.</div>
<div><br>
</div>
<div>I might be able to eventually figure out how to code in some of ths changes, but would require extensive and down to the space, indention, and every pipe and curled bracket necessary to get it right.  To prove I have looked through the code, here's as
 far as I got with modifying the bookmark code, I'm sure there are more things to add so that it actually works, but I did try at least.</div>
<div><br>
</div>
<div>Code modified by me:</div>
<div><br>
</div>
<div>it would be something like:</div>
<div><br>
</div>
<div>override fun onBindViewHolder(holder:</div>
<div>ViewHolder, position: Int) {</div>
<div>val bookmark = getItem(KEY_PLAYBACK_RATE, 1.0f)</div>
<div><br>
</div>
<div>Maybe it also needs:</div>
<div><br>
</div>
<div>playbackService!!.setRate(rate, true)</div>
<div><br>
</div>
<div>Clearly I am guessing and don't have any idea of what I'm doing, but given enough assistance, I am willing to code all this as I realize it is 100% niche, and even if it's just for my own vlc build, I could at least share it with others to try, but then
 I would need to become a maintainer of a fork, and keep it updated, and I have no idea what is involved in such efforts and would not yet have the knowledge to do so, and I'd like the show off how features can be added to open-source software, which a closed-source
 program doesn't provide from just user discussion and developer assistance.  Wouldn't it be cool for all other music player developers to be surprised by the level of detail this, hoepfully once-rarely used feature, to see an absolutely unbelievable level
 of feature updates and very-fine precision customization?  I think everyone that updated vlc to a version with these features would be picking up their jaw from the floor in a pool of saliva!  No other program in existance has these features, let's help make
 my idea a reality!</div>
<div><br>
</div>
<div>If anyone is interested in offering assistance in implementing these features, I will gladly donate monetarily and snippets of code to the project, and I'll sponge up as much code language as I can understand to not take away time from "more important"
 bugs and features.  I've always heard on Linux / open-source project that eventually you'll find that one project that makes you itch, and this is that project.  I've found my calling, and I'll be glued to this feature addition until it is finally implemented. 
 Thank you for releasing this code openly, so that we can all benefit and offer improvement and insight.</div>
<div><br>
</div>
<div>If this post needs to be moved I understand, but hopefully this at least gets a few eyes or ears on it, and I can get started with at least the minimal of changes, such as removing the integer rounding, modifying the arrow incriment, adding "speed for
 current song, as if it were a bookmark" and if I spend enough time studying the code, I can copy the checkbox position code for the equalizer, and using that, copy the checkbox code inside audio and advanced settings to duplicate these options to the playback
 speed bar.<br>
</div>
</body>
</html>