github Erbubar23/bubba-machine v0.4.0-beta
Bubba Machine 0.4.0-beta

pre-release4 hours ago

⚠️ 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


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.py convierte 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.py lo 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) y tools/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 0xDD000 y 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.py converts 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.py serves it on the computer with V15 already loaded.
  • FM-1 tools: tools/fm1/fwsc.py (packer, checked byte for byte against V15) and tools/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 0xDD000 and 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.

Don't miss a new bubba-machine release

NewReleases is sending notifications on new releases.