Jump to content
IGNORED

Pokey Explorer v1.1 release


ivop

Recommended Posts

Previous thread

 

Here's the release of Pokey Explorer v1.1. It's a tool to explore all possible combinations of Pokey registers that have an effect on the sound you hear.

 

New:

 

- 16-bit intervals

- hold START to STOP a running sweep1

- batch processing

 

Batch processing is for advanced users. I have included an example sweeps.s file. You can change that, or include your own source file with multiple sweeps and rebuild the batch binaries.

 

TODO:

Do a really long sweep with e.g. 20 different settings and long play times. After that, import the file in Audacity and cut-off the noise before the first countdown and everything after The Final Countdown ;) With the correction factors mentioned in the previous thread, you can calculate exactly where each sweep starts and stops. Write a Bash script to do the calculations automatically. Cut-up the file in pieces, then run them through aubiopitch, and Bob's your uncle. Hopefully :)

 

Full source is here. And the manual.

 

1 That's like old Windows, where you have to go to the START menu, to stop/shutdown your machine ;)

pokeyexp-batch-v1.1-ntsc.xex pokeyexp-batch-v1.1-pal.xex pokeyexp-v1.1-ntsc.xex pokeyexp-v1.1-pal.xex

Edited by ivop
forgot to attach binaries, some clarifaction and spellin errors ;)
  • Like 7
  • Thanks 3
Link to comment
Share on other sites

  • 4 weeks later...

I did not have the motivation yet to work more on the automation of generating tables, and replaying the tables only, and run that through aubiopitch. Lately I did some RMT music in emkay's thread and not much more. But I have not forgotten about it.

Link to comment
Share on other sites

  • 2 weeks later...
2 hours ago, Probabilitydragon said:

Hey, nice tool!

 

Since I rediscovered my 600XL a few weeks back, I've been doing exactly what this program is written for - digging into what the POKEY has to offer - by writing little BASIC routines. But now stumbled on this program, thanks for coding!

So my efforts to make it work on a 16kB machine were actually useful? :) Did you run it on real hardware? I tested with Altirra in 600XL mode, but not on real hardware. Both my 600XLs are 64kB. And the keyboards are broken.

 

Link to comment
Share on other sites

By the way ivop:  Had another setting I wantrd to get your thoughts on.  

 

$2x on first channel ... 1.79 on 1 and 3 just like on the $Ax ones.  Here's what I have discovered:

 

First channel gets the $2x frequency value from my 1.79 note table.  Third channel will generate tones which are modulated, either on the frequency, up or down an octave, or up or down a 4th interval.  Mod 32 frequencies on the third channel make solid tones.

 

Will send a preliminary note table soon

  • Like 1
Link to comment
Share on other sites

Standard $2x @1.79 AUDCTL=$64

(AUDF1) table		AUDF3 values

A - 255 				255, 251, 247, 243, 239, 232, 222, 219, 216, 213, 202, 192, 187, 185, 165, 160,
					155, 142, 106, 97, 69, 58, 51, 27
A# - 240				248, 244, 242, 240, 236, 225, 212, 209, 206, 195, 190, 185, 176, 175, 174, 172,
					168, 166, 165, 164, 157, 152, 136, 131, 121, 120, 119, 93, 85, 81, 74, 58, 57,
					27
B - 227					254, 252, 243, 227, 213, 195, 187, 182, 175, 156, 150, 128, 125, 107, 89, 81, 
					76, 73, 62, 58, 36, 29, 27, 18, 17
C - 216					251, 244, 240, 231, 216, 209, 191, 172, 171, 151, 138, 131, 120, 106, 84, 59, 
					58, 51, 40, 36, 27, 18
c#- 205					255, 250, 245, 236, 212, 205, 181, 176, 171, 162, 160, 159, 158, 156, 155, 154,
					145, 140, 131, 123, 120, 116, 104, 86, 78, 77, 76, 75, 72, 68, 58, 56, 50, 49,
					44, 41, 37, 36, 27, 18
