Posted By
RobertB on 2009-03-30 21:34:33
| Commodore Free issue 28 on-line (fwd)
---------------------------- Original Message ---------------------------- From: Nigel Parker Date: Mon, March 30, 2009 4:04 am --------------------------------------------------------------------------
Commodore Free issue 28 available to download at http://www.commodorefree.com
---------------------------------------------- In this issue --
News Megabit 128 Internal ROM adapter Simon Quernhorst Games Cartridge Byte Back 2009 review Readers Code - AA timer for the C16/Plus4 In the Beginning, Outro 1 Alternative Programming Languages: Forth Interview with Silicon Valley Forth Interest Group (SVFIG)
|
|
Posted By
MMS on 2009-03-31 15:28:27
| Re: Commodore Free issue 28 on-line (fwd)
Holy sh*t, that new C64 music routine listed on Page5 sounds like almost an Amiga!! Add 2 more TED channels, and we are there
|
|
Posted By
Jakec on 2009-04-01 00:02:16
| Re: Commodore Free issue 28 on-line (fwd)
Hello
The AAtimer program is very nice. On 12 Page: 30 VO=0:VOLVO.... bla bla - great it funny
|
|
Posted By
TLC on 2009-04-01 12:36:57
| Re: Commodore Free issue 28 on-line (fwd)
We did analyze that music routine... ))
It utilitizes two major tricks that makes it all possible. One is a software, the other one is a hw one.
The software trick is that (like possibly seen in zoomer routines on the C64) frequency control is not done by incrementing accumulators in realtime (done by ADC's, as seen in digi routines of Plus/4 digiconverter routines), but by indexing samples with pre-calculated tables, whose increment has been calculated purposely. By that, dealing with independent frequency per channels is quick, very quick (the downside is, that it needs memory for tables, and the number of frequency settings are limited by the number of pre-calculated tables).
With that, and, with the absence of independent volume settings per channels (...yes, there is no volume control at all), it can mix 4 channels of 6-bit samples at about 7.8KHz (two rasterlines).
The hardware trick is, that it mis-uses a SID voice to play the digi in a revolutionary way. This has something to do with how the SID phase accumulating oscillator and the waveform selector work; in short, if you turn on some waveform, _then_ turn it off (set "0" waveform), the analog voltage provided by the waveform DAC will remain for some time. ...Consequently, the trick is to reset the SID oscillator (by setting the test bit of the channel), set some increment in the frequency register, release the oscillator (resetting test-bit), wait some time while waveform is 0, then, at the next sampling time, turn on/off triangle waveform, and start again with the procedure. The higher the increment set in the frequency register, the higher the analog value that will be D/Aed at the time of setting the triangle waveform on, and, consequently, remain on the output as result until no waveform is asserted (which would be until next sampling time). ...It has some drawbacks (jitter of accepting the interrupt request converts straight to amplitude noise, and there aren't as many useable increment settings so that it could make it for a full 8-bit wavetable), but nevertheless, it's indeed very clever, say, revolutionary. ...With this approach, it's also possible to filter the mixed digi channel by the SID filters, just as it were (as it indeed is) a "normal" SID channel, something that hasn't been possible before.
With a TED in mind, the "8-bit" (...which would be closer to about 6-bit in reality, considering the noise added by the jitter problem, and the waveform table found in the player) D/A conversion (provided by this trick) would be absent, but the rest is certainly possible to do on the Plus/4.
|
|
Posted By
MMS on 2009-04-01 15:28:28
| Re: Commodore Free issue 28 on-line (fwd)
Yeah, looks little too smart for me Let's say, I could catch half of that, so real respect to you and especially ofr the guys developped it and made it possible. In fact I do not see, why the filters are so essential for the digisound: Amiga could survive without that for a long time (OK, there was 1 filter setting ON/OFF, but it just made the music more "flat") In case you have a drum or bass guitar: you really need no volume control. Usually we use them as loud as possible... For that one the 7.8Khz sounds far enough, even with the upper harmonics the sound reproduction would be good enough.
In fact I had a friend on the univeristy -Copas- who developped a 3-channel digi-player for plus/4, and demonstrated it with a Michael Jackson tune (drum, guitar and synth together), but the screen was switched off... Probably he made the frequency control real-time (for that he needed the extra 30% speed, I suppose). I wish he would know that trick in 1992, when he made it... Then he could demonstrate 4 channel digi with screen On... I think I have his routine on one of my floppys, but has no 1541 or parallel port any more In fact I was thinking, if it is THAT fast, that it could be used SID+TED together. Certainly would work on extended or emulated machine, but it would make possible 4-6 clear 6-bit digichannel, very close to a sound we were just dreaming on an 8-bit machine. (with pre-calculated 6-8 short sample would able to play tracker-style musics).
|
|
|