Various things we’ve discovered, or really handy info pulled from the meetup videos, web forums, etc, that aren't necessarily documented in the manual.
I’d like to keep this document focused on useful, utilitarian tricks you can use when working specifically with the M8.
Don’t worry too much about formatting or cleanliness, I just want to gather all the info here, and I’ll tidy it up myself. Sources of info or demos are appreciated though
Place utility chains/phrases near the bottom of the template (got idea from iHz’s M8 template)
This keeps the chains out of the way, but it’s easy to jump to by holding OPTION+down
Since they're part of the song, they won't get purged by the "clean phrases/chains" function.
Warning:All lower chains are pushed down by copy/pastes on the rows above, and chains will permanently scroll out of the song if they are pushed past row FF. To avoid this, I start them around D0.
EDIT x2 (double tap) to create a new empty object…
If you go into select mode first (so, SHIFT-OPTION, then EDIT-EDIT), it will make a copy (shallow clone) of the selected thing into the first empty slot (instead of just creating a new empty one).
Press EDIT one more time (so, SHIFT-OPTION, then EDIT x3) for a “deep clone”, cloning phrases inside chains as well.
In Live mode, SHIFT OPTION twice will select a row, then press PLAY to trigger at once. (Similarly smaller selections work also.)
Hold Left and press Play to cue the whole row
(Left + Play also works in Song mode)
Tap Tempo
When the Tempo parameter is highlighted on the Project page, tapping [ EDIT ] will allow you to insert a tapped tempo.
Fix Glitchy Playback
Sometimes, due to SD card differences, a song with samples might start playing back choppy, and the M8 in general just slows down, or starts behaving funny. One potential fix for this is to go into the file browser for anything (whether loading samples, instruments, or songs), and do a directory sort (shift + option). It will take a second, but for me at least, this has a near 100% success rate of fixing the choppy sample playback.
Instruments
Sampler
Auditioning and and loading tips
To quickload a new sampler instrument: when LOADing a new instrument, select a sample instead.
When selecting samples, you can press PLAY to listen to the sample
If you hold PLAY on a sample while the phrase is playing, the sample will replace each note in the current phrase, The sample playback will be affected by the following
Any parameter in the instrument and envelope pages (Envelope, VOL, FX, detune, degrade, filter etc.) will be applied
If there is any note in the currently active phrase the sample will only play (and loop) through the length of the active PHRASE.
This happens even if there is no actual NOTE in the NOTE field, e.g. if there is anything in the INST field it will not allow the sample to play through.
Hit SHIFT+PLAY to hear the sequence play in the back-ground. After that, you can audition the sample with PLAY in the context of your sequence.
I find if you have a folder with multiple folders of drum hits (like kicks - snares - perc ) you load the kick then copy that instrument and you’re already in the folder where your other drum samples are makes it [auditioning new drum sounds in context] fast
The higher the bit depth (and stereo vs mono), the more demanding on SD streaming. So the highest possible note you can play is affected intentionally to limit the demand on the SD card per channel.
So, say if it’s 24-bit stereo: the highest note is 1 octave above c-4, 24-bit stereo should be two, 16-bit stereo 3 octaves, 16-bit mono 4, 8-bit [...]
(Those might not be the exactly true ranges, but it’s close enough)
Also: you may have issues playing 8x stereo 24-bit samples, depending on how well the SD card performs.
Usually it’s not worth keeping samples 24-bit
Downconverting samples
(To preserve as much dynamic range as possible:) normalize first to 0db and then downconvert to 16-bit
If the samples are level-balanced as part of a kit, normalize them all together to keep their relative levels intact.
Tuning samples
Use DETUNE to fine-tune your sampler instrument.
Each tune increment is 1/16th of a semitone.
For one octave, you will need 12 semitones x 16 increments, or 192 DETUNE increments (C0 in hex)
For large pitch changes, you can use the N column in the instrument’s default table
To pitch up by two octaves, set all N steps in the table to 18
This works for all instrument types, not just samplers
Drawback: if you switch to a non-default TBL, the pitch change will no longer apply
The amount a sample can be pitched up is limited by its bit-depth (for performance reasons) (
LFO: TRG to 01 RETRIG (loops) or 02 HOLD (plays once)
LFO: FRQ to number of bars + beats (20 = 2 bars)
Use AMT param to adjust how far the loop scans through sample
Use FREQ param to adjust amount of timestretching
stays synced to tempo
Tips:
LENGTH param adjusts size of grain (0-4 range is good)
Sometimes PLAY mode to 04 FWD PP works better, especially with ambient samples.
Can also use (LT1,2) lfo start commands to change start point after note playing
Can also use (LF1,2) lfo freq command to change speed of timestretch
Tweak sample’s DETUNE to change the pitch
LENGTH is relative to slice, so add slices to get finer grained control bars)
Granular Instrument!
How to create a granular instrument on your M8 (with 8 grains):
Start a new project
Create a sample instrument set to FWDLOOP (also try REVPP for noise samples) with a LOOP ST of 0 and a small LENGTH.
Now set two LFOs, one DRNK T with a small FREQ and low AMT, and one RAMP UP with a larger FREQ and AMT FF.
Place a note an octave or two down (C2 or C3) if you want more ambient - but you can also use the default C4. Make the velocity small.
Randomize the start of the loop position in the phrase.
Place the exact same thing on all tracks.
Play all tracks at once. (If your SD card complains, feel free to downsample.)
To use, record the output to a new sample. You could use this in real-time, but it'll eat up as many tracks as you want grains (each track is one grain)
There may be some small glitches, if so, use reverb or tweak the parameters.
Temp-Syncing loops (great for breaks)
From the instrument screen:
Load sample
PLAY: FWDLOOP
LENGTH: 00
From the envelope screen:
LFO: LOOP ST
OSC: RAMP UP (RAMP DN for reverse)
TRG: RETRIG
FRQ: 20
[adjust to bar length. 1 bar = 10 (16 steps), 2 bars = 20 (32 steps)]
Then:
Play with LOOP ST until you get the start of the loop right
Add as many FE (empty) bars in Chain needed to complete the number of bars needed.
So if the loop is 4 bars, it should look like:
00
FE
FE
FE
Adjust the LFO’s AMT until loop is perfect (you need to play from the Chain window to play all
> For working w/ single-cycle waveforms loaded in the same file, if I set the mode to OSC, how does M8 know the size of each waveform (is there a setting I can use, or should I use slices?)
The LENGTH parameter requires you to know how many samples waveforms there are in the file and set it.
So if there are 16 waveforms in the file:
Set the LENGTH to 10 (10 in hex = 16 in decimal)
Increase the LOOP START by increments of 10 to jump to each waveforms.
EZ wavetable recipe
This is the easiest way I've found to do wavetables.
Pad all your wavetable files to have 256 waveforms each (pad with silence - see below for script). This way you don't need to figure out how many waveforms there are in each file.
Set PLAY to OSC and LENGTH to 00.
LOOP START will now select the waveform: 00 is the first one, 01 second one etc.
You can modulate LOOP ST to cycle through the waveforms.
Python script to pad your wavetables with silence to be 256 waveforms each (you may need to batch resample at the end). THIS IS DESTRUCTIVE so operate on a copy of your wavetables folder:
import librosa
import soundfile as sf
import os
# Define the folder path containing the .wav files
folder_path ="/path/to/folder"
# Iterate over all .wav files in the folder and subfolders
for root, dirs, files in os.walk(folder_path):
for file_name in files:
if file_name.endswith(".wav"):
# Load the audio file
audio_path = os.path.join(root, file_name)
audio, sr = librosa.load(audio_path, sr=None)
# Change the length of the audio file to N samples by padding the end with silence (N = 256 * the number of samples per wave). e.g. if 2048-samples per wave, then N = 524288
target_length =524288# SET THIS ACCORDING TO THE FORMULA!
iflen(audio)< target_length:
# If the audio file is shorter than 524288 samples, pad it with silence
This script takes all your wavetables in the folder recursively and, if they are shorter than 256 waves, it will pad them with silence at the end so that they are exactly 256 waves in length. You need to set target_length with the following formula:
target_length = 256 * number of samples in each waveform
I recommend resampling the resulting files to be 256 (or 512) samples per wave at 16 bits. This seems to work best with the m8. I like to have several folders with various levels of downsampling (a folder for 1024, a folder for 512, a folder for 256 etc.) since the built-in m8 downsampler doesn't change the playback speed.
Slices
File-based (cue marker) slices
With FILE (cue marker) slices, the SLI command reads a maximum of 128 slices (00–1F in hex). This limit is due to memory limitations (
STA / LEN adjustments are relative to each slice. So to get more fine grained control you can slice, dial in the correct location, then adjust from there with STA or LEN commands.
Multisample each drum: many subtle variations, different enough to sound pleasing, similar enough to be unnoticeable.
Put it all into a single WAV and into the m8, like so:
In the sampler instrument:
table TIC 00 (so it advances to the next row on each note)
slice setting at the number of slices you have
play mode forward
In the table’s note offset column: an increasing number each time to auto jump to next slice! round robin!
You can get fancy and instead put several variations of drum into one WAV. I did this with cymbals. made sense to do 2 crashes, splash, & china all together for easy programming. 4 round robins each. THO in this table keeps it looping.
THO in the phrase selects which cymbal / articulation you want. really helpful in busy sections. i'm sometimes tweaking this a bit for taste, you don't really know which will work until you try it. crazy huh?! Fin.