milkytracker / MilkyTracker

An FT2 compatible music tracker
http://milkytracker.github.io/
Other
1.67k stars 160 forks source link

Enable keyjazz note row rounding #345

Closed guysv closed 2 months ago

guysv commented 2 months ago

So basically I went on to fix a milky bug that is pretty much the same as schismtracker: With keyjazz record note delay off, milky just writes incoming notes into the current active cell. This makes keyjazzing actual melodies into milky a challenge, as notes get quantized nowhere close to where I played them.

Fortunately for milky, when I went through the codebase I found that pretty much most of the code I wrote for schism for this already exist in milky. Unfortunately, it was hard-coded disabled ever since milky started using git lol.

So I went on and created a config flag for it, but first I had to fix this bug it caused: When rounding a note to the next row, the moment the player gets to actually play the cell couple of ticks later, it replays the displaced note. So I went on creating this new 'meta-effect' that just mutes the note, and deletes itself (the effect) from the pattern. This way I can disable notes until the second time they are played. More info in the commit msgs I guess.

coderofsalvation commented 2 months ago

this is awesome! I'm testing as we speak!

coderofsalvation commented 2 months ago

tested it..it indeed records way better when enabled! ❤️ (didn't try midi-in, does it have the same results there?) Didn't experience any regressions.

UPDATE: I've merged this into branch rc/1.05, but moved the config to the 'Misc' tab with name 'Rec to closest row' (because it conflicted with the limiter)
How about we keep it disabled by default for release v1.05, and enable it in v1.06 if nobody experiences regressions?

guysv commented 2 months ago

fine by me.

guysv commented 2 months ago

btw midi and keyboard routines are apparently the same in milky. so it indeed also handles midi.