github Quixotic7/ChoralRootFM1 v0.24-beta3
ChoralRoot 0.24-beta3

latest release: v0.24-beta3-smk37
pre-releaseone hour ago

ChoralRoot 0.24-beta3 is the third beta of 0.24: it fixes SAFE MODE's Flash Data, which now really clears your saved
sounds, makes FM TONE lighter on memory with the same sound, and is built for the M-Vave SMK-37 too, on top of
0.24-beta2's GRAIN engine and 0.24-beta1's velocity on the top seven keys, poly aftertouch out and the touch on Geek
Out 2. Like the earlier betas it is opt-in: the web installer offers it only when you tick Show beta releases under
Other versions, and 0.23 stays its default. A beta may have bugs (please report them on GitHub), and the next stable
release, 0.24, replaces it. What is new since 0.24-beta2 comes first; after it are the whole of 0.24's notes so far,
so this page is all you need. Updating from 0.24-beta2, 0.24-beta1 or 0.23 keeps your settings, sounds, loops and
favorites; going back is possible at any time (the last section says what it means).

New since 0.24-beta2

  • SAFE MODE's Flash Data clears your saved sounds too. Since 0.22 the saved sounds (the 128 user slots) live in an
    area of their own, and Flash Data left that area out: it erased the settings, the favorites and the loops but kept
    every saved sound. It now erases them as well, as the manual always said, so a unit started clean really is clean.
    Back up first (the device manager's Backup) if you want them again afterwards. Nothing else about SAFE MODE changes,
    and nothing is erased unless you choose Flash Data there.
  • FM TONE uses less memory, with the same sound. It used to keep a second copy of its HARM waves in the working
    memory; it now reads them from the firmware, sample for sample the same values, which frees about 27 KB of working
    memory for what comes next (more engines or effects). Every FM TONE sound plays exactly as before. The cost: a dense
    chord on a preset that uses HARM (GLASS PAD, DRONE, HOLLOW, CLAV, STRINGS, SQUARE LEAD) takes slightly more of the
    processor, up to about 9 % more for FM TONE's part of the work; the presets without HARM cost the same or a little
    less.
  • ChoralRoot for the M-Vave SMK-37. Community test builds of this beta exist for the SMK-37 Pro, SMK-37 Elite,
    MKE-P37 and Starrykey 37 Play: SMK37.md.

GRAIN (new in 0.24-beta2)

GRAIN plays clouds of short grains, a few milliseconds to a few tenths of a second each, read out of two pieces of
sound that it makes itself. There are no samples to load: a GRAIN sound stores its knobs, and the engine renders the
material from them whenever the sound loads or a knob of the material turns.

  • Two sources, A and B. Each is about three quarters of a second of sound made by one of eight families, set by
    four knobs: TYPE (PLUCK, a plucked string; DRONE, detuned saws under a moving filter; BELL, two-operator FM;
    BREATH, filtered noise; CHIRP, sweeping sines; SWEEP, a driven saw through a sweeping filter; VOWEL, a voice moving
    round A E I O U; METAL, inharmonic partials with a strike), TONE (the brightness or colour within the family),
    MOTION (how the material moves over its length: decay, sweep, vibrato, strums) and SEED (a variant: the same
    SEED is always the same material). Turn one and that source is made again in a moment while you play; the grains
    on the other source keep sounding.
  • MORPH goes from A to B. It is a granular blend, not a crossfade: each grain reads A or B, and MORPH is the share
    that read B, so in between the two materials interleave in the cloud. ENV 2 or an LFO on MORPH moves between them
    (the preset STRUM strikes on B's METAL and settles into A's PLUCK).
  • The grains: SIZE (their length), DENS (how many start each second), POS (where in the material they
    start) and SPRD (how far round POS they scatter); RAND (random detune, and some grains played in reverse),
    PITCH (-24 to +24 semitones) and SCAN (POS moving through the material by itself: right of 0 forward, left
    of 0 in reverse, very slowly near 0 and faster further out; 0 holds still).
  • The VA's filter (CUT, RES, FTYPE round low-pass, band-pass, high-pass and notch, DRIVE, KTRK), ENV 1 for
    the volume, ENV 2 a second envelope for modulation, two LFOs (RATE, WAVE, DEPTH, FADE; each can sync to the
    tempo with the VA's divisions) and an eight-slot modulation matrix: sources ENV1, ENV2, LFO1, LFO2, VEL, KEY,
    RAND and MODW (the mod wheel, CC 1 over MIDI), destinations MORPH, POS, SIZE, DENS, SPRD, RAND, PITCH, SCAN, CUT,
    RES, FTYPE, DRIVE, the LFOs' rates and depths and AMP. Amounts work as on the VA: tenths below 6, whole numbers from
    6. Quick modulation works too: hold ENV or LFO and turn a knob.
  • The pages. In the sound editor: OSC has the two screens SRC (SRC 1 and SRC 2: TYPE, TONE, MOTION, SEED) and
    GRAIN (GRAIN: SIZE, DENS, POS, SPRD; GRAIN+: MORPH, RAND, PITCH, SCAN); FILT the filter under its curve (FILTER,
    FILTER+); ENV ENV 1 · amp and ENV 2 · mod; LFO the two LFOs and their SYNC; MOD the eight slots (SRC, DST,
    AMT), then EXPR as on every engine.
  • The wave band. On the SRC and GRAIN screens a band across the screen draws the material: on SRC the source of
    the active row, made anew when its render lands; on GRAIN both, A in blue and B in orange, each as bright as MORPH
    gives it, with POS as a white line (it moves with SCAN), SPRD as a green span round it, and every sounding grain as
    a bright line travelling over its source.
  • Eight presets after INIT: CLOUD PAD, SHIMMER, BREATH PAD, FROZEN, STRUM, SWARM, ACID DUST and GLITCH. GRAIN
    comes after WHEEL in the engine picker and under OPT + PRESETS.
  • Chord and bass on GRAIN share the material. The FM-1 holds one pair of sources: the chord part's (or, when only
    the bass is on GRAIN, the bass part's). With both parts on GRAIN the bass plays the chord sound's A and B with its
    own grain knobs, MORPH, filter and envelopes.
  • Notes up to C6 are pitched from the material; above C6 they stop rising.
  • The device manager and sound files carry GRAIN sounds as any engine's.

Also new: the firmware is smaller (about 35 KB of flash freed to make room for GRAIN), with no change to any sound
or screen.

Playing (new in 0.24-beta1)

Nothing here changes until you turn Key Touch on: with Options > Key Touch at Fixed (the default) every key plays
at Options > Velocity, as in 0.23.

  • The top seven keys sense velocity. With Key Touch on (Dynamic, Vel + Aftertouch or the new Vel + Poly AT),
    C#5 to G5 now play at the velocity you strike them with, as F3 to C5 do; until 0.24-beta1 they followed the velocity
    you had been playing. All 27 keys sense velocity now.
    • These seven are read another way (the method is Charles Vestal's, from his MONK-1 and CTL-1 firmwares), which
      tells a light touch from a firm press less finely than the other keys can: a touch plays softly, a light press in
      the middle, and a firm press at or near the top.
    • They have no aftertouch: leaning on one of them moves nothing. Options > Velocity Curve does not change them
      (it shapes F3 to C5); Velocity Sens works on all 27.
  • Key Touch: Vel + Poly AT. A fourth value of Options > Key Touch, after Vel + Aftertouch. The keys play and sound
    as with Vel + Aftertouch, and the pressure goes out over MIDI (MIDI Perform and MIDI Bass) as polyphonic
    aftertouch
    , to each note that sounds, on the channel it was played on, instead of as channel pressure. Every note
    gets the same value: a chord is one finger's. Saved automatically, as the other Options.
  • Geek Out 2 shows the keys' touch. While Key Touch is on, the view's title line reads the last key's velocity and
    the pressure now, such as VEL 73 AT 42, in place of 2 cores or 1 core (AT stays 0 with Dynamic, which senses
    no pressure). With Key Touch at Fixed it says 2 cores or 1 core, as before.
  • With Key Touch on, notes sound a few milliseconds later than in 0.23. While the top row is read, the other keys
    are read less often, so a key on F3 to C5 waits about 13 ms after it lands for its velocity instead of about 9; the
    top seven now wait a few milliseconds for theirs (they played at once before). With Key Touch at Fixed nothing waits,
    as before.

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.24-beta3 and press Install. Without the tick the installer offers 0.23, the latest stable
    release, as before. On an FM-1 that runs the beta, "What is on my FM-1?" says so, and Install then writes 0.23 unless
    you choose the beta again. Options > Version reads ChoralRoot 0.24-beta3.
  • From 0.24-beta2, 0.24-beta1 or 0.23 nothing needs doing: your sounds, loops, favorites and settings are all
    there (from 0.24-beta1 or 0.23, GRAIN is new in the engine picker).
  • From 0.22 or older. The beta brings everything of 0.23 with it: 0.23.md says what changes (FM TONE
    sounds at the Digitone's own levels play about 6 dB quieter, as loud as the other engines) and, from 0.21 or older,
    0.22.md "Installing" what the first start does.
  • A Single core package, for FM-1s that have trouble with Dual Core. The web installer offers it under
    Advanced > Hardware fallback, as for 0.23. Options > Version then reads ChoralRoot 0.24-beta3 1-core (shown as
    0.24-beta3 1-core, the line being too short for the whole name).

Going back to 0.24-beta2, 0.24-beta1 or 0.23

The installer offers 0.23 at any time (it is the default), and 0.24-beta2 and 0.24-beta1 under Show beta releases.
0.24-beta3 stores nothing differently from 0.24-beta2: your sounds, loops, favorites and settings stay as they are on
any of them.

  • Going back to 0.24-beta2 changes nothing for your data. FM TONE sounds the same. Only SAFE MODE's Flash Data
    is the old one there: it keeps the saved sounds.
  • Going back to 0.24-beta1 or 0.23, the same, plus what an older version does not know:
    • GRAIN sounds you saved stay in their slots, untouched, but do not play as GRAIN there. 0.24-beta1 and 0.23 have
      no GRAIN engine. Each GRAIN sound you saved shows at the end of the VA's list under its own name and plays the VA's
      plain starting sound, with the message engine retired: init sound. Nothing is rewritten or deleted: back on
      0.24-beta3 (or 0.24-beta2) the sound is GRAIN again, exactly as you saved it. Two things do replace it: saving over
      that slot on the older version (it then holds what you saved there), and deleting it. Renaming it keeps the GRAIN
      sound.
    • A part left on GRAIN (the chord or the bass sound when you go back) starts on FM6 TINE EP or VA DEEP SUB
      there, as on a new unit.
    • Backups. A backup taken on 0.24-beta3 restores onto 0.24-beta2, 0.24-beta1 and 0.23 with its GRAIN sounds kept
      as they are (they play as above on 0.24-beta1 and 0.23, and as GRAIN again on 0.24-beta2 and 0.24-beta3). 0.22 and
      older refuse a group of ten sounds that holds a GRAIN sound, so restore such a backup on 0.23 or newer.
    • Going back to 0.23 is also the same as from 0.24-beta1 for Key Touch:
      • Vel + Poly AT. 0.23 reads it as Key Touch Fixed: its keys play at Options > Velocity, while Velocity Sens,
        Aftertouch Sens, the Velocity Curve and Numerals keep their values. Once 0.23 saves its settings (you hold SAVE or
        change an Option there), Key Touch is Fixed when you come back; until then it is still Vel + Poly AT. To keep the
        keys sensing on 0.23, set Key Touch to Vel + Aftertouch before going back.
      • The top seven keys follow the velocity you have been playing again, as in 0.23.
      • Geek Out 2's title line says 2 cores or 1 core again, with Key Touch on too.
  • Going back to 0.22 is the same, plus what 0.23's notes say (0.23.md, "Going back to 0.22").

ChoralRoot 0.24-beta3 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.24-beta3.fwsc.

choralroot-0.24-beta3-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.24-beta2-smk37...v0.24-beta3

Don't miss a new ChoralRootFM1 release

NewReleases is sending notifications on new releases.