Wunsch des Users (2026-10-10): nächster Audio-Node nach #398 ist der Bitcrusher, wie die anderen als eigenes Gerät mit fester Größe im Graphen.
Geplant:
Platte 680 × 280 in eigenem Stil, Bits und Rate als große Knöpfe, Wet als kleiner.
Schirm: ein Sinus läuft durch den echten Crusher des Kerns. Was herauskommt, wird als Pixelblöcke gezeichnet, eine Zelle so hoch wie eine Stufe (Bits) und so breit wie ein Hold (Rate).
16 LEDs zeigen, wie viele Bits übrig bleiben. Unter dem Schirm stehen der Rauschabstand und ab wo gespiegelt wird.
Jede Änderung ist ein Undo-Schritt, verkabelte Werte sind gesperrt, bei Wet 0 ist der Rest blass.
Wunsch des Users (2026-10-10): nächster Audio-Node nach #398 ist der **Bitcrusher**, wie die anderen als eigenes Gerät mit fester Größe im Graphen.
Geplant:
- Platte 680 × 280 in eigenem Stil, Bits und Rate als große Knöpfe, Wet als kleiner.
- Schirm: ein Sinus läuft durch den echten `Crusher` des Kerns. Was herauskommt, wird als Pixelblöcke gezeichnet, eine Zelle so hoch wie eine Stufe (Bits) und so breit wie ein Hold (Rate).
- 16 LEDs zeigen, wie viele Bits übrig bleiben. Unter dem Schirm stehen der Rauschabstand und ab wo gespiegelt wird.
- Jede Änderung ist ein Undo-Schritt, verkabelte Werte sind gesperrt, bei Wet 0 ist der Rest blass.
Platte: 680 × 280 in Bonbon-Pink, im Arcade-Stil, die Eingänge links, out rechts. Bits und Rate als große Knöpfe, Wet als kleiner. Jede Änderung ist ein Undo-Schritt, verkabelte Werte sperren ihren Knopf, bei Wet 0 steht unten „DRY“.
Schirm „A 440 Hz sine at 0 dBFS“: Der Sinus läuft durch denselben Crusher, den auch der Worklet nimmt, samt Wet. Ein Hold wird als Zelle gezeichnet, so hoch wie eine Stufe der Bits und so breit wie ein Hold der Rate. Ab 5 px bekommen Stufen und Holds ein Raster und Lücken, feine Stufen werden zu dünnen Balken, bei 1 Bit liegen Balken auf -1, 0 und 1. Der Eingang liegt als grauer Geist dahinter, bei Wet unter 1 die gehörte Linie darüber.
Spanne: 2 Perioden (4,5 ms), bei sehr tiefer Rate 6 Holds (z. B. 20 ms bei 300 Hz). Die Spanne steht in der Ecke.
Texte: oben rechts CLEAN, GRITTY, CRUNCHY, CRUSHED oder BROKEN, unten z. B. „NOISE -50 dB“ und „FOLDS AT 4 kHz“.
16 Lampen „BITS KEPT“, das höchste Bit links. Die Lampe CRUSH neben dem Namen glüht stärker, je mehr er zerkleinert.
Selbst entschieden
Der Schirm steht still, es gibt keine Animation. Den Bitcrusher bewegt nichts von selbst.
Der Grad zählt, was mehr wegnimmt: Bits oder Rate (die Rate in Oktaven), mal Wet.
In den Presets bekommt der Bitcrusher 4 Spalten. Jedes sfxr-Effekt-Preset endet mit einem Bitcrusher und wird dadurch 3 Spalten breiter. Das Laser-Preset passt mit Fit weiterhin ganz ins Bild, nichts überlappt.
Fund, kein Fehler
Bei 8 kHz ist der erste Hold 7 Samples lang, die übrigen 6. Sechs Sechstel ergeben im Crusher 0,9999999999999999. Der Worklet macht es genauso, das Bild zeigt also, was man hört.
Schirm gegen Worklet: Bei drei Einstellungen stimmt der Schirm mit dem Crusher samt Wet überein.
Gegenprobe: Ohne den Wet beim Mischen wird genau dieser Test rot.
e2e: Größe und Ports, 4 Lampen bei 4 Bit, 37 Zellen mit Lücke und die Texte. Bits hoch ergibt mehr Lampen und feinere Stufen, Rate runter weniger Holds, zwei Undos stellen alles wieder her.
Bilder angesehen: Standard, 16 Bit/48 kHz, 3 Bit/4 kHz, 1 Bit, 300 Hz, Wet 50 %, Wet 0, das ganze Gerät und das Laser-Preset. Behoben dabei: Bei 1 Bit waren die Zellen 64 px hoch und ragten aus dem Schirm.
Erledigt mit a6c00f7, Wiki 0ea28c5.
## Das Gerät
- **Platte:** 680 × 280 in Bonbon-Pink, im Arcade-Stil, die Eingänge links, `out` rechts. Bits und Rate als große Knöpfe, Wet als kleiner. Jede Änderung ist ein Undo-Schritt, verkabelte Werte sperren ihren Knopf, bei Wet 0 steht unten „DRY“.
- **Schirm „A 440 Hz sine at 0 dBFS“:** Der Sinus läuft durch denselben `Crusher`, den auch der Worklet nimmt, samt Wet. Ein Hold wird als Zelle gezeichnet, so hoch wie eine Stufe der Bits und so breit wie ein Hold der Rate. Ab 5 px bekommen Stufen und Holds ein Raster und Lücken, feine Stufen werden zu dünnen Balken, bei 1 Bit liegen Balken auf -1, 0 und 1. Der Eingang liegt als grauer Geist dahinter, bei Wet unter 1 die gehörte Linie darüber.
- **Spanne:** 2 Perioden (4,5 ms), bei sehr tiefer Rate 6 Holds (z. B. 20 ms bei 300 Hz). Die Spanne steht in der Ecke.
- **Texte:** oben rechts CLEAN, GRITTY, CRUNCHY, CRUSHED oder BROKEN, unten z. B. „NOISE -50 dB“ und „FOLDS AT 4 kHz“.
- **16 Lampen „BITS KEPT“**, das höchste Bit links. Die Lampe *CRUSH* neben dem Namen glüht stärker, je mehr er zerkleinert.
## Selbst entschieden
- Der Schirm steht still, es gibt keine Animation. Den Bitcrusher bewegt nichts von selbst.
- Der Grad zählt, was mehr wegnimmt: Bits oder Rate (die Rate in Oktaven), mal Wet.
- In den Presets bekommt der Bitcrusher 4 Spalten. Jedes sfxr-Effekt-Preset endet mit einem Bitcrusher und wird dadurch 3 Spalten breiter. Das Laser-Preset passt mit *Fit* weiterhin ganz ins Bild, nichts überlappt.
## Fund, kein Fehler
Bei 8 kHz ist der erste Hold 7 Samples lang, die übrigen 6. Sechs Sechstel ergeben im `Crusher` 0,9999999999999999. Der Worklet macht es genauso, das Bild zeigt also, was man hört.
## Tests
```
Unit crusher-view (stein2) → 13 Tests grün (neu), chip-presets grün
e2e 34 (atx) → ALL PASSED, 143 Checks (1 neu)
Gate (atx) → CHECK EXIT 0, 292 Dateien, 4484 Tests
```
- Schirm gegen Worklet: Bei drei Einstellungen stimmt der Schirm mit dem `Crusher` samt Wet überein.
- Gegenprobe: Ohne den Wet beim Mischen wird genau dieser Test rot.
- e2e: Größe und Ports, 4 Lampen bei 4 Bit, 37 Zellen mit Lücke und die Texte. Bits hoch ergibt mehr Lampen und feinere Stufen, Rate runter weniger Holds, zwei Undos stellen alles wieder her.
- Bilder angesehen: Standard, 16 Bit/48 kHz, 3 Bit/4 kHz, 1 Bit, 300 Hz, Wet 50 %, Wet 0, das ganze Gerät und das Laser-Preset. Behoben dabei: Bei 1 Bit waren die Zellen 64 px hoch und ragten aus dem Schirm.
**Nicht geprüft:**
- ein verkabelter Bitcrusher-Wert im Browser
- der Bitcrusher im Instrument-Graphen per Maus
- der CI-Lauf zu a6c00f7 (nicht abgewartet)
Nachtrag: Bitcrusher und Delay sind niedriger, mit 742f240, Wiki c506b7d.
Gerät
vorher
jetzt
Was sich geändert hat
Bitcrusher
680 × 280
680 × 220
Die Knöpfe sitzen 14 höher, die Lücke zur Lampenreihe ist etwa halb so groß. Der Schirm ist 116 statt 176 hoch.
Delay
680 × 280
680 × 224
Die Knopfgruppen beginnen 16 höher, näher an den beiden Hebeln. Der Schirm ist 120 statt 176 hoch.
Unten: Die Blende um den Schirm wird jetzt vom unteren Rand aus gerechnet. Sie hat unten denselben Abstand (24) wie seitlich, ihre Unterkante liegt auf einer Höhe mit den Werten unter den Knöpfen.
Delay 4 höher als der Bitcrusher: Die Hebel ragen mit ihrer Kugel weiter herunter als die Lampenreihe. Für dieselbe Lücke von 14 braucht der Delay 4 Einheiten mehr.
Nachtrag: Bitcrusher und Delay sind niedriger, mit 742f240, Wiki c506b7d.
| Gerät | vorher | jetzt | Was sich geändert hat |
|---|---|---|---|
| **Bitcrusher** | 680 × 280 | **680 × 220** | Die Knöpfe sitzen 14 höher, die Lücke zur Lampenreihe ist etwa halb so groß. Der Schirm ist 116 statt 176 hoch. |
| **Delay** | 680 × 280 | **680 × 224** | Die Knopfgruppen beginnen 16 höher, näher an den beiden Hebeln. Der Schirm ist 120 statt 176 hoch. |
- **Unten:** Die Blende um den Schirm wird jetzt vom unteren Rand aus gerechnet. Sie hat unten denselben Abstand (24) wie seitlich, ihre Unterkante liegt auf einer Höhe mit den Werten unter den Knöpfen.
- **Delay 4 höher als der Bitcrusher:** Die Hebel ragen mit ihrer Kugel weiter herunter als die Lampenreihe. Für dieselbe Lücke von 14 braucht der Delay 4 Einheiten mehr.
## Tests
```
Unit crusher-view, delay-view (stein2) → 30 Tests grün
e2e 34 (atx) → ALL PASSED, 144 Checks
Gate (atx) → CHECK EXIT 0, 293 Dateien, 4495 Tests
```
- Bilder angesehen: Bitcrusher in der Standardeinstellung, Delay in der Standardeinstellung und mit Ping-pong. Nichts überlappt.
**Nicht geprüft:**
- Bitcrusher bei 1 Bit im niedrigeren Schirm. Die Höhengrenze der Zellen geht mit dem Schirm mit, angesehen habe ich es nicht.
- der CI-Lauf zu 742f240 (nicht abgewartet)
admin
added this to the Development project 2026-10-11 13:04:55 +02:00
admin
moved this to Next in Development on 2026-10-11 13:05:04 +02:00
admin
moved this to Done in Development on 2026-10-11 13:05:26 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Wunsch des Users (2026-10-10): nächster Audio-Node nach #398 ist der Bitcrusher, wie die anderen als eigenes Gerät mit fester Größe im Graphen.
Geplant:
Crusherdes Kerns. Was herauskommt, wird als Pixelblöcke gezeichnet, eine Zelle so hoch wie eine Stufe (Bits) und so breit wie ein Hold (Rate).Erledigt mit
a6c00f7, Wiki 0ea28c5.Das Gerät
outrechts. Bits und Rate als große Knöpfe, Wet als kleiner. Jede Änderung ist ein Undo-Schritt, verkabelte Werte sperren ihren Knopf, bei Wet 0 steht unten „DRY“.Crusher, den auch der Worklet nimmt, samt Wet. Ein Hold wird als Zelle gezeichnet, so hoch wie eine Stufe der Bits und so breit wie ein Hold der Rate. Ab 5 px bekommen Stufen und Holds ein Raster und Lücken, feine Stufen werden zu dünnen Balken, bei 1 Bit liegen Balken auf -1, 0 und 1. Der Eingang liegt als grauer Geist dahinter, bei Wet unter 1 die gehörte Linie darüber.Selbst entschieden
Fund, kein Fehler
Bei 8 kHz ist der erste Hold 7 Samples lang, die übrigen 6. Sechs Sechstel ergeben im
Crusher0,9999999999999999. Der Worklet macht es genauso, das Bild zeigt also, was man hört.Tests
Crushersamt Wet überein.Nicht geprüft:
a6c00f7(nicht abgewartet)Nachtrag: Bitcrusher und Delay sind niedriger, mit
742f240, Wiki c506b7d.Tests
Nicht geprüft:
742f240(nicht abgewartet)