Version
It is possible to create a MIDI instrument from a Source plug-in if the plug-in understands MIDI messages.
To create a source plug-in instrument (such as a synthesizer):
Create an empty Sound object on the Actor-Mixer Hierarchy.
In the Project Explorer, select the Sound.
In the Contents Editor, click Add Source >>.
From the selector menu, select Synth One.
From the Views menu, select Source Editor (Shift+X).
Click on the Sound object on the Actor-Mixer Hierarchy to see it in the Source Editor.
In the Source Editor, set the Frequency Mode to MIDI Note.
Now the instrument can be referenced as a MIDI target inside a music object (ex: Music Segment).
Sampled instruments can use all Actor-Mixer Hierarchy containers (Blend Containers, Switch Containers, Random Containers, Sequence Containers and Sounds) for their design. The complexity of the implementation will grow with the instrument design complexity. The most simple sampled instrument would be a 1-sample instrument.
To create a 1-sample instrument:
In the Project Explorer, select the location to create instrument.
From the Views menu, select Audio File Importer (Shift+I).
Click Add Files
Browse for a .wav file, and click OK.
Click OK again to complete the import operation.
Tip | |
---|---|
You can also Drag & Drop a WAV file on the Actor-Mixer Hierarchy directly. |
Now the instrument can be referenced as a MIDI target inside a music object (ex: Music Segment).
Tip | |
---|---|
Use the Source Editor to trim the imported samples. You normally want to remove any silence at the beginning of the source. |
The MIDI note tracking parameters can be found in the MIDI tab of the Property Editor for the Actor-Mixer Hierarchy objects. These parameters determine if, upon reception of a MIDI message, the sound objects are pitch-shifted during playback. If the played sound is pitch-shifted, it is according to the note of the MIDI message, and the note represented by the Actor-Mixer object's source; it's root note.
The note tracking parameters can be specified and/or overridden in any of the instrument's Actor-Mixer Hierarchy objects. For more information about properties in the Actor-Mixer Hierarchy, refer to About properties in the project hierarchy. The MIDI note tracking parameters are:
Override parent: if set, the object ignores the note tracking parameters of its ancestor objects.
Enable: if set, the object's sound is pitch-shifted when played. The pitch-shift is done using the received MIDI message's note and the parameter Root note.
Root note: the note represented by the object's source.
The MIDI filters can be found in the MIDI tab of the Property Editor for the Actor-Mixer Hierarchy objects. When receiving a MIDI message on a complex object structure, you can use the MIDI filters to select which child object to play.
The MIDI filters define which child object to play will based on:
MIDI note key.
MIDI note velocity.
MIDI channel.
Because re-sampling has a tendency to create unwanted artifacts as sounds are pitched away from their root notes, you may want to use multiple recorded samples at different root notes to cover the full extent of an instrument. A technique often used that usually provides good results when memory is limited is to use a few different sample root notes per octave and pitch them up and down to cover the full 12 semitones of an octave.
Here's an example for two octaves of an instrument pitching the root notes down by a second and up by a minor second:
Instrument (Blend Container)
Root note: C3 - Range: Bb2 to C#3
Root note: E3 - Range: D3 to F3
Root note: G#3 - Range: F#3 to A3
Root note: C4 - Range: Bb3 to C#4
Root note: E4 - Range: D4 to F4
Root note: G#4 - Range: F#4 to A4
The Blend Container simultaneously plays every child when playing the container. The filter however blocks the children that don't match the filter rules.
The MIDI Events properties can be found in the MIDI tab of the Property Editor for the Actor-Mixer Hierarchy objects. When receiving a MIDI message, the MIDI Events properties are used to decide whether the object must be played. The object can be played on either a note-on or note-off event. Note that these properties are only used to start the playback of the object. To stop the object playback, an envelope must be assigned to a property (refer to Working with envelopes).
A typical scenario would be to Play on Note-On.
To create a looping instrument:
In the Project Explorer, select the Sound to loop.
In the Property Editor, go to the General Settings tab.
Enable Loop on the Sound.
In the Property Editor, go to the MIDI tab.
Set the Play On property to Note-On.
From the Views menu, open the Source Editor (Shift+X).
Inspect the Sound again.
In the Source Editor, move the Loop Start and Loop End cursors to exclude the attack and release sections of the WAV file.
Adjust the Crossfade duration until the loop point can't be heard.
Note | |
---|---|
The instrument's looping may be stopped via the Break on Note-Off property. If the property is set, the note-off stops the playback of the looped sound while allowing the current object to finish playing. Remember to set the Loop Start and Loop End cursors in the source editor such that the final loop plays for the desired duration. |
Another scenario would be to have a specific sound that is played for the release of an instrument, at Note-Off. For example, this could be used to trigger the string muting sound of a guitar note ending. You would create the following objects and settings:
Blend Container
Attack+Loop Sound: Play On = Note-On
Release Sound: Play On = Note-Off
When you want to add dynamics to your instruments, you can use an Envelope attached to the Voice Volume of the instrument.
To add an Envelope to the Voice Volume, refer to Working with envelopes.
It is possible to use the following MIDI messages to control object property values:
MIDI Note Velocity.
MIDI Note Key (number).
MIDI Note Frequency.
MIDI Note Aftertouch.
MIDI CC values (0-127, including Modulation Wheel).
MIDI Pitch bend.
A typical scenario would be to control the Voice Volume of the Instrument with the MIDI Note Velocity.
To control the Voice Volume with the MIDI Note Velocity:
In the Project Explorer, select an object from the Actor-Mixer Hierarchy.
In the Property Editor, go to the RTPC tab.
Click the [>>] button in the RTPC list to add a new entry.
From the selector menu, select Voice Volume.
Click the [>>] selector for the X axis.
From the selector menu, select MIDI > MIDI Note Velocity.
Adjust the Voice Volume curve in the RTPC graph.
The MIDI Keymap Editor view can be used to edit all MIDI properties for Actor-Mixer Hierarchy objects.
To open the view:
In the Project Explorer, select an object from the Actor-Mixer Hierarchy.
In the Property Editor, go to the MIDI tab.
Press the Keymap Editor button.
To set the same property values on multiple objects:
Select the objects to edit in the MIDI Keymap Editor.
Set the value of a property on one of the selected objects.
The selected objects are now set to the same value.
To offset the property values of multiple objects:
Select the objects to edit in the MIDI Keymap Editor.
Hold the ALT key and move the property slider on one of the selected objects.
The selected objects have their property value offset.
To add properties in the MIDI Keymap Editor:
Open the MIDI Keymap Editor view settings (Ctrl+Alt+V).
Select the properties to add.
Press OK.
New columns are added.
When designing a MIDI instrument, you can test the instrument with an external MIDI keyboard device.
To connect your device to Wwise:
From the Project menu, select Control Surface Devices.
Click the Add button.
Give a name to your device.
Click OK.
The device is added to the list.
In the Receive From column, select the MIDI IN device.
The Connected message appears.
In the Send To column, select the MIDI OUT device.
The Connected message appears.
Click Close.
The device is now ready to use.
To bind the keyboard keys to the current selection:
From the Views menu, select Control Surface Bindings (Ctrl+Shift+Q).
Create a new Control Surface Session by clicking the [>>] button on the top left of the view.
Click the Current Selection group (folder).
Click the Add Binding button.
Click the Property/Command selector button to open the menu.
Select Object Command > Pass MIDI Note.
Save your project.
Note | |
---|---|
Ensure the Current Selection group is active in the Control Surface toolbar and that you have an object selected in Project Explorer. |
After creating the session and the binding, selecting an object in the Project Explorer will automatically load the object for the MIDI instrument, ready to play.
It is possible to route MIDI messages coming from an external application (DAW, or Digital Audio Workstation) to Wwise using a virtual MIDI connector. This can be useful to compose MIDI music in a DAW while using the instruments built in Wwise.
You can author multiple instruments simultaneously by creating a Blend Container containing all instruments, and using the MIDI Channel filter to discriminate the instruments.
Mac: The built-in IAC Driver is what you are going to be using. To commence, launch Audio MIDI Setup which can be found under Applications/Utilities. If the MIDI studio is not displayed, go to Window, and select Show MIDI Window. Click on MIDI Devices, double-click the IAC Driver icon, and check the option Device is online to activate it. Once any number of ports have been added, they will show up in your DAW. The ports can be used to send or receive MIDI Note, MIDI Control Change, and MIDI Sync messages.
Windows: You will have to download a virtual MIDI driver because Windows does not natively have one. The best-known Windows equivalent to Mac's IAC Bus is MIDI Yoke, a component of the MIDI OX Utility. An alternative to this driver application is Tobias Erichsen's loopMIDI , which can be used to route MIDI messages from a DAW to Wwise. You will need to add the virtual MIDI ports created by the application in Wwise's Control Surface Devices.
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise