surge-synthesizer / stochas

The Stochas Sequencer
https://stochas.org
GNU General Public License v3.0
404 stars 35 forks source link

Midi Mapping to Mute Layers is buggy on stop and start #143

Open mattfaisandier opened 4 months ago

mattfaisandier commented 4 months ago

Greetings,

Just reporting some unusual behavior I have noticed running Stochas as a vst plugin in Reaper.

I am sending in midi notes to mute and unmute layers in Stochas.

Firstly, I've noticed I can only mute layers via midi input if Stochas is in Play - if stopped the midi messages are not actualized.

Secondly, if, for eg, I :

mute a Layer 1 via midi input while playing Stop

Layer 1 then unmutes.

Another example. While playing, if I :

mute Layer 1 via the 'Mute Layer' button in Stochas unmute Layer 1 via midi input Stop

Layer 1 then mutes.

MY read on this behavior is that a layers mute 'status' is read retrieved from the 'Mute Layer' button in Stochas when the Stochas is stopped, which is overriding any previously received midi input message.

A workaround I will implement is to dedicate the first pattern of each layer to an empty sequence, and switch to that pattern when I need to 'mute' a layer.

This tool has so much potential , for the greatness of humankind I do hope the project is picked up and developed further to address the reliability issues reported here

Infinite Gratitude

mattfaisandier commented 4 months ago

Actually, a much simpler workaround is to the use the reaper vst Param>FX Param List>Learn feature to map the midi messages to robustly mute the layers. This message is actualized if Stochas is stopped.

image

rudeog commented 4 months ago

Hi Matt, The reason for this behaviour is that a decision was made to only save information that was established by the user and not any information that was established from midi mapping messages received. As an example: Lets say you create a project with Stochas and set up midi mappings for mute/unmute, playback speed etc, then start playing your project and Stochas receives a midi message to mute a track or change time signature, playback speed etc, then you save your project. We don't want to save the project with any of those settings altered by midi, we only want to save the project with what the user established in Stochas via the user interface. To that end, any midi messages that alter the playback of stochas are not stored with the actual patch but are kept in a temporary area which is discarded when playback stops. As an enhancement, we could create an option to keep these settings after playback stops, but we would still discard them when the project is saved. So I will keep this open as an enhancement request.

mattfaisandier commented 4 months ago

Hmm, interesting. From my persepective that seems to violate POLA, as the midi messages are generated by the user ( me ) via a midi device as a proxy to the Stochas GUI

"a component of a system should behave in a way that most users will expect it to behave, and therefore not astonish or surprise users. "

https://en.wikipedia.org/wiki/Principle_of_least_astonishment

Anyhow, I can see this both ways. Granting users the ability to couple / decouple midi input to the Stochas patch memory seems like a good compromise.