Jump to content
IGNORED

My POKEY experiments using nonstandard settings


Recommended Posts

 If you're talking the two tone modes ... tough call.  Each one has it's own unique quirks.

 

I will say that so far I am loving those raw distorted guitars I am getting in the 15khz $4x two tone modes, as well as the Fuzzy C bass gotten from using mod 15s in the first channel.

 

And there's also the $4x $Cx modes where you use mod 3's on the first channel in 64 khz mode.  Those three are my favorites.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Synthpopalooza said:

 If you're talking the two tone modes ... tough call.  Each one has it's own unique quirks.

 

I will say that so far I am loving those raw distorted guitars I am getting in the 15khz $4x two tone modes, as well as the Fuzzy C bass gotten from using mod 15s in the first channel.

 

And there's also the $4x $Cx modes where you use mod 3's on the first channel in 64 khz mode.  Those three are my favorites.

And what about the most standard of standard output?
eg: 16-bit, 1.79mhz?

 

I'm about to get the Distortion 4 mode from RMT become usable, but I need to settle to 1 of the many possible tones.

At least, until I break those software limitations for good in a much further future :D 

 

I know for sure there are at least 2 decent 1.79mhz tables I can chose from, and that can be applied to 16-bit mode as well.

But now it's to get which one that would provide the best tones.

Or to word my question differently: which ones of the available tones that can be generated, would give the biggest number of good notes?

I can also try to compromise the bunch and get both in 1 table, to get as many notes as possible, too.

 

Unlike Distortion C, that got itself an extra table under the number E, I'm only left with a single Distortion 4 set.

 

[EDIT]

That reminds me I'm kind of stuck regarding the sawtooth formula.

I can get the pitch from known AUDF parameters, but I'm currently unable to come with a decent reverse formula for that one still...

Edited by VinsCool
Addendum
  • Like 1
Link to comment
Share on other sites

It rather works like C distortion:

 

Mod 3 frequencies produce the better sounding tones, but the range is less.  The non mod 3's have a harsher tone but a lower range.

 

16-bit is only slightly more advantageous:  you get perhaps an extra 6 notes on the low end, the scale is identical to the 1.79 8-bit with the clock offset factored in.

 

My note tables for these, of course, cover both of these and will make a good reference.  The mod 3's are unstable here as well, producing random timbres.

  • Like 1
Link to comment
Share on other sites

Not really special POKEY settings this time, but I decided to whip this together ... from a very famous Sega Master System platformer game, that I'm sure you will recognize immediately.

 

Settings:

 

AUDCTL=$00 (standard setting)

 

00- $Ax - bass

01 - $Ax - lead

02 - $Ax - harmony

03 - $8x - percussion

 

Some notes:

 

I had to transpose this up 1/2 step from the original SMS music ...this is because I wanted to have all 4 channels, so that makes standard 8-bit mode necessary.  Using the standard $Ax square wave, this means POKEY can only get down to B2 as it's lowest note, where the original Sega music goes down to A#2.

 

My wife used to play this all hours of the night on her old SMS in New Zealand ... and I rather like the game too.  Hopefully this inspires someone to port the game to our lovely Atari 8-bit system.  We already got Space Harrier, Wonder Boy, and (apparently soon) Outrun ... hopefully this one too. :)

 

 

 

alexkidd.asm alexkidd.s alexkidd.xex

Edited by Synthpopalooza
  • Like 4
Link to comment
Share on other sites

  • 3 weeks later...

I did some more experiments yesterday, this time using SKCTL=$8B two-tone,  $Cx distortion,  and the default AUDCTL=$00 setting.  This is real interesting.  The preliminary results are 4 possible frequency groups:

 

1.  Gritty C tones.  When you use the standard C table in 2nd channel, make sure the first channels frequency is less than half of what's in the second channel.  This makes interesting modulations, some of which will raise the frequency by an octave.

 

2.  Smooth C tones (mod 3).  This one is a game changer.  In standard 8-bit mode, these tones are unstable and randomly generated from the polycounter.  Here however, not only are they stable, but the three tones are selectable at will.   Play the standard C frequency in the second channel (silenced) and the same in the first.  To get the other two waveforms, decrease channel 1's frequency  by one or two steps.   No more resetting the polycounter.  :)

 

At half the carrier frequency,  as above,  modulations begin to occur, certain ones raising the tone by an octave.

 

