github hugelton/Felucca v1.6
Felucca 1.6

6 hours ago

Felucca 1.6

An update to 1.5.1 (1.5.5 and 1.5.6 were never released, so everything they were to bring is here too): your own UI colours from the web editor, a piano roll that follows the play position, and mostly for the sequencer and MIDI: conditional steps with FILL, EUCLID, DOUBLE and HALF in SEQ TOOLS, QNT SEQ+T, a MIDI channel per track, MIDI that shows (and can select) the track it plays; SELECT as a page knob, a mod wheel or the keys' velocity; FOLD for the PHASE engine, humanize in the MOD matrix and three more drum kits; plus PROJECT ERASE, CLEAN INIT, dimmer INV LEDs and two fixes. ⚠ A project that uses conditional steps does not open on 1.5 or 1.5.1, and a few new values read differently there: read Compatibility below before going back.

Install: the web installer (Chrome or Edge, USB) installs 1.6, over 1.5.1 or any earlier version.

Try it first: Felucca in your browser runs 1.6, the same firmware compiled to WebAssembly, with the panel on screen. Knobs turn with a horizontal drag too (PR #240), and a controller's CC 20–27 can turn the panel's knobs: tick the checkbox under the panel (opt-in; PR #182).

Display

  • CUSTOM: your own colours (Discussion #239). MENU > DISPLAY > COLOR has an eleventh value, CUSTOM, while one is stored. A palette is five colours (BG, SURF, TEXT, THEME, ACCENT); the rest of the screen's colours are derived from them as for the built-in palettes. Set them in the web editor (Settings > Custom palette): the FM-1 shows each colour as you change it, Save to device stores them (and uses them from then on), Revert drops a preview and Remove deletes the palette. The editor warns when colours are hard to read (a text colour too close to the background); it still lets you save them, and Remove, or MENU > DISPLAY > COLOR on the FM-1 (hold HOME for the menu), takes you back to a built-in palette. The palette is part of the settings (kept across power-off, in a full backup), not of projects.

Sequencer

  • The piano roll follows the play position (Discussion #238). On SEQ > STEP and DETAIL, when the pattern is longer than one screen (16 steps), the roll shows the page the playhead is on while the transport plays. Moving the cursor with the step knob (or PRESETS on DETAIL), editing the cursor's step or entering steps with the keys holds the roll where you are working; it follows again after 3 seconds, or when the playhead has gone once round the pattern. The DRUM grid, SEQ > AUTOMATION and HOME are as before. It only changes what is shown: the pattern and the cursor are untouched.
  • Conditional steps and FILL (Discussion #209). On SEQ > DETAIL, KNOB 1 (CHANCE) goes on past 100 % into the conditions, one per detent: 1:2 2:2 1:3 2:3 3:3 1:4 2:4 3:4 4:4 FILL !FILL.
    • a:b plays the step on loop a of every b loops of its track: 1:2 every other loop, 2:2 the others, 4:4 only on every 4th. So one pattern changes over two, three or four bars without switching patterns. Each track counts its own loops (one pass of its LEN), from PLAY and again from the start of each SONG section: in a section repeated 4 times, a 4:4 step is a fill on its last repeat.
    • FILL steps play only while GLO + E4 (FILL) is held, !FILL steps only while it is not: a snare roll on FILL steps, the plain backbeat on !FILL steps.
    • A step has a CHANCE or a condition, not both; a step whose condition is not met plays nothing, as a failed CHANCE. EDIT on DETAIL puts it back to 100 %. AUTOMATION lists them as rows like "STEP 05 COND 1:4", and STEP and the drum grid mark the step.
  • EUCLID in SEQ TOOLS (Discussion #186). Hold SEQ and press F4: a Euclidean rhythm on the selected track, written at once so you hear it while playing. KNOB 1 HITS, KNOB 2 STEPS (the cycle, repeated through LEN), KNOB 3 ROT; OCT+ keeps it, OCT− cancels. On a DRUM track it writes the selected lane; on other engines the hits keep the step's own note (or take the root). The result is ordinary steps, one undo.
  • DOUBLE and HALF in SEQ TOOLS (Discussion #85). Hold SEQ: D5 doubles the pattern (steps 1..LEN once more after them, LEN ×2, up to 64 steps), E5 halves it (the first half kept). The steps go whole: notes and chords, ties, CHANCE or condition, RATCH, NUDGE, VEL, with their locks and automation. One undo each.
  • QNT SEQ+T: the sequence follows TRN (#218). The SCL page's QNT has a fifth value after SEQ. SEQ+T is SEQ, and the sequence follows TRN too: each step's notes move by TRN, then snap onto the scale, as they play (the steps keep what was written), so turning TRN transposes the pattern and the keys together. With OFF, SNAP, WHITE and SEQ, TRN moves the keys (and the ARP) only, as before. Notes recorded with TRN at +3 already sound 3 up, so under SEQ+T they move again: record at TRN 0, then turn it.

MIDI

  • A MIDI channel per track (Discussions #202, #143). MENU > MIDI > MIDI IN has a new value, TRACK, and the MIDI tab has T1 CHANNEL … T4 CHANNEL: each 1–16, OMNI (any channel no other track has) or OFF (the track hears none). Drums on 10, bass on 2, a pad on 8 and a lead on 11, for example. Notes, pitch bend, the CC map, CC1 / CC11, aftertouch, the panic CCs and Program Change follow the track's channel, and the keys send on the selected track's channel. A channel two tracks have plays the first of them; a channel no track has is ignored. The channels are 1–4 until you change them, so switching to TRACK changes nothing at first, and they are saved with the project, like MIDI IN. CH1-4, CH5-8, CH9-12, CH13-16 and SEL are as before.
  • MIDI shows the track it plays (Discussion #208). A MIDI IN note lights its track's number for a moment: on the header (the selected track), HOME TRACKS / LEVELS and the MIXER.
  • AUTO SELECT (Discussion #208): MENU > MIDI > AUTO SELECT (OFF by default) makes the track the notes play the selected one, so the knobs edit what you are playing. It waits while the selected track is playing too (250 ms), so a chord or two parts played across tracks keep the selection instead of flickering. Not with MIDI IN SEL, nor while the menu or a layer is up, nor while you are editing the selected track. A device setting, not the project's.
  • SCREEN WAKE. With MENU > SCREEN OFF on, a MIDI IN note now turns the screen back on and keeps it on, so playing the FM-1 only from a keyboard or a DAW no longer leaves it dark. The note plays as usual. Clock, CCs and SysEx do not count, so a running clock or the editor does not keep it lit. MENU > MIDI > SCREEN WAKE: +MIDI (the default) or PANEL (the panel only, as in 1.5.1).

Panel

  • SELECT does more (Discussions #188, #84). MENU > CONTROL > SELECT: BPM (the default: the tempo, as before), PAGE, MODW or VEL.
    • PAGE: turning SELECT steps the pages of the family shown, one page per click: right as a tap of the family's button, left back, round (HOME, MIXER and CLOCK are one round).
    • MODW: SELECT is the selected track's mod wheel, 0–127, as MIDI CC1 is (so MODW in the MOD matrix follows it: MODW → VIB, → CUT …), and it is sent as CC1 on the track's channel, where the keys' notes go.
    • VEL: SELECT sets the velocity the panel keys play at, 1–127 (100 from power-on, as before): heard, sent with the notes and recorded.
    • With MODW and VEL the value shows in the header; what you play is not saved (the setting is). With any of the three, the tempo is GLO + SELECT, CLOCK's KNOB 1 or GLO's TAP.
  • SAVE > PROJECT: ERASE (Discussion #199). KNOB 2 picks ERASE, OCT+ asks "ERASE PROJECT B?" with the project's name, OCT+ again erases the slot. Only while stopped; written as a save is, so a power cut leaves the project or an empty slot, never half of one.
  • CLEAN INIT (Discussion #190): the engine's basic sound with nothing added: E1–E8 at the engine's defaults, no FX sends (DIST, CHO, DLY, REV), INSERT OFF, no LFO / ENV / MOD amounts, no GLIDE, POLY, a neutral ENV (DRUM keeps its kit's); FM6 the init voice, a single sine. SAVE > TOOLS: turn KNOB 2 one click past INIT; in the EDIT layer F5, the key after INIT. It asks "CLEAN INIT SOUND?"; one undo. INIT is as it was (the engine's first preset).
  • LEDS: INV LO and INV HI (Discussion #212). MENU > DISPLAY > LEDS has two more values after INV. They work as INV (what shows nothing lit, what is active dark), but the lit LEDs are dimmed to a steady low level (HI about 1/8 of full, LO about 1/12), so INV no longer glares in a dark room.
  • The header centres the play state, the metronome and the tempo as one group (only the tempo's digits were centred, so the group sat a little left).
  • OCT− is as in 1.5.1. "Hold OCT− and turn a knob to reset that value" (Discussion #205) was tried and is not in 1.6: it needed OCT− to shift the octave when let go instead of when pressed, and that changed a control everyone already uses. OCT− shifts the octave on the press, as always.

Sound

  • PHASE has FOLD (Discussion #104). EDIT 2's fourth value (E8, empty until now) is FOLD, a wavefolder on each voice after the waves and LINE, before SUB and the amp. Turned up it first rounds the wave (a soft saturation), then folds it back on itself, up to four folds at 100 %: brighter and more metallic, the tone moving with DCW and the envelope on it. It is a sine fold (no sharp corners), and above A4 it folds less the higher the note, so the top keys stay clean instead of aliasing; turning it on or off glides over a moment, without a click. 0 is off and the default: every PHASE sound, the presets included, plays exactly as before, and FOLD only costs CPU while it is above 0.
  • Humanize: VEL and TIME in the MOD matrix (Discussion #213). Two new destinations after DEPTH, on LFO > LFO DEST > MOD. VEL moves each note's velocity (RAND → VEL: every note, and every note of a chord, its own). TIME plays a sequencer step up to 30 ms late (RAND → TIME: a loose timing; S&H or an LFO for a drift). They are read at the note-on and the step's start, so they cost nothing while the sound plays, and they are saved with the sound like every slot.
  • Three more drum kits (Discussion #216). DRUM's KIT has DEEP, TIGHT and PERC after 77, put together from the five kits' own pieces (no new drum voices, the same CPU as those kits), and PRESETS lists them as DEEP KIT, TIGHT KIT and PERC KIT after DRUM KIT. DEEP: a swelling kick tuned down, a long cymbal; TIGHT: short and dry; PERC: a conga on TOM, claves on RIM, a two-sine bell. MIDI Program Change 6–8 picks them on a DRUM track.

Fixed

  • A flash save no longer flashes the panel (#236). Saving to flash (the autosave about 10 s after you stop playing, a changed setting) stops the LED scan for about 17 ms, and with it stopped one column of LEDs stayed lit at full strength while the rest went dark, which showed as a quick flash across the panel. The LEDs now go dark for that moment instead, so it is a brief dimming at most. The save itself is as before; MENU > SYSTEM > RESTORE LAST OFF writes no autosave.
  • PAN reads −100 … +100 % (Discussion #199): its top read +98. The same for the other bipolar values (MOD AMT, the ENV and LFO DEST amounts, FM6's MLVL and MEG). Only the display changed: the stored values and the sound are as before.
  • SEQ > AUTOMATION: KNOB 3 no longer jumps the selection a row (Discussion #199) while it changes a record's parameter. A step's records are now listed in the order they were added, so a row stays where it is.

Compatibility

1.6 opens everything 1.5.1 and earlier saved, and plays it as before. Going the other way, to 1.5.1 or older:

  • ⚠ Projects using conditional steps cannot be opened by 1.5 or 1.5.1. There the slot looks empty; its data stays in flash until something is saved over it there. The web editor warns when you restore a backup that holds such a project onto a firmware without conditions (you can skip those projects or cancel). Before going back, clear the conditions (EDIT on DETAIL, or turn CHANCE back to 100 %), or keep a backup.
  • ⚠ A project saved with MIDI IN TRACK plays there with a block of channels: CH5-8, CH9-12 or CH13-16 when its four channels are such a block in order, else CH1-4. Saving it there drops the per-track channels.
  • ⚠ FOLD is ignored there: a sound saved with FOLD plays without it. And on 1.6, a MOD route or a MIDI LEARN CC set to E8 of a PHASE track now moves FOLD (up to 1.5.1 it did nothing): check such routes on PHASE tracks if a sound changes.
  • ⚠ A MOD slot set to VEL or TIME reads as DEPTH there (an older firmware takes a destination it does not know as its last one), so the sound plays with that slot on the LFO's depth, and keeps it so if saved there. Set such slots to OFF before going back, or keep a backup.
  • ⚠ DEEP, TIGHT and PERC play the 77 kit there, and saving there keeps 77.
  • ⚠ QNT SEQ+T reads as SEQ there (the sequence no longer follows TRN).
  • LEDS INV LO / INV HI read as INV there, and SELECT MODW / VEL read as BPM (as PAGE does).
  • CUSTOM: 1.5.1 and older keep a stored custom palette in the settings when you restore or save there (it is in spare bytes of the settings) and show the built-in palette that was in use before; the palette comes back on 1.6.
  • Unchanged: the formats of sounds, user presets and settings, every engine and the earlier kits, and every saved sound with FOLD at 0. Every new setting defaults to the earlier behaviour (SCREEN WAKE's +MIDI default only matters with SCREEN OFF on).

Web

  • Custom palette card in the web editor's Settings: five colour inputs, a sample of what the FM-1 derives from them, a live preview on the device, and a warning for colours that are hard to read (see Display).
  • The web editor at webapp/editor (developed in Felucca-WebApp) knows 1.6: a step's condition on CHANCE and the step's badge, MIDI IN TRACK, T1–T4 CHANNEL, AUTO SELECT, SCREEN WAKE, SELECT (BPM, PAGE, MODW, VEL) and LEDS INV LO / HI in Settings, QNT SEQ+T, the MOD destinations VEL and TIME, the kits DEEP, TIGHT and PERC, and the bipolar values to ±100. Reload the page so it is the new one.
  • One project to a file and back (Discussion #70). On the PROJECT tab every slot (A–D) has EXPORT (that project to a file) and IMPORT (a project file into the slot you choose; it asks before overwriting one). Your other projects, sounds and samples stay as they are. A project that needs a newer firmware (conditional steps, for example) is refused before anything is sent.
  • Sample import: RATE and BITS (Discussion #203). When you drop files into a user slot, pick the slot's RATE: 22.05 kHz (as before), 44.1 kHz (a short hit at the file's full rate), 11.025 or 5.512 kHz (a half or a quarter of the size, darker and grittier); and BITS: 16 (as before), 12, 8, 6 or 4, a lo-fi crush (the size stays). The size shown is what the slot will take, and the preview plays it as it will be stored. The defaults are as before.
  • Backup restore knows conditional steps: restoring a backup with projects that use conditions onto firmware without them (1.5.1 or older) tells you which projects, and you can skip them or cancel; they are never sent as they are.
  • The installer installs 1.6; Try Felucca at webapp/try runs 1.6.
  • ⚠ The full backup still does not include the FM6 voice bank: keep the .syx file to send it again.

Coming from 1.4.1 or earlier

Read 1.5's notes first: Felucca 1.5, then 1.5.1. Everything there holds for 1.6, among it that projects saved by 1.5 or later do not open on 1.4.1 or earlier.

Going back

  • To 1.5.1 or 1.5: first clear the conditional steps of every project you want to open there, and set MOD slots on VEL or TIME to OFF, or keep a full backup (see Compatibility). There, projects with MIDI IN TRACK play with a channel block (saving them drops the channels), FOLD is ignored, DEEP / TIGHT / PERC play as 77, SEQ+T is SEQ, INV LO / HI are INV; AUTO SELECT, SCREEN WAKE and SELECT are not there (SELECT is the tempo). On 1.5 a dotted delay TIME plays as 4BAR, as from 1.5.1.
  • To 1.4.1 or earlier: as from 1.5, see 1.5's Going back.

Thanks

  • Steve Pinkham (spinkham) for turning the emulator's knobs from a MIDI controller (PR #182), and ugai for the Try page's horizontal knob drag (PR #240)
  • BalalalalaDigiDev for the custom UI colours idea (Discussion #239), and etyrnal for the piano roll that follows the play position (Discussion #238)
  • oMauNaProducer for the flicker report and for finding that RESTORE LAST was behind it (#236)
  • gospodindilly-ops for conditional trigs and FILL (Discussion #209), the Euclidean generator (Discussion #186), the sequence transformations (Discussion #85), the DSP proposal that FOLD comes from (Discussion #104), deleting a project (Discussion #199) and a more useful SELECT knob (Discussions #84, #188)
  • planist79 for SELECT as a page knob (Discussion #188), a clean init sound (Discussion #190), selecting the track MIDI plays (Discussion #208), free MIDI channels per track (Discussion #143) and the OCT− reset idea (Discussion #205)
  • Muzik4Machines for a MIDI channel per part (Discussions #202, #143), and rusbayzvuk-maker for backing it (Discussion #143)
  • jsmonzani for humanize in the MOD matrix (Discussion #213) and SELECT as velocity and mod wheel (Discussion #84), and tradiuz for the SELECT options (Discussion #84)
  • Wulgaren for TRN and the sequence (#218) and single-project export and import (Discussion #70)
  • oMauNaProducer for the PAN and AUTOMATION bugs (Discussion #199)
  • etyrnal for the sample rate and bit depth on import (Discussion #203), and positionhigh for short drum hits at the full rate there
  • stanleygurvich for dimming INV (Discussion #212)
  • ryiano for more drum kits and presets (Discussion #216)

Files

  • felucca-1.6.fwsc: the package the web installer installs (identity FM-1_916, version v1.6)
  • felucca-1.6-app.bin: the firmware app alone

Licences (as of this release): LICENSE (GPL-3.0-only) · LICENSING.md · LICENSES/ · sample attribution. The package holds three unmodified JieLi AC79 SDK files under Apache-2.0 (Apache-2.0.txt). The source of this release is the tag v1.6.

SHA-256 felucca-1.6.fwsc (610,086 bytes): b2c1317b89d8d701c832627ae7e916785660e32a88422d57417293c8ec8679f8
SHA-256 felucca-1.6-app.bin (508,108 bytes): a75be287effbb7ec473fbb4e40337c3531795093a816d3eec44613fb1987136d

Don't miss a new Felucca release

NewReleases is sending notifications on new releases.