Jump to content
IGNORED

[RELEASE] RASTER Music Tracker, v1.34.00


VinsCool

Recommended Posts

This tune is the main tune of "Full Contact". It's based on a lot "Tracker commands. 

In the current state, one has to to place separated instruments for any manipulation.

"Note up / down"

"Portamento Note up/down"

"Tone up/down"

"Portamento tone u/down"....

I put that to the most relevant parts of the tune :)

 

 

 

Edited by emkay
  • Like 6
Link to comment
Share on other sites

No 6502 Assembly code done tonight but I wanted to make some sort of catchy background music.

Thankfully my recent driver changes holds up nicely, timing is excellent, and a lot of effects were done for quickly enabling the Two-Tone Filter, as well as mixing AUDCTL envelopes into the every channels.
Also I wanted an excuse to test my VUPlayer so that also looks a bit nicer than a static screen :D 

  • Like 4
Link to comment
Share on other sites

@VinsCool  Great work with the recent new implementations. Keep up the good work.:D

 

One really novice question - Having grown up with the Pokey sounds in games but not being well educated in all things chip tune, (I am no musician either) - whilst I see talk of things like sawtooth, square, sine, and triangle waveforms, etc, I don't actually know what that refers to specifically when it comes to Pokey.

 

I can find soundwave info online for example here, but I can really relate this to the sounds I am hearing in Pokey chip tunes:

http://www.vgmpf.com/Wiki/index.php/Sound_Wave#Square_Wave

 

It seemed to me the majority of pokey game tunes had what I'd deem the trademark Atari "wobble" waveform, (heh heh please excuse my rather comical ignorance;)). What type of waveform is the aforementioned "wobble" sound? 

 

I'd love to have an audio reference/snipett/example of the most typical (old and new) sounds pokey is capable of and name of the waveform as a reference - so I can finally know what is meant by sawtooth, etc and what a sawtooth waveform sounds like on Pokey. Is there an easy way to do this? I've loaded up your RMT tracker and had a very quick look around, loading up songs, etc.

 

As I've mentioned before I really love the Battle Squadron pokey tune which has a fantastic leading synthesizer sounding waveform.

What is the name of that particular waveform? (In your video it is the 2nd channel down, kicking in at 23seconds in):

 

 

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

1 hour ago, Beeblebrox said:

One really novice question - Having grown up with the Pokey sounds in games but not being well educated in all things chip tune, (I am no musician either) - whilst I see talk of things like sawtooth, square, sine, and triangle waveforms, etc, I don't actually know what that refers to specifically when it comes to Pokey.

 

I can find soundwave info online for example here, but I can really relate this to the sounds I am hearing in Pokey chip tunes:

http://www.vgmpf.com/Wiki/index.php/Sound_Wave#Square_Wave

There is a lot of misnomer but you are mostly correct, it's either squarewave or (periodic) noise.
There is an actual "sawtooth" waveform that can be generated from the POKEY using the filter and 2 generators at 1.79mhz, however :D 

 

1 hour ago, Beeblebrox said:

It seemed to me the majority of pokey game tunes had what I'd deem the trademark Atari "wobble" waveform, (heh heh please excuse my rather comical ignorance;)). What type of waveform is the aforementioned "wobble" sound?

The Atari bass sound? that would be... a periodic noise.

I know some people call it sawtooth but that's not what this looks like under an oscilloscope.

 

1 hour ago, Beeblebrox said:

I'd love to have an audio reference/snipett/example of the most typical (old and new) sounds pokey is capable of and name of the waveform as a reference - so I can finally know what is meant by sawtooth, etc and what a sawtooth waveform sounds like on Pokey. Is there an easy way to do this? I've loaded up your RMT tracker and had a very quick look around, loading up songs, etc.

Ohhh good idea, that would help for explaining, thanks for the suggestion!

By far the easiest way to test sounds is by using POKEY Explorer by ivop, a really nice tool which has helped me a lot during my tests.

 

1 hour ago, Beeblebrox said:

As I've mentioned before I really love the Battle Squadron pokey tune which has a fantastic leading synthesizer sounding waveform.

