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 > How to find music that doesn't eat all that much rastertime?
2010-08-05 12:00
Shadow
Account closed

Registered: Apr 2002
Posts: 355
How to find music that doesn't eat all that much rastertime?

I'm messing about with some just-for-fun-coding, and now I wanted to add some music. However, I only have about $10 rasterlines of free time.
I've tried a bunch of songs from HVSC, but most players seems to go up to about $18 rasterlines.
Anyone know any particular composers that were known for using players which took little CPU time that I could look for?
Too bad that the maximum number of lines isn't included in the SID-info for each song, would have made it much easier.
My current method is:
1) Choose composer in HVSC randomly
2) Choose a tune by this composer randomly
3) Recompile
4) Test
5) Find out that tune takes too much rastertime
6) Make annoyed grumbling noise
7) GOTO 1

:)
2010-08-05 12:06
Scout

Registered: Dec 2002
Posts: 1570
Why not code your own primitive wavetable player with the necessary effects?

Another solution is dump SID data from a tune (short loop ofcourse ;-) and feed it to a replayer.
An example is Rastertime Eating Tune from Henning Rokling.
This tune eats about 4 rasterlines afaik.
2010-08-05 12:22
Sander

Registered: Jan 2002
Posts: 496
I recall EVS did some songs for Enigma - which were supposed to be very low on rastertime. Don't have the names on top of my mind, but it's all in his dir.
2010-08-05 12:50
Linus

Registered: Jun 2004
Posts: 639
Aleksi Eeben´s JohnPlayer isn´t very hungry either. Check his HVSC directory for some unusual yet amazing stuff.
2010-08-05 14:17
NecroPolo

Registered: Jun 2009
Posts: 231
NinjaTracker is also not too hungry as well. Run a SIDidv1.07 utility on HVSC, it will most likely tell you if the actual tune of your choice was created with JP or NT.

An other option, contact Hermit. He used a SID bytestream routine called SIDrip on my SID remix album "cover" demo last year that made possible to play virtually anything regardless of player with acceptable and stable rasteritme. Even Richard Joseph's (RIP) famous music player and Times of Lore by Martin Galway that are quite hostile by that means :)

Here is the "album cover" demo, considering music playback some seemingly impossible things are going on there:

rakBIT
2010-08-05 16:09
tlr

Registered: Sep 2003
Posts: 1790
Anything by Fred Gray. Chris Hülsbecks Jinks game music.
2010-08-05 17:52
Hein

Registered: Apr 2004
Posts: 954
Music Assembler tunes

Goattracker is still pretty fast, dont think fast enough to be under $10 lines, but $18 should do. Optimize ur routine a bit :)

Streaming music is ofcourse very fast, but takes alot of memory.

Else Flight Path 737
2010-08-05 19:08
McMeatLoaf

Registered: Jan 2005
Posts: 108
How much rastertime does Flight Path 737 use?
2010-08-05 19:19
Hein

Registered: Apr 2004
Posts: 954
Quote: How much rastertime does Flight Path 737 use?

8 lines
2010-08-05 20:04
Perplex

Registered: Feb 2009
Posts: 255
Or do something like this:
Macro Player
2010-08-05 22:29
Shadow
Account closed

Registered: Apr 2002
Posts: 355
Thanks a lot guys, some very good answers!

I actually thought of that "Flight Path 737" tune, as I knew it was one of the lowest rastertime tunes I've ever seen/heard, but I had no idea what it was called. I remember it from some Crest part with tons of sprites, that probably needed to keep it tight!

SID-dumping was also an interesting alternative, the Rokling 4-rasterline one will be a nice last-resort for CPU-heavy parts, gets a bit repetitive though! :)

Anyway, looking through HVSC by player works very nice, eventhough there aren't that many NT/JP tunes, the ones I found all played in less than $10 rasterlines, so all is good!
2010-08-06 02:02
Flex

Registered: Feb 2002
Posts: 111
Artline Designs-routine by Antti Kangas (Scorpion) eats about $13 lines.
2010-08-06 06:50
Devia

Registered: Oct 2004
Posts: 401
The players don't need e.g. $18 CONTINUOUS rasterlines.. just to put some ideas in your head ;-)

writes to the SID need to be at roughly the same line each frame, though.
2010-08-06 07:09
The Human Code Machine

Registered: Sep 2005
Posts: 112
As far as I remember the Music from the game Heartland took less than 4 rasterlines (2 to 3 rasterlines most of the time) when reassembled and omptimized using only zeropage adresses for variables.
2010-08-06 10:01
Dane

