Attention:

Welcome to the old forum. While it is no longer updated, there is a wealth of information here that you may search and learn from.

To partake in the current forum discussion, please visit https://forums.presonus.com

How to add new technique?

How to add new technique?

Postby johnsantana » Tue Oct 01, 2013 3:29 pm

I would like to add to the list of "techniques" and trigger them during playback. I understand the basics of using rules, but not the aspects of techniques. I've looked through the techniques lists file but don't quite understand how the techniques, instruments (with IDs), and other variables (like flags), come together to make it work.

It looks to me like the techniques list eventually managers to point to a rule in a rules file somewhere, but the patch from here-to-there is not at all clear to me, and I'm hoping that someone could give a concise, step by step explanation of the process.

This may help explain what I'm looking to do: Something similar to setting playback parameters for an expression in Finale (where you can define the expression text and the associated playback). The resulting playback can use key switching, but I need to trigger the technique from text or symbols not already in Notion. Hope that's clear.

Thanks,
John
johnsantana
 
Posts: 15
Joined: Sat Jun 16, 2012 9:52 pm

Re: How to add new technique?

Postby dcd111 » Tue Oct 01, 2013 4:31 pm

Unfortunately I don't have time at the moment to do a full step-by-step, but maybe this will be helpful in the meantime:

You should probably be looking at the ExpressionList.tpk file, not the TechniquesList file. The techniques file only specifies which techniques are listed in the techniques palette for particular instruments, but you can't use that to define new techniques.

The ExpressionList.tpk is where a new technique would be added (after backing up the file, of course). Note that changes you make may be superseded by official Notion updates, so you may want to make an additional backup of the file with your own modifications for future reference if your custom file gets overwritten.

For single note techniques, look at the format of the packets for "pgcg" and "pgop" (about one quarter of the way into the file). You can learn from reading these two how single note techniques are defined and how they can be interrelated. A simpler example is the technique "cres", which can probably be used as a template for a typical single note technique you may want to add.

For techniques that can be started and stopped instead of applying to just one note, look at the format of the packets for the various types of mutes, such as "mute". Or the various "custom sounds" options. Those "custom sounds" probably make for a good template to add your own, but you may want to change "Style ID" from "gteq" to "expr", this sets the font that is used for the technique's "expression text" in the score and "expr" is the more typical one.

From there you check the technique in your custom rules file like any other "technique" as per the custom rules documentation.
dcd111
 
Posts: 73
Joined: Wed Jun 06, 2012 6:07 pm

Re: How to add new technique?

Postby johnsantana » Tue Oct 01, 2013 5:45 pm

Hello,

Thanks for taking as much time as you did to reply. Your answer is very clear and gives me the path through the data I was looking for (at least, at first glance it does). I have a good deal of computer and database programming experience, so your concise explanation with emphasis on the "big picture" is probably all I need.

Just your telling me which file is used for what purpose is a gigantic help. For me, I usually run into trouble when someone posts an answer which presumes I know the ins and outs of the larger design and how it logically fits together, which I seldom do.

Thanks again,
John
johnsantana
 
Posts: 15
Joined: Sat Jun 16, 2012 9:52 pm

Re: How to add new technique?

Postby johnsantana » Wed Oct 02, 2013 4:32 pm

Again, thanks for your help. I've gone through the file you specified and understand most of what's going on (I think).

Only thing is, the mysterious designations for the techniques themselves. It appears that they are defined elsewhere, which I suppose is what I'm looking to do. Am I right? In other words, what's the connection between the definition of the technique and placing a trigger for it in the score?

Thanks,
John
johnsantana
 
Posts: 15
Joined: Sat Jun 16, 2012 9:52 pm

Re: How to add new technique?

Postby dcd111 » Wed Oct 02, 2013 8:34 pm

ExpressionList.tpk can definitely be used to define new techniques. The seemingly arcane 4-character values under "Expression ident" and "Start technique" are not references to something already defined elsewhere. They are actually being defined right here in this file.

I just ran an experiment. Chris Hein Horns Compact has two main "velocity modes", velo. fade and velo. key. Without getting into too much detail, let's say I have an instrument that uses "Velo. Fade" on MIDI Channel 1 in Kontakt, and an instrument that uses "Velo. Key" on MIDI Channel 2.

I wanted to add a new technique, called "v-fade", to tell Notion to send notes to the Velo. Fade instrument. I also wanted a technique to cancel it, called "v-key". By default, with no techniques, I want Velo. Key to be used.

I added the following to the ExpressionList.tpk file, just before the </expressions> line:

Code: Select all
  <packet type="EXPD" name="Expression define">
    <property key="exid" name="Expression ident">vfad</property>
    <property key="exor" name="Expression level">422</property>
    <property key="excf" name="Expression conflict">vfad vkey</property>
    <property key="sttc" name="Start technique">vfad</property>
    <property key="syid" name="Style ID">expr</property>
    <property key="extx" name="Expression text">v-fade</property>
    <property key="exbh" name="Expression both sides">False</property>
    <property key="atps" name="Staff side">abov</property>
  </packet>
  <packet type="EXPD" name="Expression define">
    <property key="exid" name="Expression ident">vkey</property>
    <property key="exor" name="Expression level">422</property>
    <property key="excf" name="Expression conflict">vfad vkey</property>
    <property key="entc" name="End techniques">vfad</property>
    <property key="syid" name="Style ID">expr</property>
    <property key="extx" name="Expression text">v-key</property>
    <property key="exbh" name="Expression both sides">False</property>
    <property key="atps" name="Staff side">abov</property>
  </packet>

