M9 Docs   Composer

The composer lets you compose your music by arranging clips on different tracks.
The composer has 2 ways to compose: The Live Matrix and the Time Line.
The Live Matrix lets you play musical clips on the fly.
That's a very intuitive way of composing musical ideas.
The Time Line is where you can lay out clips on the time line.
If you only want to use one of them, you can hide the other.
Each track in the composer can be connected to a module, it's called the track's target module.
Tracks can only send to modules that are inside the composer's modular structure.
All MuLab tracks are hybrid.
You can put audio + events + automation onto it.
It is the track's target module that will receive and process the track's audio + events + automation.
If you put audio on a track that targets a module without an audio input, that track audio won't have any effect.
You can intermix audio + events + automation clips on a track as you wish.
The composer is alike a MUX.
That's why it has its own Modular Area button at the right side of its transport.
There you can add as many ins/outs as you want for that composer, add other plugin modules and do specific routings.
You can also record vocals, guitar, sax etc and cut, move and copy clips around.
There are 3 types of clips: Audio Clips, Sequence Clips and Automation Clips.
They're described in detail below.
  • To create a new track, click the [+] button below the existing tracks.
  • You can also create new tracks by drag-dropping a relevant object on that [+] button, for example a module, a parameter, audio files, a MUX preset, a VST plugin etc...
  • A track can directly target any module at any modular level as long as it is inside the composer modular tree.
  • To change the target module for a track, simply drag-drop that module onto the track.
    For example: To connect a track's target to a rack, drag the rack's title bar onto the track.
  • To create a sub-track, right-click the parent track and choose the relevant menu option.
  • By default new sub-tracks use the same target as their parent track, but sub-tracks can also have their own target.
  • You can widen the tracks column by dragging the splitter to the right.
  • You can drag a track to move it up or down.
    If you drop it on the top/bottom of a track, it moves before/after that track.
    If you drop it on the middle of a track, it becomes a child track of that track.


Audio Clips

An audio clip streams a clip of an audio file from your harddisk.
For each audio clip, you can set the start position within that audio file.
This can be done in the Audio Lab.
You can open the Audio Lab by double-clicking the audio clip or via the clip's context menu.
Or via a shortcut that you have defined.

Audio clips can also have a snap marker.
A snap marker makes it easy to align a specific audio cue point to the grid.
For example if you have a vocal audio clip that starts with the word "Spring" you can put a snap marker on the "P" so to perfectly align it to the beat, while the "S" will be perfectly sliding in in front of it.
To set a snap marker, right-click a relevant marker in the Audio Lab and choose "Set Snap Marker".

  • You can trim the start point within the audio stream via its editor.
    Each audio clip can have its own start point.
  • Whenever an audio clip is selected, the audio clip property panel appears in the left bottom of the composer, where you can edit volume, panning, etc of that audio clip.
  • You can set a fade-in and fade-out for an audio clip: Hover the audio clip top-left and top-right until you see a pointing hand cursor.
    Then drag horizontally to set the fade time or drag vertically to set the fade curve.
    These are 2 independent actions, otherwise it would practically impossible to only change one of them.
    Right-click the fade handle point for its context menu.


Sequence Clips

A sequence clip plays a sequence of events (e.g. Note events, PitchBend events, ...) that make up a melody, rhythm groove, filter-sweep etc...
Sequences can be edited in the Sequence Editor and List Editor, by double-clicking or right-clicking the sequence clip.

  • Multiple sequence clips can play the same sequence.
    This also means that if you edit that sequence, all clips playing that sequence will be affected.
    These clips are called 'shared' sequence clips for they share the same sequence.
    The composer indicates these kind of clips with a 'link' icon before the name:

  • When you copy a clip by Ctrl+drag, then the copied sequence clip is a unique copy of the original clip.
    If you want to copy a sequence clip so that it shares the same sequence as the original clip, then use Shift+Ctrl+drag.
    Tip: If you're used to other software with reversed behaviour, you can change this via the "Standard Copy Clip Is Shared Copy" preference.
  • When splitting a unique sequence clip then this will result in 2 unique sequences.
    However if the "Standard Copy Clip Is Shared Copy" preference is ON then the split will use shared sequences, as that preference defines whether you prefer unique sequences or shared sequences.
  • If you have 2 clips playing the same sequence, you can also use "Make Unique Sequence" via the clip's context menu to make a new independent copy of that sequence.
  • If a sequence is looped, then you can simply extend the sequence clip to the right and the sequence loop will play longer.
    For how to loop a sequence, see the Sequence Editor.
  • Whenever a sequence clip is selected, the sequence clip property panel appears in the left bottom of the composer, where you can edit transpose, velocity, etc of that sequence clip.
  • You can stretch a sequence clip in the Time Line by Alt+dragging its end.
    Stretching a sequence clip will update its tempo factor which is shown in the property panel, so you can view/edit it there too.
  • When you copy-paste a sequence clip then the new sequence clip is a unique sequence clip ie. its sequence is duplicated too.
    However when you switch the "Standard Copy Clip Is Shared Copy" preference ON then the new sequence clip will use the very same sequence as the source clip. (Shared sequence)
  • If you want to send events from within the composer to a MIDI output then send the events to a composer event output and then in the Project Modular Area connect that composer event output to the MIDI output module (= the Project Event Output module that is set to the MIDI output).
    This is assumed that the composer is inside the Project Modular Area.
    If the composer would be in a deeper modular level, then make sure to repeat the routings to upward modular levels until the composer events arrive in the Project Modular Area, then connect it to the MIDI output module.
