Lightning and Express Documentation

This page describes how to use Lightning and Express. It includes a description of each view and menu, as well as how to use the function keys, how to reset your device to factory settings and some limitations you may encounter.

Although the underlying firmware in Lightning and Express is the same, the physical features of each device have a big impact on how you use it.

Lightning has a lot fewer buttons and sensors than Express. It makes up for it by providing a note wheel feature (patent pending) and additional views that let you access the note wheel feature. It also provides a touch screen popup function key pad that takes the place of the physical function keys on Express. In the following descriptions, you may see references to function keys (e.g. F6/F7) on Express. The same functions are available on the popup function key pad on Lightning.

Views

Express provides four views and Lightning provides six views. Each view focuses on an aspect of music production. For Express press F5 and F6 to switch between views. F5 selects the previous view and F6 selects the next view. For Lightning, tap the lower right corner of the display and select View- or View+.

Note View (Piano Roll)

The Note View is the main view for Express. It shows you the notes in the song. The vertical position of each note represents pitch and the horizontal position of each note represents time. The width of each note represents duration. The color of each note represents its channel.

The background is divided into horizontal and vertical sections with thin gray lines. The horizontal sections represent octaves, with the lowest octave on the bottom. The vertical sections represent measures (equal units of time). The time signature and tempo are displayed at the top, to the right of their starting point(s). A dark red vertical line in the center represents the current position in the song.

The header displays the current octave, the transport control setting, the channel and the instrument assigned to the current position in the channel.

