251

(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

252

(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.

253

(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.

x64 support is there now. What I love about releasing tons of free stuff that actually worth a fortune in development, is the feedback. Previously it used to be 'oh, but it does not work on my 64-bit system'. Now when I just get this resolved, it turned into both of 'oh, but it is not for Linux', 'oh, but it is not for Mac'.

I'm sure up to making software more accessible and to supporting more platforms, but only if it does not take too much effort/resources that could be otherwise spent to other developments (or to make damn music, I got a dozens of music tools already that I have never used myself). Unfortunately, for VST it is anything but easy. The original framework documentation is exceptionally bad, VST3 is exceptionally over engineered, there is tons of compatibility quirks between hosts, none of numerous VST wrappers out there are easy to setup or use, possibility of hooking up Qt or SDL is a total mystery, etc. No wonder most of VSTs out there were made with the SynthEdit, and you can barely find a properly programmed open source one.

I'm doing a really niche stuff that is barely getting any feedback, and it is a truly demotivating thing. Moving to a niche platform with much lesser user base, especially of the target audience (music producers), that is also happens to have no money to offer (zero job offers for desktop *nix in two decades for me), is a sure way to kill any and all remaining desire to do anything at all. x64 support is just a necessary evil to keep it up now, and it is relatively easy to do.

A true story: in 2002 or so I had to break any interaction with a friend, because he moved to Linux completely (he's a web designer, so GIMP and a text editor was all he needed) and developed a habit of calling me even so often and spend long hours simply repeatedly telling me that I should drop Windows ASAP, and start to program for Linux, because Linux is the new greatest thing in universe and Windows is shit and going to die out soon anyway. This kind of advertising worked very well in alienating me from this stuff up to this day.

Did another VST, this time a thing similar to the generative music from one-line C programs: http://shiru.untergrund.net/files/evalua.zip

This one got x64 support (comes in two versions). It starts to be the main issue with all of my plugins, people are always asking for 64-bit support. So it seems you have to have 64 bit to promote 1 bit technologies these days. Going to update all of my synths to x64 support sometime soon, as well as some maintenance for PCSPE.

258

(20 replies, posted in Sinclair)

cmgonzalez wrote:

Do you have any code example for that obscure solution that you mention?

No, if I had something, I sure would publish it already. At the moment, the only game I can think of that kind of used this approach was Sea Dragon port, where I did beeper effects. It used very crude sample-like effects, like every so often during rendering a frame the game just read a bit from an array and outputted it. As it was 50 hz targeted, rendering speed was relatively steady, thus 'sample rate' was steady enough too. I don't have this code around, and can't really recall how many times per frame the routine was called. I think it was the least possible number, to avoid introducing slowdowns. Maybe 8-16 updates per frame.

259

(11 replies, posted in General Discussion)

I tried to experiment with Rombeep and ROM sound code in general some time ago, and had not much luck - they're too slow in note switching, and do reset phase, introducing unwanted clicks. Still, I believe something interesting and minimalistic can be made, probably will also get its own unique character due to the limitations.

260

(3 replies, posted in Sinclair)

It is possible to modify, but this sound effect approach specifically designed to be called repeatedly each interrupt or each game loop - to play sounds alongside the gameplay, in trade for (relatively) poor sound quality.

A shameless plug, you can use my BeepFX routines that is capable to much more sophisticated effects, but stop action while they're playing. As far as I know, it was hooked up to z88dk already: https://github.com/z88dk/z88dk/wiki/beepfx

261

(11 replies, posted in General Discussion)

I think the attention span is over by now, so I can share some stats:

46K views on YouTube, brought 160 subscribers too (up to 620)
19K plays on BandCamp, 6.5K complete plays (of a single track)
32 supporters on BandCamp (17 visible there, others supported by picking whole 'discography' or a single track from the album)
46K views of the Russian language making of article on a major IT blog website
23K views of the English language translation of the making of article at the same IT blog website (not much popular compared to US/Europe majors)

Some posts:

https://techcrunch.com/2019/02/08/feel- … d-speaker/
https://omicrono.elespanol.com/2019/02/ … -speakers/
https://www.osnews.com/story/129396/pc- … to-eleven/
https://omicrono.elespanol.com/2019/02/ … -speakers/
https://pcforum.hu/mediatar/5565/itt-eg … omponaltak

So yeah, it generated quite some attention that I did not expect, although maybe not as much as a popular 'underground' (like chiptune) music release from a well known artist would - those gets reposted all around profilic websites, mine wasn't reposted anywhere i think (besides my own posts). Anyways, pretty good for an 1-bit release. Too bad I wasn't expecting any real attention, so I didn't stiff some of ours best modern ZX 1-bit stuff to the articles in order to provide more visibility to our scene.

262

(166 replies, posted in Sinclair)

Thanks for report. Will take a look and figure it out whenever I'll get time to do another chunk of updates.

263

(11 replies, posted in General Discussion)

Wrote an in-depth article on making of System Beeps: https://habr.com/en/post/439192/

264

(11 replies, posted in General Discussion)

Reaper PCSPE export works like a log recorder. You start export, start playing music like usual, plugin catches in realtime all it receives from MIDI tracks and writes down all the data that it produces and that goes into emulated PC Speaker registers. That's the same way some YM2612 plugins work. Once you got BIN or other file format, you can make a simple player program that will just send the pre-recorded data to actual PC Speaker port. There is an example of QBasic program alongside PCSPE that does just that. If anyone needs, I sure can provide help with implementing player in other language or for other needs.

265

(11 replies, posted in General Discussion)

Thanks a lot, utz! In meanwhile, promised stuff is added.

I think next logical step would be to make a ZX monophonic engine with high quality synthesis and try to apply the same techniques to that. Like Full Throttle 2 title song.

266

(11 replies, posted in General Discussion)

Fresh and steaming, just uploaded my new 1-bit PC Speaker album to https://shiru8bit.bandcamp.com/album/system-beeps

An MS-DOS player program with all of these songs is also ready, will be up a bit later (will post a link here and there). Also going to publish all source stuff, including Reaper project files.

Edit: it is here: program and sources

267

(136 replies, posted in Sinclair)

Congrats, utz! A winner combo of impressive engine and tune! Actually wanted to use wtbeep too, but didn't have enough time to make a fully new song, had to rely on unfinished backlog.

268

(4 replies, posted in Sinclair)

As far as I remember, SDCC assembler simply does not allow 'current address', because it gets calculated at linking time only. So the second approach should help, i.e. ld (var+1),sp.

269

(16 replies, posted in Atari)

Finally got a working Portfolio. Seems to be a long way before anything is going to be made, though, as connectivity certainly not a strong side of the system, and any cards/adapters are really difficult to obtain here. So no promises so far. Hopefully will figure out something before it mysteriously stop working, like it happened with a Ti calc.

270

(9 replies, posted in Sinclair)

1tracker follows pattern-less design. It is possible to add patterns support into engine, not too difficult, but you would have to prepare data manually somehow, as 1tracker won't split it into patterns automatically (engine script can do this potentially, but that's not an easy way).

271

(9 replies, posted in Sinclair)

Yep, there is a ton of problems with laptops, as they has very shrinked down keyboards, and the lacking keys is different. I'm trying to add alternative key combinations for laptops whenever issues discovered, but there is always more.

272

(9 replies, posted in Sinclair)

You don't need to edit assembly code in order to use loop (if it is supported by an engine). Use Ctrl+Home to mark loop start, Ctrl+End to mark loop end.

This piece of code

begin:
    ld hl,music_data
    rlca
    add a,b   
    call play
    ret

is totally not correct, the other one is. Probably some bug, the engine is very fresh and wasn't tested much, if at all.

273

(2 replies, posted in Sinclair)

Synth drums code is about 120 bytes large. Are you sure that's what makes the most impact on the size? I would expect song data itself to take up a few kilobytes.

Phaser1 code is quite compact, and song format in its original version is well optimized. Although Beepola's implementation may be more efficient for a particular song.

274

(35 replies, posted in Other Platforms)

Thank you, guys.

Should note that this was a side step related to the original intents. I did not use any software 1-bit synthesis in this demo, it is just the plain single channel 8253 music (very much like classic PC Speaker), created with PCSPE. Truly 1-bit and truly monophonic, though.

Still going to do a music sequencing, or a performing software perhaps, using this platform, with a custom 1-bit engine.

Also thinking on creating a cut down replica version of the schematics, omiting all phone line related stuff, and a PCB layout, so more people can get the thing without relying on buying old hardware overseas. The device is quite easy to assemble, and does not need rare parts (the obscure single piece LED display obviously has to be replaced with some modern ones).

275

(35 replies, posted in Other Platforms)

Thanks! At least some real outcome of messing around and flooding this thread with this stuff. Also helped to improve the emulator. Also my first 'full' demo since 1997 when I first learned what a 'demo' is.