Using MIDI Channels

MIDI channels come into play when you want to address the different sub-sections in a module, for example a multi-timbral synth.
A multi-timbral synth can generate different sounds at the same time, each controlled by its own MIDI channel.
But there are more situations where the use of MIDI channels can be handy.

By default, tracks play on MIDI channel 1.
You can change this via the track's context menu -> Choose MIDI Channel. By default, sub-tracks use the same MIDI channel as their parent track, but you can change this too.

You can also set a track's MIDI channel to "Per Clip" so you can define the MIDI channel per clip via the clip's context menu -> Choose MIDI Channel.
And if you set a clip's MIDI channel to "Per Event", well then you can define the MIDI channel on event level.
In this case new drawn notes get the focused MIDI channel which can be changed via Sequence Editor's context menu -> Editor -> Choose Focused Channel.


Automation Clips

An automation clip controls a certain parameter of a specific module, for example, you can automate the volume fader of a rack, or the cutoff of a lowpass filter, etc...
You can also automate MIDI controllers, aftertouch and pitchbend.

  • To create an automation clip, drag-drop the relevant parameter onto the [+] track button or on a Live Cell or on the Time Line.
    When drag-dropping a parameter on an existing track, this will only work if the dropped parameter is a parameter of that track's target module.
    You can also right-click the parent track and choose the relevant menu option.
  • To create a VST automation (sub-)track, wiggle the VST parameter in the VST plugin editor, then drag-drop the focused VST parameter knob at the top control bar of the VST editor window as described above.
  • Double-click an automation clip to open the envelpe editor and edit the automation envelope in all detail.
    For all details, click here.
  • You can stretch an automation clip by Alt+dragging its end.
    Stretching an automation clip will update its tempo factor which is shown in the property panel, aso you can view/edit it there too.


About Tempo

Composers always use a tempo relative to the 'master' tempo.
The master tempo is the tempo of the first parent composer, or if there is no parent composer then

  • MuLab App uses the project's default tempo, which is displayed at the top of the project moduler area
  • MuLab Plugin uses the host DAW tempo
Say MuLab App's project tempo is 128 bpm.
If there is a main composer at the project level, and its tempo is 125% then its effective tempo is 160 bpm.
If you add a tempo track in that composer (click the [+] track button), it goes from minimum 50% to maximum 200%, hence you can make a tempo track from 64 bpm to 256 bpm.
If you then change the project tempo to 100 bpm, then without touching anything that composer will play its tempo track from 50 bpm to 200 bpm.
Similar to MuLab Plugin, with the single difference that the main project tempo is defined by the host DAW.
So even if the host DAW has a tempo track, MuLab can do composers with a tempo track, which will work relatively upon the host tempo track.
Eventhough a composer's tempo technically is relative, for your convenience the tempo is displayed as an absolute bpm tempo in the transport.
When a composer's tempo is not 100% and you hover the tempo display the relative tempo is shown in a tool tip.
When you edit the tempo and append a % character, eg. "50%" then MuLab will set the new tempo relatively using that percentage value.
Last but not least:
When you set the tempo in the main composer (ie. when composer = project main module, which is default in MuLab App) and there are no tempo automations yet, then that tempo edit will automatically set the project main tempo, and then set the composer tempo to 100%. For that's the most expected UX.


More Composer Info

  • You can drag & drop audio files and MIDI files onto the composer.
  • When a composer's main event input is not connected then incoming events are automatically routed to the focused track.
    If there's no focused track then events are sent to the focused rack.
    This auto-routing only happens if events are not used by the composer's Note Action Map.
  • Clicking Play will start the focused = last clicked composer section:
    If the Live Matrix is focused, clicking Play will start the Live Matrix.
    If the Time Line is focused, clicking Play will start the Time Line.
    Alternatively, Alt+clicking Play will do this:
    If the Live Matrix is playing, then also the Time Line starts playing as well.
    If the Time Line is playing, then also the Live Matrix starts playing as well.
    If both are playing then the focused one will stop.
    If none are playing they both will start together.

Table Of Contents