ohgodhowdidthis / trance

procedural RIST
Do What The F*ck You Want To Public License
43 stars 22 forks source link

Feature Request: Ability to control the sequence of images being displayed? #6

Open MrEldritch opened 7 years ago

MrEldritch commented 7 years ago

TL;DR - A way to micromanage which specific images are shown more precisely. Could probably be adequately managed by use of the existing subroutine and playlist functionality, + some minor modifications

So, I'd like to actually compose some hypnos. But I keep running into situations where I'd really want to have some control over where particular images go - for instance, I have a bunch of images/animations where one group is pictures of licking/sucking cocks, and another is equally oral-focused images of things like makeup and candy. I would like to be able to display these in an alternating fashion - so every cock would be followed by a candy, and vice-versa.

I can almost do this with the existing playlist functionality/subroutine functionality, but I'd just need a few things. If I wanted to do it currently, I'd try to

However, this is inelegant (it would really be nice if there was a way to get a theme to just show a single visualizer without switching, that didn't slow down the whole visualization - this restricts me to a single theme to use in sequences, and I still have to make sure to switch fast enough), and what's more, it doesn't even work - I can only set playlists items to switch after an integer number of seconds, so this would basically just be a slideshow. I can't switch playlist items fast enough to make a hypno this way.

Would it be possible for you to add some kind of interface to allow me to more directly sequence stuff at the image level? This could probably just be bolted on to the existing playlist functionality by either allowing playlists items to switch after a specific number of visualizer cycles rather than a specific number of seconds, or by allowing playlist items to be passed fractional-second playtimes (and ideally, also adding a visualizer that only displayed a single image/animation until the next visualizer was chosen, and having some way to slow down how fast the visualizer changed images/modes without actually slowing down how quickly it displayed the currently chosen spiral and image/visualizer).

Either would allow me to set up image/animation-level 'playlists' and 'subroutines' and generally have more control over the particular presentation.

ohgodhowdidthis commented 7 years ago

it would really be nice if there was a way to get a theme to just show a single visualizer without switching, that didn't slow down the whole visualization

Not sure what you mean by this - couldn't you do it by having a one program for each theme, and setting all the visualizer weights bar one to zero on that program?

To address the main idea, I'm not surprised you're having a hard time trying to make use of the playlist functionality here because it's not really what it was designed for. The intention was to allow the session to gradually evolve over much longer periods of time. Even if playlist switches could be done with sub-second precision, I'm not convinced it would be good enough, since switching a playlist doesn't necessarily have instantaneous effects: the application will wait for until an opportune moment to apply the effects to make sure the switch doesn't disrupt the flow, images have been loaded into RAM, and so on.

Really the proper place to achieve what you want is in the visualizers: each visualizer is a small bit of logic that controls timings, which themes to take images and text from at each point, and how to render them. Unfortunately, there's no way to create custom visualizers right now, and designing the user interface for such a thing would be very complicated, so it's unlikely to happen any time soon.

However, for now it would certainly be fairly trivial to add a new visualizer in code that does exactly what you describe? It could display images alternately from two loaded themes (you can ensure the the correct two themes are always active by pinning one and setting only the weight of the other to 1).

ohgodhowdidthis commented 7 years ago

However, for now it would certainly be fairly trivial to add a new visualizer in code that does exactly what you describe? It could display images alternately from two loaded themes (you can ensure the the correct two themes are always active by pinning one and setting only the weight of the other to 1).

The "subtext" visualizer now behaves like this in v0.3.2.