3.  Mod 5 frequencies.  In normal 8-bit mode these are intermittent.  Here they are stable!  Again,  1/2 the carrier frequency introduces modulations.

 

4.  Mod 15's.  Normally silent in 8-bit mode. Not here!  1/2 the carrier frequency gets you some nice NES triangle waves, taken from the closest match to the standard $Ax distortion table.  As you can only hit every 15 steps, some of the tunings will sound 2600-ish and very dodgy.

 

More soon ... including note tables, and further experiments using AUDCTL=$01 15khz mode.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Did further experiments with two-tone mode, C distortion, 15 khz bass mode.  Interesting results again ... When the second channel frequency is less than half of the first, modulations are introduced into the bass notes.  Remember that in standard C distortion 15 khz mode, the gritty tones are not used, but rather two stable iterations of the smooth C bass.

 

The interesting thing though, is with the mod 5 frequencies, normally silent in standard 15khz mode.  Here, with the modulating frequency less than 1/2 of the carrier, a triangle wave bass is made.  You can hit every 5 steps, so its tuning is better than its 64khz equivalent.  I may call this one 2600 TIA bass.  :)

 

Next steps:  documentation, note tables, then a couple of demo tunes.

  • Like 2
Link to comment
Share on other sites

The really interesting thing with C two-tone 64khz mod 3, upon examining things using the audio scope, is that I am seeing modulation patterns that are anywhere between 9 and 11 bits long.  I still haven't figured out a pattern to these yet, but they shift radically as the channel 1 frequency gets smaller.  This means we potentially have dozens of waveforms available here, it's just a matter of calculating note tables that will be consistent.  And sadly, the instability of the mod 3 tones means that these waveforms also are in one of 3 random states everytime they are sounded, unless one can hit the polycounter reset every time.  But there is a lot to be had here!  The situation is slightly better in 15khz:  Two possible carrier tones, dependent upon frequency, but stable regardless of polycounters.

Edited by Synthpopalooza
Link to comment
Share on other sites

On 8/12/2022 at 1:26 PM, rdefabri said:

As someone very into sound synthesis (and owner of a few classic synths from the 70's / 80's), SID is really solid for music and true analog synthesis.  IMHO, it can't touch POKEY for the sound effects, you typically see that when you compare the same game on the two platforms.  Each has their own strength, but from a synthesis perspective, POKEY has shown it's no slouch, and the settings that many here have uncovered really opened my eyes - it's far better than I once thought and I think there's more to come.

Absolutely agree. Case in point check out the soundfx and backing audio for the DOOM engine Swiety showcased in July at the Lost Party:

 

 

 

And of course the great synthisized soundfx from thw 1983 classic A8 game Alley cat:

 

 

Not to mention the excellent speech synthisis from the Lamers' excellent A8 Cyberpunk demo:

 

 

Edit: almost forget - the end music from the Alley Dog demo also showcased in Lost party is absolutely fantastic:

 

 

Edited by Beeblebrox
  • Like 1
Link to comment
Share on other sites

Alley Cat, as I recall, uses the hi-pass filter to get those cat meow sounds ... I really thought that was cool.  Tho it annoys me that it's called "hi-pass" when really it's not.  But that was a cool sound effect.  I do believe that setting also got used in Pac-Man when the blue ghosts get eaten.

  • Like 1
Link to comment
Share on other sites

  • 6 months later...

Took a break for awhile.  My latest piece is from an Atari 7800 game called "Odyssey" ... it's a Zelda type adventure game taking place in ancient Greece.

 

Settings:

 

AUDCTL=$64 (double hi-pass at 1.79)

 

00 - $2x (hi-pass guitars - modulation frequency)

01 - $Cx (non mod 3 rough bass aka RMT E)

02 - silent (carrier frequency for 00)

03 - $Ax (square wave, harmonic with 00)

 

This tune demonstrates the two timbres that are available in this setting with $2x.  Using mod 15 frequencies in the first channel creates the really tinny and metallic sound used at the beginning at the tune, and in the second half of the tune.  Other frequencies will make the swirling guitar sounds.

 

 

odyssey-overworld.asm odyssey-overworld.s odyssey-overworld.xex

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

On 9/12/2022 at 8:30 PM, Synthpopalooza said:

