ZX Spectrum: Experimenting with 1-Bit Sound
bumbershootsoft.wordpress.com
bumbershootsoft.wordpress.com
> Agent X ( https://www.youtube.com/watch?v=T42WuUpBuHE ) or Agent X II ( https://www.youtube.com/watch?v=gNc_xczyGLc ) or Chronos ( https://www.youtube.com/watch?v=u-D24A_N4d4 ) or Raw Recruit ( https://www.youtube.com/watch?v=kl8dAVybwq8 ) or Future Games ( https://www.youtube.com/watch?v=orEXKOBIv_8 )... // A modern attempt, the ON and OFF album by Rich 'Tufty' Hollins ( https://www.youtube.com/watch?v=4nEfO4Yu7Mg )
(Repost originally for submission Furnace - the biggest multi-system chiptune tracker ever made https://news.ycombinator.com/item?id=41609254)
Silver Surfer (https://m.youtube.com/results?sp=mAEA&search_query=silver+su...) Pictionary (https://m.youtube.com/results?sp=mAEA&search_query=pictionar...)
Yes, both Beeper and Recorder bits are changing, but both to the same value, along with all other bits of port FE due to optimization (instruction CPL to set beeper bit to 1 instead of LD A, 16).
Will post an update after I get back to my parent's home, where I have these beauties that launched me into computer science: https://imgur.com/a/GKrA0vX
Don't be daft. Of course there was. It could save programs onto cassette as well as load them from cassette.
The ports are labelled MIC and EAR because that's what you connected them to on the cassette recorder.
It may be feasible to retrieve a pcm for a very short clip by playing the same recording at different levels which then could be converted on the same machine to a sequence of opcodes playing a more realistic voice.
Also some games had sound samples, Activision’s Ghostbusters had a couple.
Release party: DiHalt 2026 summer Compo: Demo Platform: zx spectrum Ranked: 2nd
This mention of one bit sound made me remember the Lis’ner 1000 project of Steve Ciarca , cira 1984 , WHICH WAS speech recognition system of about 30 words. It used a GI SP1000 chip
Ahem, that's polyphonic sound, not multichannel sound. Multichannel sound is playback through multiple speakers.
Questions like: How many channels can a mod file[1] have? Does that number of channels this file has change depending on whether it is being played back with monophonic or stereophonic (or some other arrangement of) speakers? What happens to the count when one or more individual samples within that mod file contain polyphonic data (chords!), themselves?
It also leads to rhetorical statements, such as: When I play a film that has a soundtrack with 8 (ie 7.1) discrete audio channels on a stereophonic pair of speakers with a sane playback chain, I'm definitely still hearing all 8 of those channels. The same happens if I extend that stereophonic system to greater number of output channels, by adding surround speakers (quadraphonic!) or whatever.
Or maybe I take one earbud out and put it back in its charging case, and through the magic of active electronics, good software, and wireless comms, the output deliberately collapses to being monophonic.
However it happens, I've still got an 8 channel of film soundtrack in my ear(s).
And of course, it also works the other way: If the electronic musical keyboard in front of me is said to support 10-voice polyphony, then that's a hard limit on the number of notes it can produce at once regardless of the number of audio output channels.
Multichannel and polyphonic are pretty bendy terms, I think. Maybe that flexibility was wrong at some point, but they've been flexible in this way for so many decades that it definitely seems right to accept the overlapping uses as being correct.
I've got an Arduino project where I did that. The output is on a single digital pin, audio encoded as PWM. It turns the output off at the beginning of an audio frame, and sets a timer to trigger an interrupt when it's time to turn the output on.
I've got a memory block of event structs, each event representing a write to NES sound hardware. I emulate enough of the features to support everything that the Legend of Zelda title theme uses. 16MHz is more than enough to decide on the sample for 2 square channels, 1 triangle, and 1 noise, outputting a 6-bit output sample at a 31250Hz sample rate. The output is only slightly scratchy; the polyphony is actually surprisingly smooth.
The NES has a 7-bit DAC, but since we're bit-banging with the CPU we only have enough time between samples for about 13 levels. Each level has its own toggle-wait-toggle-wait routine, and then we shift another bit and decide whether to branch to the next (level+1) routine or the previous (level-1) routine.
https://8bitworkshop.com/v3.12.1/?platform=apple2&file=delta...
End result of it playing 1-bit music: https://www.youtube.com/watch?v=IjTihhFG03o
Delta-sigma modulation generates an inefficient encoding of the audio signal, with much more bits than necessary.
Converting a delta-sigma encoded bit stream to a PCM (pulse-code modulation) stream (e.g. with 24-bit or 16-bit samples at a sampling frequency of 48 kHz or 44.1 kHz) is a method of data compression.
On the other hand, delta-sigma modulation is more efficient for both analog-to-digital and digital-to-analog conversions, in the sense that for a given quality of the conversion it is much easier and much cheaper to make ADCs and DACs with delta-sigma modulation than with pulse-code modulation.
Because of this, for audio signals, normally delta-sigma ADCs and DACs are used at the analog inputs and outputs, but the delta-sigma bit stream is converted by digital filtering to PCM for data storage or for audio processing.
An ADC that merely samples much faster than Nyquist but with the same number of bits per sample as PCM is not a delta-sigma converter; it's an oversampler. Delta-sigma converters always sample faster and use fewer bits per sample (usually just one bit per sample).
The ratio between the sampling frequencies is greater than the ratio between the number of bits per sample. How much greater it is depends on the order of the sigma-delta modulator and higher-order modulators need much less extra bits, but they have other problems, which prevent the increase of the order too much.
Unlike PCM, delta-sigma modulation does not provide any guarantee about the maximum error at a given point in time, i.e. about the maximum instantaneous difference between the original signal and the encoded signal. Delta-sigma modulation only guarantees that certain statistical properties of the original signal and of the encoded signal are the same. For example in the case of the first-order delta-sigma modulator it is guaranteed only that the difference between the integrals over an interval of time of the original and of the encoded signals is smaller than a superior limit that depends on the length of the time interval.
This is why even for high-order delta-sigma modulators the ratio between their sampling frequencies and the sampling frequency of an equivalent PCM signal must remain great, because the sampling period of the PCM signal must be long enough so that the statistics of the delta-sigma signal accumulated during it make sense.
I do not like the term "noise shaping" and it is somewhat misleading, because it is not an intrinsic property of the delta-sigma modulator, but in order for the noise to be "shaped", it must actually exist. That means that when the input signal does not include any noise, the output of the delta-sigma modulator will oscillate periodically and deterministically around a value and there will be no "noise shaping". However, real electronic circuits always have noise, and when that noise is insufficient, in delta-sigma ADCs additional noise is injected at input, to prevent the periodic oscillations at output.
A simple oversampler can be regarded in some sense as a zeroth order delta-sigma modulator, because some of the formulae for delta-sigma modulators apply to it when the order is set to 0.
Just oversampling cannot produce any improvement in the resolution of a PCM signal obtained by filtering the oversampled signal. But if white noise with an amplitude equal to the quantization interval is added at the input of the oversampler, then by averaging the output, i.e. by low-pass filtering it, additional bits per sample can be obtained depending on how long is the averaging interval. This is the well known statistics property that the average of N random samples will have a lower variance than the original samples, which decreases for increasing N.
The same happens with delta-sigma modulators, the difference is only that the number of additional bits of resolution per PCM sample grows much faster with the length of the averaging interval than in the case of the simple oversampler, the higher the order of the delta-sigma modulator, the more additional bits at a given averaging interval.
Nonetheless, while the simple formula that expresses the achievable signal-to-noise ratio, i.e. the number of bits per PCM sample, as a function of the averaging interval, looks like one could get infinite resolution by just increasing the order of the delta-sigma modulator, that does not work in reality, where the order is limited to rather low values and the formula for the additional bits of resolution is not valid for very short averaging times, when the higher-order statistics are meaningless.