github Quixotic7/ChoralRootFM1 v0.22-beta4
ChoralRoot 0.22-beta4

pre-release2 hours ago

ChoralRoot 0.22-beta4 is the fourth beta of 0.22: a sixth engine, P5, 128 sound slots shared by all engines,
favorites, FM TONE in the Digitone's own ranges and times with Digitone sounds to import, knobs that accelerate,
velocity and aftertouch from the FM-1's own keys, Snap in Key Mode, and, since 0.22-beta3, a Filter on the whole
sound and a step preview in the loop editor. Like the betas before it, it is opt-in: the web installer offers it
only when you tick Show beta releases under Other versions, and 0.21 stays its default. A beta may have bugs
(please report them on GitHub), and the next stable release, 0.22, replaces it. What is new since 0.22-beta3 comes
first; after it are the whole of 0.22's notes, so this page is all you need. Updating from 0.22-beta3, 0.22-beta2 or
0.22-beta1 keeps everything; going back to one of them loses only what it does not know: the Filter, and with it in
use the effects' settings, and on 0.22-beta2 and beta1 Snap (the Installing section says what that means). Updating
from 0.21 keeps your settings, sounds and loops; going back to 0.21 is possible at any time (the last section says
what it means).

New since 0.22-beta3

  • A Filter on the whole sound. The FX layer has an eighth page, Filter (hold FX, turn SELECT past Drive): a
    low cut and a high cut on everything the FM-1 plays, chords, bass and the effects' tails together, after the effects
    and just before the output. A way to soften a bright patch, to take the low end out of the chords so the bass has
    the room, or to leave a band open for a voice.
    • Low cut (KNOB 1): Off at the bottom, then 20 Hz up to 2 kHz; what is below the corner goes. High cut
      (KNOB 2): 200 Hz up to 16 kHz, then Off at the top; what is above the corner goes. Both in at once is a
      band-pass. Slope (KNOB 3): 6 dB or 12 dB an octave; 12 dB (where it starts) is the firmer cut, 6 dB is
      gentler, a tone control.
    • Filter (KNOB 4): Off or On. Turning Low cut or High cut switches it on by itself (and FX on, if FX was
      off), so you hear the knob at once; KNOB 4 takes it out and puts it back with the cutoffs as you left them, to
      compare. With FX off the filter is off with the effects, and the cell reads Off.
    • It is not part of any sound: like the effects it is set once for the instrument, every sound plays through it,
      and SAVE held keeps it. A new FM-1, and one updated to this beta, has it Off with both cuts at their Off ends,
      and with it Off nothing in the sound changes. Turning a cutoff while a chord plays is smooth, and switching the
      filter or the slope fades over a hundredth of a second: no click. If every sound is dull or thin whatever you
      load, look here first. Asked for in GitHub issue 16.
  • The loop editor previews a step. In the loop editor, while the loop is stopped, turning PRESETS onto a step
    plays it once, as the loop would play it: its notes on both sides (the chords and the bass), for their length, with
    the step's voicing and its ratchet, so you can hear your way along the pattern. A step's condition and chance are
    not asked: a preview always sounds. GLO held + PRESETS (8 steps a click) previews the same way; opening the editor
    plays nothing until you turn. An empty step is silence, and the next click ends what is sounding; so does a key you
    play (what you play goes into the step as before), REC clearing the step, LOOP starting the loop, or closing the
    editor. The keys' lights and the Chord view show the step's notes and chord as they do for a chord the loop plays.
    While the loop plays you hear the loop, not the step. Nothing is recorded by it: no note goes in, REC is not armed,
    the loop's position does not move. Asked for in GitHub issue 8.

