Firmware

SPOKES

Rising66/100

Community firmware picker and local browser flasher for Elektron Model:Cycles

SPOKES is custom firmware for the Elektron Model:Cycles, by @AveyCole. 1 star on GitHub.

forElektron Model:Cycles·by@AveyCole

Unclaimed. Is this yours? Sign in with GitHub as @AveyCole to claim it.

Downloads
0
Star
1
Forks
0
Commits
11
Last commit
Get the source

No release files yet. Build from source.

Custom license· AveyCole/SPOKES·aveycole.github.io/SPOKES/·downloads come from the creator’s GitHub releases

10
Commits
0
Releases
10 commits and 0 releases in the last year
Activity · last 12 months

SPOKES

Open the flasher · Validation and limits

A community firmware picker and browser flasher for Elektron Model:Cycles. Choose one firmware at a time, build locally from your own official OS, then save or install.

Un sélecteur communautaire et programme de mise à jour pour Elektron Model:Cycles. Choisissez un firmware, construisez-le localement depuis votre OS officiel, puis enregistrez ou installez.

Available paths / Parcours proposés

Project / ProjetIntegration / IntégrationSource
Motor:CyclesLocal browser builder / Construction localenzimas/motorcycles
Model-TG 1.1.0Local browser builder / Construction localeTinyGregAudio/Model-TG
Modded Cycles 2.0Local browser builder; requires the user's official Syntakt OS too / Construction locale, nécessite aussi l'OS Syntakt officiel18nelli18/Modded-Cycles
Model27Local machine composer: SAMPLE, Digital Delay, POTS, Control All Config / Composition localedurchgemacht/model27
Model MachinedrumAuthor-hosted patcher; requires official Cycles 1.13 and Machinedrum UW 1.63 files; follow upstream MIDI IN installation / Programme du créateur, deux OS officiels requis, installation MIDI INTalachan12/Elektron-Model-Machinedrum
PPPCCC 2.1.0Local selectable mods; dependencies added automatically / Mods locaux sélectionnables, dépendances automatiquesgialloinfuso/PPPCCC-M-S-Mods
Stock OS 1.13Validates and restores the user's original file / Vérifie et restaure le fichier officiel fourniElektron
A.V. SupermodelExisting local installer embedded on request, Full/Lite and Optional link / Programme existant intégré à la demandeAveyCole/Supermodel
Model TweaksAuthor-hosted installer embedded on request; separate-tab fallback / Programme du créateur intégré à la demande, lien de secoursdrumkilla/elektron-model-tweaks
elekloaderAuthor-hosted mod loader embedded on request; select the correct device there / Chargeur du créateur intégré à la demandeelekloader/elekloader (redirect from irpina/elekloader)
Plaits on ModelsExternal command-line build, then optional local verification; upstream installation instructions apply / Compilation externe, puis vérification locale facultativeDMDaudio/plaits-on-models
David Caruso TG/PlaitsSpecific source not verified; no build or installation enabled / Source exacte non vérifiée ; construction et installation désactivéesAwaiting an authoritative link / Lien authentique requis

Plaits' documented DMDaudio/Modded-Cycles integration branch returned HTTP 404 on 29 October 2026. No browser recipe is invented for it. This project is distinct from TinyGregAudio's Model-TG and from the unverified David Caruso build.

La branche d'intégration DMDaudio/Modded-Cycles documentée par Plaits renvoyait HTTP 404 le 29 octobre 2026. Aucune recette de navigateur n'est inventée. Ce projet est distinct de Model-TG et de la version David Caruso non vérifiée.

Embedded external installers are live upstream pages, not pinned hub builds. Their authors control the versions and supported devices. An external service can prevent framing or MIDI permissions; the explicit installer link remains available. Only the integrated builders and supplied-file verifier share this hub's transfer controls. The hub's own build files stay local; embedded pages follow their authors' behavior.

Les programmes externes intégrés sont les pages actuelles des créateurs, pas des constructions épinglées du hub. Leurs créateurs contrôlent les versions et les appareils. Un service peut bloquer l'intégration ou MIDI ; le lien explicite reste disponible. Seuls les constructeurs intégrés et le vérificateur de fichier partagent les contrôles de transfert du hub. Les fichiers construits par le hub restent locaux ; les pages externes suivent le comportement de leurs créateurs.

Run locally / Lancer localement

From the repository root / Depuis la racine du dépôt :

node serve.mjs

Open / Ouvrez http://127.0.0.1:8769/. Use HTTPS in production. Workers need an HTTP(S) origin; browser builds do not run from file://. Chrome/Edge support MIDI; building and saving do not require MIDI access. The preview server binds only to 127.0.0.1 and serves docs/.

Utilisez HTTPS en production. Les workers nécessitent HTTP(S), pas file://. Chrome/Edge prennent en charge MIDI ; la construction et l'enregistrement ne nécessitent pas MIDI. Le serveur écoute uniquement 127.0.0.1 et sert docs/.

Verification / Vérification

node test.mjs [path/to/model-cycles_OS1.13.syx] [path/to/Syntakt_OS1.42.syx]

Without stock files: checks pinned asset hashes, catalogue consistency, upstream references, invalid-file rejection, and acceptance/corruption rejection of the existing local signed Supermodel fixture. With official files: runs the actual worker adapters and verifies their output containers/signatures; Motor and TG retain their upstream result checks; Modded Cycles checks individual mods and its full MAIN OS reference; PPPCCC's full set must match 995978244f98bd5a429418c098e6d05dadc0dcaf19c28a1218ec6816ad85a729. A PPPCCC subset has per-write checks but no published whole-output reference.

