The first solution I did was to automatically detect when we are sliding down or up into a note, then set a defined value on the PORTAMENTO drive. So this only works when the Notion playback engine decides that a particular glissando is to be played as a slide. Alternatively, the SLIDE marking (up or down, respectivelly) can be used to always slide from one note to another. The only requirement is that the instrument has the Porta(CC20) knob among its controls.
To approach real life playing of a glissando, note durations should be adjusted in the sequencer overlay (see image), but durations should not overlap, otherwise the glissando is cancelled.
These lines can be added to the end of the .prules file. It works with standard instruments (for example, with pcartwright's GPO custom rules). To work with "notation" instruments, CC64 has to be replaced by CC68.
- Code: Select all
<!--set portamento to 70% and legato control on-->
<rule>
<if condition="slide-up-into"/>
<cc type="note-on-prefix" controller="64" value="127" />
<cc type="note-on-prefix" controller="20" value="89" />
<duration-change amount="1.00"/>
</rule>
<rule>
<if condition="slide-down-into"/>
<cc type="note-on-prefix" controller="64" value="127" />
<cc type="note-on-prefix" controller="20" value="89" />
<duration-change amount="1.00"/>
</rule>
<!-- reset portamento-->
<rule>
<if not-condition="slide-up-into"/>
<if not-condition="slide-down-into"/>
<cc type="note-on-prefix" controller="20" value="0" />
</rule>
The second method might be more versatile, but not so automatic regarding the notation. It requires that the user puts a 'slide' technique text or a custom technique (x02 or x03) text over every desired note to play the slide-into. (by typing <apostrophe>slide or <apostrophe>x##). In this method, several custom techniques can be defined for several portamento speeds (CC20). The techniques can be hidden and there is no problem with overlapping notes. the GLISS mark isn't even necessary, as it is not used by the rules.
- Code: Select all
<rule>
<!-- alternative way to set up glissandos using slid and other techniques-->
<!-- normal slide -->
<rule>
<if technique="slid"/>
<cc type="note-on-prefix" controller="64" value="127" />
<cc type="note-on-prefix" controller="20" value="95" />
<duration-change amount="1.00"/>
</rule>
<!-- fast slide-->
<rule>
<if technique="x02"/>
<cc type="note-on-prefix" controller="64" value="127" />
<cc type="note-on-prefix" controller="20" value="89" />
<duration-change amount="1.00"/>
</rule>
<!-- slow slide-->
<rule>
<if technique="x03"/>
<cc type="note-on-prefix" controller="64" value="127" />
<cc type="note-on-prefix" controller="20" value="114" />
<duration-change amount="1.00"/>
</rule>
<!--reset portamento-->
<rule>
<if not-technique="slid"/>
<if not-technique="x03"/>
<if not-technique="x04"/>
<cc type="note-on-prefix" controller="20" value="0" />
</rule>