Sounds and engines

  • A new engine: P5, the Prophet-5 model of Melodee (Kerem Kilic's FM-1 firmware): two oscillators with sync and
    Poly-Mod, the four-pole filter in its Rev 1/2 and Rev 3 characters, two envelopes and the wheel's modulation. It
    comes with 115 of the 200 factory programs Sequential made for the Prophet-5 (picked by ear), after 00 INIT.
    Choose it as any engine: hold OPT (printed GLO) and turn PRESETS for the chord part or ALGORITHM for the bass.
    • Its sound editor is rows of the Prophet-5's controls. P5's screens are rows of up to four controls, as on
      every engine: the row on the knobs is in colour, the others grey; SELECT moves from row to row and on to the next
      screen of the group; KNOB 1 to 4 turn the row's places from left to right, and a place with nothing in it does
      nothing. Each control is drawn as the Prophet-5's own: a knob with the eleven marks of its printed scale, a button
      with its LED and the wave it switches, the filter's REV with two LEDs, a lever for the filter's keyboard tracking.
      EDIT shows eleven screens, then EXPR as on every engine: OSC A with the mixer, and OSC B (OSC); the filter under
      its curve, the filter envelope under its curve, then the envelope's velocity, the keyboard tracking and the
      filter's aftertouch (FILT); the amplifier envelope under its curve, then its velocity and the release switch
      (ENV); the LFO with its three wave buttons on one row, and the wheel's modulation (LFO); Poly-Mod, and the voice
      with UNISON, voices, detune, glide, priority and Vintage (MOD). Only P5's controls look like this.
    • UNISON. A program whose UNISON switch is on loads in UNISON: one note on up to four stacked voices (a chord
      plays its lowest or its last note, as the program's key priority says). The next program without it plays chords
      again.
    • Voices. With Dual Core on (the new default, below) the chord part plays up to eight P5 voices, shared between
      the chip's two cores. A P5 bass gets up to four (a UNISON stack), but the chord comes first, and the bass always
      keeps one voice. With one core P5 plays four voices, three while a P5 bass sounds, and a P5 bass plays one. When
      you hold more keys than there are voices, the oldest held note that is not the lowest fades out quickly to make
      room.
    • Level. P5 plays a little quieter than the other engines (a four-note chord about 4 dB under FM6 and 6 dB under
      the VA), so that UNISON programs and big chords stay clear of the output's limiter.
  • FM TONE in the Digitone's ranges. FM TONE's values now read like the Digitone's, so a sound can be compared and
    copied number for number: FREQ (the cutoff, now the Digitone's number instead of Hz), RESO, BASE and DTUNE from 0.00
    to 127.00 with two decimals, HARM from -26.00 to +26.00, the filter envelope's DEPTH and each LFO's SPEED and DEPTH
    from -64.00 to +63.99, FDBK from 0 to 127, LEVEL a whole number from 0 to 127, and AMP DEC and AMP REL whole numbers
    from 0 to 126, then INF. AMP DEC at INF holds the level the attack reached, as the Digitone's DEC 127 does (AMP REL's
    INF is as before). VEL, the operators' KEY and the filter's SUS and KTRK read 0 to 127 instead of a percentage.
  • FM TONE sounds from before 0.22 are converted when they load (your saved sounds, the factory sounds, the last
    session, backups and sound files): each value is carried over into its new range. The conversion is close, not
    exact, so a sound may come out a little different; an AMP DEC that was at its top (127) is INF now, so the sound
    holds its level instead of falling slowly to SUS. The times keep their numbers, which now mean the Digitone's times
    (below). The next save keeps the sound in the new form.
  • FM TONE's LFOs reach all 57 of the Digitone's destinations, listed in the Digitone's order on the DEST cell. New
    are LFO 1's own SPEED, MULT, FADE, WAVE, start phase, MODE and DEPTH (from LFO 2 and 3), RATIO ALL, A and B together
    (LEV, ATK, DEC, END, DLY), DRIVE, the reverb, delay and chorus sends, and the filter envelope's DELAY.
  • FM TONE's times are the Digitone's. Every envelope (the amp's, the filter's, operators A and B), the DELAYs
    and the LFOs' FADE now take as long as on a Digitone at the same value, measured on a real Digitone, so a sound
    copied number for number also has the Digitone's timing. The time cells show numbers from 0 to 127, as the
    Digitone does, instead of milliseconds and seconds. The operators' attack rises the Digitone's way (slowly, then
    fast at the end); the DELAYs (A, B and the filter's) count 32nds of a beat at the part's tempo (16 is half a beat);
    a FADE of -16 takes 0.05 s, -32 about 0.8 s, -48 about 12 s. INIT is now the Digitone's init sound, so a sound
    started from INIT begins where one on the Digitone does. The factory FM TONE sounds were set again on the new
    times, so they keep their timing.
    • FM TONE sounds you saved before keep their numbers, so their envelopes now run on the Digitone's times: most
      times are longer than before, many much longer (an AMP DEC of 96 fell away in about 1.6 s and now takes about
      15 s), the amp's attack changes least. Set the times again by ear where a sound needs it.
    • Digitone sounds imported before: import them again. Their times were translated for FM TONE's old times, so
      they now play longer than on the Digitone; imported again, the times are taken as they are.
  • Digitone sounds into FM TONE. The device manager takes sound files exported from an Elektron Digitone (.dnsnd,
    several at once) and turns each into an FM TONE sound that you place in a slot like any other; the installer page's
    Sounds section imports them one at a time. The files are read on your computer: nothing is uploaded. The algorithm,
    the ratios, the operators' envelopes and levels, the filter and its type, the amp envelope, the LFOs and their
    destinations, DRIVE, the decimals and, where it can, the sound's octave are carried over; what does not translate,
    or only roughly, is listed beside each sound before you place it. An imported sound is close to the Digitone's, not
    the same: the file format was worked out from exported files, and the levels are approximations. The times are
    taken as they are, now that FM TONE's are the Digitone's.
  • Replace the factory sounds in one go. In the device manager, Replace factory puts the sounds you selected in
    the library (Digitone imports or any other sounds of one engine) in the places of that engine's factory presets, in
    order: PRESETS then steps through your sounds where the factory ones were. Each takes a user slot; more sounds than
    factory presets are added after them while free slots last. Restore factory order brings the factory presets
    back and keeps your sounds as added ones. The factory sounds stay in the firmware either way.
  • Factory presets back, or a clean start. In the device manager, Restore brings back the factory presets you
    select, all of one engine's or all of every engine's, and deletes your sounds that took their places; Delete all
    user sounds
    and Reset sounds to factory empty all 128 slots in one go and take the favorite marks off your own
    sounds (marks on factory presets stay). Each asks first, offers a backup on the spot, and Undo puts everything back
    while the page is open.
  • P5 in the device manager. P5 has its own tab: its programs in the order the FM-1 shows them, then your P5 sounds,
    which you can place over a program, restore, delete or keep as files like any engine's (P5's factory programs
    themselves cannot be saved as files), and every tab shows your favorite stars as the FM-1 does.
  • VA: a finer filter envelope and more sync rates. The filter envelope's depth (FENV) has two decimals, -64.00 to
    +63.99, so a small amount such as 0.04 is possible. A synced LFO's RATE is a list of 42 rates: 8, 4, 3, 2 and 1
    bars and 1/2 to 1/256, each dotted, straight and triplet, then 4, 3 and 2 ms. It moves one rate a detent; with OPT
    held it steps the straight ones. VA sounds from before 0.22 are converted exactly and sound as they did.
  • The delay at half rate. The delay now runs at 22.05 kHz, as the reverb always has: its repeats lose what is
    above 11 kHz, which is less than Tone takes at its default (judged on the unit by ear). It gives back 65 KB of the
    chip's buffer memory for what comes next. The longest time is still 0.74 s.
  • A Filter on everything (0.22-beta4). The FX layer's eighth page, Filter, is a low cut (Off, 20 Hz to 2
    kHz) and a high cut (200 Hz to 16 kHz, Off) on the whole sound after the effects, 6 or 12 dB an octave; turning a
    cutoff switches it on, KNOB 4 takes it out and back to compare, and SAVE held keeps it. It is Off on a new or
    updated FM-1. The "New since 0.22-beta3" section above has the details.

Playing and editing

  • Chord numerals in Key Mode. A new setting, Numerals, on the KEY layer's second page (hold KEY, turn SELECT,
    KNOB 4). It is off until you turn it on. With Key Mode on, the Chord view then shows the Roman numeral of the chord
    you are playing, in blue above the chord's name: in C major I for C, V for G, vi for Am. Capitals are chords
    with a major third, small letters chords with a minor third. The numeral is the degree you played: Transpose is
    left out, so the tonic chord reads I at any Transpose, while the name shows the chord you hear. Hold SAVE to keep
    the setting. Nothing you hear changes.
  • Snap: a key outside the scale plays a right note. A new setting, Snap, on the KEY layer's second page (hold
    KEY, turn SELECT, KNOB 3): Off, Scale or Chord. With Key plays Notes, a key outside the scale used to be a
    dead key: no sound, no MIDI. With Scale it plays the nearest note of the scale instead, going down between two
    (in C major C# plays C, D# plays D), the way the Scaler app remaps its keyboard. With Chord it plays the nearest
    tone of the chord that is sounding right now, yours or a playing loop's (over C major D# plays E and A# plays C),
    so a melody over a chord or a loop can hardly miss; when no chord sounds it does what Scale does. A key inside
    the scale always plays itself, and the snapped key behaves exactly as if you had pressed the key it was moved to:
    the chord keys, the bass, the performance modes, the looper and MIDI out all see that note. With Snap on, the keys
    outside the scale glow faintly instead of staying dark, and the note that sounds is lit on its own keys. With Key
    plays Chords those keys keep their sus chord on a neighbouring scale note, and Snap's cell is drawn grey. Hold
    SAVE to keep the setting. Asked for in GitHub issue 18.
  • The Full keyboard plays the key's chords. With Keyboard Full and Key Mode on, Key plays now decides what the
    27 keys do, as on the Chords keyboard: with Chords every key plays the chord that belongs on its note of the
    scale (in C major D gives Dm, G gives G) and a key outside the scale its sus chord on a neighbouring scale
    note, with the voicing you set on the Chords keyboard; with Notes the keys are single notes, with the notes
    outside the scale silent or snapped. Until 0.22-beta3 the Full keyboard played single notes whatever Key plays
    said. KNOB 1 on the view is still the octave there.
  • The knobs accelerate. A value knob turned slowly moves its finest step (1, or 0.01 on a value with decimals);
    turned quickly it moves up to a twentieth of the range a detent, so a quick turn of about one revolution crosses
    the whole range. The first two detents of a turn (after a second's rest, or a change of direction) always move the
    finest step, however quickly they come, so a nudge is always one; a spin speeds up from the third. Detents that
    arrive together, while the screen is busy redrawing, count the time they really took, so a slow turn stays slow.
    That is every value in the sound editor of every engine and most value knobs outside it (the effects, the BASS
    layer's level, Options > Velocity). Lists (presets, algorithms, named choices, the VA's sync rates) still move one
    item a detent, and so do the tempo, the PLAY menu's Level and the click level.
  • Hold OPT to snap. While you hold OPT (printed GLO), a value knob jumps to round values: 0, 16, 32 .. 127 on a 0
    to 127 value, steps of 8 on -64 to 63, whole numbers on a value with decimals, 8, 16, 32 and 64 on an LFO speed,
    octaves on a value in semitones. In the sound editor GLO is SHIFT: hold it, or tap it to keep snapping until you
    tap it again (snap shows in the title line). Until 0.21 SHIFT gave fine steps in the editor; a slow turn does that
    now. OPT's other jobs (with PRESETS, ALGORITHM, KNOB 1 and SELECT) are unchanged.
  • LATCH and a performance mode's Hold. Strum's Hold (KNOB 4 in the PERF layer) and the arpeggiator's light LATCH
    (printed LFO), since they hold the sound the way LATCH does. A tap on the lit LATCH now turns that Hold off and the
    notes stop; the next tap latches as usual. Until now LATCH could not release them.
  • The loop editor previews a step (0.22-beta4). With the loop stopped, turning PRESETS onto a step plays it as
    the loop would (its length, its voicing, its ratchet); an empty step is silence; while the loop plays you hear the
    loop. Nothing is recorded by it. The "New since 0.22-beta3" section above has the details.
  • Bigger rows under a curve. A screen with a curve over one row of controls draws that row at full size: P5's
    filter and envelope screens, CZ-1's envelope END screens (SUS and END) and WHEEL's ENV screen.
  • Dual Core is on by default. A new FM-1, and one whose settings you reset (Options > Reset Settings), now uses
    the chip's second core: the bass plays there with its own voices, and P5's chords get their eight voices. Updating
    does not change your setting
    : if your FM-1 had Dual Core Off, it still has. To turn it on, set Options > Dual Core
    to On and switch the FM-1 off and on. Should the second core keep the FM-1 from starting, the next start comes up on
    one core with Dual Core reading On · restart, so that you can switch it Off there.
    • After a crash beside the second core, Dual Core turns itself off. If the FM-1 crashes, hangs or gives the
      second core up while Dual Core is On, the screen says dual core off: crash after the restart (or hang, gave up), the line under Options > Dual Core gives the reason (off after a crash on 2 cores), Geek Out says c1 off · after a crash, and the FM-1 stays on one core over power cycles until you set Dual Core On again (a Reset
      Settings straight after keeps it Off too). Until 0.21 such a crash restarted the FM-1 with Dual Core still On, so
      it could crash again and again. If your FM-1 ever crashes or restarts while playing and Dual Core is still On, set
      it to Off and switch off and on.
    • With Dual Core On, the chip's regulator (VDC14) goes to 1.50 V before the second core starts (it was 1.45 V;
      the core voltage stays at 1.35 V). Some FM-1s crash with both cores running (issue #9 here; fm1-x0x #10 and #21,
      where fc79 and zednaked measured it), and every report agrees this voltage is what matters: at 1.50 V the affected
      units ran clean where 1.45 V still crashed. fm1-x0x ships 1.50 V since 1.0.7, the chip's data sheet allows 1.55 V
      and the stock M-VAVE firmware runs 1.60 V. With Dual Core Off nothing changes.
    • If your FM-1 turns Dual Core off by itself, please tell us (with fm1_install.py --debug): it means this unit
      does not run both cores at 1.50 V either, and that is worth knowing. --debug now also prints the last crash
      (what the crash screen showed for four seconds: the vector, the program counter, the return address, the debug
      unit's word and the uptime; kept until the FM-1 is switched off) and why the last restart happened.
  • Geek Out 2: the cores' load and the memory as meters. A sixth view, after Scope in the HOME cycle and in the
    view menu (hold HOME: the white keys D4 to B4 choose the view, Lock moves to C5; Options > View): four tall meters.
    CORE 0 (blue) is the audio engine's share of the first core over the last second, CORE 1 (orange) the
    second core's share when Dual Core is On (off, failed or gave up otherwise), RAM (white) and POOL
    (green) how much of the chip's two memory regions this firmware takes. The bars glide to each second's figure; a
    tick above a bar marks the second's peak. The title line says 2 cores or 1 core.
  • The screen is faster. Its bus runs at 20 MHz instead of 12, so a full redraw takes 46 ms instead of 77; nothing
    looks different (judged on the unit by eye).
  • Velocity and aftertouch from the keys. The FM-1's keys can sense how hard you play and how hard you lean on a
    held key, with no change to the hardware (the carbon contact under each key is read as a resistance; the idea and
    the method are Charles Vestal's, from his Velo and MONK-1 firmwares). Off until you turn it on: Options > Key
    Touch
    is Fixed (every key at Options > Velocity, as before), Dynamic (each chord at the velocity it was
    struck with) or Velocity + Aftertouch (and pressing harder on a held key moves the sound). Velocity Sens
    and Aftertouch Sens (Low / Mid / High) set how much. The keys that sense are F3 to C5; the top seven (C#5 to
    G5) follow the velocity you have been playing. A struck chord sounds a few milliseconds later than with Fixed,
    because the key is measured after it lands. With Key Touch on, every engine's level follows the velocity (FM6 and
    CZ-1 included), and with aftertouch the held pressure opens the filter; MIDI notes and aftertouch from USB do the
    same, and the keys' velocity and pressure go out over MIDI.
  • Expression, per sound. In the editor, the MOD group's last screen is EXPR: velocity (VEL) and aftertouch (AT)
    each to a destination (level, cutoff, shape, pitch, pan, the sends, the LFO's rate or vibrato, the engine's own
    parameters) by an amount from -64 to +63, saved with the sound. A sound that routes nothing uses the defaults
    (velocity to level, aftertouch to cutoff); turn the Dest or Amount cell to take them over, Dest OFF switches a
    default off.

Saving and favorites

  • 128 user sound slots, shared by all engines. Save up to 128 of your own sounds, of any engine, in any mix (until
    now 32). The slots are numbered U001 to U128. Your 32 sounds from 0.21 are copied into U001 to U032 the first time
    the FM-1 starts with 0.22, each with its own patch. The device manager and the installer page's Sounds section work
    with the 128 slots, and with a 0.21 FM-1's 32 as before.
  • P5 sounds can be saved. SAVE on a P5 sound offers Overwrite and Save as new like every engine: the whole program
    is kept with the sound, edited or not, and loading it brings back exactly what you saved, with its UNISON. The
    device manager exports and imports P5 sounds as sound files.
  • Naming a sound has a cursor. When you Save as new, SELECT moves a cursor along the name (turned right on the
    last letter it adds one), KNOB 1 changes the letter under it and KNOB 4 to the left deletes it, so a name can be
    written with the knobs alone. The keys still type, just after the cursor. The other knobs do nothing while you name
    a sound: PRESETS and ALGORITHM no longer change the sound under the name, and KNOB 2 no longer changes the last
    letter (that is KNOB 1 at the cursor).
  • Favorites, with a filter. Mark the sounds you like, then step through just those. Tap SAVE: in the save menu
    KNOB 4 marks the sound (right) or takes the mark off (left); nothing is saved or overwritten. Or mark while you
    browse: in the sound editor turn PRESETS and use KNOB 4 on the sound you are hearing. A marked sound shows a small
    yellow star before its name when you turn PRESETS or ALGORITHM. Factory presets, P5's programs and your own sounds
    can be marked (00 INIT cannot).
    • The filter. In the save menu KNOB 2 turns the favorites filter on or off. While it is on, PRESETS and
      ALGORITHM step through the favorites of the engine you are on and nothing else; a yellow line under the meter
      (favorites 03/07) shows that it is on. An engine without a favorite steps through all its sounds and says no favorites: all.
    • Chord or bass. KNOB 3 gives a sound a type: Both, Chord or Bass. With the filter on, Chord sounds
      are offered to the chord part only and Bass sounds to the bass part only. The type stays with the sound when you
      take its mark off and put it back.
    • The save menu now works like the Options: SELECT picks one of five entries (Overwrite, Save as new, Favorite,
      Favorites filter, Favorite type) and KNOB 1 changes the selected entry's value. KNOB 1 no longer moves between
      Overwrite and Save as new: use SELECT.
    • The marks, the types and the filter are kept by themselves and are part of a backup. With the command-line tool,
      --favorites prints them as text and --restore-favorites writes such a text back.
  • Fewer pauses when the FM-1 writes to flash. A flash write used to stop the sound for about 18 ms. The FM-1 now
    clears the space ahead of time, at power-on or after ten seconds of quiet, for your favorites, for what SAVE held
    keeps (the sounds and the state you come back to) and for the 128 slots, so those writes no longer pause the sound
    (a second favorite change soon after waits for a quiet moment; a second save soon after pauses as before).
    Changing an Option still pauses once, after you stop playing, as in 0.21, and so does saving a loop. Taking a
    backup, or reading the favorites from a computer, no longer writes anything to the FM-1.
  • Back up before you try another firmware. Some other FM-1 firmwares (Melodee, a remix of ChoralRoot) use the part
    of the flash where 0.22 keeps your favorites and your sounds. A full backup from the installer page or the device
    manager keeps everything; restore it when you come back.

Installing

  • A beta, opt-in. In the web installer tick Show beta releases under Other versions (the page remembers it in
    that browser), choose 0.22-beta4 and press Install. 0.22-beta3, 0.22-beta2 and 0.22-beta1 are still listed there
    too, below it. Without the tick the installer offers 0.21, the latest stable release, as before. On an FM-1 that
    runs a beta, "What is on my FM-1?" says so, and Install then writes 0.21 unless you choose a beta again. Options >
    Version reads ChoralRoot 0.22-beta4.
  • From 0.22-beta3, 0.22-beta2 or 0.22-beta1. Install 0.22-beta4 over it as over any version: your settings,
    sounds, loops and favorites stay as they are, and the Filter starts Off.
  • Going back to an earlier beta. It reads your settings, sounds, loops and favorites again, but it does not know
    the Filter and plays without it. If you had changed the Filter page (turning a cutoff is enough) before you last
    held SAVE, the earlier beta also starts with the effects' settings (the reverb's, the chorus's, the delay's) and the
    chord part's sends at their defaults, until you set them again there; your sounds, loops and the rest are
    untouched, and an FM-1 that never used the Filter goes back exactly as before. Once the earlier beta holds SAVE
    itself, the Filter is Off when you come back. 0.22-beta2 and 0.22-beta1 do not know Snap either: if Snap is
    Scale or Chord when you go back to one of them, it reads Key Mode as off, with Key plays and Keyboard at
    Chords, until you set them again there (nothing else is touched); with Snap Off it reads everything as before.
    Once that beta saves its settings (SAVE held, or an Option changed), Snap is Off when you come back.
  • A Single core package, for FM-1s that have trouble with Dual Core. The web installer offers it under
    Advanced > Hardware fallback: the same firmware, built so that the second core is never started. Choose it if
    your FM-1 crashes or freezes with the standard package. Options > Dual Core then reads 1 core build, and the
    version ChoralRoot 0.22-beta4 1-core (Options > Version shows it as 0.22-beta4 1-core, the line being too short
    for the whole name). Your settings, sounds, loops and favorites stay when you switch between the two.
  • Several FM-1s on one computer: the unit ID. Each FM-1 now has an ID of its own, 8 characters such as A1B2C3D4,
    read from its flash chip, so it stays the same through every install and reset. Options > Version shows it on the
    line under the version (unit ID A1B2C3D4). "What is on my FM-1?" shows it too and lists each FM-1 when several
    answer; Install, Back up, Restore and the Sounds then refuse, writing nothing, until only one is connected. The
    device manager asks which FM-1 to open and shows its ID. With the command-line tool, --info lists every FM-1 with
    its ID, and --unit ID makes any command use that FM-1 alone, through an install's restarts too.

Going back to 0.21

The installer offers 0.21 at any time: it is the default. 0.21 has none of the above, and:

  • Your sounds. 0.21 shows its 32 slots as they were when you updated: 0.22 never writes them. Sounds saved under
    0.22, in any slot, are not there; they are still in the 128 slots when you come back. Sounds you save under 0.21 are
    not copied by themselves when you return: the device manager's Import the 0.21 slots copies 0.21's 32 slots into
    U001 to U032 again, over what is there (U033 to U128 stay).
  • A sound saved under 0.22, taken to 0.21 (export it with the device manager, then place it on 0.21): P5 sounds
    cannot go, 0.21 has no P5. The device manager converts FM TONE and VA sounds to what 0.21 reads and says what
    changed: values with decimals are rounded, an FM TONE LFO aimed at one of the destinations new in 0.22 is switched
    off, an AMP DEC at INF becomes 0.21's longest decay, and a VA LFO synced to a rate 0.21 does not have takes the
    nearest one it has. An FM TONE sound's times keep their numbers, which 0.21 plays on its own times: most of them
    come out much shorter there.
  • The sound you left playing. A part left on a P5 sound starts on 0.21's default sound. 0.21 does not read FM TONE
    and VA sounds in their 0.22 form either: a part left on one may start on another sound, or on INIT.
  • Favorites. 0.21 has none: it ignores the marks, the types and the filter, and leaves them alone, so they are
    still there when you come back.
  • Numerals, Snap and Key Touch. 0.21 has none of them (its keys play at Options > Velocity, as before; its Full
    keyboard plays single notes). With Snap Scale or Chord it reads Key Mode as off, with Key plays and Keyboard at
    Chords, until you set them again there; otherwise nothing is lost or reset. It does not keep them: once 0.21 saves
    its settings (you hold SAVE or change an Option there), Numerals and Snap are off and Key Touch is Fixed, with
    Velocity Sens and Aftertouch Sens at Mid, when you come back.
  • The Filter. 0.21 has none: it plays without it. If you had changed the Filter page (turning a cutoff is enough)
    before you last held SAVE, 0.21 also starts with the effects' settings (the reverb's, the chorus's, the delay's)
    and the chord part's sends at their defaults, until you set them again there; nothing else is lost. Once 0.21
    holds SAVE, the Filter is Off when you come back.
  • Dual Core and the single-core package. 0.21 keeps the Dual Core setting as it is (On on an FM-1 that was new or
    reset under 0.22; Off if 0.22 turned it off after a crash) and has no single-core package: on an FM-1 that needs one
    core, set Options > Dual Core to Off on 0.21 straight after installing it. With Dual Core On, 0.21 sets the
    regulator to 1.45 V again, and it does not turn Dual Core off by itself after a crash.
  • The unit ID. 0.21 has none: the pages and fm1_install.py --info list an FM-1 on 0.21 without one, and
    --unit cannot choose it.
  • Geek Out 2. 0.21 has five views: with Geek Out 2 as the saved view (Options > View), it starts on the Chord
    view.
  • The knobs move in fixed steps again, and SHIFT in the sound editor gives fine steps again.
  • Backups. A backup made with 0.22 holds the 128 slots and the favorites; restored on 0.21 it brings back the
    settings, the FM6 and CZ-1 banks and the loops, but not the sounds or the favorites. A backup made with 0.21 restores
    on 0.22 into U001 to U032.

ChoralRoot 0.22-beta4 for the M-VAVE FM-1 (identity FM-1_920).

Install from the browser at https://quixotic7.github.io/ChoralRootFM1/ (Chrome or Edge, the FM-1 connected by USB), or with the command-line installer: python3 tools/fm1_install.py choralroot-0.22-beta4.fwsc.

choralroot-0.22-beta4-1core.fwsc is the same firmware on one processor core, for an FM-1 that crashes or freezes with the standard package (the installer offers it under Advanced > Hardware fallback). Settings, sounds and loops stay when you switch between the two.

SHA256SUMS lists both packages and their apps. The package holds three JieLi AC79 SDK files (Apache-2.0); LICENSE, LICENSING.md and LICENSES.zip carry every licence. Installing firmware is at your own risk.

Full Changelog: v0.22-beta3...v0.22-beta4

Don't miss a new ChoralRootFM1 release

NewReleases is sending notifications on new releases.