Yeah, 2 downvotes already! I'm famous woohooo
351 2019-01-07 13:04:37
Re: upcoming beeper compos (135 replies, posted in Sinclair)
352 2019-01-06 15:17:11
Re: upcoming beeper compos (135 replies, posted in Sinclair)
Thanks, Shiru. I'm not terribly proud of this one, actually. Except for the ghost notes in the section starting at 0:45, really like how those turned out. Think your track is great, too, classic Shiru style. Wanted to send another track, but same problem: not enough time to finish it.
353 2018-12-26 22:52:40
Re: Spectronica - ZX Beeper Album Released (4 replies, posted in Sinclair)
Of course I've already told you a few times that this is a fantastic album but... Awesome album is awesome. It not only shows how far we've come in terms of beeper sound, but even more importantly it shows how far you've come as a composer since (the already outstanding) 1-bit Mechanistic. Well done, mate.
354 2018-12-26 22:33:48
Re: new engine: StringKS (3 replies, posted in Sinclair)
Thanks you guys! After playing with this engine some more I think it needs more polish, but I'm still glad it works at all. And yes, it's surprisingly cheap even with realtime low pass, but of course banked buffers open up even more possibilities, like emulating attack transient variations (StringKS can do it but there are no built-in buffers for it so they currently need to be prepared by the user). I'm also wondering if this could be a candidate for Jan Deak style "ahead-of-time" buffer generation. In general I have a strong feeling that his method might be useful for something other than just generating loads of pulse trains, but still searching...
355 2018-12-26 22:21:00
Re: next gen engine ideas (135 replies, posted in Sinclair)
Seems that biggest mistake in many of my newer engines is not to mask bit 3. Worked wonders for the KS thing in any case.
I tried some simple 1-bit mixing on Gameboy a while back, so I can confirm it generally works. On the other hand I currently don't have a machine with AY so I have less of a motivation to try it. Maybe when I get my Next hur hur... Tried to make a combined AY+Beeper engine but it turns out that volume difference is huge and also varies alot between models, so I haven't investigated further into this direction either.
Currently I'm looking a lot into data encoding. I have a sort of el cheapo floating point format now which allows me to encode 12-bit frequency dividers in 8 bits. Costs 8 additional cycles in sound loop, but saves a register. Something similar should be doable for 16-bit dividers. Also I'm experimenting with a new song data format that isn't based on pattern/sequence structure but rather on dictionary based approach. Parsing such data has a small overhead compared to seq/ptn data (needs an additional register pair for decoding and is slightly slower than just popping values from stack), but first tests are promising: on average 10-30% smaller data than the traditional approach. However, I need to test it with more data to be sure. Thinking about grabbing a large set of files from modarchive and build test material from that. Anyway, will of course post more on that once it's progressed a bit further.
356 2018-12-26 21:11:49
Re: upcoming beeper compos (135 replies, posted in Sinclair)
Yes! Thanks for the reminder, Vinnny. I'll try to make something but can't promise.
357 2018-11-15 23:09:45
Topic: new engine: StringKS (3 replies, posted in Sinclair)
Wow, appearantly it's been almost a year since I published a new beeper engine. So it was about time for some good ol' t-state squeezing.
StringKS is an experimental engine that implements Karplus-Strong inspired string synthesis. It's more a proof-of-concept than an actually useful engine (hence no converter is provided), however it does prove that physical modelling is possible in 1-bit, and I think it's worth exploring this concept further.
Synthesis is done by creating an initial ring buffer from various sources (at the moment, ROM noise, rectangle wave with variable duty, and saw wave are supported), and then continually running a simple low-pass filter over the buffer. The size of the buffer determines the pitch. It is also possible to source from user-created data (so theoretically one can start from a pre-filtered buffer to create softer attack transients). Additionally, I threw in PWM sample playback on one of the channels, and regular rectangle wave playback (also on one channel only). There's also a (rather brutal) overdrive mode. All synth methods except the saw wave one support a somewhat crude 3-bit volume control.
source code
An extremely uninspired demo tune is attached.
Limitations:
- 8-bit frequency counters only, so the available note range is rather limited.
- At higher notes, tones will fade out very quickly.
I believe it's possible to rectify these issues, but more research is needed. One possible approach I experimented with was to generate data on the fly with the usual add-and-compare method while keeping track of the low-pass cutoff. It works but so far sound quality is worse than with the buffered approach. Another way might be to pre-scale the speed of buffer iteration to reach lower frequencies (e.g. update buffer pointer only every other sound loop iteration), and to slow down decay by only running the filter on every other buffer iteration. Still need to find some free t-states for that, though. Perhaps splitting updates so only one channel gets updated per sound loop iteration might be doable. Well, I'm open to ideas, of course
358 2018-10-29 17:28:22
Re: Now writing articles on music engine integration (2 replies, posted in Sinclair)
Thumbs up
A small note about Huby, using Beepola/1tracker is strictly optional for transcriptions. You can also generate music data directly from the imported MIDI data in OpenMPT by using the Huby XM converter. However, the best option is always to ask a chiptune musician to do a cover for you, rather than converting from MIDI data
359 2018-10-27 22:36:51
Re: talk about mainframe music history (4 replies, posted in General Discussion)
Thx Yes, sound and video examples were not recorded for copyright reasons, but you can find all the examples over at the 1-bit timeline post (which I've been updating quite a bit lately).
360 2018-10-23 19:56:23
Re: Ant Eater now work z88dk (1 replies, posted in Sinclair)
Ha, neat!
I think anteater has some flaws (namely incorrect tuning due to insufficient frequency divider size). On the other hand, looking back it was probably not that bad for a first (well, probably second or third) attempt
361 2018-10-22 11:59:18
Re: Ear Shaver questions and concerns (9 replies, posted in Sinclair)
As much as I'd advocate trying some of the newer beeper engines, the most convenient for you would be to use Tritone, as it's natively supported in z88dk.
Also, don't worry too much about size. Once you use compression (and only unpack into a buffer when you need it), data size doesn't really matter that much. I think z88dk has zx7 compressor build in, which works fairly well on music data.
362 2018-10-22 11:46:45
Re: rewriting Pasmo to SDCC equilivant (4 replies, posted in Sinclair)
I don't know what would be the equivalent in SDCC syntax, might be as simple as
oldSP = $+1
Generally, what this pseudo-op construct means is: "assign a label (oldSP) to the current address ($) + 1". So in this example, oldSP will point to the address immediately after the "ld sp,nnnn" instruction, which happens to be the "nnnn" part. There is some other part in the code (usually in the init part) that writes the value of SP at that point in time to the location of oldSP. The snippet "ld sp,old_value" is then usually called on exit, to restore SP to it's proper value, as many beeper engines mess with the stack a lot.
Anyway, the point is that if you don't have any form of "label equ $+x" available, you can also simply locate all points in the code that write to 'label' (in case of the SP backup there'll usually just be one such location). That write op will look something like
ld (oldSP),sp
which you can change to
ld (oldSP + 1),sp
and then change the "oldSP equ $+1" to simply "oldSP".
363 2018-10-16 19:57:37
Topic: talk about mainframe music history (4 replies, posted in General Discussion)
Did a talk about music on mainframes 1949-1965 at the Vintage Computing Festival Berlin last weekend. Nothing new if you've been keeping an eye on the 1-bit timeline post, but anyway, here you go:
364 2018-10-16 19:55:12
Re: Ear Shaver questions and concerns (9 replies, posted in Sinclair)
Your music_data should simply contain the pattern pointers, the extra "patterndata" structure is not needed. So
music_data:
defw pattern1
defw pattern2
defw 0
...
The 0-word at the end of the music_data block marks the end of that block, in the same way that the 0-byte at the end of a pattern marks the pattern end.
However, I don't know if Ear Shaver supports this kind of sequence/pattern structure out of the box, perhaps some adjustments to the data loader are needed.
365 2018-10-03 11:46:37
Re: Phaser size reduction or alternative (2 replies, posted in Sinclair)
Yep, use synth drums instead of the digi ones, and you should be fine.
Also, song data generally compresses well with zx7, apack, exomizer etc.
366 2018-09-13 20:31:59
Re: new chip label (8 replies, posted in General Discussion)
Hmm, would you by any chance be interested in contributing to libmdal? I haven't defined any API for dealing with MDAL modules yet, but in general what I'm looking for is a set of utility functions for algorithmic pattern data generation that users can glue together to form actual generators. Perhaps later wave data as well, but it's not a priority right now. New lib is written in Scheme (specifically Chicken Scheme).
367 2018-09-12 15:43:38
Re: new chip label (8 replies, posted in General Discussion)
Slightly related question, did you ever play around with the Nyquist prompt in Audacity to generate/manipulate wave data?
368 2018-09-11 19:59:20
Re: new chip label (8 replies, posted in General Discussion)
Hmm algorithmic pattern/sample generator, how does that work? Does it write to XM, or directly to .asm? What are the inputs to the algo? I'm asking because I eventually want to support algorithmic data generation natively in the upcoming new libmdal/bintracker, but I'm not not really much into that field myself.
Anyway, nice release Hopefully I'll get around to making something for the label one day but first I gotta finish that thing I promised for Bit Rot ages ago... ducks
369 2018-09-06 17:13:50
Re: Questions about three engines. Could you identify them ? (14 replies, posted in Sinclair)
Well, so the duty thing would be pretty much like in modern pulse-interleaving engines.
I assume there must be a connection between this and the Cybernoid series. Netherworld, too, and Turbo Boat Simulator.
https://www.youtube.com/watch?v=mlF1g3vovGs
https://www.youtube.com/watch?v=fExKarocRHM
https://www.youtube.com/watch?v=7Y-M1HnoLso
https://spectrumcomputing.co.uk/index.p … mp;id=5456
I'm assuming Dave Rogers wrote the beeper music for all of these (Nick Jones always used Wham for beeper). I think the engine must be his as well, because Turbo Boat Simulator is not a Hewson Title and none of the other usual suspects were involved in this. Also I wonder if it's always the same engine or if there's some evolution from Cybernoid -> Cybernoid II -> Netherworld/Stormlord.
Edit: Wow, forgot how insane that Netherworld music was. Easily one of the top monophonic beeper titles.
Sadly it seems Dave Rogers didn't have much love for the beeper, actually:
4: How was it working with the single channel Spectrum Beeper?
What can I say? Incredibly limiting would be an understatement. I always did the best I could with the 128k sound, trying to overcome it's limitations, but the beeper just felt like a waste of effort. The only time I did anything specifically for the beeper was for Cybernoid - a three channel tune for the 128k and a completely different one for the 48k.
The rest of the time I took the lazy way out and just squashed the three channel AY-chip data down into one channel for the beeper.
370 2018-09-02 13:57:58
Re: Another Live Performance... (6 replies, posted in Sinclair)
He doesn't have any for offer, but there's a good chance he'd build you one on request. https://www.bytedelight.com/?page_id=499
I've bought stuff from the guy before and can vouch for the quality of his products.
371 2018-09-02 09:39:51
Re: Another Live Performance... (6 replies, posted in Sinclair)
Ha, just read your comment on yt about playing the lead with a laserharp. Well, a ZX laserharp does exist!
https://www.youtube.com/watch?v=ZSJY3PIaII4
Just need some beeper software for it
372 2018-09-02 09:38:14
Re: irrlicht project live (6 replies, posted in Sinclair)
Thanks guys Yes, the last song is indeed the one I played at IVP last year. To be released on my next album, coming out in 2125
373 2018-08-28 10:31:15
Topic: irrlicht project live (6 replies, posted in Sinclair)
A recording of my live set at Ohrbit Festival 2018, featuring the usual beeper metal, calculator unce, and senseless screaming.
https://www.youtube.com/watch?v=11eMAXjuqBE
374 2018-08-26 17:38:35
Re: AON, project in progress (35 replies, posted in Other Platforms)
Ha ha epic demo, mate! https://www.youtube.com/watch?v=3db3HIQuGds
375 2018-08-25 13:13:42
Re: Another Live Performance... (6 replies, posted in Sinclair)
Fantastic work, mate. Very professionally executed, and the music's great. Keep 'em coming!