JoepVanlier / Hackey-Trackey

A LUA tracker plugin for REAPER 5.x and up. Designed to mimick the pattern editor in Jeskola Buzz.
MIT License
130 stars 10 forks source link

Additional probability column (like delay) for each column #53

Closed michaelsjackson closed 6 years ago

michaelsjackson commented 6 years ago

FF would give max probability = 1, triggering always 00 would give min probability = 0, triggering never values inbetween triggering sometimes, the higher the more often, but not always, also not never

This is called trig conditions in some elektron devices. With this method even a single pattern can contain some form of variation in itself, without having to create all those variations, the algorithm of probability would do this for us. We would only tell which cells get which probability. For example in the last beat steps, we would add some extreme sounds, with a probability of 1/3 maybe. If it triggers once, next two times it should not trigger.

JoepVanlier commented 6 years ago

Not possible within REAPER.

michaelsjackson commented 6 years ago

Is note muting not possible? Not playing note would get a muted note. Unmuting again, if the algorithm tells so. Muting and unmuting would be controled by the algorithm, instead of the user.

JoepVanlier commented 6 years ago

No. Hackey Trackey doesn't play the MIDI, reaper does. MIDI has no facilities for storing probabilities.

michaelsjackson commented 6 years ago

Well, if you think this way, then hackey trackey could just take any cc, e.g. cc=100, and use this as a way to define the probabilities, then applying that to the mute state of the note or of the line, which would effect all notes on same line of that midi channel.

Of course this is not a must feature, just one more idea.

JoepVanlier commented 6 years ago

The problem is not storage. The problem is that Hackey Trackey is not involved in playback at all.

All it does is produce MIDI data, not MIDI signals. Reaper is the one who turns that data into actual MIDI signals. Lua is not fast enough for real time stuff like constantly parsing the MIDI. If you'd really want this, you'd need to write a JSFX that interprets incoming MIDI data and filters them according to this CC you like.