MASIF SAMPLER

00:00.00DROP A SOUND HERE
26 KHZ12 BIT0.00 SSAMPLE --

PROCESS

SAMPLE POOL

0.0 OF 0.0 S ON THE FM-1 · 0/24

    GUIDE

    1 · About MASIF

    MASIF is free firmware that turns the M-VAVE FM-1 into a 4-track sample tracker with a small rack sampler. You write songs on the FM-1 itself, in rows and columns: a song is a list of chains, a chain is a list of phrases, a phrase is 16 rows of notes and effects. Every sound comes from you: MASIF ships with no sounds at all. You load samples from this page, or record them on the FM-1.

    This page is MASIF's sampler and librarian. It runs in your browser and nothing is uploaded anywhere. You drop in sound files (or record from a mic, the line in or USB), trim and loop them, and process them. Then SYNC POOL puts the ones you ticked onto the FM-1.

    MASIF is independent. It is not made, endorsed or supported by M-VAVE. "M-VAVE" and "FM-1" are trademarks of their owners.

    2 · What you need

    • An M-VAVE FM-1 and a USB cable that carries data, not just power.
    • Chrome or Edge on a computer. This page talks to the FM-1 over Web MIDI, which other browsers lack.
    • Nothing else: the page installs MASIF too. (The command-line installer needs Python 3, see 3.)
    • Close other MIDI apps (DAWs, editors) while this page or the installer talks to the FM-1. Only one program can hold its MIDI port.

    3 · Install on the FM-1

    Install at your own risk. Installing replaces the FM-1's firmware. Sounds and songs you made on another firmware do not carry over.

    While it installs, do not unplug the cable, switch the FM-1 off or let the computer sleep. An install that is cut off at the wrong moment can leave the FM-1 unable to start. Then only a hardware flasher can bring it back.

    MASIF comes with no warranty. Its authors are not responsible for an FM-1 that no longer starts, for lost sounds or songs, or for any other damage (GPL-3.0, sections 15 and 16).

    From this page (Chrome or Edge):

    1. Plug in the FM-1 and switch it on. Close other MIDI apps.
    2. Click INSTALL (in the FM-1 box at the left of the SAMPLER tab), read what it says, and click INSTALL in it. Allow MIDI when the browser asks.
    3. The FM-1 checks the package, restarts into its updater, and the page shows WRITING nn%. Leave everything alone until it says INSTALLED (under a minute). The FM-1 restarts into MASIF and the page connects to it.
    4. Add samples and SYNC POOL (see 5), or RESTORE a backup (see 12).

    The page installs the MASIF release it carries. FROM FILE… in the same box installs a MASIF package (.fwsc) from your computer instead, or M-VAVE's official firmware to go back (see 13); it refuses any other firmware.

    Or with the command-line installer (Python 3):

    1. Download the latest MASIF release (the .zip) from github.com/thecemeterygates/masif-fm1/releases and unzip it. It holds the firmware package (packages/masif-0.1.fwsc) and the installer (tools/fm1_install.py).
    2. Open a terminal in that folder and make a Python environment for the installer (once):
      python3 -m venv .venv
      . .venv/bin/activate          # Windows: .venv\Scripts\activate
      pip install mido python-rtmidi
    3. Install with the FM-1 plugged in, and leave the cable alone until it says it is done:
      python3 tools/fm1_install.py packages/masif-0.1.fwsc

    If an install is cut off, click INSTALL again (or run the same command): it finishes the update.

    4 · First start

    1. Open this page in Chrome or Edge with the FM-1 plugged in, and click CONNECT. Allow MIDI when the browser asks. The lamp goes green and the status shows the firmware and the FM-1's sample time.
    2. Drop sound files anywhere on the page, or click + ADD. They appear in the POOL list.
    3. Tick the ones you want on the FM-1 (the box at the left of each row). The gauge shows how much of the FM-1's time they take.
    4. Click SYNC POOL. When the status says IN SYNC, the samples are on the FM-1.
    5. On the FM-1, open an instrument (the I page). On its SAMPLE row, hold EDIT: the pool opens, and EDIT gives the marked sample to the instrument.

    5 · This page at a glance

    MASIF help: what the mouse is over FM-1 CONNECT SYNC POOL BACKUP RESTORE MASIF SAMPLER PROCESS SAMPLE POOL ■ 00 KICK■ 01 SNARE■ 02 BASS□ — VOX■ 03 CHORD 12345
    The sampler page. The numbers match the list below.
    1. The help bar. Hold the mouse over anything and this bar says what it does.
    2. FM-1. CONNECT, SYNC POOL, BACKUP, RESTORE. The lamp is green while the FM-1 is connected.
    3. MASIF SAMPLER. The open sample's wave with its marks (see 6). Under it the keys: to the start, PLAY, STOP, ARM, REC, LOOP, FADE, ZOOM, SPEED, BITS, RATE, and SOURCE (what REC records: a file, the line in, the mic or a USB input).
    4. PROCESS. Faders that change the sound in the browser: gain, fades, compression, stretch, pitch, drive and more. REVERSE and NORMALIZE are switches. SAVE AS NEW keeps the result as another sample, OVERWRITE puts it in this one's place.
    5. SAMPLE POOL. Your library. Ticked samples go to the FM-1, in this order: the number at the left is the sample's number on the FM-1. The gauge shows the FM-1's time used. The SONGS tab lists the songs saved on the FM-1. THEMES lists the FM-1's screen colours. Under the list: + ADD, − REMOVE, ▲ ▼ (move), NAME (8 letters), TO PC (as a WAV file).

    The coloured dots at the top right change this page's look. They don't change anything on the FM-1.

    6 · Editing a sample

    STARTENDLOOP ALOOP B FADE INFADE OUT
    The marks on the wave. Drag each one by its ball.
    • START / END (solid lines, a ball at the top): what the FM-1 keeps. Anything outside them is cut away on the FM-1 and takes no room.
    • LOOP (the key lights up): the two long-dashed lines are where a looping instrument goes round. The FM-1 loops exactly there.
    • FADE (with LOOP on): the two short-dashed lines fade the loop in after its start and out before its end, so the loop doesn't click.
    • ZOOM 1×, 2×, 4×. Use the mouse wheel to move along, and Ctrl + wheel to zoom.
    • PLAY plays the sample as the FM-1 will: at its rate and bits, looping until you press STOP.
    • RATE 26 kHz, 27.5 kHz or 13 kHz, and BITS 12, 8 or 4 (ADPCM): how the sample is stored on the FM-1. Lower settings fit more time and sound grittier (see 8).
    • Recording on this page: pick a SOURCE, press ARM to hear and see it, then REC. REC starts once the sound passes the threshold line (drag it on the wave). It stops when you press it again, or when the FM-1's free room is full.

    Everything you do here is kept in this browser and saved as you go. The original sound always stays as it came, so you can change your mind later.

    7 · How SYNC POOL works

    THIS BROWSER ■ KICK■ SNARE□ VOX (unticked)■ BASS■ REC01 (made on FM-1)■ CHORD FM-1 POOL (24) 00 KICK01 SNARE02 BASS03 REC0104 CHORD05 … 17 empty 2 SYNC POOL 1 fetched first
    The list in this browser is the master copy. The FM-1 ends up holding exactly what is ticked, in that order.
    1. Fetched first. SYNC (and CONNECT) first reads the FM-1's pool. Any sample the list doesn't have yet, such as a take you recorded on the FM-1, is copied into the list, ticked. So a sync never loses a recording.
    2. Then written. The FM-1's pool becomes the ticked samples in the list's order. New or changed ones are written, unchanged ones stay where they are, and unticked ones come off the FM-1.
    3. Numbers. A sample's place among the ticked ones is its number on the FM-1 (SMP 00, 01 … in hex, as the list shows it). An instrument plays a sample by its number, so if you reorder the list and sync, your instruments play different samples. Add new samples at the end to keep your songs as they are.
    4. Removing. − REMOVE takes a sample out of the list, and it comes off the FM-1 at the next SYNC (it is not fetched back). Unticking keeps it in the list but takes it off the FM-1.

    A * or "NOT SYNCED YET" means the list and the FM-1 differ: SYNC when you are ready. Stop the song on the FM-1 before syncing.

    8 · Sample time: the FM-1 vs this page

    This page can hold samples of any length, as many as your browser has room for. The FM-1 can't: it keeps samples in a few free areas of its own flash memory, about 730 KB in all, with places for 24 samples. How many seconds that is depends on how each sample is stored:

    The whole pool, in seconds, if every sample used that format. The gauge over the list shows the exact figure for your samples once the FM-1 is connected.
    • One sample can't be longer than the biggest free area: about 12 s at 26 kHz 12 bit (more at lower settings). A tick that doesn't fit is refused, and the gauge shakes.
    • Mono. The FM-1 stores one channel. Stereo files are mixed down.
    • Fit more: trim with START / END, lower the RATE (13 kHz halves the treble and doubles the time), and lower the BITS (8 bit: half as much time again, grittier; 4-bit ADPCM: close to three times 12 bit's time, clean lows, rougher highs). Each sample has its own settings.
    • What you hear with PLAY on this page is what the FM-1 will play. Trust your ears over the numbers.

    9 · Recording on the FM-1

    The FM-1 can record by itself, too. Go to the instrument page, then SHIFT + DOWN to the sampler page (R). Set the rows with EDIT + arrows, then press PLAY (the button printed REC) to arm. Press it again to stop.

    SOURCEUSB: what the computer plays into the FM-1 (it shows up as an audio output on the computer). MIX: MASIF's own sound, for a bounce of your song.
    STARTLEVEL: when the sound passes the LEVEL row (with a moment before it). PLAY: with the song, and it stops when the song stops. NOW: at once.
    RATE / BITS44, 22 or 11 kHz; 12, 8 or 4-bit ADPCM.
    MAXThe longest take you want, in seconds.

    A take on the FM-1 is held in its working memory while it runs, so it has its own limit, shorter than the pool's:

    12 bit8 bit4-bit ADPCM
    44 kHz1.9 s2.9 s5.4 s
    22 kHz3.8 s5.8 s10.8 s
    11 kHz7.7 s11.5 s21.7 s

    The take stops by itself at that limit. Then SAVING nn% shows while it is written to flash, and the FM-1's sound is muted for that short time. A take goes into the pool as REC01, REC02, and so on. The next CONNECT or SYNC copies it into this page's list. For longer samples, record on this page instead.

    10 · The FM-1's controls

    MASIF gives several buttons new jobs. The drawing labels only the controls MASIF uses: what each does in MASIF is large, and the word printed on the FM-1 is small under it. The faint buttons do nothing yet. The arrows and the commands are outlined, so they are easy to find.

    MASTERvolume SELECTcursor ◀ ▶ PRESETSpages ALGORITHMcursor ▲ ▼ MASIF KNOB 1 KNOB 2 KNOB 3 KNOB 4 OPTION + turn aknob: it takes thesetting at the cursor ▲SEL OPTIONEDIT EDITGLO ◀HOME ▼SAVE ▶ARP SHIFTPLAY PLAYREC ARROWSCOMMANDS NOTE KEYS: on the phrase page they enter a note; elsewhere you hear it
    The FM-1 in MASIF.

    The same in a table, with the printed label on the left:

    PrintedIn MASIF
    SEL · SAVE · HOME · ARPUP · DOWN · LEFT · RIGHT (the cursor; hold to repeat)
    PLAYSHIFT (its green light is always on)
    EDITOPTION
    GLOEDIT
    RECPLAY: red while stopped, a flash on each beat while playing; blinks while recording
    Note keysOn the phrase page: enter that note. Elsewhere: hear it
    SELECT / ALGORITHM knobsThe cursor along / up and down; with SHIFT or EDIT held: the value
    PRESETS knobThe pages, along (with SHIFT: up and down)
    KNOB 1–4OPTION + turn a knob: it takes the setting under the cursor
    SONGCHAINPHRASEINSTRTABLE PROJECTMIXERMODSAMPLERGROOVE
    The pages. SHIFT + arrows move between them.
    • EDIT on an empty cell enters what you entered last. Press it twice quickly on an empty song or chain cell (or on a phrase's instrument) for a new chain, phrase or instrument.
    • EDIT + arrows change a value: LEFT / RIGHT by 1, UP / DOWN by 16 (an octave for notes). Hold EDIT on an effect or a named setting to open its list.
    • OPTION + EDIT cuts (on an empty note: a note OFF). SHIFT + OPTION starts a selection, SHIFT + EDIT pastes.
    • PLAY plays what the page is on (the song from the cursor, the chain, the phrase). SHIFT + PLAY plays the song. OPTION + PLAY mutes the cursor's track, EDIT + PLAY solos it.
    • The FM-1 remembers where you were a few seconds after the last touch, and comes back there at power-on.

    11 · Songs

    The FM-1 holds 16 songs. On the PROJECT page (SHIFT + UP from the song page), set SONG to a slot and give it a name. Then use EDIT on SAVE, LOAD or NEW; stop the song first. The SONGS tab on this page lists what is saved. Songs only store sample numbers, not the sounds, so keep your pool's order (see 7). A song's tempo, key, scale and groove are on the PROJECT page too.

    TEST on the PROJECT page loads a deliberately heavy song (all four tracks busy, every effect working), to check that your FM-1 plays cleanly under full load. It replaces the song in memory, so save yours first. The CPU row shows the load.

    12 · Backup and restore

    • BACKUP reads everything MASIF keeps on the FM-1 (samples and songs) into one .masifbak file on this computer.
    • RESTORE writes a backup file back. Everything on the FM-1 becomes what the file holds, then the FM-1 restarts; CONNECT again once it has.
    • Back up before every update and before trying anything new.
    • The list on this page lives in this browser, at this address. Another browser, another computer, or clearing the site's data starts with an empty list. To move: CONNECT and SYNC there (the FM-1's samples come into the new list), or keep your sounds as files with TO PC.

    13 · Updating MASIF

    1. BACKUP first (see 12).
    2. CONNECT, then click UPGRADE: it compares the FM-1's version with this page's and installs the newer one, as INSTALL does (see 3).
    3. SYNC POOL again. An install rewrites the part of the flash where most of the sample time lives, so the samples there are gone after an update. Your list on this page still has them, and one SYNC puts them back. Songs are kept.

    Back to M-VAVE's official firmware:

    1. BACKUP first (see 12): the official firmware does not keep MASIF's samples or songs.
    2. Download the official FM-1 firmware (V15) from M-VAVE's site and unzip it: it holds FM-1.fwsc.
    3. Click INSTALL, then FROM FILE…, and choose that FM-1.fwsc. The page checks it is the unmodified official file; any other is refused. Click INSTALL V15 and leave everything alone until it says INSTALLED.
    4. To come back to MASIF: INSTALL from this page, then RESTORE your backup.

    Only this page goes back: the command-line installer takes MASIF packages only.

    14 · Limits and known issues

    • 24 samples, about 730 KB of sample memory (see 8). Mono only.
    • Four tracks. Heavy songs are fine: the TEST song peaks below half of the FM-1's audio time.
    • SPEED on this page doesn't work yet. Leave it at 1×.
    • USB audio (the FM-1 as a sound card) is tested on macOS. Windows and Linux are not tested yet. It runs at 44.1 kHz only.
    • MIX on the FM-1's sampler records MASIF's own sound only, not the computer's sound coming in over USB.
    • Bluetooth and the radio are not used.

    Planned (no dates yet):

    • Variable-speed sample processing on this page.
    • Screen themes for the FM-1 that you make yourself.
    • More effects.
    • More ways to bounce a song into a sample.
    • Banks for KNOB 1–4, so each knob can hold several settings you choose.

    15 · If something goes wrong

    • "NO FM-1 FOUND": use a data cable, close other MIDI apps, and use Chrome or Edge. On a virtual machine, give the FM-1 to the system the browser runs on.
    • An install was cut off: click INSTALL again (or run the same install command). It finishes an interrupted update.
    • Back to M-VAVE's official firmware: see 13.

    16 · Credits and licence

    MASIF is free software under the GNU General Public License, version 3 only. It is built on the work of others, whose code it uses under the same licence:

    • zp12 by zvenson: the firmware MASIF is built on (its voices, sample store and USB link). github.com/zvenson/zp12
    • SLOOP by isod89: the FM-1 firmware zp12 builds on. github.com/isod89/sloop-fm1
    • Felucca by Leo Kuroshita (Hügelton Instruments): the FM-1 platform under SLOOP, and the installer, fm1_install.py.
    • Ketch by Adrien Risser-Zhuang: USB audio both ways. github.com/risseraka/fm1-tracker-ketch
    • NoteSorcery: the computer's audio into the FM-1 (USB sample input), by way of Ketch.
    • The JieLi AC79 SDK's boot files (Apache-2.0) go into the package when it is built.
    • This page's fonts: Orbitron, Audiowide and VT323, under the SIL Open Font License.

    The full source and every licence are in the project's repository: github.com/thecemeterygates/masif-fm1. "M-VAVE" and "FM-1" are trademarks of their owners; MASIF is not affiliated with them.

    CLEAR

    The sampler empties. The sample stays in the list, as it is.

    INSTALL

    At your own risk. Do not unplug the FM-1, switch it off or let the computer sleep until it says INSTALLED: an install cut off at the wrong moment can leave the FM-1 unable to start, and then only a hardware flasher brings it back. No warranty.