I’d like to use IanniX over MIDI to get access to the wide range of sounds from the huge number of available MIDI synths. From what I can see IanniX has very limited support for controlling the parameters of MIDI messages based on the score state variables.
Here is a score I created using MIDI:
This is interesting, but the triggers have static MIDI notes assigned to them. It would be interesting to be able to control note number, controllers, pitch bend, program change, etc with parameters from the score.
In fact I was able to do this in a limited manner using setBoundsSource and setBoundsTarget to remap some parameter into the 0..127 range of MIDI variables, and then assigning that parameter to, say note number. But this is unintuitive and hard to control.
Is there any better way to do this? For example, to use cursor position to control the MIDI note number or data sent to a MIDI CC?
I realize this would be possible by sending the parameters via OSC to say Max, transforming them and sending them to MIDI, but this would involve too many applications for my liking.
If there is currently no way to do this in IanniX, I have several ideas on how it might be added and I may have a go at modifying the source code to support it. Also from what I can see IanniX does not currently support sending pitch bend or program change so I may add those too.
Note that I’m also very interested in using OSC to directly to control Supercollider, but for some projects I need easier access to the conventional instrument sounds that are available from MIDI synthesizers.
Just a quick note of encouragement. I’d be happy to test your proposed additions, I compile most of my most-used apps on Linux and IanniX has been no trouble to build.
Anyway, good luck and let us know how things come along with your projects.
I’ve make one small change so far: I added support for a new parameter, trigger_distance that can be used in the construction of messages just like the other parameters. It’s computed based on the distance between the cursor position and the trigger position when the trigger fires. This seems to be working fine.
These embedded functions may provide both the equivalent of Geomaestro’s « distortion functions » as well as a way to scale values to fit the MIDI range.
From what I can tell, adding this feature would mainly involve extensions to the Parse() function in the C++ code, as a preprocessing stage before normal parsing.
This would also make message specification expressions longer and may require going to a line-wrapping format for the message editor. The field in this editor needs to be larger anyway as it’s hard to see the underlines in the variable names.
Anyway, I’m going to play with these Ideas and see what I can come up with.
|cookielawinfo-checkbox-analytics||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".|
|cookielawinfo-checkbox-functional||11 months||The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".|
|cookielawinfo-checkbox-necessary||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".|
|cookielawinfo-checkbox-others||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.|
|cookielawinfo-checkbox-performance||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".|