Since Zynthian can do just about anything MIDI or audio related I assume I can use it to solve this problem but I’m not sure what’s the best approach.
I have an Alesis Fusion which is a 60 pound, 88 weighted key monster of a synth. It’s really an amazing synth but it has an annoying peculiarity. SOME Fusions were shipped with a Fatar TP40 keybed that reports velocity a little differently for the white keys and black keys. The black keys report about 10-20 points higher in note velocity. My first thought was using the Zynthian MIDI filter rules to fix this but those rules do not allow for modification of velocity values.
I can turn off local keyboard control on the Fusion and route it’s note events to the Zynthian MIDI IN and then route the Zynthian MIDI OUT back to the Fusion. So, what I need to do is setup a MIDI route processor that reduces the velocity of only black key events by about 15 points. Is Puredata the best solution?
Have you tried changing the velocity curve and/or velocity scaling values on the Fusion synth to see if you can get better results? If not, you should be able to make changes by going to Global/Settings/General menu on the Fusion.
Yeah, the Velocity curve can help tame it by compressing the Velocity values a bit but that is suboptimal. I figured I could fix it properly with my little headless RPi3 Zynthian.
try setting the note_ranges variable to “22, 25,27, 30,32,34, 37,39, 42,44,46, 49,51, 54,56,58, 61,63, 66,68,70, 73,75, 78,80,82, 85,87, 90, 92,94, 97,99, 102,104,106”
set vel_scale to 1.0, vel_offset to -15
That should cover all black keys on a piano and do you right. Check me though, it’s late.
Good call @ssj71. I was going to suggest Moony. It provides a scriptable MIDI plugin, kinda write-you-own in a scripting language. You could derive the ranges with a function.
Moony A1 x A1 has a preset called, “Tutorial 5: MIDI Velocity Curve Interpolater” which could serve as a starting point.
Yep! I started to look at the code but decided it would take too much of my time to refine it. The syntax is fairly simple but newbies to the language will need to refer to some docs / examples for the subtleties. You could look here for an example of how to programmatically calculate the black notes. We do it to draw keyboards in the UI.
I just tried to run Moony yesterday so I deleted all layers and added Moony A1 x A1 atom processing and used the simple “through” preset. This results in a total lockup of the Zynthian UI with webconf still running normally. Any Moony atom processor I tried crashed the UI.
I also tried Moony control processors like C1xC1 through and that at least didn’t crash the UI.
So Control processors seem stable by themselves. Combination processors like C1+A1xC1+A1 also seem stable. Atom-only processors like A1xA1, etc. all lock the UI.
This could be total ignorance on my part. I was just trying to fire up these plugins to try them out. Nevertheless, the UI lockup is a problem.
Well, I tried it today, after updating to the new stable version, and no crash. All I had to do before with the older UI was load up Moony A1 x A1 and the whole UI would lock.