1

(4 replies, posted in General Discussion)

It's not running in realtime, but the synchronisation with the display output and the audio output are separate. The display is updated with relation to the emulated clock time for various reasons (I need to be able to view intermediate display states when the emulator is halted).

I sample the audio at the SDL audio driver's frequency (ie. 22050 etc.) and then write the sound buffer directly (to the audio driver and optionally to file) through a callback. This was the 'obvious' way to do it, but I'm happy to improve it if it helps.

It would be possible to sample the audio at a much higher rate, but I don't have good information on down sampling 1-bit audio to a 'realistic' output. I'm also nervous of killing the overall performance of the emulator, since the cycle-exact emulation of the main components is quite demanding already.

In the short term, I've added a command line option to determine the sample frequency, so you can set it to eg. 48000 and get higher quality output - though it's still going to be unfiltered.

2

(4 replies, posted in General Discussion)

Good point. It's a question of getting decent performance out of the emulation. I have the clock time in picoseconds, and cycle accurate I/O, but that has to be translated both to the O/S audio layer (so you can hear it) and written to an audio file (so you can examine the waveform).

I can make the sample frequency user selectable (would 44K be enough??), but don't know enough to implement a realistic filter in the emulation itself. If anyone has any good resources or suggestions, I'd be very happy to implement them.

It's worth noting that in the demo firmware, I put in a (broken) version of the qchan music player. It uses 'pin' synthesis which sounds bad in the emulation. The good news is it sounds exactly as bad on my real hardware (which has a cellphone style speaker with a fairly heavy R/C filter) - so clearly that style of sound generation doesn't work well with MicroBeast....

3

(4 replies, posted in General Discussion)

I introduced MicroBeast, my Z80 computer kit a while ago, since it has 1-bit audio which I hope to exploit.

So this new development may be useful for anyone writing Z80 music trackers: I've now built a cycle accurate emulator for the system, which can be run at any desired CPU clock-speed, and supports writing 1 bit audio output to raw PCM files (16 bit, 1 channel, 22050 Hz). That should make it possible to test 1 bit routines for a variety of targets.

The initial release of the emulator is here: https://github.com/atoone/BeastEm - it's very early days, but I'd be glad for any feedback.

4

(3 replies, posted in Other Platforms)

It's a custom case - like the presentation boxes you get whiskey in.

The filter cuts out a lot of high frequency noise, so you get less of the harsh 'square wave' effect, and more of a rounded sound. That sounds amazing, but really it just means it sounds 'more farty'. big_smile

I'm juggling a lot trying to get things ready for the Cambridge Computer Museum's exhibition the first weekend of November, but will try to play with some demos soon. At the same time, I'll be sharing more details of the machine for those that are interested.

I may also have a development machine spare if someone really wants to play around...

5

(3 replies, posted in Other Platforms)

And here's the schematic.

6

(3 replies, posted in Other Platforms)

I'm working on an 8-bit kit computer, called MicroBeast, which features a 8Mhz Z80 (and should be good for 10Mhz) and a simple 1-bit sound path. I'm hoping to get some good sounds out of it, but beyond boot-up beeps have struggled a little converting music trackers to run at the right speed.

I've attached a couple of pictures - one of the computer itself, and one of the audio stage. It has a fairly low frequency cutoff in an attempt to reduce noise from fast switching in 1-bit playback routines - PWM switching above about 50Khz should be able to produce fairly reasonable analogue outputs.

Hi there,

I'm Andy, based in the UK. I am an old school Sinclair fan, growing up with the work of Tim Follin, David Whittaker and Ben Daglish.

At the moment I'm designing a new Z80-based computer, with an 8Mhz processor and a 1-bit audio path. I'm trying to figure out the best audio routine to show it off, but still haven't quite got my head around converting for the different CPU speeds - the core frequencies aren't too bad, but when there are effects and tempo to consider as well, my head explodes!

I'll pop some details of the circuits in the other forum if people are interested - it has a simple one transistor amplifier and cellphone speaker so though it's not the loudest, it should be able to play some interesting music.