Click here for a video overview of OSC/PAR
Once OSC/PAR is installed, it'll be available as a Plugins for your DAW, under the 'Epicwin Inc.' section. Make sure you enable loading plugins in your DAW. OSC/PAR is installed in the VST3 System Folder.
OSC/PAR sends out 4 types of data, all using the OSC protocol:
- Up to 10 Macros with Custom names.
- MIDI note values from the track.
- Transport information from the track
- The song messages described by an XML file.
The network address and port to send OSC data to are on the bottom left of the UI. A direct IP address can be used, or 255.255.255.255 can be used to broadcast the data to all machines on the local network. By default the port is set to 9002, make sure this matches the port your OSC receiving is listening on.
OSC Address Space
The 'OSC Address Space' field controls the base OSC Address used to send all messages from this plugin. The OSC Address will always start with the contents of this fields. The Address should start with a /, and can contain any characters legal for an OSC Address. They can include more than one / to create a deeper address space. E.g /Control/Screen1. Messages sent will start with this Address, and contain further names based on what is being sent.
You can send up to 10 macros out over OSC using automation within your DAW. These can be any name you want, can be sent as floats or and integers, and the range of the output can be controlled per macro. The OSC Address that will be used for the macro will be <OSCAddressSpace>/<MacroName>. For example if the OSC Address Space is '/Control' and the Macro is named 'Level', then the OSC Address for this macro will be /Control/Level.
MIDI notes on the track will be sent out over OSC as well. You can visually see the notes getting sent with the grid of indicators at the top of the UI. The OSC Address for the notes will be <OSCAddressSpace>/note_#, where # will be the MIDI note number. E.g /Control/note_34.
The argument sent with the note_# message will be the note velocity. This will be an integer between 0 and 127. 0 means Note-Off.
Additionally, there are two more global messages that are sent. <OSCAddressSpace>/noteVel and <OSCAddressSpace>/noteNum. These will also be sent whenever a note occurs. 'noteVel' will contain the velocity of the note, while 'noteNum' will contain the note number. These will not be sent on Note-Off events, so 'noteVel' will never be 0. Since they are sent as separate messages they should be treated as individual data, i.e "Note 60 was just played" and "A note with velocity 90 was just played". To respond to note 60 being played with a velocity of 90, you should look at the note_60 message.
On the bottom right of the UI there is a enable/disable toggle for the 'Transport' sending. When this is enabled 5 values will be sent out over OSC as the track plays forward. The OSC Address will be <OSCAddressSpace>/<Name>
- 'isPlaying' - Will be 1 if the track is playing, 0 if it's not.
- 'BPM' - The BPM for the track.
- 'Bar' - The current bar number.
- 'Beat' - The current beat number within the bar.
- 'BeatPOS' - The current beat position within the track.
Song List XML
The Song List XML feature can be used to load a song list into the plugin, by using the 'Load XML' button. This will cause OSC messages to be sent when that song starts playing, based on the current bar. An example song list is:
<Song Name ="Song that should be first" Time ="1"/>
<Song Name = "Great Song" Time = "50"/>
<Song Name = "Not So Great Song" Time ="100"/>
Time is specified in 'Bars'. When the bar is hit, an OSC message with the OSC Address <OSCAddressSpace>/Song will be sent. The contents of the message will be a string which is the 'Song Name' specified in the XML file.
You can also send your entire song list by using the 'Send XML' button. This causes multiple OSC message to be sent to the OSC Address <OSCAddressSpace>/SongList. Each message will have two arguments, the first being the Song Name, and the second will be the Time value. This will be sent as a single 'OSC Bundle'.
The XML file contents will be saved into the plugin, so the actual .xml file is only used when it's first loaded.