D - 193					251, 250, 240, 231, 222, 218, 216, 214, 203, 193, 187, 181, 173, 168, 161, 145,
					138, 134, 126, 107, 82, 67, 65, 58, 32, 29, 27, 18
D# - 181				251, 240, 235, 230, 221, 201, 199, 184, 181, 178, 151, 147, 145, 143, 118, 113, 
					90, 87, 59, 58, 57, 43, 33, 27
E - 171					250, 244, 239, 231, 219, 217, 199, 182, 179, 176, 165, 160, 151, 140, 139, 120,
					116, 97, 89, 86, 68, 58, 56, 41, 36, 32, 27, 26, 20, 16
F - 161					255, 252, 234, 209, 189, 182, 161, 151, 120, 115, 106, 89, 62, 58, 51, 29, 27,
					26,  18
f# - 152				254, 244, 238, 232, 226, 221, 216, 211, 204, 182, 175, 152, 120, 114, 100, 89, 
					74, 58, 48, 35, 27, 22, 20
G - 143					249, 244, 239, 236, 224, 221, 213, 208, 203, 194, 190, 186, 182, 173, 168, 148, 
					143, 134, 130, 120, 102, 94, 89, 82, 80, 64, 63, 58, 49, 45, 38, 27, 17
g# - 135				250, 249, 229, 223, 217, 201, 192, 165, 150, 135, 58, 47, 27

A - 127					250, 246, 242, 235, 228, 210, 207, 199, 194, 167, 145, 141, 136, 127, 119, 112
					91, 66, 58, 54, 27
a# - 121				254, 246, 244, 242, 238, 231, 224, 219, 211, 200, 185, 172, 151, 148, 145, 122, 
					121, 120, 119, 110, 98, 72, 64, 58, 47, 46, 37, 27, 21
B - 113					255, 246, 238, 230, 223, 216, 192, 187, 182, 174, 159, 147, 144, 141, 121, 113, 
					94, 89, 85, 74, 70, 58, 35, 27, 22, 14
C- 106					244, 231, 223, 216, 209, 171, 151, 138, 120, 106, 84, 58, 51, 40, 27, 18

C# - 100				254, 244, 226, 211, 204, 175, 146, 125, 120, 100, 71, 58, 48, 39, 27, 22

D - 94					249, 244, 239, 230, 221, 213, 202, 192, 186, 158, 156, 148, 146, 139, 134, 131,
					128, 120, 99, 94, 77, 71, 58, 45, 27, 24

D# - 88					255, 244, 224, 200, 186, 183, 180, 165, 159, 146, 120, 88, 58, 42, 27, 19

E - 83					241, 182, 170, 162, 157, 138, 120, 112, 89, 83, 67, 58, 54, 27, 25

F - 79					253, 247, 241, 230, 215, 206, 194, 162, 152, 143, 139, 137, 120, 113, 101, 79,
					58, 27
f# - 74					238, 216, 204, 182, 152, 120, 114, 100, 89, 74, 58, 48, 35, 27, 22

g - 70					251, 244, 187, 166, 160, 157, 149, 144, 135, 131, 129, 120, 81, 70, 58, 33, 27
					
G# - 65					244, 237, 234, 210, 195, 182, 180, 178, 141, 120, 103, 89, 88, 87, 65, 58, 42,
					27, 19
A - 62					252, 244, 223, 191, 182, 174, 163, 142, 128, 120, 89, 85, 62, 58, 40, 29, 27, 18

A# - 57					248, 232, 206, 195, 185, 168, 131, 122, 120, 118, 101, 93, 85, 82, 58, 57, 27

B - 55					244, 240, 232, 225, 205, 199, 179, 155, 129, 120, 118, 114, 58, 55, 27

C - 51					244, 240, 216, 209, 151, 138, 120, 106, 67, 58, 27, 18

