Jump to content
IGNORED

My POKEY experiments using nonstandard settings


Recommended Posts

50 minutes ago, Synthpopalooza said:

Standard 16-bit usage silences the first channel and plays the second.  In this instance, the second channel AUDC1 must be on 0 and AUDC0 set to $4x with 1.79 mhz engaged.

Ah, I understand. I think I found it and seems doable. Has to be done on every pair of channels, so 4 times for stereo, but I think I know what to change.

  • Thanks 1
Link to comment
Share on other sites

Great.  If nothing else, it can work for experimental purposes...

 

$4x, $8x and $0x with polycounters and 1.79 mhz in this usage are all all capable of the fuzzy warbling guitars, though each one has different qualities.    $4x, to me, has the greater frequency range.

 

Give me a couple hours and I'll have the frequency table ready.  Nothing like productive quarantine time ... lol

  • Like 1
Link to comment
Share on other sites

OK, I have the table finished.  I am attaching two document files.

 

First one:  4 note tables ... the first three are mod3, mod5, and non mod tables for AUDF1=0. 

The fourth one is the warbly guitar table, and it is laid out in the following format:

 

- : notes which are detuned below the target note

c1: target note

+:  notes which are detuned above target note

 

Notes with a * beside them are taken from the optimum sampling track, and are optimised for RMT.  These have the greatest modulation period.  The other notes beside them come from secondary sampling tracks, and will still be in tune.

 

The second text file has the optimum note table for RMT.  These have been tuned by ear and are, as far as my ears can tell, near as possible to the actual notes.

 

The notes are laid out as (AUDF0, AUDF1, MOD) where mod is the modulation width, which is added or subtracted to AUDF1 to get the period boundary.  Where mod=0, you get a steady tone, then as the modulation period increases or decreases, the vibrato width increases.  Since RMT has no function for detuning, I would add or subtract half of the mod width to AUDF1 when making the table, to activate the modulations.

 

 

Tuning errors increase as you get to the c3 octave, and indeed b3 does not even exist on the main sampling track.  You may either substitute (125,7,0) here for a warbling tone, or (41,0,0) from table 2 in the first document to get a solid tone.  At e4, you are forced to take (26,0,0) from table 2.  f#4 is dropped from the note table, and as you get higher, even more notes get dropped.

 

From the following, I have deduced that AUDF1 is the frequency carrier here.   In the main sampling track, this value seems to decrease as the pitch gets higher.  I also believe that these values correspond with the $2x note table, with 1.79 mhz.  I have not yet determined a pattern for AUDF0 but I imagine it has to do with bit-counting, which creates the oscillations.

 

Anyway, here are the tables.  @R0gerHope this gives you the necessary info to patch these into RMT.  Meanwhile, I will work up a demo song using this mode.  If you notice any errors in my table, let me know ... this was all done by ear and by stepping through 65,536 different settings ?

 

 

 

AUDCTL=$50, AUDC0=$4x by octave number.txt AUDCTL=$50, AUDC0=$4x, AUDC1=$00, table optimized for new RMT patch.txt

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

ok ...

 

for example, the C2 note says 

(36,107,50)

AUDF0=36.  If you put AUDF1=107 you get a steady C2 note.  Adding or subtracting from 107 makes the tone vibrate.  The more you add or subtract, the greater the vibration.  At 107 + 50 or 107 - 50, is the maximum limit of modulation for the tone.

 

For purposes of RMT, use this formula:  AUDF1 + (MOD/2) or AUDF1 - (MOD/2).  So for C2,  use 57, or 157, for AUDF1 setting.

 

Sampling track:  Ratio between AUDF0 and AUDF1 that makes a solid tone and gives the greatest vibrational MOD width.  so for C2 you can have 

(36,107,50) or (38,52,20) 

but the second value is from the second sampling track, because it has a shorter vibration range (52-20 to 52+20).  While the first one lets you place AUDF1 from 107-50 to 107+50.

 

Ideally, we want a tracking program where we can fine tune AUDF1 to make the guitar vibrate faster or slower.  But that will be in the future.

 

