Topic: midi Bézier curves plugin

I've been dreaming about this for a long time, and now, with the current capabilities, I've made it. I wanted a curve editor for changing the speed of MIDI messages that would use Bézier curves. These curves can be curved very smoothly, which is exactly what I wanted. And today, we have amazing artificial intelligence models available, which we need to take advantage of. In a couple of evenings, I sketched out this app using the currently free minimax m2 AI model and the Rust language (I couldn't have done it that quickly myself). The app uses separate curves for noteON and noteOFF events. There are preset curve presets, and you can also create and save your own. The standalone app supports processing hi-res MIDI messages (for some reason, VST3 doesn't yet support this). Settings are remembered.
Available in the repository in the "добавление-обработки-hires-midi " branch (the repository is a bit chaotic). The Fedora app and VST plugin are located at "build/midi_curves_v0.1.0"

https://www.youtube.com/watch?v=CtjtueLHJKM

This app was supposed to be multiplatform, a standalone app and VST3 plugin. I use Fedora Linux, and it seems to work for me. It even runs VST3. I can't say anything about other platforms yet. If anyone is interested, willing to figure it out, and try building it for other platforms, adding or changing anything, please give it a try!

https://github.com/ScherbakovAl/vst_mid...hires-midi

Last edited by scherbakov.al (28-10-2025 22:37)

Re: midi Bézier curves plugin

scherbakov.al wrote:

I've been dreaming about this for a long time, and now, with the current capabilities, I've made it. I wanted a curve editor for changing the speed of MIDI messages that would use Bézier curves. These curves can be curved very smoothly, which is exactly what I wanted. And today, we have amazing artificial intelligence models available, which we need to take advantage of. In a couple of evenings, I sketched out this app using the currently free minimax m2 AI model and the Rust language (I couldn't have done it that quickly myself). The app uses separate curves for noteON and noteOFF events. There are preset curve presets, and you can also create and save your own. The standalone app supports processing hi-res MIDI messages (for some reason, VST3 doesn't yet support this). Settings are remembered.
Available in the repository in the "добавление-обработки-hires-midi " branch (the repository is a bit chaotic). The Fedora app and VST plugin are located at "build/midi_curves_v0.1.0"

https://www.youtube.com/watch?v=CtjtueLHJKM

This app was supposed to be multiplatform, a standalone app and VST3 plugin. I use Fedora Linux, and it seems to work for me. It even runs VST3. I can't say anything about other platforms yet. If anyone is interested, willing to figure it out, and try building it for other platforms, adding or changing anything, please give it a try!

https://github.com/ScherbakovAl/vst_mid...hires-midi

Quite a nice interface.   
There is something strange though with the notes-off :
For instance at 1.07   here is as sequence  ( the note -off curve here is non linear)

Pianoteq timestamp :
1228,137   note-on (A5  ) velocity =28,414  followed by  note-off (A5 )  vel= 0,766 and note-off (A5 )  vel=46,430
1228,290   note-on (Ab5) velocity =24,625  followed by  note-off (Ab5)  vel=0,766 and note-off (Ab5) vel=46,430

Comment/Question : There are 2 note-off per note on which is odd . and the pattern is the same for other notes.Is your keyboard sending note-off values when you pass the middle sensor ( I know that Roland send note-off=0 to deal with repeated notes) ?
More importantly, the values for the note-off are  identical for  A5 and Ab5  .The probability to have twice the same note-off velocity with hi-res midi is very low. Is your demo made with a midi file with constant note -off velocity values  as opposed to playing a midi controller/keyboard with variable note-off capabilities ?   Other hypothesis , it could be the DAW as some of them don't consider variable note-off velocities and transform them into fixed values.

Last edited by Pianistically (31-10-2025 09:07)

Re: midi Bézier curves plugin

Indeed! You are very attentive! When I was looking for a high-resolution MIDI file, I wasn't at my main computer, the one I usually play on and where I have all my Pianoteq games saved. So, somewhere in the archives, I found "some" file from my homemade keyboard. I once reported on my homemade project in this thread:
https://forum.modartt.com/viewtopic.php?id=9126

This file is from this keyboard. This keyboard had problems processing noteOff events. So, to be able to at least somehow play, I added additional messages that would clean up the incorrectly working dampers. In addition, I experimented with sending additional messages at a speed of about 1, which would create a preliminary opening of the string before the main attack. In the end, I didn't really like this effect. It's better to play with regular note attacks. I significantly improved this prgoject with Now, with the new controller, playing is simply wonderful, I'm very happy!

Last edited by scherbakov.al (02-11-2025 15:58)