c# - 47					249, 244, 222, 214, 207, 200, 182, 154, 120, 111, 109, 105, 98, 89, 75, 64, 58, 47, 30,27

D - 45					249, 244, 239, 221, 213, 202, 192, 186, 165, 156, 148, 134, 131, 120, 99, 94,
					91, 58, 45, 27, 24
D# - 43					255, 244, 239, 220, 204, 197, 184, 178, 158, 120, 108, 107, 100, 90, 83, 58, 43
					27
E - 40					244, 223, 206, 198, 191, 178, 172, 120, 103, 101, 97, 87, 84, 58, 40, 27, 18

F - 38					250, 244, 213, 182, 164, 159, 141, 133, 126, 123, 120, 89, 80, 58, 52, 38, 27, 24,
					20, 17

F# - 35					244, 238, 216, 182, 169, 152, 147, 120, 117, 106, 100, 89, 74, 58, 48, 27, 22


G - 33					251, 244, 187, 149, 144, 135, 131, 120, 70, 58, 33, 27



Solid note table:

AUDF1 taken from $2x 1.79 table

AUDF3 where (freq+4) mod 31=0

Solid note table 2:  AUDF1=AUDF3, from $2x 1.79 table

Here is that note table.  AUDF1 is taken from my POKEY note table, $2x @1.79 mhz clock.  It's a good starting point anyway.

  • Like 1
Link to comment
Share on other sites

Yes, running on real hardware, but my 600XL is basically like an 800XL, the 1064 has been attached as long as I can remember.

 

I have been samplng POKEY sounds & I love the way they sound with acoustic instruments. I've mostly been fiddling around with distortion / noise value 12 in my basic programs. Uncharted territory with high pass filters, for instance, and I will dig into some things mentioned on this thread as well!

Link to comment
Share on other sites

On 12/18/2020 at 12:23 AM, Synthpopalooza said:

Here is that note table.  AUDF1 is taken from my POKEY note table, $2x @1.79 mhz clock.  It's a good starting point anyway.

Sounds good! Obviously I have not checked all combinations by hand/ear, but especially with high values on the third channel, you get nice stable notes and even sort of chords with that 4th you mentioned, like C+E. And AUDF1==AUDF3 always works :) I noticed that the volume decreases a lot if you lower AUDF3 to less than half of AUDF1.

 

Edited by ivop
Link to comment
Share on other sites

  • 1 month later...

A question regarding PE 1.1

 

- when I join channels one and three and am using the "pure tone" square waves $Ax at 1,79MHz, the output of the sound behaves very differently than I'm expecting.

 

When I do a basic routine with POKEing the AUDCTL to 80 (joining the channels and clocking channel 1 to 1,79MHz) and controlling the frequencies with the frequency bytes of channel 1 and 2, I get what I am expecting - I get 16 bit frequencies with one of the channels acting as the high byte / coarse control and the other one as low byte / fine tuning.

 

But, while using Pokey Explorer, something very different happens. I don't really understand what's going on, but certainly not just square waves at 16 bit frequency resolution. Am I getting something wrong?

Link to comment
Share on other sites

Another note, I don't know if this is a bug or a keyboard layout related issue - 

 

when I press shift+6 (& on my keyboard), supposed to increase AUDC3 by $10, AUDF4 increases instead by $10.

