Home › Forums › Bugs › A new version is coming… › Re: A new version is coming…
Hi Guillaume, that’s great about the new version.
I’ve made a number of enhancements to my private version of IanniX which I synced to the svn version and am tracking with GIT on my system.
The enhancements include:
– support for pitch bend as a “/bend” MIDI message type
– the addition of some additional parameter types that can be used in messages including
* trigger_distance: distance from the center of cursor to the center of the trigger
* collision_distance: distance from the center of cursor to the intersection of the cursor with the collision curve
* trigger_angle: angle of line between center of cursor to the center of the trigger
* collision_angle: angle of line between center of cursor and intersection of the cursor with the collision curve
(implementation of the angle parameters is underway now)
– support for embedded Javascript expressions in messages. For example the message midi://IanniX_Out/note 0 {127*(trigger_distance/10)} trigger_value
would return MIDI note numbers scaled based on the trigger_distance, assuming the maximum possible trigger distance was 10.
Anywhere a single parameter can be used, an expression enclosed in { } can be substituted and the expression can used any of the parameters that could have been used directly in the expression. Whatever number the Javascript returns is entered into the message in place of the expression.
– I also made a few enhancements to the parameters, notably to the “collision” ones, as currently if these are used in a message and a collision is not occurring, that field is blank in the message and this can displace any parameters following that parameter so they may be mis-identified. I added return value of -999999 as a place filler in these cases. I also added a “colliding” parameter that is 1 if a collision is occurring and 0 if not.
– In working with the cursor-angle parameter I noticed that it always returns a negative angle, if I’m not mistaken. The correct positive angle I believe would be given as 360+cursor_angle.
– I’d also like to add a trigger_angle parameter that would be the angle of the line from the cursor centre to the trigger at the time of a collision. This combined with the cursor-angle could be used to compute (with the embedded Javascript) the angle to the trigger relative to the direction of the cursor. i.e. The angle as it would be seen from the frame of reference of the cursor. Geomaestro support this and it allowed things like panning the sound as it would be heard by an observer riding on the cursor.
– Similarly I’d like to add a collision_angle parameter for cursors colliding with curves.
– I have some other ideas but I think that’s a summary of what I’ve done do far.
I have the source code for these things, which is quite localized in the code, tracked as changes in a GIT repository so if you are interested I could send you the code.
– Chris
Cookie | Duration | Description |
---|---|---|
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". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |