Topic: new engine: BeepModular-1
esoteric music plays... Imagine... a beeper engine that can play almost any sound ever played by any beeper engine. An engine that transcends the boundaries between data and code by enabling you to modify any part of the player at runtime. An engine that will revolutionize the way we make beeper mu-record scratch
Ok guys, let's cut the crap Here's my latest engine. It picks up where wtbeep left off, and combines the modular concept of it with the simplified volume generation technique I posted for the saw wave demo here. It's insanely powerful, but unfortunately, composing music for it will also drive you insane, as there's no editor available and the data format is rather complex. In theory, the latest MDAL should be able to support the engine, but I need to implement mixing of strings and numeric values before it really makes sense to try.
Anyway, have a quote from Uncle Readme.
BM-1 is an experimental sound routine for the ZX Spectrum beeper. It features a
highly versatile synthesis core that can be modified during runtime, which
makes it possible to generate a near-endless range of different sounds.Features include:
- 2 tone channels, 12-bit or 15-bit frequency dividers
- patches: on-the-fly modifications of the synthesis algorithm
- volume control (8 levels per channel, availability depends on patch)
- tables: change pitch and fx parameters per tick
- functions: arbitrary code execution/modification once per tick
- customizable click drums
- per-step tempo control
- compact player size (375 bytes, can be reduced by disabling features)
- optimized data formatWith patches, you can produce
- variable duty cycles
- phatness/harmonics control
- fake chords
- bytebeat-like glitches
- SIDsound (duty sweep)
- PFM (classic pin pulse sound)
- noise
source: https://github.com/utz82/ZX-Spectrum-1- … aster/bm-1
direct dl: https://github.com/utz82/ZX-Spectrum-1- … p?raw=true
This will be more or less my last engine for the ZX beeper, until a some fundamentally new techniques are discovered. I still have two ideas I want to put into practise, but these will be rather simple (one is an engine with vibrato support, and one is applying the volume technique from BM-1 to wavetables, which will save a huge amount of code compared to the multi-core technique). Not sure when I'll do those, if somebody else wants to pick up these ideas in the meantime, that's fine with me. No worries though, I have no intentions of abandoning the Spectrum, but I have some other unfinished projects that I want to focus on in the coming months. Stay tuned.
Edit: Added an example patch for PFM sound.