when I press shift+7 (' on my keyboard), nothing happens

when I press shift+8 (@ on my keyboard), supposed to increase AUDC4 by $10, AUDC1 increases instead by $10. Pressing shift+2 also increases AUDC1 by $10.

Edited by Probabilitydragon
Link to comment
Share on other sites

3 hours ago, Probabilitydragon said:

A question regarding PE 1.1

 

- when I join channels one and three and am using the "pure tone" square waves $Ax at 1,79MHz, the output of the sound behaves very differently than I'm expecting.

 

When I do a basic routine with POKEing the AUDCTL to 80 (joining the channels and clocking channel 1 to 1,79MHz) and controlling the frequencies with the frequency bytes of channel 1 and 2, I get what I am expecting - I get 16 bit frequencies with one of the channels acting as the high byte / coarse control and the other one as low byte / fine tuning.

 

But, while using Pokey Explorer, something very different happens. I don't really understand what's going on, but certainly not just square waves at 16 bit frequency resolution. Am I getting something wrong?

You need join channel 1 and 2 or 3 and 4 and have one of them run at 1.79mhz to achieve 16 bit.

 

What you did was joining 1 and 3, which corresponds to high pass filter.

 

3 hours ago, Probabilitydragon said:

Another note, I don't know if this is a bug or a keyboard layout related issue - 

 

when I press shift+6 (& on my keyboard), supposed to increase AUDC3 by $10, AUDF4 increases instead by $10.

when I press shift+7 (' on my keyboard), nothing happens

when I press shift+8 (@ on my keyboard), supposed to increase AUDC4 by $10, AUDC1 increases instead by $10. Pressing shift+2 also increases AUDC1 by $10.

Sounds like a keyboard mapping issue on your setup, it behaved like expected for me.

 

3 hours ago, Probabilitydragon said:

...lots of questions today, another question: what exactly is two-tone mode?

Okay this one is currently unknown stuff for me :D, but I believe it's related to SKCTL bits to enable it, generating tones for the cassette interface if I am not mistaken.

 

3 hours ago, ilmenit said:

Sorry for maybe a silly question but I don't have much experience with Pokey programming.

One question about the UI, I understand that some values in the UI are the Pokey registers. What is the one marked with question marks?

 

gui.thumb.png.85b974f614e7e96aaa2357b86651f4ea.png

SKCTL I believe.

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

17 minutes ago, VinsCool said:

You need join channel 1 and 2 or 3 and 4 and have one of them run at 1.79mhz to achieve 16 bit.

 

What you did was joining 1 and 3, which corresponds to high pass filter.

Yes, the filter is another thing, and I’ve experimented with it a bit, mostly in Pokey Explorer. 
 

Also I’ve played around with 16 bit frequencies in both BASIC and PE, and there is either a bug in the program or I don’t understand how it’s supposed to work. 
 

A value of 80 / $50 in AUDCTL corresponds to channel 2 joined to 1 and channel 1 clocked @1,79MHz AFAIK ?

Link to comment
Share on other sites

13 minutes ago, Probabilitydragon said:

A value of 80 / $50 in AUDCTL corresponds to channel 2 joined to 1 and channel 1 clocked @1,79MHz AFAIK ?

Yes. Press J and A.

 

Then set AUDF1/AUDC1/AUDF2/AUDC2 to 00 A0 28 AA. There's your tone. 28 is the MSB, 00 is the LSB. channel 1 is silent, channel 2 has volume.

 

  • Like 2
Link to comment
Share on other sites

6 hours ago, Probabilitydragon said:

...lots of questions today, another question: what exactly is two-tone mode?

By writing $8B to SKCTL, two tone mode is engaged.  You play notes in the 2nd channel and the modulation in the first, set volume of second channel to 0 ... sometimes both channels can be played.

 

It's used for cassette I/O but I've found some musical uses for it too.  I've documented the $Ax modes, and working through one using $4x.

  • Like 3
Link to comment
Share on other sites

@ivop:  I'd like to enlist your help ...

 

The idea is, I need a sweep ran using these settings:  AUDCTL=$64, AUDC1=$2x, AUDC3=$00, NTSC

 

For AUDF3, start at $1B (decimal 27) and step it up by 31

For AUDF1, sweep from $00 to $FF.  Do this for each 31 step of AUDF3

 

These settings produce solid tones ... where AUDF3 is smaller the volume is lower.

 

Thanks.  :)

  • Like 1
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...