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 > Merging multiple SID files as subtunes of one file
2025-05-17 20:12
DJ Space

Registered: Apr 2023
Posts: 22
Merging multiple SID files as subtunes of one file

Hey everyone. Sorry if this has already been answered but I can't find any information. I don't even know if this is possible. Lets say we have 4 SID files. I would like to know if there is a tool that can merge them together to one file with multiple subtunes.

Thank you in advance!
 
... 2 posts hidden. Click here to view all posts....
 
2025-05-18 01:02
TheRyk

Registered: Mar 2009
Posts: 2461
Quoting DJ Space
... I am not familiar with even that level of coding, ...)


One night on https://codebase64.org and you can code like trident...

... ok that was kidding

But for real... even for mere musicians it makes sense to learn your LDA STA to get WTF is going on in players...

thx god I'm so multi-non-talented that I fuck around universally... :D

Actually, among generalists, I'm like Hein divided by Mermaid divided by fieserwolf - I suck... but sucking in all respect imho is still cooler than ruling in e.g. Code but having no idea about SID or VIC
2025-05-18 03:04
Raistlin

Registered: Mar 2007
Posts: 755
Are the 4 tunes using the same player? If so, eventually, when I finally get it finished, SIDBlaster would help… but it’s not there yet. Maybe in ~1 year and it’ll be able to give you separated code and data (in an ASM). If you’re lucky, the code for the 4 tunes would roughly match and could be edited by hand.

All that said.. can I ask why you need such a thing? The only benefit really is to save some runtime memory I think.
2025-05-18 03:09
Raistlin

Registered: Mar 2007
Posts: 755
Sorry… thinking about this some more.. if the 4 tunes are your own - which i assume they are - then of course you just need a special version of whatever music editor you’re using.

Do any of the music editors output ASM?

Most that I’ve seen so far are quite nasty with mixing code and data… no neat split between the two.
2025-05-18 06:46
DJ Space

Registered: Apr 2023
Posts: 22
Quote: Quoting DJ Space
... I am not familiar with even that level of coding, ...)


One night on https://codebase64.org and you can code like trident...

... ok that was kidding

But for real... even for mere musicians it makes sense to learn your LDA STA to get WTF is going on in players...

thx god I'm so multi-non-talented that I fuck around universally... :D

Actually, among generalists, I'm like Hein divided by Mermaid divided by fieserwolf - I suck... but sucking in all respect imho is still cooler than ruling in e.g. Code but having no idea about SID or VIC


Haha I wish! Jokes aside, I would like to get into coding If I get some extra time.
2025-05-18 10:43
TheRyk

Registered: Mar 2009
Posts: 2461
About Raistlin's suggestion:
Doing everything as subtunes e.g. in Goat Tracker in the first place spares you such trouble, of course.

But problem is if I got this right, marrying EXISTING tunes to 1 .SID file... That unfortunately ain't easily done in any tracker or its forks I know of.
Not impossible, however. One by one import patterns, .INSes etc... in your .SNG using GT... sounds like maximum punishment /o\
2025-05-18 11:16
wil

Registered: Jan 2019
Posts: 66
If the songs in question are in goattracker format, they can be easily merged with goattracker's loadmerge function. The only problem i ever had with that was when a song used an empty instrument as a silencer; my version of goattracker overwrote this instrument with the ones from the merged song. Solution was to make a small change to the silencer instrument beforehand so that it still was silent but did not appear unused.
2025-05-18 15:08
Krill

Registered: Apr 2002
Posts: 3082
Quoting TheRyk
My way of doing it was usually:
First relocate all tunes in order not to waste more than a page. Then code own init/play which bends Init to the Init of Sub #$00/#$01/etc depending on status of accumulator (LDA #subtune JSR Init) and Init also hacks Play Address... (let's say default LDA #$00 -> $1003, subtune #$01 -> $2003 etc)
This is the way to go, regardless of the sub-tunes having the same player or not.

For more ease and less error-proneness, consider not relocating the tunes at all:
Simply copy them to $1000 at sub-tune init-time (from somewhere beyond $1000 + max-tune-size).
2025-05-18 16:35
iAN CooG

Registered: May 2002
Posts: 3233
> consider not relocating the tunes at all

That's an old assumption due to how bad were coded the old players and/or old relocators.
Relocating GoatTracker tunes is no problem at all, assuming DJ Space is always using it.
Dj Space: Just send the tunes over and I'll do it in 5 minutes for you, but consider that in HVSC we onefile only games soundtracks, not demo or standalone musics.
2025-05-18 17:51
Krill

Registered: Apr 2002
Posts: 3082
Quoting iAN CooG
That's an old assumption
It's the general assumption, not knowing which players are used or whether it's the same player for all tunes to begin with.
2025-05-18 19:38
DJ Space

Registered: Apr 2023
Posts: 22
Hmm, I post a reply earlier elaborating on the situation but I don't seem to find it anymore. Weird..

Anyway, to answer Raistlin's question, these SID files - all created in Goattracker - are the OST of a new non-C64 indie/platform game called "Conformer" that is going public on Steam on 30th of this month. The developer wanted a pure Commodore 64 music OST and sound effects although it is a Windows game. So in order to share them easily I thought to make it to one file. Also another reason is, if in the future a developer would ever wanted to port this game on the Commodore, it would be easier (I assume) to have all the audible data of the game in one SID file.

But when I started working on them I didn't thought to have an one SID file with subtunes from the beginning. So here we are. Another problem I just forgot about also is that one of them is at different speed so I have to tweak it first before figuring out how to merge all of them. I guess what Wil suggests should do the trick. If not, iAN CooG thank you for willing to help me with that. I will send you the files.

And thanks to all of you for your fast responses! :)
Previous - 1 | 2 - 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
Akkara/Inox
zzarko/Avatar
master_hacker
metalux/G★P
Guests online: 198
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.6)
4 Coma Light 13  (9.6)
5 Codeboys & Endians  (9.6)
6 Edge of Disgrace  (9.6)
7 Signal Carnival  (9.6)
8 Uncensored  (9.5)
9 Wonderland XIV  (9.5)
10 Unboxed  (9.5)
Top onefile Demos
1 Nine  (9.7)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.5)
6 Scan and Spin  (9.5)
7 Onscreen 5k  (9.5)
8 Dawnfall V1.1  (9.5)
9 Rainbow Connection  (9.5)
10 Morph  (9.5)
Top Groups
1 Artline Designs  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Performers  (9.3)
5 Censor Design  (9.3)
Top NTSC-Fixers
1 Pudwerx  (10)
2 Stormbringer  (9.7)
3 Fungus  (9.6)
4 Booze  (9.5)
5 Grim Reaper  (9.3)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.166 sec.