Skip to content

Releases: thomasgregorymarsden-code/Felucca-opx

OPX 0.2.0

Choose a tag to compare

@thomasgregorymarsden-code thomasgregorymarsden-code released this 29 Oct 17:34
e6cc849

Two firmwares, each with its own installer, editor and simulator:

  • OPX (opx-0.2.0.fwsc, identity FM-1_9001): Felucca 1.5.1's four parts with the OPX engine.
  • OPX Solo (opx-solo-0.2.0.fwsc, identity FM-1_9002): one OPX part with the memory of all four: every opsix effect, SHORT DELAY to 300 ms.

Installers: OPX https://thomasgregorymarsden-code.github.io/Felucca-opx/webapp/installer/ · OPX Solo https://thomasgregorymarsden-code.github.io/Felucca-opx/opx-solo/webapp/installer/

  • OPX Solo's factory patches use the new effects and voice settings (F9 onward; F1-F8, shared with OPX,
    unchanged): rotary speaker on PERC ORGAN and ROCK ORGAN; chorus on E.GRAND, POLY KEYS, STEEL PAN, VOX LEAD, the
    pads and POLY SYNTH; the string machine's ensemble (U.ENS) on STRINGS, SLOW STRGS, VIOLINS, MS STRINGS; shimmer
    reverb on SHIMMER, HALO, SPACE WIND; spring on FUZZ GTR and LASER; tape echo on LO-FI KEYS, FAT LEAD, SOFT LEAD,
    SYNC LEAD and DUB CHORD; tempo delays on KALIMBA, SQUARE LD, BELL LEAD, RANDOM PAD, BLIP; early reflections on
    TRUMPET, SAXOPHONE, CLAP; GRAIN on COMPUTER and GLITCH. Glide on the mono leads; legato slides on ACID BASS, 808 SUB,
    FRETLESS, TROMBONE, CELLO. A patch with its own delay or reverb has its DELAY send at 0 (that bus is silent while
    it plays). Levels re-matched with PROG LEVEL (within ~1 dB of before). opx_test --audit estimates each patch's
    share of the processor (COST: six notes and the effects, from the device benchmark); every Solo patch is under ~66
    but AIR PAD (~74, unchanged: two FILTER-mode operators).

  • Voice section (M6): each OPX patch carries the opsix's PROG LEVEL, BEND UP / DOWN and VOICE page (ASSIGN,
    GLIDE and its time, UNISON voices, DETUNE, SPREAD). Picking a patch (SLOT, PRESETS, the editor) sets the track's
    VOICE settings from it; OPERATORS' VOICE rows store them back into the patch. PROG LEVEL counts from the INIT's
    -6.0 dB (every earlier patch plays as before); BEND sets an OPX track's pitch-wheel range; UNISON plays the patch's
    voice count (up to the engine's six) and DETUNE spans 0-200 cents. OPERATORS' P.PITCH section is now PROG, with
    BEND +, BEND - and LEVEL; the web editor has a "Level and voice" section. Factory patches marked mono now store
    ASSIGN MONO.

  • OPX Solo: the operators' SHORT DELAY reaches the opsix's 300 ms (OPX: 16.5 ms, as before). Up to 64 ms it
    runs at the full rate; longer times at a lower one, the repeats darker (300 ms: ~4 kHz wide).

  • OPX Solo plays every effect: the delays (DLY, DLYBPM, PDLY, PDLBPM, TDLY, TDLBPM), REF, REVERB, SHVERB, SPRING
    and GRAIN, in Felucca's DELAY bus's memory: while one of them is on, the patch's DELAY send is silent. Up to three at
    once share it (each delay's longest time shrinks as more share; past what fits the echoes run at a lower rate,
    darker). The INIT patch's FX3 REVERB HALL is now heard there. OPX (four parts) is unchanged. The benchmark has a row
    for each.

  • OPX Solo plays six more effects: CHO, U.ENS, FLNG, FLNBPM, RTRY and ENH (a 21 ms line per FX slot, 12 KB). The
    INIT patch's FX1 (CHO) is now heard there. OPX (four parts) is unchanged: the 13 cheap
    types. The web editor marks the types the connected firmware plays.

  • Renamed: Felucca-OPX is now OPX, Felucca-OPX Solo OPX Solo (the firmware's screens, the web pages, the
    documents; the release files opx-X.Y.Z.fwsc, opx-solo-X.Y.Z.fwsc). The repository keeps its name, the package
    identities (FM-1_9001, 9002) and the version strings stay.

  • A logo on the power-on screen: an FM wave disc (six rings, each a sine whose phase another sine bends, cyan to
    red, round a white disc with OPX), the firmware's name, its version and Felucca's maker. Drawn, not stored: no image
    in flash. In colour in every palette; ABOUT shows it small beside the title (still). On the power-on screen it is
    animated: the rings fade in from the centre as circles, take on their lobes and bends, and the bends then travel
    round the rings for 3 s, ending on the still logo, which holds 0.25 s. The screen stays 3.25 s (Felucca's splash: 0.4 s),
    the keys silent under it as before. MENU > ANIM OFF: the still logo.

  • A CPU meter in the header: the audio's share of the processor, after the REC mark, updated four times a second;
    grey, the accent from 70 %, REC's red from 85 % (where the audio drops a voice). The figure alone when a slot letter
    leaves no room for the %.

  • 126 factory patches in OPX Solo, eight in OPX. Original sounds in the categories opsix users'
    soundsets have: keys (EPs, a piano, clavinet, harpsichord, organs), plucks, bells and mallets, basses, leads, brass
    and winds, pads and strings, drums, effects, chords and sequences. They use the opsix's tricks: operator modes (ring
    modulation, wave folder, band-pass operators as formants, the comb), fixed-frequency operators for drums, chords on
    one key from carrier ratios, fake hard sync from a pitch envelope, tempo-synced gating, sample-and-hold. Every patch
    gives the MOD WHEEL something to do; their levels are matched (opx_test --audit). OPX has the first
    eight (its flash has room for no more, with ~1 KB to spare): the seven of before and DRAWBARS. The
    bank is tools/opx_factory_bank.py (tools/opx_factory.py compiles it to the firmware's tables): the place to
    add or change a factory patch.

  • SLOT's values are fixed: F1–F126 0–125, OWN 126, INIT 127, in both firmwares (OWN and INIT followed F7 before).
    OPX's knob skips the F numbers it lacks. A project or preset from Solo whose SLOT is one of those comes back
    with its own copy of the patch as OWN (every project with an OPX track carries its patches), or F1 without one. A
    sound of 0.1.0 or before with its own patch (OWN was 7) is OWN again; one without its patch plays F8.

  • Fix: DIST and G.AMP could leave a constant offset after the sound stopped (a high-pass's rounding: up to ~1 %
    of full scale); the 3-band EQ and DIST's EQ could hold one too at low frequencies (their filter carries its rounding
    now). G.AMP has DIST's DC high-pass. The main filter's 24 dB types (and the operators' MG filters) round instead of
    truncating: at a low cutoff they held ~1 % DC.

  • MENU > INFO: a long version string (Solo's "v0.2.0-dev-opx-solo") is shown smaller, clear of FIRMWARE.

  • ABOUT: the copyright lines are "OPX (C) 2026 Tom Marsden" and Felucca's "(C) 2026 Leo Kuroshita, Hügelton
    Instruments" (kept, as the GPL asks); Solo's title fits the screen.

  • Fix: the installers did not find an FM-1 running an FM-1_OPX-… build. They read the identity as letters, an
    underscore and digits (FM-1_900), so the new identities failed: an install ended with "did not come back", and the
    next one with "not found". The web installer and tools/fm1_install.py now take letters, digits, dots and dashes.

  • Fix: the benchmark crashed OPX Solo (FELUCCA CRASH, vector 1: a divide by zero). It set track 1 to FM6
    for the idle mix, which in Solo is a reserved engine with no presets. It now uses OPX there, and an engine without
    presets is handled.

  • The site links its builds: every installer, editor and simulator page has a bar linking the installer, editor
    and simulator of the latest release and of the development build, for OPX and OPX Solo (the
    development builds under dev/, Solo under opx-solo/; each with its version). A release now carries its simulators
    and editor (opx-X.Y.Z-web.zip), so the release's pages are the release's own; Solo has a simulator.

  • Web installer: the log of an install is a box of its own height that follows its newest line (scroll up to read
    back), not a page growing by 2,300 lines. The progress bar follows the bytes written (the check 0–3 %, the write
    3–99 %): the update loader reads the image about twice (measured on an FM-1: 1.95 times its size in 2,323
    requests), so a bar of one image's worth was full halfway. The log's last line of the write says what was sent.

  • The factory patches use the new features. E.PIANO: PAN (a suitcase tremolo), 3EQ, MOD WHEEL brightening its
    tine. BELL: 3EQ, a slow PAN. FM BASS: LPF 24 plucked by EG2 x velocity, COMP. BRASS: an EG2 swell on LPF 12 x
    velocity, delayed vibrato (LFO1 faded in, PROG PITCH). SAW LEAD: LPF 24 with an EG2 sweep, vibrato on the MOD
    WHEEL, DIST. LOOP PAD: LPF 12 with a slow EG2 and LFO2, PHA, PAN. X-MOD: MOD WHEEL -> OP3 LEVEL, LFO3 -> OP2 PITCH,
    FLTR, DEC. A project or preset that saved a factory patch as its own copy keeps the copy as it was.

  • Package identity FM-1_9001 (OPX Solo FM-1_9002), the same for every build and version, this
    firmware's own: releases up to 0.1.0 used Felucca's FM-1_9XY. (Development builds briefly reported
    FM-1_OPX-dev; the installers now also accept letters there.)
    Release packages are opx-X.Y.Z.fwsc (and opx-solo-X.Y.Z.fwsc).

  • MENU > INFO and ABOUT show the build (the commit it was built from; "+" when built with local changes).

  • ABOUT points to this project: its QR code and address are github.com/thomasgregorymarsden-code/Felucca-opx
    (Felucca's own stay in the credits).

  • Fix: the main filter's 24 dB types (LPF 24, POLY6, HPF 24, BPF 6, BRF 6) could run away near the top of the
    range with resonance (KTRK on high notes). Their cutoff now stops at 12.3 kHz and their resonance eases above 4.4 kHz.

  • Fix: a track still on a factory patch played its effects only once it had its own copy.

  • DIST: a ~40 Hz high-pass after the clipper takes out the DC an uneven wave leaves.

  • The OPX-only firmware (first step). A second firmware from the same source, opx-solo.fwsc
    (version "…-opx-solo"): track 1 plays OPX, the other tracks and engines are silent and cannot be picked, and all 30 effect types
    are enabled (the 17 buffered ones pass the sound until they a...

Read more

Felucca-OPX 0.1.0

Choose a tag to compare

@thomasgregorymarsden-code thomasgregorymarsden-code released this 19 Oct 20:53
c1e7828

Felucca 1.5.1 with the OPX engine, now with the opsix's waveforms and operator modes. Everything Felucca 1.5.1 does works as before.

New in OPX

  • Waveforms: each operator has a WAVE, the opsix's 23 (sines at 16, 12 and 8 bits, triangle, saw and square with HD versions, eleven additive waves, four noises), and WIDTH. SAW and SQR are band-limited to 10 kHz, the HD versions to 20 kHz.
  • Operator modes: RING MOD, FILTER (12 types: LPF HPF BPF BRF, MG LPF12/24 HPF12/24 BPF6/12, MS-20 LPF/HPF), FILTER FM, WAVE FOLDER, EFFECT (PEAK EQ, SHELV EQ, PHASER, SHORT DELAY, COMB, DIST, DRIVE, DEC, WAVESHAPER, PUNCH), BYPASS and MUTE beside FM.
  • KTRK: each operator's level follows the key: LOW and HIGH slopes about CENTER, LIN or EXP.
  • Faster rendering: an operator at a time over each block. Six notes of sines take 40 % of the processor instead of 57 %; any waveform 39–60 %.

Pages

  • On an OPX track, EDIT goes ALGO (the opsix's HOME: ALG, ATK, DEC, and SLOT) and OPERATORS. The algorithm chart has square boxes in the left half; OPERATORS lists the selected operator beside it in the opsix's page order: MODE, PITCH, EG, KTRK, USER, ALGO, and VOICE (the VOICE pages' parameters, which an OPX track shows here only).
  • Felucca's macros MLVL, FB, MRAT and DTUN and its FLT and SHP modulation routes (ENV DEST, LFO DEST, the MOD matrix's CUT and SHP) are off on OPX, their cards dimmed: they are not part of the opsix. PIT works as before.
  • MENU > BPM LOCK ON: SELECT alone now turns the page, either way, round the pages of the last button pressed (HOME: HOME, MIXER, CLOCK). GLO + SELECT, GLO's F4 TAP and HOME > CLOCK still set the tempo. With BPM LOCK OFF, SELECT is the tempo as before.
  • The benchmark (MENU > SYSTEM > INFO, OCT+) times OPX with each waveform and each kind of mode.

Compatibility

  • Projects and patches saved with 0.0.1 open unchanged: the patch format is the same. A project using the new waveforms or modes plays those operators as sine FM on 0.0.1.
  • Everything 0.0.1 said about Felucca 1.5.1 and the official firmware still holds.

Known limitations

  • The operator filters and effects are standard designs with the opsix's names and ranges, not measured copies, and have not yet been compared with an opsix by ear.
  • Processor time: about two operators in a filter mode per patch. Two in FILTER FM go over the limit, and the audio then drops a voice.
  • SHORT DELAY stops at 17 ms (the opsix: 300 ms), one operator per voice.
  • Not yet: an OPX track's own patch in user presets and the editor's backup, the web editor's OPX page; the opsix's EG1–3, LFOs and virtual patch; its main filter and effects.

Installing custom firmware is at your own risk. The installer's "Return to official V15" goes back to M-VAVE's firmware.

Note: Efforts have been made to keep the OPX engine within the limitations apparent for a felucca engine, with the objective of allowing the main felucca maintainers to pull the engine into the main project at some point.

Initial release

Choose a tag to compare

@thomasgregorymarsden-code thomasgregorymarsden-code released this 16 Oct 17:16
11c4eb0

The first release: Felucca 1.5.1 with the OPX engine. Everything Felucca 1.5.1 does works as before.

New: the OPX engine (engine 15), an altered-FM engine after the Korg opsix, in FM mode so far.

  • Six sine operators per voice, six voices. All 40 of the opsix's algorithms (1–32 the DX7's, 33–40 its own) and USER, a 6 × 6 modulation matrix with self feedback and a heard / not heard output per operator.
  • Per operator: RATIO or FIXED frequency, FINE, DTUN, TRANS, LEVEL, an ATK DEC SUS REL envelope with CURVE (LIN to EXP), velocity to level, feedback. Per patch: the algorithm and ALG FB (the loop of algorithms 4, 6 and 34).
  • Seven factory patches (SLOT F1–F7): E.PIANO, BELL, FM BASS, BRASS, SAW LEAD, LOOP PAD, X-MOD.
  • EDIT 1 (ALGO) draws the algorithm as a chart, or USER as the opsix's matrix, with a small oscilloscope; on USER the knobs pick a cell and set its amount, and OUT sets the operator's output level.
  • EDIT > OPERATORS: every operator parameter in one scrolling list (PITCH, EG, OSC, USER, ALGO). KNOB 1 the operator, 2 the section, 3 the row, 4 the value.
  • Macros on EDIT 1 / 2 (ALG, ATK, DEC, MLVL, FB, MRAT, DTUN, SLOT) for quick changes, automation, step locks and MIDI CC (CC74 MLVL, CC71 FB).
  • Editing makes the patch the track's own (SLOT OWN); SAVE held undoes. Each track's patch is saved with the project and the autosave.

Compatibility

  • Projects and user presets without an OPX track move between Felucca 1.5.1 and Felucca-OPX both ways.
  • A project with an OPX track does not open on Felucca or the official firmware (its slot shows EMPTY there; the data stays in flash until something is saved into that slot). Neither does a user preset of an OPX sound.
  • User sample slot 3 holds 40 KB instead of 80 KB; the other half keeps the OPX patches. A longer sample already in slot 3 must be uploaded again.
  • Not yet saved: an OPX track's own patch in a user preset or in the editor's backup archive. These come back with their SLOT's factory patch.
  • MIDI LEARN assignments, settings and everything else are kept when installing.

Installing custom firmware is at your own risk. The installer's "Return to official V15" goes back to M-VAVE's firmware.