20 August 2018 at 16:27:55 MDT
I couldn't let the month pass without having something good to show. Last month I announced a new project called Slideshow Player: A fully HTML powered tool which embeds art from sites such as e621 and generates realtime image slideshows. The end result is similar to furry / vore videos you find on Youtube, except it works in realtime by linking original image sources while giving the user full control alongside artist credits displayed in the interface.
Last week I implemented the final core component needed to obtain the desired functionality: Music support. There is now a new controller offering the user music settings, while music plugins use a similar API to generate a song list from sites that provide one. The image and music system are independent from one another, meaning both photos and songs are preloaded separately and can be navigated without getting in each others way... you can even disable images or music entirely and use just one of the two players!
Another major addition is dynamic latency prediction for the image loader. This detects the average duration of loading images, then decreases the recorded lag from the lifetime of the next image. The algorithm gives more accurate durations as it deducts the preload time that's silently added on top of the chosen image duration. For example: Let's say your slideshow is configured to switch images every 20 seconds. The player detects that the first image took 4 seconds to load, then sees that the second image took 8 seconds. The third image will therefore last only 14 seconds (20 - (8 + 4) \ 2) as the player assumes the following image will take 6 seconds to network on your internet connection.
Currently the only music source I could find that provides a JSON compatible API is CCMixter. Note that only a few music keywords will work with it, so if you get 0 songs when loading your settings try a few different words in the search field. If anyone is aware of other music sites that offer a JSONP search API (JSON with a "callback" parameter) please let me know in the comments below so I can add it. And as always, if you enjoy what I do, please consider supporting my work:
Notice: If you've used Slideshow Player before, the latest version may crash halfway through loading the interface. This is caused by an outdated settings object in the cache. Go to your browser's preferences and look for a "manage data" option, then delete all cache and cookies from the github.io source. Refresh the page and the player should start up.