Hope this explains clearly.

Link to comment
Share on other sites

6 hours ago, Synthpopalooza said:

Also wanted to add ... the MOD values are aporoximation, not exact.  As you get up the scale, the MOD width gets smaller, until it gets to zero and all you get is the base tone.  By that time, notes staet getting dropped from the table.

Hm .. so it doesn't work as I hoped .. have to hack it a bit more ..

Link to comment
Share on other sites

Ah, so no, it DOES work, just a small bug. Check this out.

 

There are 2 version, one with no modulation at all, and the other with 1/5 of the value in second column.

Important difference ! You still have to use RMT distortion 6, but you have to place the note into channel 1 or 3, not 2 or 4. It's tied to the fact that I write value to different audc and 0 to the other.

 

Rmt-synth.zip

  • Thanks 1
Link to comment
Share on other sites

34 minutes ago, Synthpopalooza said:

One more q ... can this also be patched into the patch 8 version?  That is, the RMT with the $Ax bass and 1.79 on $2x and $Cx settings?

Send me the version and I can take a look. I'm using 16bit tables though, so you can't have any other 16 bit instrument.

Link to comment
Share on other sites

I noticed that the notes I enter into the RMT patch dont match my table.  I wonder if the note table was put in correctly ... 

 

EDIT:  I think you may have swapped the AUDF0 and AUDF1 values when you patched it.  They don't seem to be playing correctly.  Or maybe I am doing something wrong?

Edited by Synthpopalooza
Link to comment
Share on other sites

Can you make some example ? You can see what values got to which register in RMT. Just play some note, make a screenshot, and tell me what you think is wrong.

In the steady version the values should match perfectly.

Edited by R0ger
Link to comment
Share on other sites

12 minutes ago, Synthpopalooza said:

Patch 8 of RMT:  

 

 

 

Hm, this patch really messes with the routine itself, it wouldn't be possible to combine it with my changes. What exactly do you need from it ? You want to make 15kHz song ?

Link to comment
Share on other sites

1 minute ago, Synthpopalooza said:

Yes ... combining the guitar patch with the $Ax bass, while using 1.79 mhz for $2x and $Cx.

So you want A untouched (from original), and 2 and C to use settings and tablets from patch 8, right ?

Link to comment
Share on other sites

22 hours ago, Synthpopalooza said:

No rush ... :)

So here it is. Sadly I don't understand patch 8 well enough to tell it's what you wanted. I took all the tables and settings from patch 8, except for distortion 6, which uses your table. I didn't take any code modification from patch 8, they seem to do something very similar to what I'm doing, but not exactly. They should not be needed for anything but patch 8 distortion 6.

It's the steady version, check it out, and if it's ok, I can easily make mod ones.

rmt.synth-steady.8.zip

  • Thanks 1
Link to comment
Share on other sites

I have uploaded my latest POKEY note table over on the 7800 forum:

 

 

The latest table includes Reverse 16-bit settings ... AUDCTL=$10 or $08, but where first channel plays and second one is silent.

 

Reverse 16 currently covers $Ax, $8x with 9-bit poly, and $4x.

 

For $Ax, you use standard 64khz clock.  It has the standard 8-bit note table, plus 50% duty cycle pulse notes starting at A#3 and going down to C2.  This is equivalent to the NES 50% duty pulse wave.

 

For $8x, engage 9-bit poly plus 1.79 mhz.  There are two tables where AUDF1=0, one of which has notes where AUDF0 mod 7 = 0.  There are also modulated tables (like $4x described above) where varying the AUDF1 frequency by steps causes vibrations in the note.

 

For $4x, engage 1.79 mhz.  This is the setting I posted above.  At present it only contains the three AUDF1=0 tables, and the first table of modulations.  In future I will add other tables and miscellaneous frequencies.

 

Still to add:  SKCTL=$8 two-tone modes, AUDCTL=$x4 or $x2 or $x6 (hi-pass filter), plus combinations of hi-pass plus two-tone, hi-pass plus 16-bit (normal and reverse).

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...