226

(5 replies, posted in Sinclair)

That's nice, please remind me if there are major issues with tracker or engines, maybe I'll get another round of updates to fix (some of) them.

227

(5 replies, posted in Sinclair)

An updated version of my older Squat engine. It features much higher sample quality, achieved by using interleaving mixing technique in the Music Box fashion, as well as reading two samples per one iteration of the tone loop, so while tone channels update at ~8400 Hz, sample channel gets updated at ~16.8 KHz, and they're not getting masked by the tone channels anymore. Strategic timings applied to even out tone and sample volumes. This helped to make samples sound much clearer, now suitable for high-frequency instruments such as hats, and for tonal instruments, to some extent. New mixing scheme affected the way tone channels sounds, too, so it does not obsolete the older version, they're more like two flavors of the same thing (gritty loud sound vs clean, but thinner one).

- 4 channels of tone, each channel has its own duty cycle
- Noise mode for the last tone channel
- Noise percussion, 9 pitches of noise at 4 volumes
- 15 non-interrupting sampled drums, can be very lengthy
- Improved speed range

Like usual, it is included into the latest 1tracker release.

228

(2 replies, posted in Sinclair)

Relistened it again. Damn, such a great song and sound.

I recall I didn't recognize my own engine here when I heard it for first time. Yet another example that you never really realize true limits of your creation(s). Happened with Tritone and Octode engines in the past as well, even though I was able to recognize them, but was surprised by what composer guys managed to pull out of those.

229

(166 replies, posted in Sinclair)

A minor update to v0.3, libs updated, some issues fixed, SquatE added. Windows x64 build introduced.

There is an unofficial fork of Game_Music_Emu that is still maintained. However, I ran into a weird issue with it that it works properly only in Debug build, but glitches all around in Release (mostly cuts playing after a very short while). Wasn't able to figure it out, so I decided to stick to the latest official version, even though it is kinda old.

230

(166 replies, posted in Sinclair)

Sure, but this is done on per-engine basis, so no quick fix. Some engines do break long lines, while others (Tritone Digi?) not. Will handle this a bit later.

231

(12 replies, posted in General Discussion)

All Tritone songs before Beepola were made with the XM converter. Some of them still made with the converter, because it gives the super speed capability (to imitate arpeggios and slides).

232

(35 replies, posted in Other Platforms)

A ton of distractions happened since, but English translation of the making of the demo is finally here: https://habr.com/ru/post/486010/

I'm not much familiar with the Savage code, and it is super convoluted to figure it out at quick glance, but it looks like it relies to IM2 handler a lot. Simply removing it certainly won't work. The engine can be rewritten (recreated) to work without interrupts, I think, but it is more like making a new engine from scratch than a simple edit.

234

(5 replies, posted in Other Platforms)

Now not 1-bit, but ZX Spectrum related - I made a PT3 player (with AY emulation) that plays files loaded into the internal memory. Cool thing about ESP8266 is that you can load these files over Wi-Fi. Forum thread.

235

(5 replies, posted in Other Platforms)

As a first step, I ported over my PC Speaker album System Beeps. Due to the nature of the platform it comes in form of source code (for regular Arduino IDE). More info on the official forum.

236

(5 replies, posted in Other Platforms)

ESPboy is an open source DIY handheld, kind of Arduboy, but powered with 32-bit ESP8266, and with a color screen. For sound it only features 1-bit piezo on the board (maybe will be replaced with a tiny speaker in further revisions), controlled via GPIO line. The creator of the thing asked me to help with the sound code, his intent is to bring ZX Spectrum beeper music to the platform. So I'll be porting some engines (Phaser1 is ported as proof of concept at the moment). Thought it may be interesting to some folks here.

More info on the device:

https://hackaday.io/project/164830-espb … cation-fun
http://community.espboy.com/

237

(1 replies, posted in Sinclair)

I'm pretty sure that ZOSYA is in fact Oleg Origin undercover (and it is not clear whether he is really an actual person, too). Oleg is known for disassembling a good amount of better classic engines back in 2012, such as Trantor and Dark Fusion, as well as making a few new ones, but he never released the source to those. Sounds much like one of the latter.

Not BuzzKick for sure.

238

(5 replies, posted in Sinclair)

Sounds legit, would be at home in a pre-1985 ZX game.

You don't really need to hand tune pitch values, just use any script engine to calculate them out. JS, Python, etc.

Then, if you go with composing by typing in the pitch values, you don't have to have a spreadsheet. Just make aliases, like C_2=100 (or C_2 equ 100 in some assemblers). Now you can just use note names in your db's.

Then, to save time, you can just generate both pitch values and aliases with the same script, and save a ton of time. You can do this with https://js.do/, for example. Just go there, copy/paste code below, click Run.

