Jump to content
IGNORED

A new Pokey tune: Unusual instruments?


analmux

Recommended Posts

Hi Analmux,

 

I am just back from Gamescom and did not had a chance to hear the mp3 file before... This kicks ass! and sounds like the Yamaha chip at the beginning... ;)

 

and best ist really the sound at 2:18...

 

Hopefully you can join forces with Raster and get RMT where it should be... ;)

Link to comment
Share on other sites

Excellent tune! Approximately how long did it take to sequence/compose the tune?

Thanks. I started with some draft ideas mid february 2009, and threw them away / reshuffled them. I started seriously one week before the deadline of the Music Compo 2009. I took 4 afternoons and 1 full day. Especially the last day I made the most changes. When time was up I sent it away, but there were still some minor problems, f.e. the 2-tone filter part was missing notes, caused by the RMT all size optimizations procedure.

 

Nice unusual instruments, you are onto something good here keep up the good work :)

Thanks again. Well, I especially would like to thank Emkay for this. After listening to years of his pokey experiments, and analyzing, computing new notation tables, checking pokey behaviour, throwing around some maths and especially finding out the extended features I think I have a complete picture of pokey's features. I might write an official .pdf document describing the full sound possibilities.

 

...and sounds like the Yamaha chip at the beginning... ;)

You mean the Yamaha from the Sega Genesis? This is (indeed) a full 4-operator FM chip. Of course this is far above Pokey and SID features (except that the Yamaha misses analog filters IIRC). But to my opinion indeed many of the extended & undocumented pokey features get 'a bit into the Yamaha direction'. So, it is a different field of features compared to SID. Most of these new sounds, which I know are (easily!) possible for Pokey, are not possible for SID, or only with a lot of complex register stuffing. F.e. I have not yet found a SID feature which sounds like the clarinet instrument I used. And this is just one of the basic extended pokey features. Note for the C64 guys visiting this board: I don't say Pokey is BETTER than SID, but both chips have features the other doens't have.

 

Hopefully you can join forces with Raster and get RMT where it should be... ;)

Well Raster did already do a great job coding this tracker. I love it ( ;) to Raster). I had discussion with him, he does not see how to implement f.e. polycounter reset, and I think I understand the issues he explained. RMT can grow out to a full 100% pokey supporting tracker when multiple notation tables are supported. But, anyway, pokey emulation is still not complete (f.e. no triangle wave, no 2-tone filter, etc.), so I think it doesn't make that much sense to upgrade RMT before emulation is upgraded. I'm more interested in a tracker which runs on the real hardware instead.

Link to comment
Share on other sites

Yeah, welcome back, Mux!

 