What is the name of that particular waveform? (In your video it is the 2nd channel down, kicking in at 23seconds in):

Thank you!

That's a pulse wave! this synth technique is usually called Pulse Wave Modulation, or PWM for short.

This waveform is also the most characteristic sound used on the SID chip, but the POKEY has its own twist for generating it using the "high pass filter"

 

  • Thanks 1
Link to comment
Share on other sites

2 hours ago, VinsCool said:

Thanks for noticing.

 

And thank you for clarification. ? I am glad you could implement pulse width modulation because that was a feature I was always missing on pokey (or to be exactly in RMT). Can you explain how you achieved it?

 

And is it possible to just switch pwm on or off in your new version of rmt or do I have to use special tricks? 

  • Thanks 1
Link to comment
Share on other sites

27 minutes ago, patjomki said:

And thank you for clarification. ? I am glad you could implement pulse width modulation because that was a feature I was always missing on pokey (or to be exactly in RMT). Can you explain how you achieved it?

It was always possible in RMT, using the instrument envelope AUTOFILTER, or the AUDCTL bits to activate the high pass filter in channel 1 or 2, modulated by the channel 3 or 4, respectively.

 

29 minutes ago, patjomki said:

And is it possible to just switch pwm on or off in your new version of rmt or do I have to use special tricks? 

Much of the same as before, too.

Using the AUTOFILTER envelope makes it a lot easier, but it lack some precision only fine manipulation using specially crafted instruments can achieve.

 

There is 1 new feature my RMT patch has however: instrument envelope CMD7 can set the AUDCTL bits directly as an envelope, which makes all of the above much, much, much more precise, at the cost of being a lot more complex to design if you are not familiar with the chip in general.

 

There is another feature that does something very similar to the high pass filter: Two-Tone Filter, activated with CMD7 parameter $FE to enable and $FD to disable.

To modulate a PWM waveform, you need to combine frequency of channel 2 into channel 1, and modulate the Pulse wave directly in channel 1 using its frequency, which must be 1 octave +1 offset higher, until the 2nd octave, where it will start to produce all sort of complex sounds too.

However, this one is a lot more complex to use, but it's definitely worth experimenting with it :D

 

 

 

  • Like 1
Link to comment
Share on other sites

Oh man, FUCK ME, LOL

 

For weeks I have been doing this puzzle of channels priority and AUDCTL bits, and earlier in the shower I had the striking realisation:

	txa
	asl @
	asl @ 
	sta c_index+1
	lda reg1 
c_index	bcc *
	jmp check_ch1
	nop
	jmp check_ch2
	nop
	jmp check_ch3
	nop
	jmp check_ch4

Massive code debloat incoming!

I can't believe this has been so obvious but I never actually thought about it, arrrgh!

And it works perfectly, that's the most insulting part! LOL 

I'm really not very smart sometime, heheheee...

[edit] also for the STEREO code, I simply need to skip an ASL @ instruction, that's even better.

 

This sort of jumptable will also greatly benefit my VUPlayer code... ?

Anyway, this should basically SPEED UP everything, and REDUCE the amount of bytes wasted doing all sort of redundant shit just to get the proper tuning table based on several settings.

 

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

little faster, little shorter?

 

    txa
    asl @
    sta c_index+1
    lda reg1
c_index    jmp (tab)

     org $xx00
tab .word check_ch1
    .word check_ch2
    .word check_ch3
    .word check_ch4
 

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

11 minutes ago, xxl said:

little faster, little shorter?

 

    txa
    asl @
    sta c_index+1
    lda reg1
c_index    jmp (tab)

     org $xx00
tab .word check_ch1
    .word check_ch2
    .word check_ch3
    .word check_ch4
 

Thanks for the suggestion!

I seem to jump at a very wrong place however... do I need to use the zeropage for the JMP indirect?

image.thumb.png.81b1c84ffebde8fd032d8674759fa25d.png

I saw you did a ORG but I was not sure where this was supposed to be.

I'm still way behind in term of code so sorry for the dumb question ? 

 

