
Show HN: 8-bit Sounds – Studio2600 for the VCS (Atari 2600) - masswerk
http://www.masswerk.at/rc2018/04/studio2600/
======
masswerk
For a bit of technical background see the project blog (it's about a game):
[http://www.masswerk.at/rc2018/04/](http://www.masswerk.at/rc2018/04/)

------
watmough
Wow, that's really neat.

I knew the sounds to be wrung from the VCS were quite varied, but they really
did hit a pretty good set from pureish tones to heavy distorted noise.

------
n_sonic
This is excellent - thank you for sharing! Is there any (easy) way to make it
play through each variation automatically? Maybe a "demo mode" you could
trigger? Ideally, I'd like to sample each sound and create a instrument in
Ableton that allows me to select tone and frequency (and then pitch shift).
Not sure how I'll do it yet, but getting high quality samples would seem to be
the first step! (Obviously I can just do it manually, but I thought it was
worth asking!)

~~~
masswerk
This is really just a tiny test application made to find sounds for a game,
and about similar to what you describe, but to be run directly on the Atari
2600 . However, if you want to sample the sounds, best get a native emulator
like "Stella" [1] and run the ROM-file in this one (see the downloads
section).

The best way to get a full walk trough of the tones and pitches would be to
write a tiny Atari ROM file for this. (It's really just about setting three
registers.)

[1] Stella documentation and downloads (Win, Max, Linux, and sources)
[https://stella-emu.github.io/](https://stella-emu.github.io/)

~~~
n_sonic
That sounds like a good plan, thank you. I'll run it in Stella and grab the
audio output from that. Not quite sure I'm up to the coding of the ROM TBH, so
I'll do it manually :)

------
jcims
Go to row E, pick a spot in the left fifth of the row, lean on the spacebar
while using the left and right arrow to slide the dot left and right a few
spots.

Groovy.

------
Lerc
The description of some of the tones is a bit cryptic.

I'd be interested in a deeper explanation of div 15 -> 4 bit poly and 5 bit
poly -> 4 bit poly

I'm making a fantasy console, so I ended up spending quite a bit of time
designing my own 8 bytes to describe a full range of
tone/freq/volume/envelope/bend. Packing expressiveness into a limited number
of bits is quite a fun game.

~~~
masswerk
The "TIA-1A Hardware Manual" [1] states: "This circuit contains a nine bit
shift counter which may be controlled by the output code from a four bit audio
control register (AUDC), and is clocked by the frequency select circuit. The
control register can be loaded by the micro- processor at any time, and
selects different shift counter feedback taps and count lengths to produce a
variety of noise and tone qualities."

[1]
[https://www.atariarchives.org/dev/tia/](https://www.atariarchives.org/dev/tia/)

There is an "about 30KHz" base frequency, so "div 15" suggests a 2KHz
waveform; "4 bit poly" and "5 bit poly" are probably two of the "feedback
taps", "and" a logical multiplication of these signals. But this is just my
interpretation.

[Edit] For technical details see:
[https://alienbill.com/2600/cookbook/music/stolberg.txt](https://alienbill.com/2600/cookbook/music/stolberg.txt)

------
sehugg
Row #3, column #11 is the sound of Lex Luthor's flying propeller backpack in
Superman.

------
arist0tl3
Fun track based on the 2600 sound set:
[https://www.youtube.com/watch?v=2rKkpHLl1Ew](https://www.youtube.com/watch?v=2rKkpHLl1Ew)

------
plaguuuuuu
Can this chip only use the harmonic series as the tuning, or is it only
specific to this rom's interface?

~~~
masswerk
All frequencies are derived from an "about 30KHz"* base frequencies, which is
divided the number of times given by the value in the 5-bit frequency
register. (30KHz, 15KHz, ..., 30KHz/32) This "scale" is defined by hardware in
the TIA Television Interface Chip (an Atari custom chip designed by Jay
Miner), which is where all the "magic" of the VCS happens.

Edit: *) There is a 31,440 Hz clock frequency used to produce NTSC signals and
31,200 Hz for PAL consoles. This is probably also what is described as "about
30 KHz" in the manual.

------
krylon
This is extremely fun to play around with! My coworkers are looking at me
funny, but it's worth it!

------
imode
this doesn't work in Chromium 66.0.3359.117.

I imagine it must be something wrong with the underlying emulator, but there's
no audio output. visuals work, but not much else, which is sad for this bit of
interesting code!

