Avram #1 Posted April 16 (edited) I've been recommending Atari games to a friend and I started reminiscing about Bill William's games (if you've not seen his work, Alley Cat and Necromancer are unbelievably good. There's also this great article: Stanley Kubrick Is Gone - Electron Dance). My question is this - did Bill Williams use digitized sound in Salmon Run and Alley Cat? Or was it just excellent use of POKEY? Edited April 16 by Avram changed a hyphen to a colon Quote Share this post Link to post Share on other sites
Rybags #2 Posted April 17 Alley Cat uses digital sound for sure. Salmon Run - I don't think so (not sure I've ever played it but I checked a video and it seems mostly a couple of voices playing semi-random high pitched pure notes) 1 Quote Share this post Link to post Share on other sites
Mrshoujo #3 Posted April 17 Bill Williams was just that good! He knew how to use POKEY better than nearly everyone. 2 Quote Share this post Link to post Share on other sites
firebottle #4 Posted April 17 (edited) 48 minutes ago, Mrshoujo said: Bill Williams was just that good! He knew how to use POKEY better than nearly everyone. That funky music on the second level of Necromancer is jaw-droppingly great. The man was a genius. Edited April 17 by firebottle the game name 1 Quote Share this post Link to post Share on other sites
Avram #5 Posted April 17 Thanks, Rybags - I had a feeling that was the case so thank you for confirming it. And yes, firebottle and Mrshoujo, Bill Williams was so good at what he did. Quote Share this post Link to post Share on other sites
lbaeza #6 Posted April 19 Avram, I have put together this site https://sites.google.com/site/billwilliamsatarisounds/ It's an online version of Bill William's "Atari Sounds" column, as published by Softside magazine. I think it's worth reading in order to understand how Bill created those amazing sounds. Regards, Luis. 6 1 Quote Share this post Link to post Share on other sites
+Stephen #7 Posted April 20 5 hours ago, lbaeza said: Avram, I have put together this site https://sites.google.com/site/billwilliamsatarisounds/ It's an online version of Bill William's "Atari Sounds" column, as published by Softside magazine. I think it's worth reading in order to understand how Bill created those amazing sounds. Regards, Luis. I did not know anyone was discussing (using) PWM back in 1982. Impressive stuff. 1 Quote Share this post Link to post Share on other sites
Avram #8 Posted April 20 Thank you for sharing this, Luis! Looking forward to reading it. Quote Share this post Link to post Share on other sites
ggn #9 Posted April 20 Whoa.... that last article had some serious typos and the formatting was completely out of whack. Here's a cleaned up version that at least compiles (in good old 68000 here: https://tinyurl.com/y6mlvbt6): /*Music In C by Bill Williams If the name of this file is CMUS.C, your linking file (CMUS.LNK) should look like this: cmus aio graphics dbc.obj */ #define PARMS 12 #define RAND 0xD20A #define TRUE 1 #define SKCTL 0xD20F #define SSKCTL 0x232 #define AUDCTL 0x0208 char d[PARMS]; /* dice */ char f[PARMS]; /* pinking filters */ char fn[10]; /* freq/note table */ char vol[4]; /* volume counts */ char note[4]; /* voice’s note */ main() { int i, voice, tempo, x, y; /* Initialize Pokey for sound */ poke(SSKCTL, 3); poke(SKCTL, 3); poke(AUDCTL, 0); /* Initialize pink numbers */ for (i = 0; i <= PARMS; ++ i) { d[i] = peek(RAND); f[i] = peek(RAND); } /* Set up note table. Current candidate notes make up a two-octave pentatonic scale. */ strcpy(fn, "!%*29DLUfr"); for(voice = 0; voice < 4; ++ voice) note[voice] = fn[rnd(10)]; /* Set up graphics */ graphics(24); color(1); setcolor(1, 8, 0); setcolor(2, 8, 12); /* Play Music */ while (TRUE) { for (voice = 0; voice < 4; ++ voice) play(voice); for (tempo = voss(9, 6); tempo > 0; -- tempo); if (!rnd(8)) { plot(x = voss(10, 2), y = voss(11, 3)); drawto(191, peek(RAND)&0xC0); drawto(319-(x / 2), y); } } } play(v) char v; /* voice index */ { /* if volume is not 0, play voice and decrement volume. Otherwise, pick a new starting volume and a new note. */ if (vol[v]) sound(v, note[v], 10, vol[v]--); else { vol[v] = 3 + voss(v, 31); note[v] = fn[voss(v + 4.28)]; } } /* Voss' 1/f noise algorithm */ voss(p,r) char p; /* parameter number */ char r; /* range (divisor) */ { return((d[p] = (peek(RAND)& + + f[p])) / r); } Not sure about that strcpy() being correct, but the only way to ensure that it is correct is to check against the original article. 1 1 Quote Share this post Link to post Share on other sites
DjayBee #10 Posted April 20 32 minutes ago, ggn said: Not sure about that strcpy() being correct, but the only way to ensure that it is correct is to check against the original article. Your code looks right. This screenshot was taken from https://archive.org/details/Softline_Magazine_Issue_3.2: Quote Share this post Link to post Share on other sites
ggn #11 Posted April 20 (edited) 5 hours ago, DjayBee said: Your code looks right. This screenshot was taken from https://archive.org/details/Softline_Magazine_Issue_3.2: Cool, thanks for checking. [EDIT] Just realised after looking at the article (which I didn't do beforehand because I didn't know where to look) that the source actually has $( and $) instead of { and }. After a quick search I found that the former notation was used in BCPL (https://sigkill.dk/writings/braces.html). So in the above post you can simply search for { and replace with $( (and $) with }) to get closer to the original listing. TIL! Edited April 20 by ggn Quote Share this post Link to post Share on other sites
rdefabri #12 Posted April 20 Always loved Bill Williams - the water and the kiss in Salmon Run impressed me, but the cat and dog sounds in Alley Cat were over the top. I assumed the grunting people noise was a digitized sound, but the other stuff seemed to be generated...not sure. Cool nonetheless, he's a legend to me!! 1 Quote Share this post Link to post Share on other sites