this is a bit of a follow up to a previous topic, where I have issues with setting Kaivo/Aalto mode, but also after some experience using with the new Bitwig (1.3.3) which has much improved MPE support.
below are some suggestions, on improvements that I think could significantly improve the usability of the Soundplane and also aalto / kaivo with other MPE enabled devices.
a) MPE mode in Bitwig/ canDo()
Issue: Bitwig does not automatically detect Aalto is MPE compatible, this means you need to use 'FORCE MPE' option when loading the VST.
this appears to be something to do with the canDo message, Id recommend, putting some trace in Aalto, and see what Bitwig is requesting.
b) Pitchbend range (PBR)
Issue: currently you have to change the PBR in both Soundplane app and Aalto, auto slide range was one of the main selling point of MPE, getting wrong means slides are incorrectly calibrated,
Kavio - should support +/- 48 semitones
Kavio/Aalto should process the NRPNs to set the PBR automatically
c) MPE detection
Issue: Aalto/Kavio does not automatically swtich to MPE, you have to currently select in both soundplane app and VST. if you get this wrong, you get silence/incorrect behaviour
the MPE standard documents how MPE mode is selected, via CC 127, Aalto/Kaivo should when they receive this switch to MPE mode automatically. also when it is 'switched off' it can be set to single channel midi mode.
d) T3D/OSC detection
Issue: Aalto/Kavio does not automatically swtich to OSC, you have to currently select in both soundplane app and OSC, you also have to be careful to use the correct port. if you get this wrong, you get silence
Ive thought about this, I think the easiest solution is to take the same/similar approach as MPE. have an NRPN which users can sent to put Aalto/Kaivo into OSC mode.
the NRPN value could be used as an offset to 3122 , such the 0 means OFF, others are the 3122+offset = udp port.
for splits these would be sent on different midi channels. so in a DAW you could route to different instances of Aalto/Kaivo
why use NRPN? because this completely open to your use, no need for ratifying etc.
why use MIDI for OSC? because its there... the plugin has to support it anyway, and allows us to setup routing for the OSC within the DAW. using UDP to do similar is a bit of a pain, as you need to listen to this to know if to switch to OSC, and midi to know if to switch to MPE etc.
(btw: if aalto/kaivo is told to use both OSC and MPE/Midi it should take OSC in preference, arbitrary decision though ;) )
I really do think the above could really streamline the whole connection process, and make it easier for users to just play music, without the tech getting in the way. something I know you are passionate about.
I mention it now, as with Virta in the pipeline, perhaps its good to address in Virta now, so that it would not have to wait for an update to get these features,
of course, these are just my thoughts and ideas, and I hope are reasonably straightforward to implement.
some 'asides' :
there is a new version of the MPE spec, but I think staying with 1.0 is reasonable until this is ratified, as BWS is still using the old version.
On my side Im planning on making the following changes to my version of the Soundplane app.
always have a midi Input : "Soundplane", this will accept
the MPE messages to set PBR and OSC/MIDI mode
program change... to switch 'presets', so I can change setups to reflect instruments, or switch to a split setup, without having to interact with Soundplane GUI
a few standard midi messages and pass them though to both T3d/OSC e.g. sustain pedal/breath. ... really this is designed to be use with pedals
Midi output : rename Soundplane IAC out to "Soundplane",
cosmetic/consistency with other devices.. "out" is redundant, in the midi api, you always know if its input or output, they never get listed together. I think "IAC" is pretty redundant, 'techie talk'... as far as I see its just the Soundplane :)
OK, I'll reexamine all this after I get the Virta beta out/ Thanks for the detailed feedback.
Are you moving to Bitwig as your main DAW now? I guess that means you are liking it? I haven't heard from too many Bitwig users yet.
Im using a combo of Live and Bitwig...
Now MPE is supported in VSTs, I started using Bitwig more...
But funny, soon after BWS released 1.3, Ableton released 9.5 and the new Push 2 ... so that has tilted me back a bit, as the Push 2 is really good.
Im a bit caught,
I love using Live/Push as its 'hands off computer' (which is partly what this is all about) and use it just with audio input (i.e. dont bother recording midi), BUT setting up multiple midi channels to feed VpC/MPE is a pain!
on the other hand, Bitwig with MPE support, makes this side easy, but whilst I hugely respect the guys that added Push support (its a huge endeavour) its not as 'complete' as Ableton (partly due to the BWS controller API not being complete)
So, I guess for me its kind of a race, Bitwig getting better push support, or Live getting multi channel midi support , till then I switch between them, depending on what Im doing, and if I think midi is important. (when Im using Ableton, I tend to use OSC/T3D and then record the audio)
hopefully, Ableton 10, or BWS 2.0 will be perfect ;o)
Bitwig, yeah I like it, some things are really well thought through, but every now and then you stumble across things that are missing or awkward (e.g. you cant bounce in place real-time, a pain for hardware synths)... but I guess comparing a 1.3 product to a 9.5 product is hardly fair (also big price difference between Live Suite and Bitwig)
... so on balance I think they are doing a good job, and it looks to be a promising DAW for the future.
I was able to borough a LinnStrument recently and tested it with the new version of Bitwig Studio 1.3.2/3. Aalto and Kaivo worked great in the combination.
Now that there is the "Force MPE Mode" (rightclick on the device in Bitwig Studio) it's per note expressions are finally working with VSTs.
It seems so far no VST (I have) has implemented the correct "canDo" message for MPE though, otherwise BWS is supposed to switch to MPE automatically.
I had a bit of a struggle with Aalto/Kaivo since I needed to set each preset to 24/48 halftones by hand. So like Mark suggested, it may make sense to have a fixed value for MPE or a rightclick-lock or the automatic MPE mode pitch setting.
(I know the question was not pointed at me but yes, I switched to Bitwig Studio as my main DAW ;-) ).
Thanks for those great instruments and making them MPE compliant!
I tried to implement the canDo as per Bitwig's suggestions, a simple thing. Too bad to hear it is not working. I am in touch with Bitwig and will investigate. Though OSC is going to be more important long term, I want to help make MPE support as smooth as possible.