midi-details
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
midi-details [2020/01/06 00:15] – [MIDI routing in Instrument layers] shane | midi-details [2023/05/08 18:59] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 22: | Line 22: | ||
{{:: | {{:: | ||
+ | |||
+ | What this means is that not only the Instrument plug-in, but ALSO any insert effects on the layer, can be controlled via MIDI. This is particularly useful when using MIDI data-streams generated by MIDI generator plug-ins such as arpeggiators. Of course, only plug-ins that actually support MIDI control can take advantage of this feature. Nearly all instrument plug-ins support MIDI control (if only for playing notes), but quite a few audio effects do too. (Effect plug-ins by [[https:// | ||
+ | |||
+ | |||
+ | ===== MIDI processing built into MIDI and Instrument layers ===== | ||
+ | The above descriptions of MIDI routing in MIDI and Instrument layers don't tell the whole story. Both MIDI and Instrument layers have quite a bit of built-in MIDI-stream processing. | ||
The following diagram shows both MIDI and audio routing in Unify' | The following diagram shows both MIDI and audio routing in Unify' | ||
Line 27: | Line 33: | ||
{{:: | {{:: | ||
- | What this means is that not only the Instrument plug-in, but ALSO any insert effects on the layer, can be controlled via MIDI. This is particularly useful when using MIDI data-streams generated | + | The box labeled //MIDI filtering/ |
- | T | + | {{:: |
- | ===== MIDI processing built into MIDI and Instrument | + | The //MIDI Source// box (top left corner) determines where the layer' |
+ | |||
+ | {{:: | ||
+ | |||
+ | * **IN** selects the main input | ||
+ | * **M1** selects the output of MIDI layer 1 | ||
+ | * **M2** selects the output of MIDI layer 2, etc. | ||
+ | |||
+ | The "MIDI filtering/ | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | ==== Stage 1: MIDI channel filtering | ||
+ | |||
+ | At the first stage, the //MIDI channel number// (1--16) of each incoming MIDI event is compared against the setting of the //Input Channel control//, and the event is only passed on to the next stage if it matches: | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | * **ALL** allows all events to pass (no MIDI channel filtering) | ||
+ | * **1** through **16** filter out events whose MIDI channel (1--16) does not match | ||
+ | |||
+ | ==== Stage 2: MIDI channel conversion ==== | ||
+ | The second stage allows the option to change the event' | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | * **NC** means "no change", | ||
+ | * **1** through **16** cause all incoming MIDI events to be reassigned to that channel number | ||
+ | |||
+ | ==== Stage 3: MIDI pitch- and velocity-based filtering ==== | ||
+ | The third filtering stage is the basis for key- and velocity-splitting. By setting multiple layers to respond to non-overlapping //pitch// ranges, you can define // | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | The control box marked **G8** in the image indicates the upper limit of pitch; the box below it marked **C-2** is the lower limit. You can adjust these values in four ways: | ||
+ | * Click and drag up/down with the mouse | ||
+ | * Right-click (or Ctrl+clicking) to pop up a small edit box, and either: | ||
+ | * Type a note name (e.g. " | ||
+ | * Press the appropriate key on your MIDI keyboard, and the displayed note-name will change to match | ||
+ | * Right-mouse operations in the layer title bar (advanced---see [[layer-stack-view# | ||
+ | |||
+ | The two control boxes on the right are similar, but define the upper (top-right) and lower (bottom-right) // | ||
+ | |||
+ | ==== Stage 4: Pitch transpose ==== | ||
+ | MIDI pitch values for key-splits are defined //prior to transposing//, | ||
+ | |||
+ | The fourth processing stage allows you to transpose the pitch at which the layer sounds by adding an offset (in semitones, which may be negative) to the note-numbers for each MIDI note-on or note-off event. The offset is the sum of the **layer transpose offset** | ||
+ | |||
+ | The **layer transpose offset** affects only the given layer, and is is set by the //layer transpose control// at the bottom-left corner of the MIDI-controls cluster: | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | The **global transpose offset** affects ALL instrument and MIDI layers, and hence allows you to transpose the entire composite Unify " | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | Both the global and layer-transpose boxes can be adjusted in the same three ways: | ||
+ | * Click and drag up/down with the mouse | ||
+ | * If you hold down the Alt key (on a PC) or the Option key (on a Mac), the value will change by octaves | ||
+ | * Right-click (or Ctrl+clicking) to pop up a small edit box, enter a value in semitones (may be negative) and hit the Enter key. | ||
+ | |||
+ | ===== Stage 5: Note-velocity modification ===== | ||
+ | Finally, the fifth stage of layer MIDI processing allows you to apply an arbitrary //response curve// to the velocity values associated with each note-on event. Clicking on the **MIDI Velocity Graph control** at the right-hand side of the MIDI-controls cluster pops up a //curve editor window// like this: | ||
+ | |||
+ | {{:: | ||
+ | The graph itself represents // | ||
+ | * The **Reset button** reverts the curve shape back to the straight-line " | ||
+ | * The **Load... button** lets you load a previously-saved curve-shape preset (XML file) | ||
+ | * The **Save... button** lets you save the current shape as a new curve-shape preset | ||
+ | In the graph control itself, you can: | ||
+ | * Click and drag the // | ||
+ | * Click anywhere //between// endpoints and drag up/down to change the curvature of that segment of the curve | ||
+ | * Double-click anywhere //between// endpoints to //create a new split point//, splitting the segment into two | ||
+ | * Single-click directly //on a split point// and drag to move it up, down, left, or right. | ||
+ | * Double-click directly //on a split point// to //delete it//, joining two segments back into one | ||
+ | For velocity curves, you will rarely need to create split points. You will usually only need to adjust the curvature (// | ||
midi-details.1578269744.txt.gz · Last modified: 2023/05/08 18:59 (external edit)