Jump to content
IGNORED

You want better POKEY-music ?


emkay

Recommended Posts

I think, you all know Softsynth. The program with synthvoices and free waveforms.

This Tool is very great to create new style musix. The only problem is to fit such musix into Games, while the music already uses much of CPU time.

OK... with a 16Bit CPU the chipset is able to use 4 Channel PCM with more than 44kHz and more than 128 colors in Hires, but that is another thing...

Now let's think about the POKEY and what it is built in an 800XL/XE:

 

1.-It is a 4 voice soundeffect chip

2.-It is a 2 voice "hires" soundeffect chip with two pcm channels

3.-It is a 4 voice PCM soundchip which uses alot of cpu time.

 

The 1. one is used in mostly games.

The 2. one is used in mostly demos

The 3. one is used in Softsynth

 

All that was to do, to create well sounding music is to use two 16Bit channels with timed softwaremanipulations for the main-voice and the attendance. The third and fourth voice can be PCM created for baseline and basedrum channel that needed less updates. Note: To quantize a sine-base of 100 Hz you need 200 updates/second.

Due to the usage of the 16Bit POKEY-channels, even here is 200Hz enough to create Softsynth-routines.

 

Please compare: 4000 update/sec. in Softsynth to 200 u/s with a programmed synth.

Link to comment
Share on other sites

I only have some good ideas... Raster Music Tracker and a very buggy emulation on the PC. By this the RMT is handicaped to go further...

 

RMT:

http://www.infos.cz/raster/atari/rmt/rmt.htm

http://www.infos.cz/raster/atari/sa_librar...a_libraries.htm

 

SLOW song:

http://www.infos.cz/raster/atari/rmt/slow.zip

 

You can check the song. It is made to hear the different distortions in different frequencies. So, if it is possible to create an ATARI XL/XE emulation that does sound correct to the original, there will be real cool music available from POKEY :)

The best, compared to the original pokey is if the song is played in the ATARI 800 win emulator. The SAP player is the worst in playback of the song..

Link to comment
Share on other sites

Slow doesn't work on NTSC machines.

 

What exactly does that mean? Silence? Distorted sounds?

 

Can you tell me what the grey bars are for/signifying when you play a RMT executable?

 

I remember it's the time spent in VBI playing the music?

Link to comment
Share on other sites

What exactly does that mean? Silence? Distorted sounds?

 

One little beep and then silence.

 

Can you tell me what the grey bars are for/signifying when you play a RMT executable?

 

I remember it's the time spent in VBI playing the music?

 

How is the time calculated and how is that represented on screen? (I realize that may not know this yourself...)

Link to comment
Share on other sites

  • 4 weeks later...
What exactly does that mean? Silence? Distorted sounds?

 

One little beep and then silence.

 

Can you tell me what the grey bars are for/signifying when you play a RMT executable?

 

I remember it's the time spent in VBI playing the music?

 

How is the time calculated and how is that represented on screen? (I realize that may not know this yourself...)

 

You set the colour when you start doing the task you want to time, then set it back again as soon as that task (in this case music playing) is finished.

 

It's quick, it's dirty, but it works well. I've never found a better way of timing code on an 8-bit :)

Link to comment
Share on other sites

Thanks for the reply.

 

This music routine couldn't be in VBI then, could it? Any color change made during VBI wouldn't necessarily show up on the screen, since that is vertical "blank" interrupt time, isn't it?

 

The music routine is done in a DLI, then?

 

I'm probably way off track here... feel free to educate me, I know nothing about creating sound on the 8-bit!

Link to comment
Share on other sites

you have several options of showing the "time consumption" of a routine...

 

normally it's done like:

 

DLI

pha

lda #$ff

sta $d01a

jsr play_music

lda #0

sta $d01a

pla

rti

 

for the timing it doesn't matter just the playroutine is called every frame...

 

or you are doing it with a "kernel"

 

loop

lda vcount ($d40b)

bne loop (waiting until rasterbar 0)

and do the same...

 

it's really one of the oldest & most visuable cpu consumption method on 8bit i have ever seen.

 

cheers, karolj

Link to comment
Share on other sites

you could do it in the VBL - but I personally wouldn't.

 

I'd do it in a DLI during a bit of the screen where you don't need the CPU to tweak any display stuff (like a static bitmap the size of the widest the aforementioned timing bar gets), saving the VBL time for modifying any graphics bits that need doing.

 

...but then again what I currently know about Atari 8-bit code you can write on the back of a postage stamp with a JCB, so your milage may vary....

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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