In any case, what I did earlier is still a considerable improvement over my stupid... stack of CPX I had to do to make sure I used the correct channel index ?

Link to comment
Share on other sites

1 hour ago, VinsCool said:

[...]

There is 1 new feature my RMT patch has however: instrument envelope CMD7 can set the AUDCTL bits directly as an envelope, which makes all of the above much, much, much more precise, at the cost of being a lot more complex to design if you are not familiar with the chip in general.

[...]

To modulate a PWM waveform, you need to combine frequency of channel 2 into channel 1, and modulate the Pulse wave directly in channel 1 using its frequency, which must be 1 octave +1 offset higher, until the 2nd octave, where it will start to produce all sort of complex sounds too.

However, this one is a lot more complex to use, but it's definitely worth experimenting with it :D

 

Thanks for explaining. 

 

That's what I meant. A user has to enter several difficult settings to achieve anything like PWM.

 

What I would like to see is something similar like on sid with it's 12-bit PWM register ($d409, low byte and $40a high byte but only bit 0..3). I dream about some kind of a user interface that hides these complex mechanism and gives the user just the opportunity to dynamically change the pulse width during the song.

  • Like 1
Link to comment
Share on other sites

1 minute ago, patjomki said:

 

Thanks for explaining. 

 

That's what I meant. A user has to enter several difficult settings to achieve anything like PWM.

 

What I would like to see is something similar like on sid with it's 12-bit PWM register ($d409, low byte and $40a high byte but only bit 0..3). I dream about some kind of a user interface that hides these complex mechanism and gives the user just the opportunity to dynamically change the pulse width during the song.

That is what I'm supposing since decades ;)

A Tracker that allows full control over POKEY, allows to create dynamic instruments. 

Turning from passive control to active control. 

Link to comment
Share on other sites

1 minute ago, patjomki said:

What I would like to see is something similar like on sid with it's 12-bit PWM register ($d409, low byte and $40a high byte but only bit 0..3). I dream about some kind of a user interface that hides these complex mechanism and gives the user just the opportunity to dynamically change the pulse width during the song.

That would be amazing, but unfortunately the chip does not work like this at all.
the PWM effect is done using the frequencies and phases of 2 channels, so it can be manipulated, but not be exact, unless you are timing it at the most absurd level of precision, which is simply going to work well if the music driver can only dedicate so much time for the shifting.

 

The closest result to this would be the Two-Tone Filter, this one at least *does* have a relatively constant Pulse Width with the exact frequencies fed into the channel 1 to modulate the waveform.

Link to comment
Share on other sites

8 minutes ago, VinsCool said:

That would be amazing, but unfortunately the chip does not work like this at all.
the PWM effect is done using the frequencies and phases of 2 channels, so it can be manipulated, but not be exact, unless you are timing it at the most absurd level of precision, which is simply going to work well if the music driver can only dedicate so much time for the shifting.

 

The closest result to this would be the Two-Tone Filter, this one at least *does* have a relatively constant Pulse Width with the exact frequencies fed into the channel 1 to modulate the waveform.

 

Understood. Well perhaps you can provide a user interface that gives the opportunity for PWM and hides the Two-Tone Filter in the background?

  • Like 1
Link to comment
Share on other sites

3 minutes ago, xxl said:

at address $3600 place the address arrays of your procedures

Ohhh okay, now that makes more sense if I look at this:

35FF A9 0C                	lda #INSTRPAR
3601 9D 5C 31             	sta trackn_tablea,x

In this case, I did indeed jump to whatever was in the memory here...

 

I think I will keep using the method I did earlier, it does work great, and it's not a big waste of bytes compared to what was done... before that I mean ?

Thanks again for this advice, this will be helpful for another time!

Link to comment
Share on other sites

3 minutes ago, patjomki said:

 

Understood. Well perhaps you can provide a user interface that gives the opportunity for PWM and hides the Two-Tone Filter in the background?

In 1000s of demonstrations I have shown that the filter PWM control can be 100% . The Problem is the software that is not keeping 100% of the original. So the results change from "software" to "software".

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