Difference between revisions of "Using ZynSeq"
|Line 310:||Line 310:|
= Import / Export MIDI Files =
= Import / Export MIDI Files =
== Export ==
== Export ==
Revision as of 09:03, 20 February 2021
ZynSeq - The Zynthian Sequencer
This guide explains how to access and use the Zynthian's step sequencer called, ZynSeq. Before following the guide, add 2 synth engines to layers using MIDI channels 1 & 2 respectively. We will use these to demonstrate ZynSeq. If you use a touchscreen instead of rotary encoders then enable touch widgets using webconf INTERFACE->UI Options.
To access the sequencer, select "Sequencer" from the main menu or use the shortcut: long press LAYER encoder. The first time you access the sequencer you will see a 4 x 4 grid of rectangles organised as 4 columns of colours. This view is called ZynPad and provides a live performance interface to ZynSeq. Each of rectangle represents a pad which may be used to play a sequence. Use of ZynPad is described later but first we need to add some sequences to play.
What is a sequence? A sequence is a collection of tracks which play in unison. By default each sequence has a single track. A sequence is a member of a group (indicated by its prefix A-Z and pad colour). Several sequences may be played simultaneously but those in the same group do not play concurrently.
What is a track? A track is a collection of patterns which may be played and looped. Each track plays out to its own MIDI channel. We will see how sequences and tracks are manipulated in the section Arranger.
What is a pattern? A pattern is a collection of MIDI events, e.g. notes. Each pattern has a duration in steps and may include as many simultaneous (polyphonic) notes as desired on each step. We will see how patterns are manipulated in the section Pattern Editor.
So a pad can trigger a sequence which is a collection of tracks. A tack is a collection of patterns. A pattern is a collection of MIDI events. Let's create...
Menus and Parameters
First we need to understand some user interface elements. ZynSeq includes a context menu that is shown by short press LAYER or touching the top left of the screen. The LAYER or SELECT encoder may be used to highlight entries within this menu and short press LAYER or SELECT will select that entry. Alternatively the touchscreen may be used to select an entry by touching the selection. If the menu extends beyond the bottom of the screen it may be scrolled by highlighting lower entries with the SELECT or LAYER encoder or press and drag with the touchscreen. (Note: When touch and dragging on touchscreen the menu option will be selected when touch is released.) The first entries in context menu are common to all ZynSeq views. Entries below the first divider are context sensitive, i.e. specific to the current view or action being performed.
If a parameter is selected from the context menu its title and value is displayed in the title bar at the top of the screen. This is called the parameter editor. The value may be adjusted with the LAYER or SELECT encoder and asserted by a short press of LAYER or SELECT. Short press BACK to cancel out of the parameter editor. If touchscreen widgets is enabled then buttons appear in the title bar allowing adjustment of the parameter.
By default each pad triggers a sequence containing a single pattern. Bold press SELECT encoder to show the Pattern Editor for the highlighted pad or press and hold the pad on the touchscreen. There is a grid on the right called the Step Grid. On the left is a representation of a piano keyboard, scale or drum map. Each row represents a note and each column in the step grid represents a step in the sequence.
Step sequences are a quantised collection of events, i.e. each event occurs at a discrete time and the available discrete times are equally and evenly distributed across the pattern. This means the difference in time between step 1 and step 2 occurring is the same as the difference in time between step 2 and step 3 occurring.
One of the cells in the step grid has a coloured outline. This is the cursor and identifies which cell is currently highlighted. Rotate the BACK encoder to move the cursor up and down (between notes) and the SELECT encoder to move the cursor left and right (between steps). To add a note, move the cursor to the desired step and note then short press the SELECT encoder. A note may be removed in the same way. Alternatively press the touchscreen on the cell you want to add or remove a note. Press and drag to allow more accurate positioning. As a note is added it is also sounded (MIDI sent to engine). All steps in a pattern are always shown, i.e. there is no horizontal scrolling or zoom. Notes above or below the visible area may be accessed by moving the cursor beyond the view with the BACK encoder. The view scrolls as the cursor reaches the edge. Alternatively use the touchscreen to press on the keyboard and drag up and down to vertically scroll the view. Note that as you touch a key on the keyboard it plays that note briefly. This is a useful tool for auditioning notes or phrases before adding them to the step grid.
To preview a pattern, short press the SNAPSHOT button to start the transport. A coloured bar at the bottom of the view will move left to right to indicate the position of the playhead and any notes entered in the pattern will be sent to the Zynthian's engines. To pause playback, short press SNAPSHOT. To stop and recue to the start of the pattern, bold press SNAPSHOT. If touchscreen widgets are enabled, pressing the touchscreen at the top right corner will display the transport controls. Pressing the right pointing arrow play button will start playback. The play button changes colour to indicate it is playing. Pressing again will pause playback. Pressing the square stop button will stop playback and recue to start of pattern. Pressing top right of screen will hide the transport. Playback speed (Tempo) can be adjusted with the SNAPSHOT encoder or by selecting "Tempo" from the context menu.
The MIDI channel used by the Pattern Editor will be chosen from the sequence / track from which it is launched, e.g. if you selected the first pad (without changing default settings) it should play on MIDI channel 1.
There are vertical white lines indicating the beats. The quantity of beats in the pattern may be adjusted from the context menu as well as the quantity of steps in each beat. This allows the duration and quantisation level of the pattern to be adjusted. Changing the beats in pattern will change the pattern duration. Changing the steps per beat will change the pattern resolution.
Add some notes to form a melody and preview with the play function. Short press BACK will return to ZynPad.
So far we have only added notes with a duration of one step. Within Pattern Editor bold press SELECT to enable adjustment of note parameters. The duration of a note may now be changed with the SELECT encoder. This adjusts the quantity of steps that new notes will span. It also adjusts the duration of the currently selected note in the pattern. Alternatively with a touchscreen press on an existing note and drag horizontally to adjust the duration. The cursor indicates the note duration. Short press BACK to return to normal note input mode.
By default notes are added with a velocity (loudness) value of 100. (The range is 1 - 127.) Within Pattern Editor bold press SELECT to enable adjustment of note parameters. The velocity of a note may now be changed with the BACK encoder. This adjusts the velocity that new notes will have. It also adjusts the velocity of the currently selected note in the pattern. Alternatively with a touchscreen, press on an existing note and drag vertically to adjust the velocity.
The velocity is indicated by a yellow bar in the bottom left of the screen. The velocity of individual notes is indicated by the opacity of the note in the note grid. The brighter the grid cell, the higher the velocity. Short press BACK to return to normal note input mode.
Scales and Drum Maps
Pattern Editor shows a piano keyboard at its left hand edge to assist with note entry. This is commonly called a piano roll referring to the punched paper rolls that were used to play automatic pianos. Selecting Scale from the menu allows this to be changed to show just the notes of particular scales. Scales include:
- Chromatic (piano keyboard)
- Blues pentatonic
Changing the scale from Chromatic will hide notes in the note grid and all keys on the keyboard change to white, i.e. no black keys are shown. Notes are hidden but not removed from the pattern which may result in notes not being visible. If a percussion preset or engine is selected for the current MIDI channel then an appropriate drum map is also available in the list of scales and selected by default. The name of the percussion instrument is shown on each key, e.g. Snare Drum.
Selecting Tonic fro the menu allows changing the key of the scale: C, C#, D, etc.
Adding Notes With External MIDI Controller
It is possible to use a MIDI controller to add notes to a pattern, e.g. MIDI keyboard connected to Zynthian. Select "Input channel" from Pattern Editor context menu to adjust the MIDI channel that ZynSeq listens for input. When the Pattern Editor is shown, any note sent on this channel will add a note to the pattern at the current playhead cursor position with the current note duration and if the pattern is not being played, move the playhead to the next step. To add longer notes (in multiples of the current note duration) press the hold pedal whilst adding notes. It is possible to assign a note that acts as a rest, i.e. will not add a note to the sequence and skip to the next step. Select "Rest note" from pattern editor context menu to select which note will act as a rest. None may be selected by rotating SELECT encoder to the end of the range, i.e. below C-1 or above G9.
It is also possible to play live whist the pattern is playing in loop mode. Short press SNAPSHOT encoder to start loop playback then use MIDI controller to overdub the pattern. The same logic applies so playing a note that already exists will remove it.
Playing a sequence
ZynPad is the performance view. It shows each sequence as a pad. The pad has a colour and its name has a prefix (A-Z) representing its group and a number identifying its sequence number. Each pad triggers a different sequence. By default there are 16 sequences, 1-16.
Each pad has an icon indicating its play mode. The default mode is Loop All. This means the pad will play the whole sequence then wait unit the next sync point / bar before starting again.
Similar to how we navigate the cursor in the Pattern Editor we can move the cursor in ZynPad with the BACK and SELECT encoders. Move the cursor to the top left to highlight pad A1 (it is probably already there) then short press SELECT encoder to start playback of sequence A1. This can also be achieved with a touchscreen by simply tapping pad A1.
Playback of the pattern you created should start to loop. During playback a green right-pointing arrow shows on the pad.
Tempo may be adjusted using the SNAPSHOT encoder or by selecting "Tempo" from the context menu (if touchscreen widgets enabled).
Short press SELECT or tap the pad with the touchscreen to stop the sequence playing.
The playback indication icon changes to red to indicate it is stopping and then disappears to indicate it has stopped. Most play modes will continue to play the sequence until the next sync point. A sync point may be thought of as the start of a bar, indeed their spacing is set using the menu option Beats per bar.
Most play modes will wait until the next sync point before starting. If you start a sequence part way though a bar then it will show an orange starting icon indicating it is waiting to start and will start at the end of this bar. This may also occur if a sequence length results in it stopping mid-bar in which case it may wait in starting state until the next bar. (See section on Play Modes.)
So far we have edited a single pattern in one pad's sequence. Let's add patterns to other pads. By default ZynSeq has 16 pads (sequences) each with a single track with its own pattern. User BACK and SELECT encoders to select pad A2 and bold press SELECT to show its Pattern Editor. Add a new melody to the pattern then short press BACK or touch top left and select the back icon from the topbar to return to ZynPad.
Start pad A1: see its play icon show green and hear its sequence loop.
Start pad A2. Pad A2 shows an orange starting icon but does not start to play yet. A1 pad's icon changes to red and continues to play. The red icon indicates sequence is playing but will soon stop. A2 pad icon changes to green and starts playing as A1 stops. The behaviour occurs because these pads are in the same group, "A" (see below).
Each sequence belongs to a mutually exclusive group. This means that only one sequence within the same group may play concurrently. Sequences from other groups may play simultaneously. The group is indicated by the single letter prefix of the sequence name. There are up to 26 groups, A-Z.
By default sequences are arranged in columns of groups with the first column being in group A, second column in group B, etc. and the last column being in group J. (This is because the default configuration also allocates MIDI channels 1, 2, etc. and 10 for last column which is traditionally used for percussion.) ZynPad tries to keep things simple with each sequence containing a single track and a single pattern. We will see later how this can be changed with Arranger. Following this simple workflow, a sequence's MIDI channel may be set from the menu option MIDI channel. This also sets the sequence's group. There are 16 colours used to indicate groups so that each MIDI channel may have a different colour.
If you start sequence A1 then start sequence B5 you will see that B5 shows orange starting icon then green playing icon when the next sync point is reached whilst A1 continues to play.
This is a powerful performance feature of ZynPad. You can assign any quantity of sequences to any group, providing groups of mutually exclusive (only one can play at a time) sequences. Sequences from different groups can play simultaneously but sequences from the same group will play sequentially.
A Sync point is a location within playback at which sequences will loop and / or group sequential play will change to another sequence. Sync points are synonymous with bars in traditional music notation. See section on time signature.
Remember, sequences are indexed by number, 1, 2, 3, etc. and Groups by letter, A, B, C, etc. Pad labels consist of the group letter and sequence number, e.g. A1.
By default ZynPad shows a 4 x 4 grid of 16 pads. The grid is always square, i.e. has the same quantity of columns as rows. The quantity of pads may be adjusted by selecting "Grid size" from the ZynPad context menu. The maximum quantity of pads is 64 (8 x 8).
Sequences are added or removed when the grid size is selected. Any patterns are not lost but may need to be reselected with Arranger (see later) when the grid size is increased.
When the grid size is changed in ZynPad the sequences are reassigned groups and MIDI channels to create columns of mutually exclusive sequences. If this behaviour is undesired then use Arranger to adjust the grid size.
So far we have used the default mode for sequences which will loop the sequence until requested to stop at which point it will continue to play until the next sync point. There are many modes available which each offer features for different workflows / requirements. To change mode, select Pad mode from the ZynPad's menu. This will allow change of mode of the highlighted sequence. The mode is indicated by an icon.
|Disabled||Sequence is disabled and cannot be played|
|Oneshot||Sequence will play once, i.e. not loop. When stopped sequence will stop immediately (this is the only mode that will stop immediately)|
|Loop||Sequence will loop immediately at end of sequence. When stopped sequence will play until end of loop|
|Oneshot all||Sequence will play once, i.e. not loop. When stopped sequence will continue to play until end of sequence|
|Loop all||Sequence will loop at end of sequence. If sequence ends before sync point it will pause and restart at next sync point (end of bar). When stopped sequence will continue to play until end of sequence|
|Oneshot sync||Sequence will play once, i.e. not loop. When stopped sequence will continue to play until next sync point (end of bar)|
|Loop sync||Sequence will loop at sync point. If sequence is shorter than a bar it will pause until next sync point before restarting. When stopped sequence will continue to play until next sync point (end of bar)|
Loop all is the default mode.
All these modes affect how sequences stop. There are currently no modes that affect how a sequence starts. If JACK transport is not running then the first sequence to be started will start immediately. If any sequences are playing (JACK transport is rolling) then sequences will start at the next sync point.
Tempo is the rate at which the sequencer plays back notes measured in beats per minutes (BPM). By default ZynSeq plays sequences at 120 BPM. Adjust Tempo with the SNAPSHOT encoder. The tempo is briefly displayed in the title bar. There is also a menu option to adjust tempo which may be used on touchscreens. The current tempo is saved and loaded with each snapshot.
ZynSeq allows tempo to be adjusted from 1BPM to 480BPM. Tempo may also be altered by external modules, e.g. SMF player.
Each sequence may have one or more tracks and each track may be assigned to any of the 16 MIDI channels. By default each sequence has a single track. The ZynPad menu allows setting of the MIDI channel of the first track of the highlighted sequence. (This also sets the sequence's group.) If there is a Zynthian layer associated with the MIDI channel then the preset's name is displayed in the topbar as MIDI channel is selected.
See Arranger section for detail of setting MIDI channels for multi-track sequences.
There are many banks of grids. Each bank contains a set of sequences. Different banks may have different quantity of sequences. Sequence 1 in bank 1 is different to sequence 1 in bank 2. Up to 64 banks may be configured. Banks may be selected from ZynPad using the LAYER encoder or by selecting Bank in the menu.
A bank may be considered a view or page of sequences / pads and allows more than 64 sequences to be configured, e.g. 2 pages of 8 x 8 grids provides 128 sequences.
Banks may be cleared and reset to default 4 x 4 grid from the Arranger menu.
If any sequences are playing when changing bank, they continue to play.
Save / Load / Snapshot
Patterns, sequences and banks are saved within the snapshot and restored when a snapshot is loaded. There is also a method of exporting to and importing from standard MIDI file. (See section on import / export.)
It is possible to trigger a sequence from a MIDI controller, e.g. a MIDI keyboard connected to the Zynthian.
To set the channel that ZynSeq listens for triggers, select Trigger channel from the menu.
Each sequence may be triggered by a MIDI note. Select "Trigger note" from the menu to adjust the MIDI note that will trigger the highlighted pad. Note may be selected with the SELECT encoder or by playing a note on an external controller on the MIDI trigger channel. By default triggers are disabled. To disable a sequence from being triggered set its trigger value to None which is below C-1 or above G9, i.e. increase to maximum value.
ZynSeq will send MIDI note on messages to represent the current play status of each sequence with play state represented by MIDI note velocity. This may be used by an external pad controller like Novation's Launchpad, Akai APC, etc. to indicate the status of a sequence. The note number sent is the same as the external trigger configured for a sequence. Tallies are sent on the same MIDI channel as configured to receive triggers. Currently only the following tallies are configured which will work with Akai APC:
It is not currently possible to change this configuration and tallies will always be sent if trigger is configured.
Each pad triggers a sequence which may contain one or more tracks. Each track may contain one or more patterns. By default each sequence contains a single track with a single pattern but it is possible to create more complex arrangements by adding more patterns to tracks and more tracks to sequences. The Arranger is a view that allows the manipulation of sequences used by pads. The Arranger is accessed from the context menu. Bold press SELECT in ZynPad will also open arranger if the sequence is already configured with more than one track or pattern or the first pattern is not at start of sequence.
Arranger shows each track as a row with its patterns shown as black boxes (with their pattern number in white) on a time line. Tracks are grouped within their sequence. This should be familiar to users of Digital Audio Workstations (DAW). The left hand column shows the sequence and track titles. This includes:
- Sequence name, e.g. A1
- Track number, e.g. 1
- Name of the instrument currently assigned to the MIDI channel, e.g. Piano
The background colour of the title matches the group.
The selection cursor may be moved around the grid of patterns by rotating the BACK and SELECT encoders. Information about the currently selected track is shown in the topbar, e.g. Bank 1 A2-1 (3) shows that track 1 in sequence 2 of bank 1 is in group A and sends to MIDI channel 3. Each horizontal division represents a beat. Moving the cursor beyond the edge of the screen will scroll to show more of the bank.
Patterns may be added to or removed from the grid by short pressing the SELECT encoder or by tapping the touchscreen. Press and drag allows more accurate positioning of a pattern.
The pattern to be added is indicated by a number in the bottom left of the display. This may be changed by rotating the LAYER encoder. (Note: This differs from ZynPad where LAYER encoder changes the bank.) Tapping the bottom left number on a touchscreen will allow selection of the pattern if touchscreen widgets are enabled.
Horizontal scrolling will move the cursor one beat unless it meets a pattern in which case it will jump to the next available space in the timeline. If the selected pattern is too long to fit the space then it will continue to skip forward until it finds available space.
The view may be zoomed horizontally and vertically using options in the menu. The zoom level indicates the quantity of rows or columns displayed, i.e. setting vertical zoom to 8 will show 8 rows (tracks) whilst setting horizontal zoom to 64 will show 64 beats.
New tracks may be added to each sequence by highlighting a sequence track then using menu option Add track. This adds an empty track directly below the selected track, inserting between tracks if necessary. Tracks may be removed by highlighting the track then using the menu option Remove track. Tracks may be selected (without adding a pattern) by tapping the track title on a touchscreen or by rotating the BACK encoder.
A track's MIDI channel may be set by highlighting the track then selecting MIDI channel from the menu. The instrument name is also shown during channel selection.
The quantity of sequences in the bank may be adjusted using the Grid size menu option. This allows selection of 1, 4, 9, 16, 25, 36, 49 or 64 sequences but does not change the MIDI channel of any tracks or group of any sequences. This may be undesirable if you use ZynPad as a column based performance tool in which case it may be more appropriate to change grid size from ZynPad menu.
The group, play mode and trigger note of each sequence can be adjusted from the menu.
A sequence may be cleared, resetting to a single track with no patterns using the Clear sequence menu option.
The displayed bank may be changed from the menu and a bank can be cleared, resetting to 4 x 4 grid using the Clear bank menu option.
Zynthian allows the beats per bar to be configured but not the beat type. All beats are assumed to be quarter notes and the default beats per bar is 4, hence a 4/4 time signature. The beats per bar may be adjusted from a menu option and can be set to any value between 1 and 64. The most significant behaviour that beats per bar influences is the sync point. The sync point is the point at which a sequence starts, loops or stops and is synonymous with start of bar hence the beats per bar defines the quantity of beats between sync points which in turn defines the rate at which sequences will loop.
The current value of beats per bar is saved with the snapshot and restored when a snapshot is loaded. The beats per bar may also be varied during sequence playback and will be added to a sequence within the arranger. This functionality is currently disabled.
There is no metronome currently available in ZynSeq but you can create a click pattern in a sequence then start it looping then edit other patterns.
Patterns are identified by their number. There may be a maximum of 999 patterns in each snapshot. Each pattern may be used as many times as required in as many tracks and sequences as required.
A pattern may be cleared, copied or transposed by selecting the corresponding entry it the pattern manager context menu.
Clearing a pattern will remove all notes in the pattern after requesting confirmation.
Copying a pattern will copy all the notes and parameters of a pattern, overwriting the destination pattern after requesting confirmation. Remember that the pattern being overwriten may be used in various sequences.
Transposing a pattern moves all notes up or down a semitone at a time. Transpose is constrained to the MIDI range C-1 to G9. If any note in the pattern would be beyond this range then further transposing is prohibited. Transposing is only available when chromatic scale is used, i.e. drum maps cannot be transposed.
New patterns are created on demand, e.g. if a new sequence is added in ZynPad it will be assigned a single track with a single pattern. The pattern will be the first unused, empty pattern available. This means that even if a pattern is removed from tracks, e.g. because a track or sequence is removed the pattern will remain available to select and reuse.
Only populated patterns are saved to snapshots. This may mean that a pattern that has its Step per beat and Beats in pattern configured but contains no notes will be treated as empty and disgarded.
Import / Export MIDI Files
The MIDI Association defines a specification for storing MIDI events within a file. This is called Standard MIDI Files (SMF) Specification. ZynSeq provides methods to exchange patterns and sequences using SMF.
A pattern may be exported as a standard MIDI file format. The tempo and all the notes within the pattern on its current channel will be exported to a file in Zynthian's capture location which may be accessed via webconf.
Import - not yet implemented
There are some excellent percussion patterns available in MIDI File Format. Zynthian offers the ability to import such files into ZynSeq sequences. Upload a standard MIDI file using webconf Library->Capture. Within Arranger highlight the sequence into which you wish to import the SMF. Select menu option Import SMF which will show a file selector looking at Zynthian's capture location. Select the required file. Each MIDI channel within the SMF will create a track in the sequence. Each track will be populated with notes from the SMF. Program changes will be added to each track. Tempo changes will be added to the sequence's timebase track. New patterns will be created as required, starting at the next available pattern above the highest populated pattern, e.g. if you have already populated patterns 1,5 & 12 then import will start populating patterns from 13, using as many patterns as required by the import. Patterns will have an appropriate quantisation level (steps per beat) to accommodate the the rhythm.
ZynSeq uses JACK timebase for its timing. Transport control and adjustment of tempo may be made by external JACK clients. Those clients may also use the same timebase. This means that ZynSeq can synchronise with other modules within Zynthian, e.g. synth engine LFO, arpeggiators, etc. It also means that other modules may control ZynSeq playback to some degree. ZynSeq acts as the timebase master, i.e. the concept of bars, beats and ticks (fractions of beats) and consequently tempo (BPM) is provided by ZynSeq. There is currently no mechanism to lock to external MIDI clock but a Zynthian MIDI effects layer may be used to create MIDI clock output. There is a plan to improve this support in a future update.
Note that if a module alters the transport, e.g. stops it then ZynSeq may have unexpected behaviour. Check what engines are doing if you experience timing or playback issues.
Each sequence has a timebase track which may have tempo and time signature (beats per bar) events. These will influence the all playback. The ability to manipulate sequence timebase events is not yet implemented.
ZynSeq is a flexible and powerful performance tool which can be used in various ways. This single module provides many workflows that have traditionally been provided by different devices. Here are some workflows that can be facilitated by ZynSeq.
Live looping pads
By default ZynPad is configured to provide columns of grouped sequences. This allows patterns to be looped with each column acting like one instrument, stopping previously playing sequences when they start. The parallel lanes gives simultaneous control over several instruments.
Not all genres or scenarios require looped sequences. You can configure sequences to be oneshot and fire them off as required during performance. This may provide short phrases that are part of a song, e.g. complex arrangements or simply phrases that need to play in parallel. (You only have so many hands!) This may also be used to trigger sequences of sound effect for dramatic performances, e.g. a window smash followed by a scream and the sound of rain.
An old school sequencer or drum machine as well as current DAWs have the concept of a song that plays several tracks simultaneously from start to end. By adding several tracks to a sequence and setting the sequence play mode to Oneshot this workflow can be used. The song may be started by tapping the relevant pad in ZynPad. Several songs can be created, one sequence per song and triggered as required from ZynPad. Songs can be daisy-chained with one song starting when the previous song ends by using the same group for each sequence.
Combined Linear Song and looping pads
The previous workflows may be combined, e.g. by placing the song on a pad that is used to start the linear song then having loops and oneshots on other pads (in other groups) that may be played live alongside the linear song.