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 / Projet | Integration / Intégration | Source |
|---|---|---|
| Motor:Cycles | Local browser builder / Construction locale | nzimas/motorcycles |
| Model-TG 1.1.0 | Local browser builder / Construction locale | TinyGregAudio/Model-TG |
| Modded Cycles 2.0 | Local browser builder; requires the user's official Syntakt OS too / Construction locale, nécessite aussi l'OS Syntakt officiel | 18nelli18/Modded-Cycles |
| Model27 | Local machine composer: SAMPLE, Digital Delay, POTS, Control All Config / Composition locale | durchgemacht/model27 |
| Model Machinedrum | Author-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 IN | Talachan12/Elektron-Model-Machinedrum |
| PPPCCC 2.1.0 | Local selectable mods; dependencies added automatically / Mods locaux sélectionnables, dépendances automatiques | gialloinfuso/PPPCCC-M-S-Mods |
| Stock OS 1.13 | Validates and restores the user's original file / Vérifie et restaure le fichier officiel fourni | Elektron |
| A.V. Supermodel | Existing local installer embedded on request, Full/Lite and Optional link / Programme existant intégré à la demande | AveyCole/Supermodel |
| Model Tweaks | Author-hosted installer embedded on request; separate-tab fallback / Programme du créateur intégré à la demande, lien de secours | drumkilla/elektron-model-tweaks |
| elekloader | Author-hosted mod loader embedded on request; select the correct device there / Chargeur du créateur intégré à la demande | elekloader/elekloader (redirect from irpina/elekloader) |
| Plaits on Models | External command-line build, then optional local verification; upstream installation instructions apply / Compilation externe, puis vérification locale facultative | DMDaudio/plaits-on-models |
| David Caruso TG/Plaits | Specific source not verified; no build or installation enabled / Source exacte non vérifiée ; construction et installation désactivées | Awaiting 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 :
- Motor:Cycles MIT, third-party notices.
- Model-TG MIT, drumkilla MIT.
- Modded Cycles MIT, third-party notices; the adjacent
vendor/mc/docs/flasher/LICENSE-*.txtcontain the component licenses. - Model27 MIT, third-party notices; the adjacent
vendor/model27/docs/flasher/LICENSE-*.txtcontain the component licenses. - PPPCCC MIT, third-party notices.
pppccc.jsports its original apply_patches.py; original instructions are read from the user's file only. - The shared MIDI transfer core is unchanged, with firmware-tool, model-tweaks and ms-multi-output credits.
- elekloader is linked/embedded, not copied into this hub. Its upstream GPL license and notices remain with its installer. The same applies to drumkilla's live
.elemodinstaller and its elekloader components.
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.