A few things to note:

"Expression ident" is the name of the technique. I believe this is used by other techniques to refer to it for conflicts and such.

"Start technique" is what identifies the 4-character technique name that you will use in your custom rules. "End technique" is used to end a technique that cannot co-exist with the expression you are defining. In this case, I did not do a new "Start technique" for "vkey", because I don't want it to be a real technique that can be checked in custom rules, I just want it to cancel the v-fade technique.

"Expression text" is the text that will appear in your Notion score.

"Expression conflict" identifies the techniques that cannot co-exist with this one.

The other stuff you can experiment with, but does not seem to be critical.

Then, I created a custom rules file, as follows:

Code: Select all
<?xml version="1.0" ?>
<rule-set version="1">

    <dynamic-map id="velo">
      <dynamic dynamic="ppppp" value="1" />
      <dynamic dynamic="pppp" value="1" />
      <dynamic dynamic="ppp"  value="1" />
      <dynamic dynamic="pp"   value="19" />
      <dynamic dynamic="p"    value="37" />
      <dynamic dynamic="mp"   value="55" />
      <dynamic dynamic="mf"   value="73" />
      <dynamic dynamic="f"    value="91" />
      <dynamic dynamic="ff"   value="109" />
      <dynamic dynamic="fff"  value="127" />
      <dynamic dynamic="ffff" value="127" />
      <dynamic dynamic="fffff" value="127" />
   </dynamic-map>

<group id="test">

   <setup>
      <velocity-map id="velo" />
      <hairpin-map id="velo" />
      <hairpin-cc value="11" />
   </setup>
      
   <rule name="default">
         <channel-change channel="2" />
   </rule>

   <rule name="vfade">
      <if technique="vfad" />
         <channel-change channel="1" />
   </rule>

</group>
</rule-set>


This sets the default MIDI channel as Channel 2, and only uses Channel 1 as long as the "v-fade" technique has been applied.

In my Notion score, which has the above Rules file sitting in a Rules subfolder at the same level as the Notion score, I pressed "Shift-Y" and applied it to the first note of the score. I entered "test", because this is the group ID identified in my rules file.

I then pressed apostrophe and started typing "vfad". The text "v-fade" appeared, and I applied that to a note in the middle of the score. Then I pressed apostrophe and started typing "vkey". The text "v-key" appeared, and I applied that to a later note.

I played the score, and it worked as expected: the notes at the beginning of the score played on MIDI Channel 2, then switched to MIDI Channel 1 upon reaching "v-fade", then switched back to Channel 2 upon reaching "v-key".

edited to remove unfinished thought from one of the paragraphs.
dcd111
 
Posts: 73
Joined: Wed Jun 06, 2012 6:07 pm

Re: How to add new technique?

Postby johnsantana » Thu Oct 03, 2013 4:23 pm

Wow! What a big help--thanks. I'll be working on it.

John
johnsantana
 
Posts: 15
Joined: Sat Jun 16, 2012 9:52 pm

Re: How to add new technique?

Postby dcd111 » Fri Oct 04, 2013 9:29 am

No problem, you gave me a good excuse to try out a few things I'd been thinking about anyway. As they say, teaching is sometimes the best way to learn.
dcd111
 
Posts: 73
Joined: Wed Jun 06, 2012 6:07 pm

Re: How to add new technique?

Postby Forever Mourning » Wed Oct 30, 2013 12:47 am

This made total sense and seems very straight forward now! Thanks! I created an expression/technique (Word Reset - for EWQLSC word reset) in the ExpressionList.tpk file, and also added this same technique in the TechniquesList.xml file so it would show up in the Palette in Notion under vsti. It does show up, but it is not clickable. I still have to manually enter it using the ' command. No big deal, but does anyone know how to get this to work in the Palette?

Does anyone have feedback for these properties in the ExpressionList.tpk?

<property key="exor" name="Expression level">430</property> (What is the number specifically for?)

<property key="exbh" name="Expression both sides">False</property> (Both sides is used for?)

<property key="mwvc" name="Moves with voice">True</property> (Used for?)

<property key="uicm" name="UI command">xpgc</property> (Used for?)

<property key="gyid" name="Glyph ID">ortt</property> (Used for?)

<property key="extp" name="Expression compat">circ</property> (Used for?)

I think I covered all the properties not yet mentioned.

Thanks again!

Ryan
Forever Mourning
 
Posts: 8
Joined: Fri Mar 11, 2011 7:47 pm


Return to Custom Rules Discussion

Who is online

Users browsing this forum: No registered users and 1 guest


cron