TheWaveWarden / odin2

Odin 2 Synthesizer Plugin
GNU General Public License v3.0
566 stars 52 forks source link

[Feature Request] CC 2 (Breath) as modulation source #357

Closed ulibs66 closed 3 years ago

ulibs66 commented 3 years ago

Could you please implement CC 2 as a midi modsource? It would be very helpful for windinstruments / breath controllers. CC5 would also be welcome ...

TheWaveWarden commented 3 years ago

@ulibs66 can you use these as Midi-learn assignments?

ulibs66 commented 3 years ago

YES!

TheWaveWarden commented 3 years ago

Would using it as MIDI-learn be enough to fullfill your wishes? I thought about it and picking some CCs to use, while not implementing others seems inconsistent to me.

Or maybe you can enlighten me: Are CC2 and 5 used often? CC5 is "Portamento Time": Is this used as a modulation source? Or do you request to hardwire it to the Glide/Portamento knob?

What controller are you using that provides CC2 / 5?

ulibs66 commented 3 years ago

I am using an Akai EWI 4000s. EWI stands electronic wind instrument. It' s kind of an electronic flute / trumpet / sax. Just to give you a clue: https://www.youtube.com/watch?v=mmKYV7qjgQ8. There are other similar instruments (Aodoyo Sylphyo, Roland Aerophone, Yamaha WX 7 ...). CC2 is used all the time for Volume Control (velocity is usually not used) and for timbre changes (i. e. opening and LP-Filter or Wavetable position or LFO rate/depth/amount ...). For CC2 a mere assignment by MIDI LEARN is not really helpfull because I cannot fine tune the impact of CC2 on the target parameter. I could try a work arround: Assign CC2 to Y (X/Y-Pad) then Y to i. e. filter cutoff or similar via modmatrix. But that is not really "handy".

CC5: The EWI has a so called glide-strip (along side the octave-rollers on the backside of the instrument). The value of CC5 that is sent depends on how much of that glide strip you cover with your left thumb. This is usually mapped to the glide time in the synth.

And finally: yes it would be more consistent to have any CC as a modsource. I am using Line6 FBV Express MKII MIDI pedal along with my EWI. It has four switches and an expression pedal. I am using it to "kick in" a delay or to control the amount of distortion or like a wah-pedal. I can define the coresponding CCs the board sends with its control software.

TheWaveWarden commented 3 years ago

Haha that video was aweseme! I've never seen one of those! The CC2 looks so fun I might as well implement it. Would you be down for testing? (It's a bit of a PITA testing stuff for which you don't have the controller...)

Not sure yet when I will implement it.

Maybe there will be a "Any CC" modulation in the future, but it needs some thinking. For now it will be CC2 (maybe CC5 while I'm at it).

TheWaveWarden commented 3 years ago

8f02d4debc06be8b1a8abf08e04c452f3e6dcd95

ulibs66 commented 3 years ago

I am glad, that you enjoyed the video. I will do a little testing, if you like. I would also like to point other EWIists to your synth. Most of them can be reached via a facebook-group. I would post a short note there if you dont' mind?

TheWaveWarden commented 3 years ago

@ulibs66 yeah sure that would be great, but probably better to do it once the feature is tested and released in the next stable version?

Right now it should be working in the nightly releases. But to be honest, I have never even installed a nightly build. I don't even know whether the installers work. Right now my plan would be to bring the nightlies to a stable version, then test some myself and then throw it your way.

You can of course try to use it yourself right now. But please don't start a big track with it, since plugin state versions are probably not comptible with the next stable release (i.e. you will loose your progress). You can find the nightly builds here.

ulibs66 commented 3 years ago

OK - I will patiently wait until you throw it my way. Thank you for your responsiveness!

TheWaveWarden commented 3 years ago

@ulibs66 wow it's been way too long, sorry.

Odin 2.3 version is now in beta. Find the installer here: https://github.com/TheWaveWarden/odin2/releases/tag/NightlyDevel

It would be awesome if you could test this, I don't know of other people who have wind controllers. I could probably fake it in software as a last resort. This feature isn't really tested at all so far.

Please report back if you've tested! :slightly_smiling_face:

Scanderz commented 3 years ago

I have a wind controller (EVI). I'll try to test.

ulibs66 commented 3 years ago

Dear Wavewarden, thank you for your efforts! Here my first impression:

Yes it basically works fine with my Akai EWI 4000s. But I am failing, when I map breath to the filter cutoff. I cant' get control over the full range (fully closed to fully open). It seems to work on the amp gain (full range accessible). Also when I map CC2 to filter cutoff directly by midi-learn (as opposed to mapping via the mod matrix) the full range is accessible. BTW: I dont' get visual feedback on the modulated knobs when mapping via the matrix - for the "midi-learnt" modulations visual feedback works. Is this by design? Let' s see how Scandrez is getting along with his EVI!

TheWaveWarden commented 3 years ago

@ulibs66 ok thanks for testing. No there's no visual feedback when using the modmatrix - it would be nice, but a big hassle to couple the two.

As for your range: What modulation amount did you use in the modmatrix? With the new beta, you can go up to +300, which should be sufficient to fully open the filter. If not, you can just use a second modulation slot to go up to +600.

Another explanation would be that your breath controller doesn't output the full CC values up to 128 (max)? Hard to say. You can test by for example using the XY-pad to do the same modulation, it should open the filter fully from zero at around +200 I think.

ulibs66 commented 3 years ago

My device sends the full range cc2 data (up to 127) - I can see that, when I map it to something by MIDI-learn and also when I am recording midi in reaper (inspecting the CC2 data in the midi editor). For the modmatrix I have tried various settings. In fact when I go above about 150 for the amount value in the modmatrix the filter seems to close again. Maximu impact is somewhere around 150. By ear I would say the filters cutoff is not fully maxed.

Scanderz commented 3 years ago

Sorry, I have work and gigs tying me up but will test it soon. I do concur with Ulibs66 that our controllers typically send full CC range. That's critical for those of us that use wind controllers. Many soft synths that wind controller players use provide some kind of GUI feedback as to how the controller is interacting with the synth, but that is a nice to have. In the end it comes down to responsiveness, controller curves and filter range, among other things. I'll try to test is as soon as I can. Thanks for the patience.

ulibs66 commented 3 years ago

Scanderz - wow ... saw the interview with Itai. As he puts it: a "behind the scene" guy involved in many successful projects including the Berglund Instruments NuEVI, EVI-NER, and others. I found this conversation to be very interesting as it covers some of the challenges we experience in the Windsynth world today but also generates positivity towards future developments.

Small world ...

TheWaveWarden commented 3 years ago

@ulibs66 Yes, your are totally right. The filter cutoff closes after 150 again for whatever reason. This is a bug. Although not with the MIDI CC2, but with the +-300 modulation range, which was also introduced in this beta.

I will fix it and notify you!

TheWaveWarden commented 3 years ago

@ulibs66 Ay that was a nasty bug... also one which was present from the very beginning! Thanks for finding it.

Anyways, I just fixed it. The CI-runners are building now, the Github release should contain the fixed version roughly half an hour after this post.

But from what I hear so far, CC-2 itself seems to be working :slightly_smiling_face: