Bubba Machine
Six-track groovebox released under GPL.
forM-VAVE FM-1·by@Erbubar23
Unclaimed. Is this yours? Sign in with GitHub as @Erbubar23 to claim it.
No release files yet. Build from source.
GPL-3.0· Erbubar23/bubba-machine·erbubar23.github.io/bubba-machine/·downloads come from the creator’s GitHub releases
v0.10.0-betaBubba Machine 0.10.0-beta: every machine is its own instrumentBeta2 files
Every machine is its own instrument. HOME was rebuilt from scratch as a six-channel mixer, and entering a channel hands the whole FM-1 to its machine, laid out like the real one: TB-303, Minimoog, Juno-6, Vital and the FM-1's own DX7-style synth. The drums have a new step sequencer, the pad sampler became the BP-1 Slicer, and it boots with three factory patterns.
Beta, installed and running on the author's FM-1 (2812 automated checks; audio load about 8 % idle, no late blocks). ⚠️ On first boot 0.10 erases the saved patterns and scenes once and loads the factory patterns. Takes and settings are kept. To go back, restore the factory firmware from the installer, or download
bubba-machine-0.9.0-beta.fwscfrom its release and pick it under More options.New
- Factory patterns: 1 = Da Funk (Daft Punk), 2 = Confusion in its Pump Panel Reconstruction from Blade (New Order), 3 = Enjoy the Silence (Depeche Mode), recreated with the stock machines. Scene B of every pattern mutes everything until you store another one over it.
- HOME is a mixer: 9 patterns, VOLUME · FILTER · DELAY · REVERB of the cursor channel on K1-K4, mutes (hold = solo) and four scenes per pattern on black 8-11.
- BB-303 = a TB-303: its panel on the knobs, ACCENT and SLIDE per step, TB-03-style OVERDRIVE → DELAY → REVERB, and a synced LFO with rhythmic shapes.
- B-MINI, BUNO-6 and BITTAL get the menus of a Minimoog, a Juno-6 and Vital, with the filter curve or the wavetables drawn under the knobs, plus DISTORTION, CHORUS and REVERB per channel.
- BX-7 is back: the FM-1's own FM synth inside Bubba, with its 32 algorithms drawn, 8 voices, its own effects, EDIT per operator and a 7-mode arpeggiator that records. 31 factory sounds.
- BP-1 Slicer: trim a take, slice it into 16 pads (AUTO, 8 or 16) and get a sequence that plays like the loop; it can also record the mix into a pad.
- BR-8 step sequencer with quick access to the instruments, accents, repeats and MUTE SOUNDS.
- Every machine has a GLO page: LENGTH (1-64 steps), MACHINE, MIDI CH, MIDI OUT, QUANT and RESET. Up to two heavy machines at a time.
- Recording like SLOOP: a fixed length that wraps; step recording inside SEQ; REC held 2 s clears the channel. Menu buttons are cyclic and there is no help text on screen.
Stability
- No more false safe mode after two quick power-offs; dim LEDs no longer flicker; keys no longer go dead after about 71 s; knobs no longer count twice; USB MIDI no longer loses note-offs.
- An audit of every machine against its original manual (accent and slide on the 303, BX-7 transpose and osc sync, B-MINI tune, BUNO-6 LFO, arpeggiator and recording fixes).
Removed from 0.9: the channel card, CUE, FX › CHANNEL, the song, MORE and the old SOUND / INSTR / MIX / PADS / TAKES / LOOP / SCALE / CHORDS menus, FREE REC, and user sound banks on the BX-7 (factory sounds only for now).
Files:
bubba-machine-0.10.0-beta.fwsc(the firmware) andbubba-diag-0.10.0-beta.fwsc(diagnostic, no sound), for the web installer; they carry M-VAVE's boot and update loader unchanged.v0.9.0-betaBubba Machine 0.9.0-beta: HOME is the consoleBeta2 files
HOME is the console. Ten patterns, six channels, mutes, scenes and CUE on the keys, like an MX-1; REC plays and records any channel without leaving the console; each machine keeps its own GLO. And the FM-1 gets its stock power rails, so TWO CORES no longer switches it off.
Beta, not fully tried on the device yet. It passes the automated tests (1192 checks) and long simulated sessions, and the firmware leaves 151 KiB of RAM free (121 in 0.8). ⚠️ 0.9 has only 10 patterns: on first boot patterns 11-16 are dropped, and the song and the scenes start empty. Patterns 01-10, settings, takes and your sounds are kept. To go back, restore the factory firmware from the installer, or download
bubba-machine-0.8.0-beta.fwscfrom its release and pick it under More options.New
- The console (HOME › MIX): white 1-10 = patterns, white 11-16 = channels T1-T6 (tap = cursor, hold = channel card: let go to enter, ALGORITHM changes the machine, PRESETS its sound), black 1-6 = mutes (hold = solo), black 7-10 = scenes, black 11 = CUE (mutes that drop together on the next bar).
- SLOOP-REC: REC on the console arms the cursor channel and the keys play and record it without entering.
- Scenes are mutes only, kept with the project; live mutes stay when the pattern changes.
- FX › CHANNEL: per-channel DRIVE, PAN, DUCK and BEAT FX on/off.
- GLO on the console (TEMPO, MACHINES, SCALE, SONG) and inside every machine (VIEW, LENGTH, SPEED, MIDI OUT, INIT…), with a PIANO ROLL view.
- OCT−/+ always change the octave; step pages are on black 9/10. Questions are answered by keeping the control held 2 s.
- 92 factory sounds, many historic: TB-303 manual sounds and acid classics, Minimoog sound charts, DX7 recipes, Juno pads, strings and brass, PPG-style wavetables, and sounds inspired by famous records.
- BB-303 rebuilt on Open303 (MIT): the TB-303 filter, accent circuit and declicker.
Web
- The web control is rebuilt as one page that mirrors the FM-1: TAKES (8 slots, drop an audio, trim, hear it as the FM-1 plays it), SOUNDS (one column per machine), screen language and device details. Changes stay pending until Send to FM-1, with a memory meter that shows what will fit, and every write is checked on the device. It replaces the separate sound editor.
- The installer offers only the latest version; older ones stay in the releases.
Audio and stability
- The FM-1 switched off during fast navigation with TWO CORES: it was a brownout. The firmware now sets the stock power rails at boot, logs the exact reset cause and keeps the hardware watchdog on. If the second core hangs, it retires until power-off.
- The kick cuts through: revoiced factory kicks, and the duck now works with the BUNO-6 chorus and with kicks played live.
- BUNO-6 about 15 % lighter, BITTAL about 25 %; a lighter screen (25 fps cap, background display transfers).
- An effect that broke (NaN) no longer goes silent for good.
Files:
bubba-machine-0.9.0-beta.fwsc(the firmware) andbubba-diag-0.9.0-beta.fwsc(diagnostic, no sound), for the web installer; they carry M-VAVE's boot and update loader unchanged.v0.8.0-betaBubba Machine 0.8.0-betaBeta2 files
Choose your instrument. The drums (BR-8) and the pad sampler (BP-1) stay fixed; T3-T6 pick their machine (BB-303, B-MINI, BX-7, BITTAL or BUNO-6), and every machine's pages follow its real panel.
Beta, not fully tried on the device yet. It passes the automated tests (907 checks) plus long simulated sessions, and the firmware leaves 125 KiB of RAM free. ⚠️ 0.8 changes the pattern format: on first boot it erases your saved patterns. B-MINI and BUNO-6 user sounds no longer load (BITTAL sounds and DX7 banks do). To go back, install 0.7.0-beta or the factory firmware from the installer.
New
- MACHINE page (just before SOUND on T3-T6): turn ALGORITHM to a machine and leave it 2 s to load it, with no question, for live use. Notes, loop, ARP, scale and mix stay.
- Heavy machines one at a time: BUNO-6 and BITTAL can only be on one track; elsewhere they show "ON T6" and are refused with a message.
- Pages like the real panels: TB-303 (VCO VCF, ENV), Minimoog (CONTROL, OSC 1-3, MIXER, FILTER, F/L CONTOUR, OUTPUT), DX7 (ALGORITHM, EG, VOICE, LFO), Vital (OSC, FILTER, ENV, LFO, MACROS), Juno-6 (LFO, DCO, HPF VCF, VCF MOD, VCA, ENV, CHORUS).
- K1-K4 on SEQ = each machine's four main controls: BB-303 CUTOFF · RESO · ENV MOD · DECAY, B-MINI CUTOFF · EMPHASIS · CONTOUR · F DECAY, BX-7 MOD LVL · FEEDBACK · DECAY · RELEASE, BUNO-6 FREQ · RES · ENV · LFO.
- A BB-303 sound bank (8 sounds); ALGORITHM picks its waveform.
Audio fixes
- Voices went silent after a while: the voice brake kept fading the newest notes under load. It now lowers a voice cap, fades release tails first and gives the voices back when the load drops.
- The BUNO-6 chorus got rough after about 6 minutes (a counter lost precision).
- Notes were lost when a stolen voice ended during its fade.
Files:
bubba-machine-0.8.0-beta.fwsc(the firmware) andbubba-diag-0.8.0-beta.fwsc(diagnostic, no sound), for the web installer; they carry M-VAVE's boot and update loader unchanged.v0.7.0-betaBubba Machine 0.7.0-betaBeta2 files
Every machine is its own instrument. Put the cursor on a track and enter it: from then on the whole FM-1 (keys, buttons, knobs and lights) belongs to that machine. HOME is the way out, back to the BX-1 console.
Beta, not fully tried on the device yet. It passes the automated tests (822 checks) and the emulator, and the firmware leaves 125 KiB of RAM free. An update may erase what you saved until v1. If something goes wrong, go back to 0.6.2-beta or the factory firmware from the installer.
New
- The lights speak one language on every key and button: off = does nothing, dim = available or silenced, medium = has something and will play, on = selected or a hit, blink = playhead or needs you, breath = armed.
- Drum MUTES: only instruments with steps light up; playing ones flash on every hit, muted ones are dim, empty ones are off. The same live flash on HOME's tracks, the pads and the notes.
- ROLL (ARP on BR-8 and BP-1): hold a white key and it rolls. Rates 1/8 to 1/32 with triplets, CRESC / DECRESC, swing, a tail after release and FILL + ROLL; with REC it is written as repeats and accents.
- LFO on machines without an LFO page keeps its layer open (repeat on the drums and pads, tie on the notes) instead of an empty page.
- REC held 2 s erases the track at once, for live use: no question, the ring says ERASE T#, HOME + OCT− undoes it, and it never fires while anything is recording.
- Buttons that do nothing are off; with HOME held, only the HOME + buttons light. SAVE breathes with unsaved changes, HOME blinks with a queued pattern, PLAY marks the first beat of the bar.
- The big knobs are labelled (SEL · ALG · PRE), knob acceleration no longer skips values, on/off settings are right = on, MOVE / DJ filter / PAN stop at the center.
- Screen: the exit hint stays, the header shows the six tracks and the queued pattern (A01>A05), the 2 s ring names its target, short drum names that don't collide.
- Plus everything from 0.6.3 (two cores in parallel) and the one-machine-per-screen layout of 0.7.
Fixed
- Holding a step and turning PRESETS replaced the whole kit with no undo.
- Holding REC to record on the sampler could erase the track.
- HOME on the recorder threw away an unsaved take without asking.
- The FM-1 restarted on BP-1's PADS page (the SDK's snprintf has no
%+d).
Files:
bubba-machine-0.7.0-beta.fwsc(the firmware) andbubba-diag-0.7.0-beta.fwsc(diagnostic, no sound). Install them from the web installer; they carry M-VAVE's boot and update loader unchanged.v0.6.2-betaBubba Machine 0.6.2-betaBeta2 files
Beta, la primera con datos del aparato. Con la 0.6.1, un patrón de las seis máquinas pasaba del 100 % de carga en el FM-1 (cortes) y DOS NÚCLEOS lo empeoraba. En la primera prueba de la 0.6.2 quedó cerca del 50 %. / Beta, the first one with data from the device. With 0.6.1, a pattern using all six machines went over 100 % load on the FM-1 (dropouts) and TWO CORES made it worse. In the first test of 0.6.2 it stayed around 50 %.
Instalar / Install
- Instalador web, plug and play / plug and play web installer: https://erbubar23.github.io/bubba-machine/instalar.html (Chrome o Edge).
- Plataforma de control / control platform: https://erbubar23.github.io/bubba-machine/control.html (memoria, tomas, sonidos e idioma / memory, takes, sounds and language).
bubba-machine-0.6.2-beta.fwsc: el firmware completo / the full firmware.bubba-diag-0.6.2-beta.fwsc: diagnóstico sin sonido / no-sound diagnostic.- Si algo falla, vuelve a la 0.6.1-beta o al de fábrica / if something goes wrong, go back to 0.6.1-beta or to stock: FM-1 V15 de / from https://www.m-vave.com/download
Español
Agregado
- Freno de voces: si un bloque de audio usa más del 85 % de su tiempo, se apaga suavemente (2 ms) la voz que menos suena del pool (T2, T4-T6). Mejor perder una voz que cortar todo. La consola cuenta cuántas apagó.
- Prueba 35 del laboratorio (
py -3 tools/fm1/traza.py una 35): cuánto tarda el segundo núcleo en contestar y si respeta la coma flotante de la tarea que interrumpe. - Consola: el freno de voces, el estado del segundo núcleo y su espera más larga.
Cambiado
- DOS NÚCLEOS viene apagado de fábrica. Ahora el segundo núcleo calcula T4-T6 dentro de una interrupción por software registrada en él, sin pasar por el planificador del sistema; antes era una tarea que se turnaba con la del audio. La primera vez que se prende se prueba que conteste; si no contesta o tarda más de 4 ms, sigue con uno hasta el próximo arranque.
- El plan de la arquitectura en paralelo y de la memoria está en ARQUITECTURA_FM1.md, secciones 6 y 7.
Arreglado
- Las pruebas del laboratorio vuelven a correr: desde la 0.6.1 pedían ~75 KiB de montón y quedaban 58. Ahora cada prueba usa solo sus búferes.
- La prueba del motor FM desde el modo seguro reiniciaba el chip (las tablas de la FM no existen hasta que arranca Bubba). Ahora avisa y no corre.
English
Added
- Voice brake: if an audio block uses more than 85 % of its time, the quietest voice of the pool (T2, T4-T6) fades out (2 ms). Better to lose one voice than to cut everything. The console counts how many it switched off.
- Lab test 35 (
py -3 tools/fm1/traza.py una 35): how long the second core takes to answer and whether it respects the floating point of the task it interrupts. - Console: the voice brake, the second core's state and its longest wait.
Changed
- TWO CORES is off by default. The second core now computes T4-T6 inside a software interrupt registered on it, without going through the system scheduler; before, it was a task that took turns with the audio one. The first time it is turned on it is checked to answer; if it does not answer or takes more than 4 ms, it goes on with one core until the next boot.
Fixed
- The lab tests run again: since 0.6.1 they asked for ~75 KiB of heap and 58 were left. Now each test uses only its own buffers.
- The FM engine test from safe mode reset the chip (the FM tables do not exist until Bubba starts). Now it warns and does not run.
v0.6.1-betaBubba Machine 0.6.1-betaBeta2 files
⚠️ No instales la 0.6.0-beta: esta la reemplaza. La 0.6.0 dejaba 38 KiB de RAM al sistema del FM-1 (necesita ~50 al arrancar); la 0.6.1 deja 126 KiB. Beta, todavía no probada en el aparato (pasa las pruebas automáticas y el emulador). / Do not install 0.6.0-beta: this one replaces it. 0.6.0 left 38 KiB of RAM for the FM-1 system (it needs ~50 at boot); 0.6.1 leaves 126 KiB. Beta, not yet tried on the device (it passes the automated tests and the emulator).
Instalar / Install
- Instalador web, plug and play / plug and play web installer: https://erbubar23.github.io/bubba-machine/instalar.html (Chrome o Edge). Ya no carga el idioma: se carga en la plataforma de control. / It no longer loads the language pack: that is done on the control platform.
- Plataforma de control / control platform: https://erbubar23.github.io/bubba-machine/control.html (memoria, tomas, sonidos e idioma / memory, takes, sounds and language).
bubba-machine-0.6.1-beta.fwsc: el firmware completo / the full firmware.bubba-diag-0.6.1-beta.fwsc: diagnóstico sin sonido / no-sound diagnostic.- Si algo falla, vuelve a la 0.5.0-beta o al de fábrica / if something goes wrong, go back to 0.5.0-beta or to stock: FM-1 V15 de / from https://www.m-vave.com/download
Español
La 0.6.0-beta no debe instalarse: dejaba 38 KiB de RAM para el sistema del FM-1, que necesita unos 50 KiB al arrancar, así que lo más probable es que no arrancara bien. La 0.6.1-beta deja 126 KiB y el instalador ya no ofrece la 0.6.0. Beta, todavía no probada en el aparato.
Agregado
- Plataforma de control (
control.html): con el FM-1 conectado por USB, muestra la memoria (RAM libre, carga del audio, tomas, la zona compartida y el idioma) con avisos según lo que estás haciendo, sube y borra tomas (convierte el audio en el navegador), carga y borra sonidos (Vital, .syx, .bsnap) y carga o quita el paquete de idioma. Sin el FM-1 no hace nada. - Consola, orden 23: el informe de memoria y la biblioteca (tomas y sonidos del usuario) y borrar una toma; la orden 22 borra un sonido del usuario por su número.
- Control de RAM al compilar el firmware:
build.py fm1falla si el montón del sistema queda por debajo de 120 KiB. Las pruebas en la computadora no podían verlo.
Cambiado
- RAM: los búferes del laboratorio (~59 KiB) se piden al montón solo mientras corre una prueba, y el delay baja a 0.80 s (antes 1.49 s; con 1/4, por debajo de 75 BPM se acorta). La RAM fija baja de 472 a 384 KiB.
- El sampler tiene un tope de 6 s de tomas en total; el resto de la zona de 100 KiB queda para los sonidos.
- DOS NÚCLEOS viene encendido de fábrica para probarlo en el aparato. Un cuelgue o el modo seguro lo apagan.
- El paquete de idioma se administra en la plataforma de control: el instalador ya no lo carga.
English
Do not install 0.6.0-beta: it left 38 KiB of RAM for the FM-1 system, which needs about 50 KiB at boot, so it most likely did not start properly. 0.6.1-beta leaves 126 KiB and the installer no longer offers 0.6.0. Beta, not yet tested on the device.
Added
- Control platform (
control.html): with the FM-1 connected over USB, it shows the memory (free RAM, audio load, takes, the shared zone and the language) with warnings based on what you are doing, uploads and deletes takes (the audio is converted in the browser), loads and deletes sounds (Vital, .syx, .bsnap) and loads or removes the language pack. Without the FM-1 it does nothing. - Console, command 23: the memory and library report (takes and user sounds) and deleting a take; command 22 deletes a user sound by its number.
- RAM check when building the firmware:
build.py fm1fails if the system heap drops below 120 KiB. The computer tests could not see it.
Changed
- RAM: the lab buffers (~59 KiB) are taken from the heap only while a test runs, and the delay drops to 0.80 s (was 1.49 s; a 1/4 delay gets shorter below 75 BPM). Fixed RAM goes from 472 to 384 KiB.
- The sampler has a 6 s cap for all takes; the rest of the 100 KiB zone is for sounds.
- TWO CORES is on by default so it can be tested on the device. A hang or safe mode switches it off.
- The language pack is managed on the control platform: the installer no longer loads it.
v0.6.0-betaBubba Machine 0.6.0-betaBeta2 files
⚠️ Beta, todavía no probada en el aparato (pasa las pruebas automáticas y el emulador). Al instalarla se borran los patrones guardados (cambió su formato); las tomas se quedan. / Beta, not yet tried on the device (it passes the automated tests and the emulator). Installing it erases saved patterns (their format changed); takes stay.
Instalar / Install
- Instalador web, plug and play / plug and play web installer: https://erbubar23.github.io/bubba-machine/instalar.html (Chrome o Edge). Ya no hace falta el V15; en español carga el idioma solo al terminar. / No V15 needed anymore.
bubba-machine-0.6.0-beta.fwsc: el firmware completo / the full firmware.bubba-diag-0.6.0-beta.fwsc: diagnóstico sin sonido / no-sound diagnostic.- Sonidos propios / your own sounds: https://erbubar23.github.io/bubba-machine/sonidos.html (presets de Vital y bancos .syx de la DX7 / Vital presets and DX7 .syx banks).
- Si algo falla, vuelve a la 0.5.0-beta o al de fábrica / if something goes wrong, go back to 0.5.0-beta or to stock: FM-1 V15 de / from https://www.m-vave.com/download
Español
Beta, todavía no probada en el aparato: pasa las pruebas automáticas y el emulador. Si algo falla en el FM-1, vuelve a la 0.5.0-beta o al firmware de fábrica desde el instalador.
Seis máquinas fijas en vez de motores a elegir, una cara nueva y un banco de sonidos. El formato de los patrones cambia (formato 7): los patrones guardados se borran al primer arranque (las tomas se quedan). El diseño completo está en DISENO_0.6.
Agregado
- Seis máquinas, una por canal, con nombres que recuerdan a las que las inspiraron: BR-8 (T1, batería modelada), BP-1 (T2, sampler de pads), BB-303 o B-MINI (T3, se cambia con ALGORITHM y las notas se quedan), BX-7 (T4, FM), BITTAL (T5, wavetable) y BUNO-6 (T6, polifónico). En HOME, el mezclador BX-1.
- B-MINI: tres osciladores (TRI, SHARK, SAW, SQUARE, WIDE, NARROW) en registros de 32' a 2', ruido, filtro escalera con drive, CONTOUR y LOUDNESS, LFO y glide.
- BITTAL: dos osciladores de tabla (hasta 8 frames, armados desde un espectro de 256 armónicos y sin aliasing en ninguna nota), unísono de hasta 4, filtro LP 24/12, BP, HP o escalera, dos ADSR, LFO y 4 macros con destino. Las páginas de los osciladores dibujan la tabla en 2.5D. ALGORITHM elige la tabla del oscilador 1 entre las del banco.
- BUNO-6: 6 voces con un oscilador cada una (sierra, pulso con PWM, sub y ruido), pasa-altos de 4 posiciones, filtro de 24 dB, una ADSR, LFO con retardo y chorus estéreo I, II o I+II (ALGORITHM).
- Banco de sonidos (.bsnap) para B-MINI, BITTAL y BUNO-6: 37 de fábrica. Los de BITTAL y B-MINI salen de presets de Vital con licencia libre (CC0, Unlicense y GPL-3.0), renombrados y con su crédito en CREDITOS.md; los 12 de BUNO-6 son propios, hechos en Vital.
tools/gen_snaps.mjslos arma con los commits de origen fijados. - Sonidos propios: el editor web (
sonidos.html) convierte un preset de Vital en un sonido de Bubba Machine y lo manda al FM-1 por WebMIDI; también carga bancos .syx de la DX7 (32 voces) en BX-7. En la computadora:tools/vital2bsnap.mjsytools/fm1/sonido.py. En el emulador, el botón Sonido. - BX-7: el dibujo del algoritmo como en una DX7 (portadoras, moduladores, realimentación y nivel de cada operador) y PRESETS con las voces de tus bancos.
- Reverb (Dattorro) con envío por canal en MEZCLA y su página en HOME + FX; filtro del master (pasa-bajos a la izquierda, pasa-altos a la derecha) y BEAT FX (un punch-in que queda puesto) en HOME.
- REC expresivo en los canales de notas: cada nota guarda su micro-tiempo y su gate reales, se corta en el compás si sigue apretada y lo que mueves en K1-K4 mientras la sostienes queda como P-Lock. Con REC, SELECT elige un paso, ALGORITHM su largo (hasta TIE) y PRESETS su micro-tiempo.
- Nota larga con dos blancas: mantén el paso donde empieza y toca la blanca donde termina.
- BP-1, loop de sustain (página LOOP del pad): sostenido repite un tramo y al soltar sigue hasta el final.
- MIDI OUT por canal (MAS): el canal suena y además manda sus notas por MIDI. Reemplaza al motor MIDI.
- Carga del audio (CPU) en la cabecera.
- Dos pruebas en SISTEMA, apagadas de fábrica: PANTALLA RÁPIDA (SPI a 30 MHz: el cuadro baja de 85 a 39 ms) y DOS NÚCLEOS (T4-T6 en el segundo núcleo; en la computadora da las mismas muestras). Si el FM-1 se cuelga o arranca en modo seguro, las dos se apagan solas.
- Instalador web plug and play: la página baja el paquete ya armado de Bubba Machine (sin pedir el V15 de M-VAVE), lo instala y, si está en español, carga el paquete de idioma al terminar. El V15 solo hace falta para volver al firmware de fábrica.
Cambiado
- La cara nueva: cabecera, visor, teclado y diales siempre en el mismo lugar, con paleta neón (cian lo activo, ámbar los valores, rojo REC y mute, verde menta las notas largas). En SEQ las blancas son los pasos; los diales de K1-K4 muestran valor y nombre.
- Las perillas: en HOME, SELECT es el cursor del mezclador, ALGORITHM el BPM y K1-K4 volumen, envío FX, filtro y BEAT FX. Dentro de un canal, ALGORITHM es el modo de la máquina (instrumento, pad, algoritmo, tabla, chorus). Se cambia de canal con HOME + SELECT. Fuera el recuadro de 400 ms y ENTRADA AUTO.
- Las tomas comparten 100 KiB de flash con los sonidos del banco (las tomas desde abajo, los sonidos desde arriba). Hasta 3 s por toma.
- Fuera ANALOG, los canales libres, KIT en T4-T6 y el motor MIDI: cada canal es su máquina.
- 22 voces en total, con un tope por canal.
- Audio determinista: suena igual en cada arranque.
English
Beta, not yet tested on the device: it passes the automated tests and the emulator. If something fails on the FM-1, go back to 0.5.0-beta or to the factory firmware from the installer.
Six fixed machines instead of engines to pick, a new face and a sound bank. The pattern format changes (format 7): saved patterns are erased on first boot (takes are kept).
Added
- Six machines, one per track, named after the ones that inspired them: BR-8 (T1, modeled drums), BP-1 (T2, pad sampler), BB-303 or B-MINI (T3, switched with ALGORITHM, notes stay), BX-7 (T4, FM), BITTAL (T5, wavetable) and BUNO-6 (T6, polysynth). On HOME, the BX-1 mixer.
- B-MINI: three oscillators (TRI, SHARK, SAW, SQUARE, WIDE, NARROW) in 32' to 2' ranges, noise, ladder filter with drive, CONTOUR and LOUDNESS, LFO and glide.
- BITTAL: two wavetable oscillators (up to 8 frames, built from a 256-harmonic spectrum, alias-free on every note), up to 4-voice unison, LP 24/12, BP, HP or ladder filter, two ADSRs, LFO and 4 macros with targets. The oscillator pages draw the table in 2.5D. ALGORITHM picks oscillator 1's table from the bank.
- BUNO-6: 6 voices with one oscillator each (saw, pulse with PWM, sub and noise), 4-position high-pass, 24 dB filter, one ADSR, delayed LFO and stereo chorus I, II or I+II (ALGORITHM).
- Sound bank (.bsnap) for B-MINI, BITTAL and BUNO-6: 37 factory sounds. BITTAL's and B-MINI's come from freely licensed Vital presets (CC0, Unlicense and GPL-3.0), renamed and credited in CREDITS.md; BUNO-6's 12 are original, made in Vital.
tools/gen_snaps.mjsbuilds them with the source commits pinned. - Your own sounds: the web editor (
sonidos.html) turns a Vital preset into a Bubba Machine sound and sends it to the FM-1 over WebMIDI; it also loads DX7 .syx banks (32 voices) into BX-7. On the computer:tools/vital2bsnap.mjsandtools/fm1/sonido.py. In the emulator, the Sound button. - BX-7: the algorithm drawn as on a DX7 (carriers, modulators, feedback and each operator's level) and PRESETS with the voices of your banks.
- Reverb (Dattorro) with a per-track send in MIX and its page in HOME + FX; master filter (low-pass to the left, high-pass to the right) and BEAT FX (a punch-in that stays on) on HOME.
- Expressive REC on note tracks: each note keeps its real micro-timing and gate, is cut at the bar if still held, and whatever you turn on K1-K4 while holding it stays as a P-Lock. With REC, SELECT picks a step, ALGORITHM its gate (up to TIE) and PRESETS its micro-timing.
- Long note with two white keys: hold the step where it starts and tap the white key where it ends.
- BP-1 sustain loop (the pad's LOOP page): held, it repeats a section; let go and it plays on to the end.
- Per-track MIDI OUT (MORE): the track plays and also sends its notes over MIDI. Replaces the MIDI engine.
- Audio load (CPU) in the header.
- Two tests in SYSTEM, off by default: FAST SCREEN (SPI at 30 MHz: a frame drops from 85 to 39 ms) and TWO CORES (T4-T6 on the second core; on the computer it gives the same samples). If the FM-1 hangs or boots into safe mode, both switch themselves off.
- Plug and play web installer: the page downloads the ready-made Bubba Machine package (no M-VAVE V15 needed), installs it and, if the page is in Spanish, loads the language pack at the end. The V15 is only needed to go back to the factory firmware.
Changed
- The new face: header, viewport, keyboard and dials always in the same place, with a neon palette (cyan active, amber values, red REC and mutes, mint long notes). On SEQ the white keys are the steps; the K1-K4 dials show value and name.
- The knobs: on HOME, SELECT is the mixer cursor, ALGORITHM the BPM and K1-K4 volume, FX send, filter and BEAT FX. Inside a track, ALGORITHM is the machine's mode (instrument, pad, algorithm, table, chorus). HOME + SELECT changes track. The 400 ms box and AUTO ENTER are gone.
- Takes share 100 KiB of flash with the bank sounds (takes from the bottom, sounds from the top). Up to 3 s per take.
- Gone: ANALOG, free tracks, KIT on T4-T6 and the MIDI engine: each track is its machine.
- 22 voices in total, with a per-track cap.
- Deterministic audio: it sounds the same on every boot.
v0.5.0-betaBubba Machine 0.5.0-betaBeta2 files
⚠️ Beta, todavía no probada en el aparato (pasa las pruebas automáticas y el emulador). Al instalarla se borran los patrones guardados (cambió su formato); las tomas se quedan. / Beta, not yet tried on the device (it passes the automated tests and the emulator). Installing it erases saved patterns (their format changed); takes stay.
Instalar / Install
- Instalador web / web installer: https://erbubar23.github.io/bubba-machine/instalar.html (Chrome o Edge)
bubba-machine-0.5.0-beta.fwsc: el firmware completo / the full firmware.bubba-diag-0.5.0-beta.fwsc: diagnóstico sin sonido / no-sound diagnostic.- Español en la pantalla / Spanish screen:
py -3 tools/fm1/idioma.py lang/es.bmlang(con el transporte parado / with the transport stopped). - Si algo falla, vuelve a la 0.4.0-beta o al de fábrica / if something goes wrong, go back to 0.4.0-beta or to stock: FM-1 V15 de / from https://www.m-vave.com/download
Español
Beta, todavía no probada en el aparato: pasa las pruebas automáticas y el emulador. Si algo falla en el FM-1, vuelve a la 0.4.0-beta o al firmware de fábrica desde el instalador.
La pantalla pasa al inglés, para que Bubba Machine se entienda en todo el mundo. El español sigue disponible como paquete de idioma, que no viene cargado. La memoria de tomas baja de 7.4 s a 6.4 s: 16 KiB de la flash son ahora del paquete de idioma, y una toma que usaba ese lugar se pierde. El sampler pasa a ser de pads y el formato de los patrones cambia: los patrones guardados se borran al primer arranque (las tomas se quedan).
Agregado
- Paquetes de idioma. Las frases de la pantalla están en inglés y un paquete (
.bmlang) las traduce. Vive en su propia zona de la flash (0xD9000, 16 KiB), así que no toca patrones ni tomas y una actualización del firmware no lo borra. SISTEMA › LANGUAGE cambia entre el inglés y el paquete cargado. Lo que el paquete no traduce se ve en inglés.- Español (
lang/es.txt, armado enlang/es.bmlang): la pantalla queda como antes. - Se carga en el FM-1 con
tools/fm1/idioma.py(por la consola USB-MIDI, con el transporte parado) y en el emulador con un botón; en la página del emulador en español, la primera vez ya arranca en español. tools/gen_lang.pyjunta todas las frases enlang/plantilla.txt, revisa cada traducción (solo ASCII, los mismos%) y arma los paquetes. Cualquiera puede hacer otro idioma.
- Español (
Cambiado
- T2 es un sampler de 16 pads, como un KO II o el drum sampler de un OP-1 field. Reemplaza al loop en slices con generador (y a SLICER, CORTAR y CHOPS).
- Cada pad es un trozo de una toma, con su inicio y su largo (se pueden encimar), tono, nivel, modo de tecla (ONESHOT, KEY, THRU: sostenido sigue por la toma, LOOP), sentido, ataque, salida, grupo de corte y si sigue el tempo. Un kit puede mezclar tomas.
- La toma arma el kit: al guardarse una toma con el kit vacío, se corta en los golpes, cada corte va a un pad y la rejilla queda escrita para que suene como la toma. En TAKES: N1 kit en los golpes, N2 en 16, N3 en 8, N4 la toma entera en el pad elegido; las blancas la escuchan en 16 partes.
- SEQ es una rejilla como la de la batería: una línea por pad, con su largo, acentos, repeticiones, condiciones, mutes, fill y P-Lock por paso de FILTER, PITCH, DECAY y START. Se acabaron los números sueltos: se ve qué pad suena en qué paso.
- PADS (EDIT): la onda de la toma con el pad entre corchetes y los demás pads marcados, y tres páginas (TRIM, SOUND, ENV; EDIT otra vez pasa). Negras: copiar, pegar, vaciar, el inicio al golpe; 9-11 reversa, media velocidad y stutter.
- BREAK (SEQ otra vez): el generador de antes, ahora sobre la rejilla y apagado de fábrica. VARY cambia pads, ANCHOR deja los tiempos fuertes, REPEAT y BREAK. La fila PLAYS muestra lo que va a sonar y EDIT + negra 4 lo escribe en la rejilla.
- En la grabadora, las blancas escuchan la toma nueva antes de guardarla.
- El dibujo del sampler (SOUND) es la misma onda espejada; ya no hay tres carriles por frecuencia.
- Los nombres de los modelos de batería, los patches de FM y las ondas también pasan al inglés (con su traducción en el paquete).
English
Beta, not yet tried on the device: it passes the automated tests and the emulator. If something goes wrong on the FM-1, go back to 0.4.0-beta or the stock firmware from the installer.
The screen switches to English, so Bubba Machine can be understood worldwide. Spanish is still available as a language pack, not loaded by default. Take memory goes down from 7.4 s to 6.4 s: 16 KiB of flash now belong to the language pack, and a take that used that space is lost. The sampler becomes a pad sampler and the pattern format changes: saved patterns are erased at the first boot (takes stay).
Added
- Language packs. The screen's phrases are in English and a pack (
.bmlang) translates them. It lives in its own flash zone (0xD9000, 16 KiB), so it does not touch patterns or takes and a firmware update does not erase it. SYSTEM › LANGUAGE switches between English and the loaded pack. Whatever the pack does not translate shows in English.- Spanish (
lang/es.txt, built intolang/es.bmlang): the screen looks as before. - It is loaded on the FM-1 with
tools/fm1/idioma.py(over the USB-MIDI console, with the transport stopped) and in the emulator with a button; on the Spanish emulator page it starts in Spanish the first time. tools/gen_lang.pycollects every phrase intolang/plantilla.txt, checks each translation (ASCII only, the same%) and builds the packs. Anyone can make another language.
- Spanish (
Changed
- T2 is a 16-pad sampler, like a KO II or the drum sampler of an OP-1 field. It replaces the sliced loop with a generator (and SLICER, CORTAR and CHOPS).
- Each pad is a piece of a take, with its own start and length (they can overlap), pitch, level, key mode (ONESHOT, KEY, THRU: held, it keeps going through the take, LOOP), direction, attack, release, choke group and whether it follows the tempo. A kit can mix takes.
- The take builds the kit: when a take is saved with the kit empty, it is cut on the hits, each cut goes to a pad and the grid is written so it plays like the take. In TAKES: N1 kit on the hits, N2 in 16, N3 in 8, N4 the whole take on the selected pad; white keys play it in 16 parts.
- SEQ is a grid like the drums: one line per pad, with its length, accents, repeats, conditions, mutes, fill and per-step P-Lock of FILTER, PITCH, DECAY and START. No more loose numbers: you see which pad plays on which step.
- PADS (EDIT): the take's waveform with the pad in brackets and the other pads marked, and three pages (TRIM, SOUND, ENV; EDIT again changes page). Black keys: copy, paste, empty, start on the hit; 9-11 reverse, half speed and stutter.
- BREAK (SEQ again): the old generator, now on the grid and off by default. VARY changes pads, ANCHOR keeps the strong beats, REPEAT and BREAK. The PLAYS row shows what is going to play and EDIT + black 4 writes it into the grid.
- On the recorder, white keys play the new take before it is saved.
- The sampler drawing (SOUND) is the same mirrored waveform; the three frequency lanes are gone.
- Drum model names, FM patches and waveforms are in English too (translated in the pack).
v0.4.0-betaBubba Machine 0.4.0-betaBeta2 files
⚠️ Beta. Probada en un solo FM-1. Una actualización puede borrar lo que guardaste (patrones, canción, ajustes y tomas). / Tested on a single FM-1. An update may erase what you saved (patterns, song, settings and takes).
Instalar / Install
- Instalador web / web installer: https://erbubar23.github.io/bubba-machine/instalar.html (Chrome o Edge)
bubba-machine-0.4.0-beta.fwsc: el firmware completo / the full firmware.bubba-diag-0.4.0-beta.fwsc: diagnóstico sin sonido / no-sound diagnostic.- Volver al de fábrica / back to stock: FM-1 V15 de / from https://www.m-vave.com/download
Beta: la primera versión que corre en el FM-1. Se probó en un solo aparato (el del autor) y todavía cambia mucho. Una actualización puede borrar lo que guardaste (patrones, canción, ajustes y tomas del sampler): hasta la v1 no hay compatibilidad hacia atrás, y cuando cambia un formato lo anterior se borra al arrancar y vuelve la demo. Si algo te importa, grábalo por la salida de audio antes de actualizar.
Los sonidos se rehicieron: ya no hay sonidos grabados ni wavetables, todo se calcula en vivo con bibliotecas de síntesis probadas. Lo guardado con la 0.3 (patrones, canción, ajustes y tomas) no se lee: se borra al primer arranque y arranca la demo.
Agregado
- Batería modelada (T1 y los canales KIT): 16 instrumentos, cada uno con su modelo: bombo, caja y hat de la 808 y versiones sintéticas al estilo 909 (los modelos de Plaits, de Mutable Instruments), hat metálico y platillos, palmas, tom y conga, cencerro, resonador (rim, clave, bloque), ruido (maracas) y percusión FM. Kits 808, 909 y SINTE. Cada instrumento se edita en INSTR: AFINA, DECAY, TONO, COLOR (lo que corresponda al modelo), MODELO, NIVEL, grupo de corte (choke) y LARGO. El acento pega distinto, no solo más fuerte. Seis voces para la batería (antes cuatro).
- ANALOG nuevo, analógico virtual de verdad: dos osciladores de forma variable con polyBLEP (SIERRA, CUADRADA con ancho de pulso, TRIANGULO, SENO con plegado y 3 SIERRAS), sync, ring, sub y ruido; filtro LP 24/12, BP o HP con resonancia y drive; ADSR de filtro y de nivel; LFO a tono, corte, forma o nivel; POLI, MONO o LEGATO con glide. 16 presets.
- Editor de sonido por páginas (SONIDO en ANALOG, INSTR en la batería): 4 ajustes por página en K1-K4, SELECT pasa de página, EDIT/ENV/LFO saltan a la que toca, y un dibujo de lo que hace cada página (onda, curva del filtro, envolvente, LFO).
- Motor FM de 6 operadores (msfa, la base de Dexed y del firmware de fábrica) para T3 y los canales libres: 16 patches propios (E.PIANO, BAJO FM, CAMPANA, METALES, CUERDAS, ORGANO, CLAVI, MARIMBA...), con las macros BRILLO, REALIM, DECAY y ALGORITMO (los 32 de la DX7) y una pantalla con los 6 operadores. MAS > MOTOR > FM.
- Sampler: mantener un paso hace sonar el loop desde ahí, entero y en bucle, mientras lo sostienes.
- Grabación libre en los canales de notas, como una loopera: en un canal vacío, REC no tiene largo fijo; al cerrarlo, el canal queda en compases completos (1-4) y cada nota guarda lo que la sostuviste.
- Largo en compases en la capa de SEQ (negras 7-10).
- Motores de sonido nuevos: ACID (estilo 303: filtro escalera de 4 polos con resonancia, acento y slide) para T3 y los canales libres; ANALOG (dos osciladores desafinados, sub y ruido, 6 timbres) para los canales libres; y el kit SINTE, una batería calculada en vivo. Los kits grabados KO-808 y KO-909 se quedan.
- Memoria de tomas a la vista: en la grabadora (segundos y KB libres, máximo por toma) y en el emulador, junto a la carga de audio.
- SLICER (SEQ otra vez en T2): el sampler corta la toma en 16 cortes, uno por blanca. Las blancas tocan los cortes y, con REC y PLAY, los fijan en el paso; K1 elige, K2 mueve, K3 sensibilidad, K4 ganancia; negras 1-3: cortes en los golpes, 16 u 8 iguales; 9-11 reversa, media velocidad y stutter. Los cortes en los golpes buscan los ataques (sirven también para voces).
- Tira de teclas en pantalla: cada página de canal, MEZCLA y ESCENAS dibuja las 11 negras y las 16 blancas con su nombre corto y el mismo estado que su luz (las luces son blancas y no dicen qué hace la tecla). En HOME la tira es grande. Donde las blancas ya se ven en la pantalla (SEQ, CORTAR, SLICER), la tira muestra solo las negras.
- Batería por secciones de 8: el SEQ de la batería muestra 8 instrumentos con su nombre en letra normal; la negra 9 cambia de sección.
- Subir una toma desde la computadora:
tools/fm1/toma.pyconvierte cualquier audio (con ffmpeg) y lo manda al FM-1 por USB-MIDI; queda como una toma recién grabada. - Demo nueva: acid techno a 160 BPM (909, una línea 303 con acentos y slides y el sampler cortando la primera toma).
- FM-1, Bubba Machine completo para el aparato (beta, probado en el FM-1 del autor): el núcleo con sonido por el codec (ALNK0), la matriz y los LEDs por interrupción, pantalla, USB-MIDI, guardado, modo seguro y servicio de actualización.
- FM-1, firmware de diagnóstico: sin sonido que muestra cada botón, tecla y perilla, el MASTER, la batería y el USB-MIDI, con modo seguro, salida al modo del chip y el servicio de actualización.
- Instalador web (
instalar.html): arma el paquete en el navegador sobre el FM-1 V15 de M-VAVE (que cada quien descarga) y lo instala con el cargador oficial; lee el FM-1 solo (dice qué firmware tiene, o por qué no lo encuentra), se elige qué instalar (Bubba Machine, diagnóstico o firmware de fábrica) y queda un botón; también vuelve al firmware de fábrica y continúa una instalación cortada.tools/fm1/servir.pylo sirve en la computadora con el V15 ya cargado. - Herramientas del FM-1:
tools/fm1/fwsc.py(empaquetador, comprobado byte por byte contra el V15) ytools/fm1/rescate.py(rescate desde Windows por el modo del chip, con respaldo completo antes de escribir).
Cambiado
- Negras 10 y 11 en los canales: abren pantallas. La 10 (batería) abre los MUTES de los instrumentos y la 11 abre el FILL, donde suena el fill y las blancas arman sus golpes (o marcan notas solo para el fill), con K1 = fill automático. Un toque las deja abiertas (se cierran con la misma tecla o HOME); mantenerlas = solo mientras las sostienes. Un toque ya no mutea a ciegas: cada mute avisa y el instrumento muteado queda en rojo.
- ALGORITHM dentro de un canal también pasa por el recuadro con el número antes de cambiar; en INSTR elige instrumento y lo hace sonar.
- HOME explica las negras (mutes, solo, escenas, fill, y las pantallas de la batería).
- Fuera los motores viejos: BAJO, SYNTH (wavetable), MONO y el ANALOG de 6 timbres pasan al ANALOG nuevo; los kits grabados KO-808 y KO-909 y el kit SINTE, a la batería modelada. El programa del FM-1 ocupa 148 KiB menos y se liberan 64 KiB de RAM.
- Patrones en formato 5: cada canal guarda 32 ajustes de sonido, cada instrumento de batería su modelo y su golpe, y la nota del sampler su corte (4 bits). Las tomas pasan a la firma BMT4 (16 cortes en la cabecera).
- Fuera los loops de fábrica: el sampler toca solo tomas (grabadas o subidas con
tools/fm1/toma.py). - ANALOG en el FM-1: 4.1 % de un núcleo por voz (oscilador polyBLEP propio, filtro recalculado cada 8 muestras, saturación sin división y el cálculo por pasadas cortas; la primera versión costaba 10 %).
- El audio se compila para velocidad: en el FM-1 la demo con PLAY pasó de 36.9 % a 27.7 % de un núcleo. Las wavetables se arman al arrancar desde su espectro (el programa ocupa 56 KiB menos).
- Audio a 44.1 kHz de punta a punta, con el bus en coma flotante. Los motores calculaban a 22 kHz y la salida se duplicaba; ahora calculan a 44.1 kHz (agudos hasta 20 kHz, sin imágenes del sobremuestreo) y la mezcla, el delay, los efectos y el clipper son de coma flotante, por bloques. El delay y la captura de los efectos (stutter, reversa, tape stop) pasan a 16 bits (antes la captura era μ-law de 8 bits), y la grabación del sampler se filtra con un Butterworth antes de bajar a 16 kHz. En el FM-1, con PLAY, la mezcla cuesta menos que antes aunque calcula el doble de muestras (docs/TRAZA_FM1.md).
- La interpolación DROP (sin interpolar) pasa a ser LINEAL: a 44.1 kHz, repetir muestras sonaba a lo-fi.
- La página SEQ de los canales de notas es solo de ese canal: piano roll de la página con el largo de cada nota, los compases del canal y el seguidor de tempo punteado. Ya no muestra los otros canales.
- Las notas grabadas pueden durar hasta 4 compases (antes, 1).
- Mapa de la flash para el aparato: los ajustes globales pasan a
0xDD000y la biblioteca de tomas queda en 116 KiB (7.4 s en total; antes 8.1 s), para dejar lugar al cargador en espera y al almacén del SDK.
English
Beta: the first version that runs on the FM-1. It was tested on a single device (the author's) and still changes a lot. An update may erase what you saved (patterns, song, settings and sampler takes): until v1 there is no backward compatibility, and when a format changes the old data is erased at boot and the demo comes back. If something matters to you, record it from the audio output before updating.
The sounds were rebuilt: no more recorded sounds or wavetables, everything is computed live with proven synthesis libraries. What 0.3 saved (patterns, song, settings and takes) is not read: it is erased on first boot and the demo starts.
Added
- Modeled drums (T1 and KIT tracks): 16 instruments, each with its own model: 808 kick, snare and hat plus 909-style synthetic versions (the Plaits models by Mutable Instruments), metallic hat and cymbals, clap, tom and conga, cowbell, resonator (rim, clave, block), noise (maracas) and FM percussion. Kits 808, 909 and SINTE. Each instrument is edited in INSTR: TUNE, DECAY, TONE, COLOR (whatever fits the model), MODEL, LEVEL, choke group and LENGTH. Accents hit differently, not just louder. Six drum voices (was four).
- New ANALOG, a real virtual analog: two variable-shape polyBLEP oscillators (SAW, SQUARE with pulse width, TRIANGLE, folded SINE and 3 SAWS), sync, ring, sub and noise; LP 24/12, BP or HP filter with resonance and drive; filter and amp ADSR; LFO to pitch, cutoff, shape or level; POLY, MONO or LEGATO with glide. 16 presets.
- Paged sound editor (SOUND for ANALOG, INSTR for drums): 4 settings per page on K1-K4, SELECT changes page, EDIT/ENV/LFO jump to the right one, with a drawing of what each page does (wave, filter curve, envelope, LFO).
- 6-operator FM engine (msfa, the base of Dexed and of the factory firmware) for T3 and the free channels: 16 original patches (E.PIANO, FM BASS, BELL, BRASS, STRINGS, ORGAN, CLAVI, MARIMBA...), with the BRILLO (brightness), REALIM (feedback), DECAY and ALGORITMO (all 32 DX7 algorithms) macros and a screen showing the 6 operators. MORE > ENGINE > FM.
- Sampler: holding a step plays the loop from there, whole and looping, while you hold it.
- Free recording on note tracks, like a looper: on an empty track, REC has no fixed length; when you close it, the track gets whole bars (1-4) and every note keeps how long you held it.
- Length in bars on the SEQ layer (black 7-10).
- New sound engines: ACID (303-style: 4-pole ladder filter with resonance, accent and slide) for T3 and the free tracks; ANALOG (two detuned oscillators, sub and noise, 6 timbres) for the free tracks; and the SINTE kit, drums computed live. The recorded KO-808 and KO-909 kits stay.
- Take memory in view: on the recorder (free seconds and KB, maximum per take) and in the emulator, next to audio loading.
- SLICER (SEQ again on T2): the sampler cuts the take into 16 slices, one per white key. White keys play the slices and, with REC and PLAY, set them on the step; K1 picks, K2 moves, K3 sensitivity, K4 gain; black 1-3: slices on the hits, 16 or 8 equal; 9-11 reverse, half speed and stutter. Slicing on the hits looks for the attacks (it also works for vocals).
- Key strip on screen: every track page, MEZCLA (mix) and ESCENAS (scenes) draws the 11 black and 16 white keys with a short name and the same state as their light (the lights are white and don't say what a key does). On HOME the strip is large. Where the white keys are already on screen (SEQ, CORTAR, SLICER), the strip shows only the black keys.
- Drums in sections of 8: the drum SEQ shows 8 instruments with their names in regular type; black 9 switches section.
- Upload a take from the computer:
tools/fm1/toma.pyconverts any audio (with ffmpeg) and sends it to the FM-1 over USB-MIDI; it arrives as a freshly recorded take. - New demo: acid techno at 160 BPM (909, a 303 line with accents and slides and the sampler slicing the first take).
- FM-1, full Bubba Machine for the device (beta, tested on the author's FM-1): the core with sound through the codec (ALNK0), matrix and LEDs on interrupts, screen, USB-MIDI, saving, safe mode and the update service.
- FM-1, diagnostic firmware: no sound that shows every button, key and knob, MASTER, the battery and USB-MIDI, with safe mode, a way into chip mode and the update service.
- Web installer (
instalar.html): builds the package in the browser on top of M-VAVE's FM-1 V15 (which each user downloads) and installs it with the official loader; it reads the FM-1 by itself (says which firmware it runs, or why it can't find it), you choose what to install (Bubba Machine, diagnostic or factory firmware) and press one button; it also goes back to the factory firmware and resumes an interrupted install.tools/fm1/servir.pyserves it on the computer with V15 already loaded. - FM-1 tools:
tools/fm1/fwsc.py(packer, checked byte for byte against V15) andtools/fm1/rescate.py(rescue from Windows through chip mode, with a full backup before writing).
Changed
- Black 10 and 11 on tracks open screens. 10 (drums) opens the instrument MUTES and 11 opens the FILL screen, where the fill plays and the white keys build its hits (or mark notes as fill-only), with K1 = automatic fill. A tap keeps them open (close with the same key or HOME); holding = only while held. A tap no longer mutes blindly: every mute shows a message and a muted instrument turns red.
- ALGORITHM inside a track also goes through the box with the number before switching; in INSTR it picks an instrument and plays it.
- HOME explains the black keys (mutes, solo, scenes, fill and the drum screens).
- Old engines removed: BASS, SYNTH (wavetable), MONO and the 6-timbre ANALOG become the new ANALOG; the recorded KO-808/KO-909 kits and the SINTE kit become the modeled drums. The FM-1 program is 148 KiB smaller and 64 KiB of RAM are freed.
- Patterns in format 5: each track stores 32 sound settings, each drum instrument its model and hit, and each sampler note its slice (4 bits). Takes move to the BMT4 signature (16 slices in the header).
- Factory loops removed: the sampler plays only takes (recorded or uploaded with
tools/fm1/toma.py). - ANALOG on the FM-1: 4.1 % of a core per voice (own polyBLEP oscillator, filter coefficients every 8 samples, division-free saturation and short per-block passes; the first version cost 10 %).
- Audio code is compiled for speed: on the FM-1 the demo with PLAY went from 36.9 % to 27.7 % of a core. Wavetables are built at boot from their spectrum (56 KiB less program).
- 44.1 kHz audio end to end, with a floating-point bus. The engines used to run at 22 kHz and the output was doubled; they now run at 44.1 kHz (highs up to 20 kHz, no oversampling images) and the mix, delay, effects and clipper are floating point, block based. The delay and the effects capture (stutter, reverse, tape stop) are now 16-bit (the capture used to be 8-bit μ-law), and sampler recording goes through a Butterworth filter before dropping to 16 kHz. On the FM-1, with PLAY, the mix costs less than before even though it computes twice the samples (docs/TRAZA_FM1.md).
- DROP interpolation (no interpolation) becomes LINEAR: at 44.1 kHz, repeating samples sounded lo-fi.
- The SEQ page of note tracks is only about that track: a piano roll of the page with each note's length, the track's bars and the dotted tempo follower. It no longer shows the other tracks.
- Recorded notes can last up to 4 bars (before, 1).
- Flash map for the device: global settings move to
0xDD000and the take library becomes 116 KiB (7.4 s in total; before 8.1 s), to make room for the waiting loader and the SDK store.
v0.2.0Bubba Machine 0.2.00 files
Primera versión pública de Bubba Machine, firmware libre (GPL-3.0-or-later) de groovebox de 6 pistas para el M-VAVE FM-1.
Importante: esta versión funciona completa en el emulador web y en las pruebas de PC. El port al FM-1 todavía no se ha probado en hardware y no hay binario para instalar. No intentes flashear nada. Ver Instalar.
Agregado
- Batería TR (T1) y sampler (T2) con 16 instrumentos, cada uno con su línea y su largo (polímetro), acento, repetición ×2-×4, flam, P-Locks y pasos que solo suenan (o callan) en el fill. Roll en vivo y borrado estilo TR.
- Tiempo por pista: largo 1-64 y velocidad ×2 a ×1/4; largo maestro de 16 pasos a infinito.
- Sampler: graba la mezcla con chops en vivo; 2 slots de 4 s en flash que se reproducen directo (XIP).
- Loops de fábrica en la ROM (BUBBA 160 y BUBBA 128), sintetizados por
tools/gen_loops.py. El demo arranca con uno. - Dibujo del sample por frecuencias: tres carriles (graves, medios y agudos) en lugar de la forma de onda, que en música muy comprimida es un bloque.
- Loopera de notas por pista en los synths (REC › PLAY › OVERDUB).
- Acordes en cuadrícula 4×4 con grado, nombre y función por color; juegos de progresiones, voicing conducido y strum.
- Escenas A-D con cadenas y SONG REC; fills automáticos.
- Tercera pulsación de 2 s (TIEMPO, SISTEMA, SAMPLER, borrar pista, guardado rápido) con anillo de progreso.
- Licencia GPL-3.0-or-later, documentación, sitio web y CI.
Cambiado
- El proyecto se publica como Bubba Machine, independiente de cualquier firmware anterior.
Sitio: https://erbubar23.github.io/bubba-machine/ · Manual: https://erbubar23.github.io/bubba-machine/docs/manual.html