Sans fichiers officiels : empreintes des sources, cohérence du catalogue, références, rejet des fichiers invalides et vérification d'une image signée locale existante. Avec les fichiers officiels : exécution des adaptateurs réels et vérification des signatures. Les références complètes des projets sont conservées ; un sous-ensemble PPPCCC ne dispose que des contrôles de chaque écriture.

test-ui.cjs requires jsdom resolvable from node_modules/jsdom. It simulates MIDI and build replies to test wrong-device refusal, cancellation, disconnect cleanup, selection invalidation, required input files, translations and search. It never communicates with hardware.

test-ui.cjs utilise jsdom dans le dossier de dépendances de test indiqué. Il simule MIDI et les réponses de construction pour vérifier les refus et l'état de l'interface, sans communiquer avec du matériel.

Updating sources / Actualiser les sources

SPOKES checks the listed GitHub sources daily with .github/workflows/upstream-updates.yml, independently of Codex or your computer. The flasher's Firmware updates section shows the last check, available built-in updates, and when each pinned version was incorporated. Author-hosted installers follow their authors directly; they are labeled separately.

SPOKES vérifie ces sources GitHub chaque jour, sans dépendre de Codex ou de votre ordinateur. La section Mises à jour affiche la dernière vérification, les mises à jour intégrées disponibles et la date d'intégration de chaque version. Les programmes des créateurs suivent directement leurs projets et sont identifiés séparément.

Relevant built-in changes produce one review branch with new pinned assets and regenerated references. The workflow opens a pull request if repository policy already permits it; otherwise the flasher links directly to the review branch. No repository permission is broadened. Validation runs in a separate read-only job with no persisted Git credentials. A failed import or validation produces a draft requiring adaptation. Successful software checks still require review before merge; no automatic merge or firmware publication. A repeated unchanged proposal is not recreated daily. Merging the reviewed branch publishes its new incorporated date in the flasher. Existing hardware/build validation claims do not transfer to new revisions. Manual runs can force a retry.

Les changements pertinents préparent une branche de révision avec les sources épinglées et références régénérées. Une pull request est ouverte si la politique du dépôt le permet ; sinon le flasher pointe vers la branche. Aucune permission du dépôt n’est élargie. Les tests tournent séparément, en lecture seule. Un échec produit un brouillon à adapter. Même si les tests logiciels passent, une révision est requise avant publication ; aucune fusion automatique. Les propositions inchangées ne sont pas recréées chaque jour. La fusion publie la nouvelle date d'intégration. Les anciens résultats matériels ne sont pas attribués aux nouvelles versions. Une exécution manuelle peut forcer un nouvel essai.

updates.json is the public check report; upstreams.json defines the tracked sources and current built-in pins. The first status report is generated at setup; subsequent checks use the repository's standard GITHUB_TOKEN. No personal token or official OS files are stored in GitHub Actions.

updates.json est le rapport public ; upstreams.json définit les sources et révisions intégrées. Les vérifications suivantes utilisent le jeton standard du dépôt, sans jeton personnel ni fichiers OS officiels dans Actions.

sync-upstream.mjs downloads only revisions pinned in upstreams.json. For a manual update, change that registry together with catalogue.js; run the sync, then tests. vendor/manifest.json records each source path, full commit, size and SHA-256. No live builder loads a moving upstream branch. Never add official or built .syx, OS archives, extracted firmware sections or user assets.

sync-upstream.mjs télécharge uniquement les révisions explicitement épinglées. Mettez sa révision et celle du catalogue à jour ensemble, puis exécutez les tests. vendor/manifest.json consigne les sources et empreintes. Aucune mise à jour automatique depuis une branche mouvante. N'ajoutez jamais de firmware officiel ou construit ni d'extrait de firmware.

Discovery sources supplied by the owner / Sources indiquées par le propriétaire : 18nelli18, durchgemacht, AveyCole, TinyGregAudio, Motor:Cycles, drumkilla, elekloader, plus PPPCCC's repository above.

Credits and licenses / Crédits et licences

The hub uses the repository's MIT license. Unmodified upstream files retain their own notices:

Le hub utilise la licence MIT du dépôt. Les fichiers des projets conservent leurs notices :

The hub targets Model:Cycles, not cross-flashing. The fast method identifies the device before transmitting firmware. Classic MIDI requires the user to choose the correct physical destination. Some large packages contain transport bytes Web MIDI rejects as classic SysEx; those are refused before the first message, with Fast/upstream instructions offered instead.

Le hub cible Model:Cycles, sans conversion d'appareil. Le mode rapide identifie l'appareil avant l'envoi. En mode classique, vous devez choisir le bon port physique. Certains gros fichiers ne sont pas acceptés en SysEx classique ; le hub refuse alors l'envoi avant le premier message.

Back up projects and samples before switching. Elektron's recovery instructions: STARTUP MENU recovery uses physical MIDI IN, not USB. Integration testing does not establish hardware compatibility or project compatibility between firmwares. PPPCCC reports testing on Model:Samples running the Cycles OS, not Model:Cycles; Plaits reports emulation without hardware confirmation.

Sauvegardez les projets et échantillons. La récupération STARTUP MENU utilise MIDI IN physique, pas USB. Les tests d'intégration ne prouvent pas la compatibilité matérielle ou celle des projets entre firmwares. PPPCCC rapporte des tests sur Model:Samples avec l'OS Cycles ; Plaits rapporte l'émulation sans confirmation matérielle.