Hi,
Sorry, this post is long
If you go through the examples in the repository, I think it can be helpful to you:
https://github.com/notionmusic/presetsI think one thing to get past is editing a prules file. That's the old way and the options might be a little different. You won't be editing that directly as the newer version of Notion (I think since maybe 6.5 or 6.6) has a graphical interface (GUI) for that. However, if you create a set of rules with the GUI that you want to use on another library or set of instruments, you can export your ruleset as a .prules file and load that into another defintition to get you started so you don't have to do everything from scratch. There's really no need to save or edit the raw file except for use in other templates or to share.
There are like 4 basic steps:
Step 1. The Directory Structure. If you have Windows, create a folder in your windows Documents library labeled
Notion* Inside that directory create a folder labeled
Presets* Inside the Presets folder will be folders for each of your VSTi libraries. For example, I might have a guitar VSTi called "Super Guitar". I'll create a folder here labeled
Super Guitar* And in the VSTi folder create a folder labeled
Instruments so you could have multiple instruments defined for a single library. Also in this folder you'd create a Preset.xml file.
The Preset.xml file defines the name and identity of the instrument and any custom user technique names that may not exist natively in notion - and ties this to the score that you create.
Step 2. Define your Preset.xml file. You need the preset tag definition, the identifier tag, user-techniques tag, and the technique tag that includes a couting number for each custom technique you add. If you don't have any user techniques to add, you still need to create the file with the other tags but just don't include any <technique number> </technique> tags.
- Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<preset>
<identifier>MyUniqueID_12345</identifier>
<name lang="en-US">Super Guitar</name>
<user-techniques>
<technique number="1">Rasgueado</technique>
<technique number="2">Alzapua</technique>
</user-techniques>
</preset>
Step 3. Create a template. This means create a score, add your VSTi and any effects etc. Set up your staves, any general starting tempo, time sig, key sig, any layout options. You don't have to populate the score with notes, though recommended for testing, but just create a complete setup for your particular VSTi. A single template should be for a single instrument. (Note: once all of your instrument definitions are complete, you can create a template that has all of these instruments in a score. Don't confuse this with a single preset definition). You'll do one instrument for each template especially if they will have different rules to follow. You save this Notion file in the
Instruments folder you created first. If there are multiple instruments for the VSTi like if it was Garritan Personal Orchestra, you might want to have a Number in front of each file name for a particular instrument template, so you can keep it organized in the folder.
Step 4. Add rules. Once you add the rules, save your template again. Upon opening the template, the rules will exist within it. This is the crux of your question really, and of course the most complex.
The top portion of the ruleset define the velocity and hairpin ((de)crescendo) values for the different dynamics. By default, notes without dynamic markings playback at 90 velocity and 90 expression.
Though you may have many rules in a single ruleset, If it's a single instrument template, you don't need to create multiple rulesets. The conditional logic you program should be able to handle various cases of articulations and techniques. Add the ruleset to the beginning measure of your template. Once you are happy with your ruleset, you might want to apply the same rules to other instruments.
This idea might be where exporting a created ruleset to a .prules file comes into play. If you've defined a great ruleset and want to use it in another template but with a few alterations, it would save you time to import that ruleset into the new template and just tweak it in the GUI.
The rules function in a hierarchy: top to bottom. The conditions dictate the actions. All of the individual rules inside a ruleset are read unless the Enabled check box is not checked. If you have an action with no condition, it is executed. Conditions are tested at the time a note is triggered. "Before note" and "After note" condition modifiers are triggered on the note they are on and look ahead or behind to see if the note value is the same as the current note before returning a boolean (True or False) repsonse.
Beyond the instructions in the manual in section 9.13 I can say these couple of pointers:
* anything in the rules involving a MIDI channel change is for a single instance of an event. When the note occurs and there's an articulation and you change the MIDI channel, it happens at that moment and goes back to whatever MIDI channel the track is set to. To permanently or for an extended period change the MIDI channel of a track, use the Change Instrument function - not a rule.
* once a rule is added to the score and placed on a staff, it is in effect from that point on until the end of the score.
* flags do not carry over like a variable in a scripting language to other events. At any given note, the ruleset is checked at that time. Only the actions dictated by the conditions AT THAT MOMENT will be put in effect. For example, if you are trying to measure volume or dynamics on a whole note, if you have a hairpin and are waiting for it to get louder before you do something else, your conditions will only respond to the single instance when the whole note was initially played. You won't get a condition change even if the volume swells up. This I think is one of the harder concepts to understand. The rules always function when a note is triggered - not in the space between notes/events
* techniques carry over but again rules react to notes played. Articulation conditions happen at the time of the note being played that the articulation is set to.
* you can hide the rule placed on the staff in your template so that when it loads, you don't see the rule text on the staff. Right Click on the rule text on the staff, then click Attachments > Hide Attachments
On the Main Menu under view, you check or uncheck Show Hidden Items to see what was hidden or to keep them hidden. Once they are visible using Show Hidden Items, you can right click and choose Attachments > Unhide to make the rule visible on the staff.
* and a biggie (I thought when i discovered it) You cannot use rules on the existing instruments that come with Notion. The instruments will not respond to your custom rules - they have preprogrammed rules that they respond to.
All in all if there is something in particular you are trying to do, you can ask. But as far as the general steps, they are as above. One thing I also ran into is the words that show up in the ruleset for techniques or articulations, don't 100% match the words on the pallet or in the manual. I found that to be a pain. And only by testing the symbol and choosing the words from the drop down until I got a match in the behavior I wanted for a particular technique or articulation, did I know what actually to choose from the drop down in the rules.
For example, if you choose Accent with Tenuto from the pallet on the score, you will not find those words in the Rule Set for an articulation condition. You'll have to know or guess. Maybe it's a Legato Accent? I'm not sure why the naming isn't the same between the two but it makes things difficult and sometimes you can't understand why a rule isn't working when simply you chose the wrong option.
Anyway, once you get down the flow of the 4 basic steps above, it's really just working out the logic and knowing and understanding the VSTi you're trying to design rules for. Again if you have a particular question, feel free to ask.