project name: | mosaic |
project url: | https://github.com/subvertnormality/mosaic |
author: | byzero |
description: | enabling you to craft complex rhythms and harmonies effortlessly |
discussion url: | https://llllllll.co/t/mosaic/69304 |
tags: | sequencer midi generative grid nb crow keyboard |
Welcome to Mosaic, a powerful rhythm- and harmony-focused sequencer designed to unify control over your entire studio. It combines the advanced features of Elektron sequencers with generative and modular techniques, enabling you to craft complex rhythms and harmonies effortlessly. Whether you’re sketching ideas or composing full tracks, Mosaic offers a deep and unique musical experience. This manual will help you quickly navigate Mosaic and start creating tunes in no time.
Install using the Norns community catalogue or simply run ;install https://github.com/subvertnormality/mosaic
in maiden.
Note: please remove alpha or beta versions of Mosaic if installed, including the data/mosaic
Mosaic requires a Norns and a 128 Grid at a minimum. With these you will be able to create simple songs using n.b. devices, but Mosaic is really designed to unify control of your entire studio over MIDI. All devices with MIDI in are all supported, although those set up in Mosaic using pre-existing or manually created configuration files are optimal. Crow, Just Friends, and Ansible are natively supported using n.b..
Using MIDI input devices, while not essential, enhances the user experience. A MIDI keyboard simplifies melody creation, and a MIDI controller with encoders supporting relative bin offsets can improve the data input process.
For those using an ACL Sinfonion, support is available through a straightforward hardware build. This setup allows synchronization between Mosaic’s quantization and the Sinfonion Eurorack module.
Mosaic includes a range of stock midi devices that you can integrate into your setup. Elektron Digitone, Digitakt 2, Syntakt, and the Nord Drum 2 are first class citizens with fully tailored mappings.
First, they need to be configured to appear in the device selector. Here’s how to set this up using maiden:
code > mosaic > lib > config
. Here, you will find the stock device configuration files.data > mosaic
. In this location, create a new folder named config
.code > mosaic > lib > config
into the data > mosaic > config
folder you just created.This allows you to easily access and use only your preferred devices within Mosaic.
Once you’ve copied the stock device configuration files into the data > mosaic > config
folder, you can also personalize these configurations to better suit your setup. This is particularly useful for setting common defaults like the MIDI output device.
You can customize Mosaic to perfectly align with your studio setup by configuring it to work seamlessly with your specific devices. If your device is not included in the standard configuration, create a .json file named after your device in the dust > mosaic > config
folder. Populate this file using a config file customised to match your device’s MIDI specifications. You can create, load and edit midi device config files using the Mosaic Config Creator.
Mosaic can also use internal Norns sound sources and manage devices like Crow, Just Friends, and Ansible via i2c by installing n.b. mods. These mods will appear in Mosaic’s device list once installed and activated in the Norns settings menu. Ensure the n.b. mod is on the allow list to use with Mosaic. See Norns sound sources with n.b. for more information.
You can input notes, velocity, and chords using a MIDI keyboard. You can do this live, using live record, or by holding down a step and pressing the keys on your keyboard. When setting on a per step basis, the length of these inputs requires manual selection. To do this, ensure you have your desired channel selected on Mosaic. Then, while holding the desired step, press the corresponding key on your keyboard. If you are on the mask page of your Norns, the values you input will display as locks.
By default, the keyboard maps the steps to the currently selected scale on the white keys, with the root note of your selected scale starting from C. You can adjust this mapping in the settings of Mosaic to better suit your musical preferences or project requirements.
Mosaic provides comprehensive support for MIDI mapping of channel controls through the Norns MIDI Map function. This allows you to assign MIDI controls to various parameters, enabling real-time control via compatible MIDI hardware. Your MIDI device must support relative (binary offset).
To map your MIDI device to a channel control, navigate to the parameters menu on your norns device and scroll down to the “Mosaic Midi Mapping” section. Select your desired control type and enter the parameters menu on your Norns by holding K1 and pressing K3 (enter key). Now select your desired parameter.
Map “selected channel parameters” when you want to control a specific parameter of the currently selected channel. Map “channel parameters” when you want to control a parameter of a specific channel regardless of which channel is selected.
Configure your parameter map as follows:
Input (In) range: 1 to 2 Output (Out) range: -1.0 to 1.0 Accumulation (Accum): Enabled (set to “Yes”)
Trig params, masks and channel memory are all able to be mapped to your MIDI device.
To start the sequencer, press the lowest left hand button on the grid. To stop the sequencer, press the button again.
Start and stop functionality demo
To enable record mode, press the second button from the left on the grid.
When record mode is active, any notes played on a MIDI keyboard will be captured as note masks on the currently selected channel. This includes note lengths and chords. All recordings are quantized to align with the current step.
Changes to trig parameters are also recorded on the active channel. Recording begins the first time a trig parameter is modified. During recording, all parameter values are saved as trig locks, overwriting existing locks until the end of the current song pattern. Recording resumes automatically when a trig parameter is adjusted again using the encoder.
By default, trig locks are recorded only on active steps. However, if the Trigless Param setting is enabled, parameter values will be recorded on every step.
The four buttons starting from the third column on the lowest row serve as the global menu buttons. From left to right, these buttons allow access to the Channel Editor and Scale Editor:
As well as the Pattern Editors and Song Editor:
The pattern editor button cycles through three pages, accessible by pressing the button repeatedly. These are the Pattern Trig Editor, the Pattern Note Editor, and the Pattern Velocity Editor.
Further configuration happens on Norns. Each Mosaic grid page has a group of pages on the Norns screen. Settings in these pages are typically set once and require minimal adjustments. Navigation through these pages is accomplished by moving left and right with the E1 encoder, the selected setting can be chosen using the E2 encoder, and the value of the settings can be adjusted by moving up and down with the E3 encoder. Some settings require a confirmation before they are set. Press the K3 button to apply any selected changes. If you press K2 or navigate away from the page without applying, the change will be cancelled.
In general, the K3 button is used to confirm changes, K2 is used to cancel, and K1 is held to access shift functions.
For a detailed reference on the layout of your Norns device, consult the official Norns documentation.
Most Mosaic functions are described by tooltips that appear at the bottom of the Norns screen when activated. If you’re not sure what a button does, try pressing it and watching out for the tooltip.
Should your MIDI output devices become unresponsive, you can clear all MIDI-on events by holding down the navigation button of a non-selected page. This action will send a stop signal to all devices, on all channels, for all notes.
A quick reference of the grid buttons and common commands and shortcuts can be found in the Mosaic Cheat Sheet.
This section provides an overview of Mosaic’s functionality and basic operations, outlining a typical workflow for song creation. Here, we present a broad perspective without going into the operational specifics. For more detailed information on navigating through the user interface, understanding precise functionalities, exploring options, and more, please refer to the Dig Deeper section. This should allow you to grasp the essential processes first, setting a solid foundation for more advanced exploration later.
The initial stage of song creation with Mosaic involves setting up a few basic voices. These preliminary sound designs may evolve, but it’s useful to have a basic foundation for developing the rhythmic, harmonic, and melodic aspects of your track.
Start by selecting the device for each element of your composition, whether it be an internal Norns player, an external drum machine or synthesizer, or components of a modular patch. To do this, assign each device to a Mosaic channel as detailed in the device section. Organizing different instruments can be helpful; for instance, group drums on channels 1-6, harmonic and textural elements on channels 7-10, melodic elements on channels 11-14, and reserve channels 15 and 16 for modulation. Adapt these assignments to suit your specific musical style and needs.
With your devices assigned, you’re ready to begin the rhythm and harmony design process.
The rhythm of your track is crafted using the pattern editor, accessible by pressing the third button in the global menu cluster located at the bottom left of your grid. A pattern in Mosaic is defined as a sequence composed of 64 steps with trigs, notes, velocities, and duration data. Patterns are the building blocks of your rhythm section.
The pattern editor provides multiple tools to create these building blocks. You can input trigs manually in an XOX style, or choose from predefined banks featuring bass, snare, and hi-hat patterns. For more complex needs, explore using Euclidean patterns or patterns from Noise Engineering’s Numeric Repetitor. To add unique rhythmic variations, apply a tresillo modifier, which introduces a 3-3-2 repeating pattern. These rhythm types can be blended by selecting and “painting” them onto the grid. It’s possible to paint more than one pattern at a time, and then edit further to taste XOX style. To learn more about this process, refer to the Adding Trigs section.
After establishing a pattern of trigs, assign relative notes and velocity data. These patterns will later be merged and remixed to form your rhythm and harmony sections.
Mosaic’s harmony tools enable you to compose your song’s chordal progressions. These progressions can dynamically modulate your patterns, allowing for the creation of complex harmonic sequences with minimal music theory knowledge.
Harmonic progressions can be applied globally — modulating all notes across all channels to the same key, degree, and scale rotation — or on a per-channel basis, affecting only the notes within that channel. This decoupling of patterns and notes from the active scale enables dynamic and experimental tonal modulations. For example, setting your global scale to change in a polyrhythmic pattern relative to your channel’s note data can create captivating musical textures.
Each project supports 16 scale slots. Each slot includes a root note, a scale type (e.g., Dorian, Major), a degree, transposition, and a scale rotation. The Scale Editor is where you craft the scales that will form your chord progressions, and you can sequence these using Scale Locks either globally from the scale editor, or per channel using the channel editor.
At this point you will have a set of sound sources attached to a number of channels, a set of patterns with relative notes, trigs, velocities, and lengths, and a set of scales that work well together - possibly assigned as either a global scale or a set of trig locks on the global scale editor. Now it’s time to compose your first sequence. The pattern tools offer the ability to craft intricate rhythmic and harmonic sections. However, the true heart of Mosaic is the Channel Editor. The channel editor is used to lay out your harmonic and rhythm sections by adding patterns to channels.
When assigning multiple patterns to a single channel, you might notice that overlapping steps in different patterns deactivate. This occurs because the default “skip” merge mode is active. Merge Modes control the behavior of these overlaps, allowing patterns to be combined in different combinations across multiple channels whilst interacting in harmonically meaningful ways. Experiment with different merge modes to explore various musical interactions.
The Channel Editor doesn’t merely allow you to add, merge, and apply scales to patterns; it enables you to enhance them with melodies and other elements to further enrich your music. In fact, you could compose entire songs using just the channel editor if you wanted to, thanks to Masks. Masks provide a direct method to input triggers, notes, velocities, and chords right into the channel editor grid, giving you precise control over your musical creations. You can overwrite pattern values or create entirely new steps.
Use the live recording mode to play your melodies directly over your rhythm and harmony patterns. Then record in automation directly by altering trig params whilst recording.
Even a song crafted with compelling chord progressions, engaging rhythms, and striking melodies can sometimes sound flat when produced on electronic devices. The secret to invigorating such tracks lies in the addition of dynamics, movement, and interest, which is often achieved through thoughtful and abundant modulation. Mosaic provides robust tools for modulation, including Trig Parameters and Trig Locks. “Trig lock” is a term borrowed from Elektron, referring to the ability to fix a parameter to a specific value at a certain step in the sequence. This feature allows you to control any MIDI device parameter, modulation parameter, the octave of a note, and even the scale to which the note is quantized, at each step, offering precise manipulation over the quality and dynamics of your music.
At this point, your sequence is likely “full to the brim,” containing all the elements of your song in its most complex form. For those familiar with Elektron devices, this stage can feel like a precarious juncture, where it’s tempting to fall into a cycle of making minor adjustments to the same pattern repeatedly. Mosaic offers a solution with its Song Editor, designed to help you break free from this procrastination loop.
To access the song editor, press the last key in the global menu’s Grid button cluster. You’ll be greeted by a grid where the first button is dimly lit, indicating the sequence you are currently working on. The song editor allows you to take this sequence, copy it, and creatively manipulate the copy: you can mute channels, modify scale locks, alter pattern combinations and merge modes, adjust masks, and more. You can then chain multiple sequences together. This flexibility enables you to develop your composition from the base sequence upwards. As you become accustomed to this workflow, you’ll find that you can construct an entire song from a single sequence, streamlining your creative process.
Now that you have a grasp of the basic workflow, we’ll dig into the more advanced functionalities of Mosaic. This section will explore the deeper capabilities and features that allow for sophisticated manipulation and fine-tuning of your music, enabling you to fully harness the potential of this powerful sequencer.
Patterns serve as the foundational elements of your harmony and rhythm sections. You start by creating a set of patterns using the pattern editor tools. Once established, these patterns can be merged and remixed within the channel editor to construct and enhance your song. This approach allows you to experiment with different combinations and sequences, giving you the flexibility to refine and evolve your musical ideas into a cohesive composition.
Access the pattern editor by pressing the third key in the global menu cluster on your Grid.
Trigs are added in the pattern editor. Using the top row, pick one of the 16 available patterns.
To set your rhythm, simply tap in steps using the sequencer. Bright steps symbolize a trig. To define its length, press and hold a trig, then choose its ending step. Steps with a subtle glow show the length. In a single pattern, one trig’s duration ends upon meeting another.
Craft unique rhythms using a variety of built-in algorithms. The algorithm is selected using the four algorithm select buttons. From left to right:
The grid is intuitive and adapts to your choices. Each algorithm brings its set of options, and pressing on a grid key typically displays its function on the Norns screen.
The left side faders adjust algorithm values. Brightly lit end buttons refine values, with the furthest left-hand button incrementing downwards and the furthest right-hand button incrementing upwards. The dimmer ones in the middle of the faders adjust values broadly.
The rightmost fader typically toggles between different banks in the selected algorithm.
To see your algorithm’s impact, hit the prime button. This primes the currently selected algorithm’s pattern. Potential new steps are shown as flashing bright steps on the sequencer. While these steps flash, they aren’t painted yet. Any step that would be painted over an existing active step will blink dimly. By painting the new pattern, you’ll deactivate the faintly blinking steps. This approach lets you craft intricate sequences, grounded in rhythmic fundamentals, that don’t get too busy. You can modify algorithm parameters while the pattern is primed.
If you haven’t painted the new pattern, the prime button continues to blink. Pressing it again paints your edits. Pressing the prime button again without tweaking the algorithm or its parameters effectively acts as an undo for the last action.
Opt out of a prepared pattern by using the cancel button:
While previewing a new pattern, use the move controls to shift its position. The first button shifts it left, the third to the right, and the center button resets it. Remember to paint your changes.
On the Norns screen, you can see the selected channel’s grid state on page 1. This is the merged version of the channel and is a useful context for editing your pattern. Use E2 to select channels. On page 2 you can select trig editor options. Currently, this allows you to edit the tresillo multiplier in use. Experiment with different values to get wildly different results with the tresillo algorithm.
In Mosaic, pattern notes aren’t strictly bound to a single scale. Instead, they are valued by their position within the currently active scale, measured by distance from the root. Take C major for instance: C is your starting point. One step up brings you to D, and one step down lands on B. If you were to change the applied scale to E minor, the root of your pattern would now be E, one step up would output F sharp, one down would be D.
You’ve seen in the Harmony Design section that it’s possible to sequence scale and degree changes, and this affects the notes your patterns will play. When adding notes to patterns, consider that they represent the harmony of your song and map to what traditionally would be called the rhythm section. It is possible to create melodies using patterns, but it is difficult to do so in a deliberate way as your scale progressions will alter the tonality of your pattern. We’ll learn about the recommended way to deliberate Melodies later.
Select the note editor by pressing the third key in the global menu button cluster on the grid again when already in thr pattern trigger editor.
This space displays 16 steps at a glance. Active trigs appear as soft-glowing vertical bars while the root note lies in a subtle horizontal line. The notes you’ve actively chosen glow brightly. To pick a note for any of the 16 steps, just press. Whilst holding shift (K1), any entered note is automatically duplicated across all 4 step screens.
Remember, each note you select links back to the root of the scale you’re working within. The scale is applied to the channel, not the pattern. You must start to think about your patterns as being disconnected from each channel. This is why we say Mosaic is an intentioned generative sequencer. Expect happy accidents. The channel grid viewer on the Norns screen can help you here.
Switch between the four sets of 16 steps using the dedicated buttons.
Aim for higher or lower pitches with the octave select buttons, expanding your melodic range. A single press of the end buttons in this trio steps up and down by one step. Long press these to quickly navigate to the pages at the extremes. A single press of the middle button gets you back to the page with the root note on the bottom row.
Hint: Even if a step lacks a trig, don’t hesitate to assign a note. This data might come in handy with different merge modes in play.
The gentle flicker on the top row indicates the currently chosen pattern. If you wish to explore a different pattern, press and hold or shift press (holding K1) on the top row.
On the Norns screen, you’ll find the channel grid visualizer. Use E2 to select the current channel.
Now let’s look at the velocity editor, which functions similarly to the note page. Access it by pressing the third button in the global menu cluster again when already in the pattern note editor.
The velocity editor spans two vertical pages: the first displays velocities from 127 down to 67, while the second displays values between 58 and 0. Adjust these to fine-tune the dynamics of your sequence. A single press of the two velocity value page buttons steps by a single value. Long press these buttons to skip to the extreme values.
On the Norns screen, you can see the channel grid visualizer. Use E2 to select the current channel.
Pattern editor velocity page demo
Select the channel editor page by pressing the far left global menu button, and select one of the 16 available channels using the channel select row at the top of Mosaic’s Grid UI.
For Mosaic to do anything, you must have a device assigned to a channel. Devices represent a hardware device in your studio, perhaps a software device on your computer, or a software device in Norns itself.
In Mosaic, a device can be either an internal Norns sound engine powered by n.b., or a representation of a MIDI device within your workspace. Devices are assigned per scene and maintain their settings consistently across all song sequences. To utilise MIDI sound sources, you must have a MIDI output device configured in Norns.
If your device has an associated configuration file, such as those available for Elektron -takt devices, the device’s name will be displayed, allowing you to select parameters directly without needing to know the MIDI CC numbers. If no such configuration exists, you can still use the CC device, but you will need to manually look up and input CC numbers.
n.b. mods give Mosaic the ability to sequence internal sound sources and device connected via Crow. Supported mods include:
n.b. devices are picked up automatically. Simply install the desired mod, and pick from the device picker menu. Be careful not to overwhelm your norns by adding too many internal sound engines to channels.
MIDI devices can be configured to load a stored patch through the Norns’ params menu. For devices that are configured, all CC parameters are accessible for editing. Setting a MIDI parameter to a value of -1 ensures that the current setting on the device remains unchanged. Any other value entered will send that MIDI value directly to your MIDI device. When you load a Mosaic script or press play, these stored MIDI param values are transmitted to your MIDI device, effectively loading a patch. These settings will remain consistent across different song patterns, allowing you to preserve all your sound’s patch data within your Mosaic patch. This feature is especially useful for devices that have limited MIDI parameters or interfaces that are less user-friendly.
The core of your rhythm and harmony sections are formed by adding patterns to channels. To do this, first select a channel using the channel buttons. A single channel can accommodate multiple patterns, and likewise, a single pattern can be assigned to multiple channels. To assign patterns, use the pattern select row, located second from the top on Mosaic’s Grid UI.
Applying patterns to channels demo
Masks in Mosaic allow you to precisely control trig values, notes, velocities, lengths, and chords for specific steps within the channel page’s sequencer. Ideal for crafting intentional melodies, masks can superimpose these elements onto your existing harmonic and rhythmic foundation. You can apply masks to override pattern values either individually using step locks or all at once by setting the global value — this process named “masking.”
With masking, you have the flexibility to modify individual attributes of a pattern. For instance, you could increase the velocity of a note without changing other settings, add additional chord tones, or completely silence a note. Masks also enable you to assign values to steps that are currently void of any pattern influence. By default, notes added this way will align with the selected musical scale. However, they will not conform to specific scale degrees or rotations. If you wish to incorporate accidentals or embrace a more dissonant sound, this default behavior can be disabled in the Mosaic settings.
You can quickly add trig masks to your sequence by shift pressing (hold K1) the desired step on the sequencer on the channel edit page. Remember to asign a note mask, velocity mask and length mask to hear your desired note! You can also quickly remove notes this way.
To add a mask to your sequence, start by accessing the mask page on your Norns device. Once there, press and hold the step you wish to modify, then input the desired value as a trig lock. Alternatively, you can hold the step while pressing a corresponding key on your MIDI keyboard to set the value. This method allows you to easily and intuitively assign specific musical attributes to any step in your sequence.
You can apply masks to all steps in a channel by setting the mask value without holding down a step. It’s possible, for example, to add a chord note to every trigger, or set a fixed velocity for every trigger, or even turn on or off every trigger. The default mask value will apply to all steps that don’t have a specific mask lock set.
Chords can be seamlessly integrated into your sequence using masks. You can add up to four additional voices to the root note, provided that your selected device supports polyphony. To do this, make sure you are on the masks page of your Norns. Then, hold the desired step and select each note you want to include in the chord.
Additionally, take advantage of the chord trig params to enhance your musical expression. Experiment with the “chord strum” and “chord velocity modifier” trig parameters to vary the playback dynamics and timing of each chord component. These tools allow you to create more nuanced and dynamic chord progressions, adding depth to your compositions.
To remove a mask from a step, navigate to the mask page in the channel editor with your desired channel selected, hold down the step with the mask-to-be-removed, and press K2. To remove all masks on a channel, hold shift (K1) and press K2.
To determine how your patterns interact and meld within the composition, you’ll need to use the merge mode selector. This feature allows for nuanced control over how overlapping steps on patterns in the same channel behave, impacting trigs, notes, velocity, and length.
These modes define how trigs are applied when there are overlapping steps across selected patterns:
These modes determine how note values are handled when steps overlap:
By default, notes will snap to the pentatonic version of the currently active scale to assist with avoiding unpleasant harmonic interactions. This can be disabled in Mosaic’s settings.
These settings affect how velocity values are calculated for overlapping steps:
These modes dictate how the duration of notes is calculated for overlapping steps:
Length merge modes are set by holding shift (K1) and pressing the velocity merge mode button.
On the Norns first page in the channel mode you can see the last played notes on the currently selected channel.
You can easily adjust the tempo of your entire composition directly from the song editor page on your Norns screen. Each sequence can have its own tempo, allowing for varied pacing throughout your composition. Furthermore, you can manage clock division and multiplication for individual channels via the channel editor page in the Norns menu. This feature enables each channel to operate on independent timings, which is perfect for creating complex polyrhythms and other intricate rhythmic patterns.
Additionally, adding swing to each channel allows you to shift notes off the grid, giving your music a more human, less mechanically precise feel. This can be particularly effective in genres like jazz or funk, where a looser, more organic rhythm is often desirable. There are two modes to choose from: swing, which moves notes closer or further apart depending on the value which ranges from -50 to 50. Shuffle is based on 21echoes’ excellent Cyrene and uses more complex patterns and can be set to a “feel” and a “basis”. Each channel can have an independent setting, giving endless possibilities.
Note: If a channel’s swing/shuffle settings are not set (“X”), they will take the global setting which is set on the song editor page global settings page. Clock, swing and shuffle settings apply when the sequencer resets if the sequencer is currently playing.
Clocks, swings and shuffle demo
Mosaic’s memory retains all masks and trig lock actions, including those recorded using the record function. You can navigate this memory using Norns’ encoder.
To access Mosaic’s memory, open the channel editor and navigate to the Memory page on the Norns screen. On this page, each remembered action is represented as an icon, with the most recent action displayed on the right.
To jump to the latest action and erase all subsequent memory, hold shift (K1) and press K3. To jump to the first action and erase all memory recorded after it, hold K1 and press K2.
Channels in your sequencer can be customized to range from 1 to 64 steps in length, and each channel can be adjusted independently, including the global scale pattern. This feature allows for intricate layering and timing variations within your compositions.
To adjust the length of a channel, you need to specify the start and end points. Hold down the button corresponding to the start step in the channel editor. While holding it, press the button for the desired end step. The active range of the channel will be indicated by buttons that appear slightly brighter than the others.
The behavior of the sequencer when handling patterns of different lengths can also be tailored to your needs. Navigate to the Norns param pages where you can find various options that determine how the sequencer manages channels with differing lengths.
To mute a channel on your sequencer, press and hold the select button for the desired channel for one second. You can also shift press (hold K1) the desired channel to mute it immediately. The button will dim to indicate that the channel has been muted. This function allows for muting on a per-sequence basis, enabling you to selectively silence different channels at various stages of your composition. This feature is particularly useful for creating dynamic shifts and variations in your overall song structure.
Most devices in Mosaic feature a set of trig params that alters either the quality of the sound or the trig in some way. Trig params are unique to a song pattern, allowing drastic transitions when moving from one section to another. Each channel can have up to 10 trig params assigned, and each trig param can be trig locked independently. Trig locking is a powerful sequencer device seen on Elektron synthesizers. Each step can be assigned a unique param value, allowing for endless sound variations.
In the second user interface page of the channel editor on the Norns screen, you will encounter a variety of parameters. Here’s how to navigate and manipulate these settings:
These controls offer flexibility and precision in shaping the behavior of each sequence, ensuring that your musical creativity can be fully realized through the Norns system.
All device types have a set of standard trig params that affect the sequencer rather than the quality of the sound.
This trig lock can be used to ensure trigs play only with a certain probability. When set to 100, the trig will always play. When set to 0, the trig will never play. At 50, the trig will play half the time. You can set this globally and per step.
Use this trig param to fix your channel to any MIDI note. The value represents a MIDI note number. The note is not quantized. This is useful if you have a drum pattern and you don’t want note data to affect the drum sound you’re playing on a drum machine. This will override any quantized fixed note values or random note values.
You can use this trig param to manually select a note in the currently selected scale at any step. The value represents note number, where 0 is the root and higher numbers represent notes in the quantized scale. This overrides the note data coming in from the patterns. This will override random note values.
This trig param introduces an element of random to your selected notes. A value of 0 will leave the note unchanged. A value of 1 will randomly give your existing note or the note one higher in the scale. A value of 2 will randomly give your existing note, the note one higher in your selected scale, or the note one lower. A value of 3 will randomly select notes -1, 0, 1 or 2. A value of 4 will randomly select notes -2, -1, 0, 1 or 2. And so on. Use trig locks to really spice things up. These can be combined with random twos note trig param. By default, random notes are quantized to the pentatonic version of the currently selected scale to reduce the chance of dissonant harmonic interactions. This can be disabled in Mosaic’s param settings.
Similar to random note, this trig param introduces an element of random to your selected notes. The difference here is that twos note restricts values to those divisible by two. A value of 0 will leave the note unchanged. A value of 1 will randomly give your existing note or the note two higher in the scale. A value of 2 will randomly give your existing note, the note two higher in your selected scale, or the note two lower. A value of 3 will randomly select notes -2, 0, 2 or 4. A value of 4 will randomly select notes -4, -2, 0, 2 or 4. And so on. Use trig locks to really spice things up. These can be combined with random note trig params. Again, random notes are quantized to the pentatonic version of the currently selected scale to reduce the chance of dissonant harmonic interactions. This can be disabled in Mosaic’s param settings.
The Chord Strum param dynamically spaces selected chord masks using the selected step division, ensuring they align rhythmically with the channel’s settings. Notes are quantized to the current scale, adjusting in real-time if the scale changes mid-strum, guaranteeing each note stays harmonious and in tune, regardless of strum duration. Each chord note is played once.
The Chord Arp param is similar to Chord Strum, but chord masks are looped at the current step division for the length of the current step. Notes are quantized to the current scale. Empty chord masks are treated as rests, allowing for rhymic patterns. Arpeggios also honour the Chord Velocity and Chord Shape modifiers. The Chord Arpeggio param overrules the chord strum param. Chord arpeggios can also be used as ratchets if no chord masks are set.
The Chord Acceleration param is a modifier for the Chord Strum and Chord Arpeggio params, to be used alongside the Chord Spread param, and it doesn’t function on it’s own. When set, the chord spread alters in the direction of the acceleration over time. With a positive value of acceleration, the spread value will increase by multiples of the acceleration value for each note of the chord or arp. With a negative value, the spread value will decrease by multiples of the acceleration value. With this, you can create flams and bouncing ball type effects.
The Chord Spread param is a modifier for the Chord Strum and Chord Arpeggio params. It alters the spacing between notes in these functions by the value of the param.
The Chord Velocity Modifier incrementally adjusts the velocity of successive notes in a chord, starting from the chord’s root note. This adjustment can either increase or decrease the velocity, thereby creating a “swell” effect for rising intensity or a “fade” effect for a diminishing feel.
The Chord Shape Modifiers alters the order of the chord masks that are played using the Chord Strum and Chord Arpeggio params.
Access the scale editor by pressing the second global menu button.
When in the scale editor, a short press of the scale buttons selects one of the 16 scales; the currently selected scale is brightly lit on the grid. All patterns now default to this scale unless overridden by a global scale trig lock or channel scale trig lock. Use the Norns interface to adjust the root, scale, degree, and rotation for the selected scale.
A long or shift press (hold K1) on a scale button selects a scale for editing without applying it to the currently playing pattern, indicated by a dimly lit scale button. All patterns now default to this scale unless overridden by a global scale trig lock or channel scale trig lock.
Scale locks can be set to apply a scale globally or to a single channel, activating at a designated step and persisting until the end of the pattern. To set a scale lock, hold a step and press the desired scale slot button. On the scale page, this applies globally to all channels without an active channel scale trig lock; on a channel’s page, it applies as a channel scale trig lock, affecting only that channel. Channel-specific scale locks override global scales and locks.
You can also adjust the rate of the global scale track and set its length independently of other channels, enabling chord progressions that extend beyond a single pattern. This feature offers substantial flexibility for crafting intricate chord progressions and varying patterns.
As well as setting a transposition value per scale, you can transpose your entire Song Sequence using the global quantizer transposition fader, either globally or by step using transposition locks. Global and trig transposition applies on top of the currently selected scale’s transposition value.
The Song Editor features a grid layout consisting of 90 slots. Each slot represents a unique opportunity to blend patterns, channels, rhythms, scales, and other elements into your compositions, making each Song Sequence a distinct musical creation.
When “song mode” is activated, the sequencer automatically progresses to the next slot after a pattern has played its designated number of repetitions. If it encounters an empty slot, it loops back to the first filled slot within that sequence, facilitating smooth transitions between unique pattern groups. If you wish to change slots during playback, the sequencer will queue your command and execute it after the current sequence completes.
The song sequence’s length can be adjusted using the fader located at the lower left of the song editor page.
Page 1: Here, you can set the number of repetitions for each Song Sequence. This setting dictates how sequences transition in song mode. When song mode is off, you manually control slot activation, allowing you to dictate the flow of your song. Page 2: Set the tempo to match the mood you want, from a soothing lullaby to a fast-paced track.
Trig param values, masks, and various grid functions can be fixed to specific steps on both the channel and global scale pages of Mosaic. When a value is locked to a step, it applies for the duration of that step. This includes trig params, scales, and octave settings on the channel page, as well as global scale and transpose settings on the global scale page. Locks are set on the channel edit page. Trig locks enhance your control over the sequencing process, allowing for precise adjustments and modifications at any step of your sequence.
Device parameters can be locked on a per-step basis. To set a param trig lock:
To clear parameter trig locks from a specific step:
To clear all parameter trig locks from a channel:
To enable parameter slides for a trig parameter, select the desired parameter and press K3. This will activate parameter slides for every trig lock of this type on the channel. While enabled, locks will smoothly transition between each other. Note that transitions do not transition across song patterns but can wrap within the same pattern if the Param Slide Wrap setting is enabled. Use this sparingly as it is resource intensive
To lock a parameter slide to a specific step:
This locks the parameter slide to the selected step, causing it to transition smoothly to the next lock. All other locks remain unaffected.
Masks can also be locked on a per-step basis. To set a mask trig lock:
To clear mask locks from a specific step:
To clear all mask trig locks from a channel:
Scales can be set on a per-step basis. They can be set globally across all channels on the Scale Editor, or per channel oin the Channel Editor. Scale locks on set on steps in the Channel Editor take prescedence over global scale locks. Scales persist until the end of the pattern unless another scale lock is encountered. To set a scale lock:
To clear a grid trig lock:
The transposition of your song can be set on a per-step basis from the scale page accessed in the channel editor. Transposition locks are applies on top of scale transposition values.
To set a transposition lock:
To clear a transposition lock:
A step’s current octave can be altered using trig locks. To lock a step’s octave:
To clear an octave trig lock:
You can save and load your creations using the param menu. When you choose to save, you’ll be prompted to enter a name for your creation. Remember to use a descriptive name so you can easily find and manage your projects.
The sequencer features an autosave function when it is not actively playing. If left idle, it will automatically save your work under the name “autosave” after 60 seconds. When you start Mosaic again, it automatically loads this most recent autosave.
To ensure the longevity of your work, it’s important to save your creations into named slots. This prevents them from being overwritten by the autosave feature, allowing you to keep your songs indefinitely.
Various aspects of Mosaic can be configured from the param section on your Norns, under the Mosaic section. This flexibility allows you to tailor the sequencer’s behavior to match your creative needs.
When enabled, the play/stop button will only stop with a long press or when shift (K1) is held. This feature is intended to prevent accidental stops of the sequencer, especially during live performances.
“Song mode” is on by default. When enabled, the song editor will progress through sequences as dictated by the options set on the song editor page. When off, song sequences will only progress with manual intervention.
The “Reset at Song Sequence Change” option, which is turned on by default, ensures that the sequencer resets all channels when transitioning from one song editor pattern to the next. This helps maintain rhythmic consistency but may limit more complex polyrhythms. If you prefer continuously evolving polyrhythms, especially when dealing with patterns of different lengths, you can turn this setting off.
“Reset at Pattern Repeat” is set to off by default. When enabled, it resets all channels at the end of a song sequence when repeating the same song editor pattern. This ensures all channels with a custom length will reset back to that channel’s starting step at every start of the pattern. Disabling this option allows for evolving polyrhythms.
By default, “Param Slides Wrap” is turned off. When enabled, and the current song pattern is set to repeat, trig locks will smoothly transition beyond step 64, wrapping back to the next trig lock earlier in the sequence.
“Elektron program changes” defaults off. By enabling this setting, your Elektron devices will automatically adjust their patterns to align with the corresponding song pattern in Mosaic. For instance, selecting song pattern one on Mosaic will trigger pattern one on your Elektron device, ensuring that both systems are perfectly in sync. This feature allows for a unified performance across your equipment, with each song pattern change on Mosaic mirrored by your Elektron devices.
The “Elektron program change channel” setting determines which MIDI channel to send program change messages to. The default is 10 - same as on most Elektron devices.
“Trigless locks” is enabled by default, meaning locks on steps with no active trig are still honored.
“Quantize note masks” is also on by default. With this setting enabled, note masks snap to the currently selected scale, but are not altered by scale degree or rotation adjustments.
The “Scales lock until ptn end” option, when enabled, ensures scale locks persist until the end of the channel’s length. If disabled, scale locks continue only until the next trig.
“Lock all to pent.” is off by default. Enabling this option forces all notes to adhere to the pentatonic version of the selected scale, useful for creating highly generative compositions.
“Lock random to pent.” is on by default. It ensures that notes altered by random trig locks adhere to the pentatonic version of the selected scale, making the random notes harmonically more pleasant.
Similarly, “Lock merged to pent.” is on by default and ensures notes modified by merge modes stick to the pentatonic version of the currently selected scale.
“Map scale to white keys” is off by default. When enabled, the selected scale is mapped to the white keys of a MIDI keyboard, starting at the C key. The mapping will automatically change when the currently selected scale changes.
“Honor scale rotations” is off by default. Enabling this setting will allow the currently selected scale’s rotation setting to affect the MIDI keyboard mapping.
“Honor scale degree” is off by default. Enabling this setting means the current scale’s degree option will affect the MIDI keyboard mapping.
You can sync up your Eurorack Sinfonion module to Mosaic using a DIY device called norns2sinfonion.
Mosaic works with matrix mod and toolkit. You can add LFOs and other rhythmic modulators to any device parameter.
Mosaic gives you a lot of control, but it can also be resource intensive. Pushing the sequencer to its limits can cause slow down and lead to an instable external clock. Performance should be fine under normal usage, but more enhancements are planned for future releases. Here are some tips for managing performance:
During testing of v1.1.1, we discovered that external sync became unreliable under the following conditions: 1 n.b. device in use (doubledecker), trigless parameters were in use at 110 BPM, with most steps locked for all 10 trig parameters across the four channels, with 40 of those parameters utilising global param sliding. Different combinations of these conditions may yield different results.
Make sure that the tests are passing before you open a PR.
./test.sh
Do not run the tests on your Norns device as you’ll end up pulling in the Norns repository onto your device and it’ll cause a conflict. If you do this by accident, simply delete /code/mosaic/lib/tests/test_artefacts
to get your Norns back up and running.
Mosaic has a unit testing framework that allows developers to develop and test their scripts away from their Norns hardware. The test harness pulls the Norns repo and uses the local copy, along side some mocks and shims, to enable luaunit tests to be run successfully. Check the /lib/tests
folder for the harness and example tests.
This program is released under the GNU license. Copyright Andrew Hillel 2024.