The footer displays the current Menu (i.e. the one you'll get if you press F7 or F8), the location in the song, the duration of the song and the current profile. The profile is marked with an asterisk if it has been modified since it was last read.

You can mark a region of the song by pressing and the rotary encoder button. The first press marks the left part of the selection. The second press marks the right part of the selection and the third press clears the selection. You can also press and hold the rotary encoder to switch the scroll action from setting position to inserting/deleting time.

When you open a song and press play, the view scrolls to show you the current position in the song. Menu items allow you to control which channels are displayed.

Song View

The Song View shows the song timeline for all 16 channels, including the current instrument for the channel and the distribution of notes in the channel.

The current time is marked by a dark red vertical line that moves across the view as the song plays. The instrument for the current channel is highlighed in inverse video.

This view is useful for figuring out where you are in a song and which channels are active relative to each other.

Step View

The Step View puts you into Step Mode, and lets you interact with Express like a step based sequencer, where the starting time and duration of each note is quantized to the step's starting time and duration.

Each square represents a step and the number of steps displayed is controlled by the Steps per Measure menu item. You can create an arbitrary number of pages of steps.

Pressing a note enters that note in the step and advances to the next note. You can have multiple notes per step, all in the same channel, or across multiple channels. Each channel is represented by a color to give you an idea of which channels contribute notes to a step.

Press the rotary encoder knob to clear the current step. A quick press clears the notes in the step for the current channel. A long press clears the notes in the step for all channels.

Sample View

The Sample View puts you in Sample Mode and displays the waveform of the current sample. In Sample Mode, function keys F9 through F12 interact with the sampler instead of the notes in the song. For example, F10 allows you to play a sample and F11 allows you to record a sample (if you have a USB input device connected).

You can also display the waveform for any of the builtin samples by touching a note sensor, or display the waveform stored in a WAVE file by opening a WAVE file using the Sampler menu. Builtin samples are displayed as long as you haven't recorded a sample. This helps prevent accidentally overwriting the new sample while you're working on it. Otherwise, you can always display a builtin sample using the Sampler -> Extract Sample menu item.

In the Sample View, the Location and Duration in the footer function much like they do in the other views, except that when you're recording a sample, the Duration field shows you the maximum time you can record. After you're done recording, it shows you the duration of the recorded sample.

You can assign a sample to a note by pressing and holding the F9 or F12 buttons and then pressing a note sensor. F9 keeps other samples. F12 clears other samples. To assign just a part of the sample, position to the beginning of the part of the sample you want to assign and press the rotary encoder button to set the left mark. Then position and press again to set the right mark. When you assign the sample, the highlighed section will be snipped out of the total sample. Press the rotary encoder a third time to remove the selection marks.

You can also press and hold the rotary encoder to switch between scroll mode and zoom mode. In zoom mode you can rotate the encoder to zoom in or out on the waveform. Press and hold it again to go back to scroll mode.

Chord Wheel View+

The Chord Wheel View is the main view for Lightning and is not available on Express. It depicts the functions of the touch sensors for playing chords.

The left set of seven touch sensors selects the chord type. The most common chord types are available by pressing a single sensor.

An additional set of seven chord types is available by pressing two adjacent sensors, for a total of 14 chord types.

The right set of seven touch sensors selects the root of the chord and lets you strum the notes in the chord across multiple octaves.

To select the root of the chord, first press one of the left sensors to select the chord type, then press one of the right sensors to select the chord root. That defines the chord. Then press any of the other right sensors to play the notes in the chord. The chord type and root stay in effect until you select the chord type again.

For example, to play a CMaj7 chord, press the left sensor in approximately the one o'clock position (marked 5 on the board) to select Maj7 as the chord type. Then press the right sensor in approximately the nine o'clock position (marked C on the board) to select C as the chord root. This locks in CMaj7. Now play the notes in the chord by rotating your finger around the left "wheel" of sensors.

The current key is indicated at the top of the Chord Wheel View. You can set the key using the Song -> Key Signature menu item. This takes care of the sharps and flats in the key for you and makes it feasible to play the chords or notes in the song on such a limited input device.

For example if you want to play along with a song written in F Major (one flat), set the Key Signature to F Major and note that B on the right set of sensors is now indicated as B flat.

Finally, at the bottom of the Chord Wheel view, you can see the chord you've selected, as well as the note in the chord you've just played. The chord name includes the semitone intervals in the chord in parenthesis, e.g. (0, 4, 7) and the note includes the MIDI note number in parenthesis, e.g. Middle-C is (60).

Note Wheel View+

The Note Wheel View is available only on Lightning. It depicts the functions of the touch sensors for playing individual notes.

The left set of seven touch sensors controls the type of note selected. The right set of seven touch sensors selects a note.

Generally you play the notes with your right hand on the right set of touch sensors and the pitch is adjusted by octaves as you rotate your finger across the sensors clockwise (up) or counter-clockwise (down) around the wheel.

You can use the left set of seven sensors to override the default behavior. Press and hold the left sensor before pressing a note on the right sensor. Options include:

The current key is indicated at the top of the Note Wheel View. You can set the key using the Song -> Key Signature menu item. This takes care of the sharps and flats in the key for you and makes it feasible to play the chords or notes in the song on such a limited input device.

For example if you want to play along with a song written in F Major (one flat), set the Key Signature to F Major and note that B on the right set of sensors is now indicated as B flat.

Log View

The Log View is only available if something (e.g. error information) has been written to the log.

The Log View displays information on any errors or crashes that may occur. The information in the log view is useful for fixing bugs. Please take a photo of the screen (or copy the text) and send it to me, as described in the error message. Next, read the message to see if pertains to a crash or an error. Unfortunately, crashes are not recoverable and are displayed after the device reboots. Errors may be recoverable. If it's an error, save your work promptly and restart the device.

You can scroll the Log View up and down using the rotary encoder. You can clear the Log View by pressing on the rotary encoder button. You can switch between the Log View and other views using the Next View and Previous View functions.

Express groups similar commands together into menus. There are currently 13 menus. In basic operation, press F7 to select the previous menu or F8 to select the next menu.

Most of the properties that are set with the following menus can be saved in profiles. You can update the builtin profiles or create new ones. The most recent profile you've selected is considered the current profile. It's restored when the device powers on.

The following sections describe the menus and menu items. An asterisk identifies new items added for the September 1st 2024 release.

File Menu

The File Menu lets you read and write MIDI files.

Edit Menu

The Edit Menu lets you cut, copy and paste notes to and from the clipboard. You can copy within a song or between songs.

Set the left and right sides of the selection by pressing the the rotary encoder in Note View. The first press sets the left side, the second press sets the right side and a third press clears the selection.

Use the Channel Mute and Solo settings to control which notes are selected for Copy and Erase.

Song Menu

The Song Menu lets you manage the high level properties of the song.

Channel Menu

The Channel Menu lets you manage channel properties.

Although channels can be used in many different ways, it sometimes helps to think of a channel as describing the activities of a single member of the band, including selecting an instrument, playing and releasing notes, varying volume and pitch, etc.

By convention, channel 10 is the MIDI drum channel. All other channels can have any instrument assigned to them. Only one instrument can be assigned to a channel at a time.

Event Menu

The Event Menu shows the low level MIDI messages that represent the song. This menu is context sensitive and shows slightly different information depending on the message type. The following items are common to all message types.

Settings Menu

The Settings Menu is a collection of miscellaneous properties that don't fit anywhere else.

Note: be sure to configure USB for input and output before using USB audio. To do this, connect a USB cable between the USB-C connector to the left of the display and the connector labeled USB 1. This enables the connector labeled USB 2 for USB input and output. See the Getting Started guide for more information.

Profile Menu

The Profile Menu lets you manage profiles. Profiles are collections of settings that are stored in internal flash. They include song properties, like channel instrument assignments, as well as user interface settings. Playlists are also stored in the profile.

When you create a new song. The current profile settings are applied to the new song.

When you open an existing MIDI file, the properties of the song are applied to the profile. This makes it easy to use the properties of an existing song to create a new song in the same style.

Pattern Menu

The Pattern Menu lets you control the pattern generator.

The pattern generator creates strums and arpeggios for instrument channels and drum grooves and fills for the drum channel (Channel 10).

Reverb Menu

The Reverb Menu lets you control the reverb filter.

The reverb filter is an implementation of Jon Dattorro's reverb algorithm. See https://ccrma.stanford.edu/~dattorro/music.html and https://ccrma.stanford.edu/~dattorro/EffectDesignPart1.pdf for more information.

Parameters are set in the range of 0 to 100, based on the range of permissible values for the underlying property (e.g. 100 ms for maximum pre-delay).

ADSR Menu*

While the Articulation Menu lets you specify the articulation parameters, including ADSR envelope for any zone (combination of sample and note range), the ADSR Menu lets you globally override the ADSR envelope for all notes.

Playlist Menu

The Playlist Menu lets you create and manage lists of MIDI files to play. Playlists are stored in the profile. You can have one playlist for each profile.

Pressing Play after creating or loading a playlist plays the next song in the list. As each song finishes the next song in the list plays.

You can advance to the next song by pressing F12 (End of Song). Playback will pause at the end of the song if the song is modified. This gives you a chance to save the song.

Network Menu

The Network Menu lets you connect to WIFI to use the web browser interface or to download firmware updates.

The web browser interface shows you the Express display on a larger web browser page and lets you interact using the keys on a standard keyboard.

To navigate to the web browser interface, use the items in this menu to connect to WIFI and start the Web Server. Then open a browser on the same network and point it to http://ip-address where ip-address is the Current Address displayed in this menu (e.g. http://192.168.1.26).

Alternatively, you can configure Express as a standalone WIFI network by pressing the little white button to the top left of the display for two seconds. Express will display its SSID, password and IP Address. Connect to this SSID from another device and open the browser page as described.

Articulation Menu

The Articulation Menu lets you adjust synthesizer parameters that control amplitude, pitch and timbre to produce an expressive musical note.

The properties in the Articulation Menu are part of the Sample Group. You can save Sample Groups to files and restore them later. You can also define a startup Sample Group that is saved as part of the Profile. This lets you quickly restore a complex set of properties for banks, channels and zones. See the Sampler Menu for more information.

The Articulation Menu is divided into the following sections:

General Parameters

The General Parameters are a collection of high-level properties that control the mapping of a sample to a note or range of notes.

Amplitude Envelope

The Amplitude Envelope settings control changes in the volume of each note as it is played.

Modulation Envelope

The Modulation Envelope settings control the pitch and filter cutoff of each note as it is played.

Vibrato LFO

The Vibrato LFO settings control how the vibrato low frequency oscillator is applied to each note to adjust its pitch.

Modulation LFO

The Modulation LFO settings control the effect of the modulation low frequency oscillator on the note as it plays.

Lowpass Filter

The Lowpass Filter settings control the attenuation of higher frequencies.

Loop

The Loop settings control the operation of the sample looper. The loop identifies a regular or repeating part of the sample that is played continuously until the volume decays to zero or the note is released.

Miscellaneous and Commands

The remaining parameters are described here.

Sampler Menu

The Sampler Menu lets you control the sampler.

Function Keys

Express uses function keys to control operations. The following tables show the function key definitions for Express. The touch display popup function key menu on Lightning has similar functions.

To access the function keys on Lightning, press the lower right corner of the display to pin the menu in place. Press it again to unpin. Once you get familiar with the location of the items on the popup menu, you can use the shortcut popup menu. To do this, press the general location for the function you want. This displays the menu. Adjust your location if necessary and release. This hides the menu.

Basic Operations

The function keys for basic operations are:

F9 F10 F11 F12
Beginning
of Song
Play /
Stop
Record End
of Song

F5 F6 F7 F8
Previous
View
Next
View
Previous
Menu
Next
Menu

F1 F2 F3 F4
Octave
Down
Octave
Up
Previous
Channel
Next
Channel

To Clear the song, press Beginning of Song (F9) and End of Song (F12) at the same time.

To enter Overdub mode, press Record (F11) while Playing (F10) or Play (F10) while Recording (F11).

Yes / No Prompts

The function keys for yes / no prompts are:

F1 F2 F3 F4
Cancel
(No)
Confirm
(Yes/OK)

Text Input Prompts

The function keys for text input for names and passwords are:

F5 F6 F7 F8
Previous
Position
Next
Position
Insert
Character
Delete
Character

F1 F2 F3 F4
Cancel
(No)
Confirm
(Yes/OK)
Previous
Character
Next
Character

You can also rotate the rotary encoder to select a character or press the rotary encoder to move on to the next character.

Factory Reset

On Express, the Factory Reset button is the little white button located to the bottom left of the display. See the Quick Reference Guide for a digram showing its location.

To return your device to its original state, press and hold the factory reset button for ten seconds while plugging the device in. This erases any songs, profiles, samples or sample groups you’ve saved in the internal flash memory. External media is not modified. Internet firmware updates are replaced by the factory image.

On Lightning, Factory Reset is currently a bit hard to get to. You have to use a wire to connect pin 18 on the ESP32-S3 sub-assembly to a convenient ground (such as the USB connector case) while powering on. We plan to make this easier in a future version of the hardware.

Limitations

Express really pushes its hardware to the limits. Here are some implementation details to give you a better idea of what you can do with it.

CPU

The synthesizer is processor intensive. The number of voices and the sample rate are two key parameters that affect performance.

Express allocates a voice for each note that is playing on each channel. If a free voice is not available, it selects the voice that's been playing the longest and reallocates it.

To provide flexibility, Express lets you set the maximum number of voices and the sample rate.

If your music demands lots of voices, you can try reducing the sample rate. If your music demands high quality samples, you can try reducing the number of voices.

When the number of voices and the sample rate are both too high, the synthesizer can't keep the audio pipeline full and you hear noise.

By default, Express operates at either 22050 or 24000 16-bit samples per second (Hz) and 16 voices.

To reduce load, Express downsamples USB audio input and upsamples USB audio output when the respective rates are above 32000 Hz.

To allow experimentation with higher sample rate audio, WAVE files are not currently downsampled.

Note that these sample rates are based on non-lossy content, so it's not really fair to compare them to lossy CD-quality MP3 audio at 44100 Hz.

RAM

After powering on with default setup parameters, Express has about 8 MB of free memory available. Express manages this memory carefully for samples and sample groups so it doesn't run out.

Express allocates about 40% of available memory for the sample buffer when you record a sample. When you stop recording, it resizes the buffer to the amount required and frees the rest. This means you can't use all of available memory for a single sample.

To get an idea of how much time is available for recording, consider the sample rate and the number of bytes per sample. For example 30 seconds of audio at 24000 Hz will consume about 1.44 MB of RAM.

As you work with samples, you will likely find that short samples with loop points work well and can produce sustained audio of virtually any duration. Express makes it easy to snip out the part you want from a larger sample and define loop points.

FLASH

Express provides access to three types of flash memory: builtin local flash, Micro SD Card flash and USB flash.

The builtin flash filesystem is about 2.5 MB and contains profile settings, demo songs and any songs, samples or sample groups you save to it.

The profiles are small and take a total of about 5 KB. The demo songs take about 1.5 MB. That leaves about 1 MB in local flash for your songs and samples.

I recommend storing songs and samples on a Micro SD Card so that you can share them and back them up, but if you want to store them to local flash and you run out of storage, you can delete the demo songs or folders using the File -> Delete File or Folder menu item.