<script>

    //standart note table for a high octave

    NoteFreqTable=new Array( 2093.0,2217.4,2349.2,2489.0,2637.0,2793.8,2960.0,3136.0,3322.4,3520.0,3729.2,3951.0 );

    NoteNameTable=new Array("C_","Cs","D_","Ds","E_","F_","Fs","G_","Gs","A_","As","B_");
    
    //generate note to period table

    cpuClock=3500000.0;
    cpuToneLoop=200.0;    //cycles per engine loop
    div=32.0;

    for(octave=0;octave<8;++octave)
    {
        for(note=0;note<12;++note)
        {
            period=Math.floor((cpuClock/(cpuToneLoop/2.0))/(NoteFreqTable[note]/div));

            document.write(NoteNameTable[note]+octave+" equ "+period+"<br>");
        }

        div=div/2;
    }

</script>

239

(21 replies, posted in Sinclair)

Did a small song using actual wtbeep engine, for CAFe 2019: https://soundcloud.com/shiru1bit/falling-asleep

240

(135 replies, posted in Sinclair)

The super fine volume/duty effect is certainly real and can be used, that's what I was referring to as having potential (will do something in this regard a bit later).

As for harmonics, yes, I suspect most of it comes from the downsampling filter in emulators, seems to be some unwanted oscillation at high frequencies. Still not clear if there is more to it.

241

(135 replies, posted in Sinclair)

Yeah, seems this technique has potential that is worth to explore further.

For now, the same thing with two channels and slides, demonstrates tons of harmonics.

242

(135 replies, posted in Sinclair)

I suspect I'm actually rehashing some old idea, just been experimenting with the phase shift to control volumes yet again. This snippet produces interesting harmonics as the volume rises very smoothly:

    ld hl,0
    ld bc,1200    ;frequency
    ld ix,0
    ld a,0
    
loop1
    ld d,0
loop

    add hl,bc
    jp nc,$+5
    xor 16
    add ix,bc
    jp nc,$+4
    xor a
    
    out (#fe),a
    
    inc d
    jp nz,loop
    
    inc hl   ;slowly increase the volume
    
    jp loop

Volume control here is made of two 16-bit adders that get the same 16-bit value added (3 register pairs per oscillator). The first one inverts the phase, the second one resets it. Volume controlled by the distance between initial values of the adders.

243

(5 replies, posted in Sinclair)

Great work! Having fading noise going on alongside the tone channels definitely brings a new quality into the sound, making it closer to a sound chip of sorts.

Yes, something of this kind is certainly in my plains, with use of all the 1-bit VSTs and some of the old engines, too.

245

(0 replies, posted in Other Platforms)

If you ever interested about making music using a modern Android phone/tablet, you probably know one of the best mobile DAWs out there, Caustic 3. Not terribly powerful compared to desktop DAWs, but very solid, packed with great synths that cover up nearly all synthesis methods imaginable, and the UI is impressively useable with a touch screen. And it runs even on a dog turd type of devices, I tested it on an old, extremely sluggish 512M tablet, and it was totally useable. The app is not free (save/export disabled in the demo), though, but it is very cheap, and there is a fully functional free desktop PC version, too (hint, you can use it on a W10 tablet).

Now, how it could be useful for our dirty 1-bit deeds. There is a synth in the app called PCMSynth. Basically it is a powerful sample player. Recently I learned that besides of its own custom format it can also load any SF2 files. There is another synth called BeatBox, a sample powered drum machine, that supports loading sounds from regular WAV files.

So we can just get a SF2 pack of beeper tones, and perhaps a set of WAV files for drums (or just the same SF2 through PCMSynth). This could get really handy to prototype some beeper music on a go.

So far I did two SF2 packs and tried to use them, seems to be not too bad at all:

wtbeep
Lyndon Sharp's three engines

Oh my, it's been two years now. Two years of 'I'm too tired today, will get back to a song tomorrow'.

At least a new related thing, sampled all three known engines as a SF2 pack. May come handy in prototyping a song with a modern tool, or to bring up these pretty unique sounds into a modern mix.

247

(21 replies, posted in Sinclair)

In meanwhile, a demo song that shows up these sounds, as well as some of my other 1-bit DAW stuff: https://soundcloud.com/shiru8bit/lost-i … it-version

Detailed info is here: https://www.patreon.com/posts/lost-in-pseudo-1-28964800

248

(21 replies, posted in Sinclair)

This engine continues to fascinate me a lot, and although I haven't released anything made with it yet, I had an idea to sample its sounds into a SoundFont (sf2), to be able to use it in a modern DAW without going full on with writing a custom VST (it would need built-in Z80 emulation, doable, but would take much longer - saved it for later).

May come handy to someone - download here. It is a clean version, no carrier hiss there.

249

(166 replies, posted in Sinclair)

There are various limits, of course, but if a song plays in the tracker, it should be exportable - the tracker creates an AY file internally in order to play the music. So it is some bug, I guess, will take a look soon.

Edit: tested it, the export works fine, TAP plays correctly, so the issue is not confirmed. Update to the latest version, perhaps? (tested in 0.29)

I deal with this kind of feedback since 2007 or so, so yeah. Still difficult to stay cool at times.

A while back, way before I took the VST route, I had a desire to support LMMS, which was the best free FL-style DAW out there. I come to their IRC channel and started to ask questions, like, how to make native plugins, are there people who would want it. They said - nah, do VST instead. So I did eventually, and I guess it has been a good advice, after all.