Registered: May 2002
Posts: 423
I think you'll find that most tunes made in JCH NP19 works for you. Try using Shorty. And if you need something a bit more custom made let me know.
2010-08-07 09:14
Shadow
Account closed

Registered: Apr 2002
Posts: 355
Thanks for the offer Dane!
If I ever get around to doing a 'serious' C64 demo again (this one is not) I'll most certainly be begging for your tunes!
2010-08-07 11:40
The Human Code Machine

Registered: Sep 2005
Posts: 112
Yeah, I found the old source to the heartland music on one of my discs and it seems to be even faster as I thought... the source should assemble with turbo-assembler. I know there's still room for improvement, but I think it's one of the simplest soundroutines and would perfectly suit a demo part with nearly no time left.

         *= $1000

counter  = $fe
pointer  = $ff

         jmp init
         jmp play

init     lda #$00
         sta pointer
         sta $d417
         ldx #$08
         stx counter
         inx
         stx $d40c
         stx $d405
         lda #$0b
         sta $d413
         lda #$0f
         sta $d418
         lda #$24
         sta $d406
         sta $d40d
         sta $d414
         rts

play     dec counter
         bne over2

         lda #$08
         sta counter

         ldy pointer

         ldx voice1,y
         beq exit1

         lda lo,x
         sta $d407
         sta $d400
         lda hi,x
         sta $d408
         sta $d401
         ldx #$20
         stx $d404
         stx $d40b
         inx
         stx $d40b
         stx $d404

exit1    ldx voice2,y
         beq exit2
         lda lo,x
         sta $d40e
         lda hi,x
         sta $d40f
         ldx #$20
         stx $d412
         inx
         stx $d412

exit2    iny
         cpy #$d2
         bne over1

         ldy #$00
over1    sty pointer
over2    rts

lo       = *-2
         .byte $70
         .byte $b4,$fb
         .byte $47,$98
         .byte $ed,$47
         .byte $a7,$0c
         .byte $77,$e9
         .byte $61,$e1
         .byte $68,$f7
         .byte $8f,$30
         .byte $da,$8f
         .byte $4e,$18
         .byte $ef,$d2
         .byte $c3,$c3
         .byte $d1,$ef
         .byte $1f,$60
         .byte $b5,$1e
         .byte $9c,$31
         .byte $df,$a5
         .byte $87,$86
         .byte $a2,$df
         .byte $3e,$c1
         .byte $6b

hi       = *-2
         .byte $04
         .byte $04,$04
         .byte $05,$05
         .byte $05,$06
         .byte $06,$07
         .byte $07,$07
         .byte $08,$08
         .byte $09,$09
         .byte $0a,$0b
         .byte $0b,$0c
         .byte $0d,$0e
         .byte $0e,$0f
         .byte $10,$11
         .byte $12,$13
         .byte $15,$16
         .byte $17,$19
         .byte $1a,$1c
         .byte $1d,$1f
         .byte $21,$23
         .byte $25,$27
         .byte $2a,$2c
         .byte $2f

voice1   .byte $26,$00,$00,$2a
         .byte $00,$26,$28,$00
         .byte $00,$21,$00,$00
         .byte $26,$25,$26,$25
         .byte $00,$23,$2a,$00
         .byte $00,$1e,$00,$00
         .byte $23,$00,$23,$21
         .byte $00,$1f,$26,$00
         .byte $00,$1a,$00,$00
         .byte $1c,$00,$1c,$23
         .byte $00,$1c,$21,$00
         .byte $21,$28,$00,$21
         .byte $26,$00,$00,$2a
         .byte $00,$26,$28,$00
         .byte $00,$21,$00,$00
         .byte $26,$25,$26,$25
         .byte $00,$23,$2a,$00
         .byte $00,$1e,$00,$00
         .byte $23,$00,$23,$21
         .byte $00,$1f,$26,$00
         .byte $00,$1a,$00,$00
         .byte $1c,$00,$1c,$23
         .byte $00,$1c,$21,$00
         .byte $21,$28,$00,$21
         .byte $23,$00,$00,$00
         .byte $00,$00,$00,$00
         .byte $23,$21,$00,$1f
         .byte $26,$00,$00,$00
         .byte $00,$00,$1a,$00
         .byte $00,$1a,$00,$1c
         .byte $1e,$00,$00,$00
         .byte $00,$00,$00,$00
         .byte $1e,$1c,$00,$1a
         .byte $1c,$00,$00,$00
         .byte $00,$00,$23,$00
         .byte $00,$1c,$00,$23
         .byte $21,$00,$21,$28
         .byte $00,$00,$00,$00
         .byte $21,$28,$00,$21
         .byte $1e,$00,$00,$1c
         .byte $00,$1a,$21,$00
         .byte $00,$00,$00,$00
         .byte $23,$00,$00,$21
         .byte $00,$1f,$26,$00
         .byte $00,$00,$00,$00
         .byte $29,$00,$00,$26
         .byte $00,$29,$28,$00
         .byte $00,$00,$00,$00
         .byte $2b,$00,$00,$28
         .byte $29,$2b,$2a,$00
         .byte $00,$00,$00,$00
         .byte $00,$00,$00,$00
         .byte $00,$00

