Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Composing > problematic playback od GT multispeeds
2014-07-21 11:45
Jammer

Registered: Nov 2002
Posts: 1289
problematic playback od GT multispeeds

I'm not sure how problems and hickups are common for playback on real machine but considerable number of my works usually sounds broken, especially those ones composed with the latest GT release. What's the culprit here? Are GT compilations that cycle sensitive or what? :) During the release of Club Stylier and a few other multis I was forced to create false SID address working as a buffer and then copy values to proper registers but it's really unwanted workaround. Any clues?
 
... 40 posts hidden. Click here to view all posts....
 
2014-07-22 08:21
Conrad

Registered: Nov 2006
Posts: 833
It may not matter that much to you, but I took a bit of time to make recordings from real C64 to provide comparisons. (Recorded on a Tascam DR-60 recorder)
Sorry that they're .wav files, I don't have time to encode them.

----------------------------------------------------
https://www.dropbox.com/s/civxe3fwejcy2o9/Club%20Sylier_Compo%2..
This is recorded from the compo entry at Forever 2010 (Club Stylier)

----------------------------------------------------
https://www.dropbox.com/s/r7412oyxeuiwgra/Club%20Stylier_My%20p..
This is a recording of my own player code, where the GT music routine writes to ghost registers (I hacked it ;)) and then at each call, the contents of the ghost registers are written to the SID registers FIRST before it JSR's $1003. The SID register writing order is done this way:
PULSE LO 1,
PULSE HI 1,
SUSTAIN/RELEASE 1,
ATTACK/DECAY 1,
FREQ LO 1,
FREQ HI 1,
WAVE CONTROL 1,
PULSE LO 2,
PULSE HI 2,
SUSTAIN/RELEASE 2,
ATTACK/DECAY 2,
FREQ LO 2,
FREQ HI 2,
WAVE CONTROL 2,
PULSE LO 3,
PULSE HI 3,
SUSTAIN/RELEASE 3,
ATTACK/DECAY 3,
FREQ LO 3,
FREQ HI 3,
WAVE CONTROL 3,
$d416,
$d417,
$d418

On a PAL machine there are 312 raster lines, which I assume is how GoatTracker divides the positions for calling the play routine, therefore I did the same... Raster positions in my player are: $10, $5e, $ac, $fa Screen is also turned off and black , so no bad lines and minimal background noise.

----------------------------------------------------
and finally...
https://www.dropbox.com/s/zsvm0wmlzkx55w6/Club%20Sylier_1541u%2..
This is a recording from the tune played from my HVSC directory in the 1541 ultimate SID player


As far as HR bugs is concerned, I couldn't hear any big differences between my player and the player used for the original compo entry, but the one played in the 1541u SID player does sound bad indeed. Didn't bother recording the Riverwash 6 invite code. ;)
2014-07-22 08:37
iAN CooG

Registered: May 2002
Posts: 3135
https://www.dropbox.com/s/siobwu4dpjv67z7/Club_Stylier_buffered..
now i've ripped it with buffered writes, the sid in HVSC was added as it was and it's not using buffered writes.
try if this is better and if so will be replaced in next update.
2014-07-22 09:32
Jammer

Registered: Nov 2002
Posts: 1289
Thanks guys a lot!

Conrad, compo entry used my additional routine with buffer and playback was correct. Original buffered writes from GT's compiler didn't work (at least in Vice). But its a heck of unnecessary work as I had to use false sid address in GT and copy registers in compo player routine and everyone would have to do the same in his prod. Version with your player cuts stabs to early thus I guess hardrestart is too long or sth.

It's almost a general rule that my tunes play correctly in SidPlay but have problems in prods - singlespeeds as well (VN#55 intro).

I guess it's mostly up to Cadaver to correct things suggested here in his compiler. Hopefuly, he will as everything's just been given on a silver platter. You guys are really helpful.
2014-07-22 10:48
cadaver

Registered: Feb 2002
Posts: 1153
The buffering in GT has historically been per-channel (at the end of channel execution) to work better with sound effect playback. Obviously it's not enough for demanding tunes like multispeeds, as channel execution will take varying time.

Maybe I'll do a final update where the buffering happens right at the beginning of the play call, in a simple loop.

Which way you do run your copy loop from the fake regs?
2014-07-22 11:55
Jammer

Registered: Nov 2002
Posts: 1289
irq1:  	
			asl $d019
			lda #0
			sta $d020
			ldx #$18
loop1: 
			lda virtual_sid,x
			sta $d400,x
			dex
			bpl loop1
			jsr $1003 // play music
			lda #<irq2
			sta $0314
			lda #>irq2
			sta $0315
			lda #$6c
			sta $d012
			pla
			tay
			pla
			tax
			pla
			rti


That was my routine in each call but I'm not a coder and it was real hit/miss ;)
2014-07-22 12:18
cadaver

Registered: Feb 2002
Posts: 1153
Thanks. I figured it'd be reverse so that it gets the wave/ADSR write timing mostly similar.
2014-07-22 13:13
cadaver

Registered: Feb 2002
Posts: 1153
Here's a preview version of the updated GT, I'd appreciate testing. There's a new relocator option (at the bottom) that will enable the full buffering mode.

http://cadaver.homeftp.net/tools/gt273preview.zip
2014-07-22 13:26
Jammer

Registered: Nov 2002
Posts: 1289
libwinpthread-1.dll is missing ;)
2014-07-22 13:29
cadaver

Registered: Feb 2002
Posts: 1153
Seems I have to update the makefile to link everything statically. Hold on, new version should appear shortly..
2014-07-22 13:34
Jammer

Registered: Nov 2002
Posts: 1289
Ok, I've just downloaded dll myself ;) Testing with 16x multispeeds :D
Previous - 1 | 2 | 3 | 4 | 5 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
A3/AFL
Alakran_64
Shinobi/Planet Jazz
CA$H/TRiAD
Freeze/Blazon
Didi/Laxity
Sillicon/Unreal
celticdesign/G★P/M..
MCM/ONSLAUGHT
Carcass
syntaxerror
Guests online: 153
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Wafer Demo  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 S!R  (9.9)
3 Antitrack  (9.8)
4 Mr Zero Page  (9.8)
5 OTD  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.057 sec.