Alley Cat, as I recall, uses the hi-pass filter to get those cat meow sounds ... I really thought that was cool.  Tho it annoys me that it's called "hi-pass" when really it's not.  But that was a cool sound effect.  I do believe that setting also got used in Pac-Man when the blue ghosts get eaten.

Bill Williams was ahead of a lot of people when it came to POKEY sound.  I was always in awe of Salmon Run, the water sound and the kiss at the end are really neat.  Then Alley Cat, the dog and cat sounds, plus the phoneme "voices" of the people throwing bottles are fantastic.

  • Like 3
Link to comment
Share on other sites

  • 6 months later...
On 9/8/2019 at 1:10 AM, Synthpopalooza said:

I have started a thread over on the 7800 forums regarding experimental POKEY music using unusual settings, for purposes of improving 7800 emulation.  By request, I am starting a thread here to port some of these examples to the XL platform.

 

Explanation:  I have been messing with some of the same settings that Analmux (RIP) documented in his earlier experiments.  These will be ongoing, and I will be updating this with new experiments. 

 

The music player code was written by @PacManPlus and modified somewhat by me ... and is what I used to program music for the Bentley Bear 7800 game.

 

To start off with, I am dealing with two nonstandard POKEY settings:

 

* Reverse 16-bit filter

* Two tone mode

 

Reverse 16-bit filter, is like normal 16-bit settings where you join two audio channels.  Normal 16-bit filter usage is to silence channel 0, while channel 1 carries the distortion setting.  Channel 0 plays the low order byte, and channel 1 the high order byte.  Then channel 0 is clocked at 1.79 mhz.  This is commonly used to allow one to play bass on $Ax square wave setting, or reach higher notes with precision.

 

But if you reverse the settings ... play channel 0 while channel 1 is silenced ... the timbre of the sound changes.  I have been playing around with this, and found one of the settings Analmux used in his demo tune.  To enable this:

 

* AUDCTL=$D0 (9-bit poly, 16-bit filter on 0 and 1, clock 0 at 1.79 Mhz)

* AUDC0=$8x (Noise setting, but with 9-bit polycounter)

* AUDC1=$00 (silenced)

* AUDF1=$00 (constant 0 frequency, this never changes)

 

Using these settings, a distorted guitar sound is created.  I had to construct a custom note table for this setting, which I have included in the .s file for the demo here.  There are two tables of frequencies, one of which involves frequencies divisible by 7.  These work in a similar manner as the $Cx frequencies divisible by 3, using the $Cx distortion setting (RMT C Bass).

 

So, I have done a demo of the Rolling Thunder opening theme.  Layout:

 

AUDCTL=$D0 (9-bit poly, 16-bit filter on 0 and 1, clock 0 at 1.79 Mhz)

 

Channel 0 - $8x distortion with 9-bit poly, using reverse 16-bit filter - distorted guitar, custom note table

Channel 1 - Silenced.  Frequency set at constant 0.

Channel 2 - $Cx, no special settings.  RMT E bass

Channel 3 - $Ax square wave, no special settings - accompaniment

 

.xex and source codes attached.  .s file contains the note table I used for this tune. 

 

 

thunder.asm 11.82 kB · 124 downloads thunder.s 11.71 kB · 164 downloads thunder.xex 1.13 kB · 237 downloads

How might one replicate this in RMT?  I'm able to set the AUDCTL to $D0 (via the different settings as noted above), but in RMT 1.34, I get no output.  I think you posted saying this should be done on a real POKEY, but is there an RMT alternative?

 

For whatever reason, I can't seem to get Analmux's Instrumentarium guitar to play correctly in RMT, even the older versions.  It's sort of a unicorn for me - any advice is appreciated!

Link to comment
Share on other sites

3 hours ago, rdefabri said:

For whatever reason, I can't seem to get Analmux's Instrumentarium guitar to play correctly in RMT, even the older versions.  It's sort of a unicorn for me - any advice is appreciated!

I think you need a special patched version of the older RMT, which @analmux created, in order to work with his Instrumentarium composition. It's on the main forums here somewhere.

 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, Mathy said:

Unfortunately, Analmux is no longer among us.

I know that.

 

2 minutes ago, Mathy said:

Not sure what using the "@" in front of his login will result in.

Using the @ is an easy way to make the username stand out; and it also allows people to click on it and bring up his profile (where they can find content and other information about him). You can also hover over it and get basic information.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...