But... I think the E-type bass table should stay. When lowpass filter is enabled, it plays just like C-bass but it plays stable, albeit slightly differently on different voices (i think the best results are on voice #2 and #3 [counting from 0 of course]). I've used this type of instrument ie. in Bash! demo together with 15kHz-synth and also combined 15kHz-synth (pure sound on voice #0 + "E"-bass on voice #2 - near the end of that tune).

 

But - we'll see. Meanwhile i've tried some experiments with that "triangle" sound in MPT (in allows editing up to 4 freq-tables and it saves them together in music-file). I've posted them in that topic Rybags has begun.

Edited by miker
Link to comment
Share on other sites

Hmm.... hard to say.

 

Pity that only 3 tables (except pure tone one) are available to deal with. Maybe there's some chance to take place from 16bit table(s), so then both E-bass for 64kHz and its equivalent for 15Khz filter can coexist.

 

Alternatively two basses can be put in one table (ie. C-1 H-2 for C-bass, and C-3 - C-6(?) for E-bass, starting from C-2 in table instead of C-1 [all in 64Khz mode] - just like it was done in "CMC-Rzóg").

 

Yeah - some disadvantage is that you cannot edit freq-tables from the program itself, ...but it was discussed several times here and there, so i won't start it again.

Link to comment
Share on other sites

 

But... I think the E-type bass table should stay.

 

In a full supporting POKEY Tracker, ofcourse.

Having a look at the 16 bit basses (for 4 channel tunes), you could even use the "E" basses for the "Attack time" of a basstone, because they are more intense and give "multiple" waves at the start. POKEY only has 8 bit resolution, but the sounds sometimes vary higher or lower.

So, if all notation tables work correctly, you could do a "fine frequency arpeggio" by switching the generators on the envelope and not just the frequency, for a better "sound resolution".

 

If you have listened to the "Monkey Island 4ch" tune, you may have recognized some carribean touch in the main voice. It's just the usage of gen. 2 at 1.79MHz in special positions on the envelope.

 

In the "Zoolookologie" 4ch tune it is used to add a "spread" to the main voice. Together with the 2nd voice it sounds like "multiple" voices then. And it removes some unwanted cancelling/overlay of the sounds.

 

 

Well, I do not understand all of making music, but some idea came to my mind sometimes, wehn playing with the sounds.

 

The gen. 2 at 1.79mhz in the 2nd hack, is set to fit to the 15khz notation.

The interesting effect seem to be that those two different adjustments work together, because the frequency-spread of each notation table is correct.

When changing the halfones, the notation seems to stay correct.

When changing the pitch, the notation (frequency spread) seems to get screwed ...

 

A Pokey supporting tracker should help finding the correct volume aswell. Because higher frequencies getting louder than lower frequencies , it should approximate the highest and lowest used note and adjust the volume automatically or on demand. After that step, the musician could adjust the wanted volumes, if needed.

Link to comment
Share on other sites

A Pokey supporting tracker should help finding the correct volume aswell. Because higher frequencies getting louder than lower frequencies , it should approximate the highest and lowest used note and adjust the volume automatically or on demand. After that step, the musician could adjust the wanted volumes, if needed.

 

This would indeed be nice, but the problem is volume resolution. We have only 16 steps, and this is really pokey's biggest problem IMHO. Compare to SID, it has 16 overall volume steps, but the volume envelope of any individual voice has 8bit resolution. For a 4 channel tune we should keep every voice below a certain volume. F.e. to correct volume envelope of one instrument with a factor of 0.5 we loose again one bit of volume resolution. However there are some tricks I'm thinking of, which has something to do with the silent sawtooth, or silent triangle (i.e. F1=F3), which I used in the Instrumentarium tune to reduce clicking when the triangle melody has a silent part inbetween.

Link to comment
Share on other sites

I also noticed... you can use Voice 3 or 4 in volume only to attenuate the volume of Voice 1 or 2 (and other way round).

 

I didn't go much into testing, so no idea if it would be useful to provide resolution increase. Either way, it means you lose a voice, so it's a bit of a major sacrifice.

Link to comment
Share on other sites

I also noticed... you can use Voice 3 or 4 in volume only to attenuate the volume of Voice 1 or 2 (and other way round).

 

Exactly how then? Just a constant volume value? In that case the capacitors (in the audio circuits) should bring it back to zero. That could mean that the nonlinear behaviour, also generating the triangle, is between pokey and the audio-circuit.

 

I tested with constant volumes (in vol-only), but it shouldn't matter if you use 1,2,3 or 4 to soften another voice.

 

Anyway, we don't want to really use this.

Edited by analmux
Link to comment
Share on other sites

  • 1 month later...

I removed the files from my ftp space. I temporarily put them there as on PC I couldn't attach the files to a post. On laptop I can attach them, so here are the files of the last test.

 

It's the scrolling MCS demo (PM underlays combined with scrolling) + the instrumentarium remix tune.

 

Source code is also included.

 

Have fun.

Link to comment
Share on other sites

I removed the files from my ftp space. I temporarily put them there as on PC I couldn't attach the files to a post. On laptop I can attach them, so here are the files of the last test.

 

It's the scrolling MCS demo (PM underlays combined with scrolling) + the instrumentarium remix tune.

 

Source code is also included.

 

Have fun.

Thanks.

 

Stephen Anderson

Link to comment
Share on other sites

...OK, here's another test.

 

Some coloured rasterbars added to show CPU usage:

 

Top DLI : Some init routines for the Middle DLIs : Yellow bar

Middle DLIs : These are needed to change player x-, colour-, shape-registers : Blue bars

Bottom DLI : Here the most processing / precomputing (from 'colour metatile array') is done : Red bar

 

RMT Music Routines : 1 during VBI (only sometimes visible on NTSC), 1 midscreen : Purple bar(s)

Other VBI stuff : Resetting some HW regs (only sometimes visible on NTSC) : Black bar

 

 

It's striking that a lot of CPU time is wasted during the (Top & Middle) DLIs, caused by wsyncs ('wastesyncs' ;) ). This demo is of course not optimized, but optimizations should be possible, however, not for this demo, but possibly some other stuff.

 

It's also striking that the CPU usage in the Bottom DLI (red) increases when scrolling horizontally. That's when we need to precompute new PM shape AND increase x registers etc. There are zones of 16 scanlines, each with its own set of x, colour, shape for all 4 players. Thus, around 144 values need to be updated.

 

The code is only in the "Make it work reliably" stage, and (still) not "Make it work reliably and fast". A lot of optimizations should be possible. And, should also be needed when using this for a game project.

Link to comment
Share on other sites

  • 9 years later...

Necrobumping this ... obviously we've come a long way in the emulation.  I have been doing a ton of POKEY experiments ... one that looks promising is the following settings:

 

AUDCTL =$40 (1.79 mhz clock on 1) or $41 (adding in 15khz mode)

SKCTL =$8B

AUDC1=$4x

AUDC2=$00

 

There are some frequency combinations here which produce some ferocious guitar distortions.  I have written a short BASIC program to step through all 65,536 frequency settings for purposes of generating a frequency table.  I will post it after work.  

 

Some of the guitar waves have interesting tremolo oscillations to them.  I am wondering if there is any way to calculate which frequencies generate actual notes?

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