voice2   .byte $0e,$00,$1a,$0e
         .byte $00,$1a,$09,$00
         .byte $15,$09,$00,$15
         .byte $0b,$00,$17,$0b
         .byte $00,$17,$06,$00
         .byte $12,$06,$00,$12
         .byte $07,$00,$13,$07
         .byte $00,$13,$02,$00
         .byte $0e,$02,$00,$0e
         .byte $04,$00,$10,$04
         .byte $00,$10,$09,$00
         .byte $15,$09,$00,$15
         .byte $0e,$00,$1a,$0e
         .byte $00,$1a,$09,$00
         .byte $15,$09,$00,$15
         .byte $0b,$00,$17,$0b
         .byte $00,$17,$06,$00
         .byte $12,$06,$00,$12
         .byte $07,$00,$13,$07
         .byte $00,$13,$02,$00
         .byte $0e,$02,$00,$0e
         .byte $04,$00,$10,$04
         .byte $00,$10,$09,$00
         .byte $15,$09,$00,$15
         .byte $07,$00,$13,$07
         .byte $00,$13,$07,$00
         .byte $13,$07,$00,$13
         .byte $02,$00,$0e,$02
         .byte $00,$0e,$02,$00
         .byte $0e,$02,$00,$0e
         .byte $0b,$00,$17,$0b
         .byte $00,$17,$0b,$00
         .byte $17,$0b,$00,$17
         .byte $04,$00,$10,$04
         .byte $00,$10,$04,$00
         .byte $10,$04,$00,$10
         .byte $09,$00,$15,$09
         .byte $00,$15,$09,$00
         .byte $15,$09,$00,$15
         .byte $02,$00,$0e,$02
         .byte $00,$0e,$06,$00
         .byte $12,$06,$00,$12
         .byte $07,$00,$13,$07
         .byte $00,$13,$0a,$00
         .byte $16,$0a,$00,$16
         .byte $0a,$00,$16,$0a
         .byte $00,$16,$0c,$00
         .byte $18,$0c,$00,$18
         .byte $0c,$00,$18,$0c
         .byte $00,$18,$0e,$00
         .byte $1a,$0e,$00,$1a
         .byte $0e,$00,$1a,$0e
         .byte $00,$1a

2010-08-07 16:08
McMeatLoaf

Registered: Jan 2005
Posts: 108
The Jack House Built (also by Keith Tinman) is another very light tune CPU-wise; I did a very quick peek, and it looks like uses less than 3 rasterlines (closer to 2)
2010-08-08 10:20
Shadow
Account closed

Registered: Apr 2002
Posts: 355
THCM: Wow, now THAT was a seriously fast music routine. I tested it and at first I though "hmm.. almost sounds like it plays way too fast", turns out that on most frames it takes less than one rasterline, so my $d012-wait had time to trigger twice!
2010-08-08 13:29
The Human Code Machine

Registered: Sep 2005
Posts: 112
@Shadow: Yep, most of the time it leaves after three instructions ;) The tune makes happy and is better than no sound at all.
2010-08-08 14:48
Shadow
Account closed

Registered: Apr 2002
Posts: 355
Haha, yeah, I noticed later that the "bne over2" in the beginning just went straigth to the rts!
2010-08-08 21:43
Angel of Death

Registered: Apr 2008
Posts: 211
You could try anything by Martin Walker. Maybe not as fast but it sure sounds better.
dunno if it is any use but older tunes by martin galway and matt gray used more than one jsr to play so rastertima can be split...
2010-09-11 15:01
MC
Account closed

Registered: Jul 2009
Posts: 71
Anything done in music-assembler should work really.
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
Matt
Mike
Hypnosis/TSD
lotus_skylight
Inge/HVSC
psych
Guests online: 90
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 X-Mas Demo 2024  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Oxyron  (9.3)
3 Performers  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

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