DS games music looping and splitting by porocopi16 at 8:57 AM EDT on August 29, 2019
so uh this is gonna be kinda weird to stuff together.

so uh i was listening to Sonic Rush Adventure's rip of Big Swell, the final boss of that game and I researched for online versions and came across this:
https://www.youtube.com/watch?v=mgmzk4MfoT0

They mention in the description that this version plays when you're not actually near the boss and that it's not in the sound test or any sound tracks.

So I fiddled with a rip of the song from a rom in vgmtrans to try and create a high quality rip, turns out it's just muting that one really frequently used high-pitched instrument in the song that would create the effect the game is producing with this song. Vgmtrans omits an instrument around the middle of the song, which i later found out was usage of the psg by another program that only semi-understood how it was meant to work, as it doesn't seem to be able to use it the same. I tried other programs, the psg either sounds off or it's not there.

I even looked up some tutorials other people were putting up on how you can alter the sequence file by changing it to a midi, deleting the track, turning it back into a sseq file, but all these omitted the psg instrument in the middle so that was fruitless.

I only have a temporary solution and that's one program called vg music studio could rip the song right from the SDAT and play it, and while the psg does play, it still sounds a little off. The song's name in the files in the correct sdat is SEQ_bossF.

i can provide a rip of the sound sdat from rush adventure if too confusing, but basically the songs get dynamically altered like how bfstms and the like have different channels they can phase in and out and it's not present in the rips i've seen and done thus far

and in talking about phasing in and out channels i wanna talk about another game on the DS that is practically unrelated in every way except that it similarly features these problems when listening to two tracks. Nintendogs, the bathing and walking themes

The bathing theme is dynamic because in-game when your dogs are really dirty they leave out this really dingy instrument that they slowly phase in as you clean the dog. Basically, there's no version of this song that i've ripped or seen anywhere that is aware of this dynamic.

and the walking theme as well. The rip that I've both done myself and seen on the site is stuck at the beginning part when you draw the line for your path, along with the fact no rip i've ever seen or done of the song omits the fast drums and/or the panting sample for the peeing/garbage respectively asociated with the walking game, nor has any rip ever really looped past the first part and onto the second part when you're actually walking where the song becomes far more cheerful and energetic.

in the rip on joshw, they're labelled as bgm 23 and 24, although my rip has them labelled as NTR-AD2E-USA-001b and NTR-AD2E-USA-001c

just want to account for dynamic tracks, if they were dynamic bf/r/cstms it would be simply using looping audio converter or txtps to choose channels but since it's on the primitive ds it's much harder

so yeah if such could be accounted for in the rips somehow that'd be appreciated

what also didn't help was i found a forum post from 2008 of someone claiming to want to isolate sound channels in the ds, and someone else's response was to use vio2sf in foobar to do it via the options, but no such option is present in foobar for the vio2sf plugin, just to allow songs to loop and the like, nothing about isolating channels or instruments.

so uh yeah sorry for the ramble but yeah if we could account for that like these songs here that'd be great.
by MoldyPond at 10:10 AM EDT on August 29, 2019
I'm not too sure how to go about editing 2SF files, but if it's any conciliation, there's always the walking theme that's been properly edited on the Touch! Generations soundtrack. For Sonic Rush, have you tried with the NCSF format to see if that gives you different results?
by porocopi16 at 10:37 AM EDT on August 29, 2019
yes but i want the version from the game too (for nintendogs) somehow all it requires is getting past that first loop somehow. And muting those other channels which is also impossible otherwise.

I really don't think it would matter because the ds plays songs through channels with instruments, no matter if it's a 2sf or an ncsf if the channel that plays that high-pitched instrument isn't set to be muted by default (like, flipped on and off by the game somehow) then it's not really any different from the rip on the site that still doesn't have that instrument muted anyway. I've also converted the soundtrack to ncsf before, and iirc big swell was the same, except slightly lower quality for some reason, nothing about muting that one instrument.

I realise my requests are really obscure, but my only information has been from forum posts and programs from 2008-2011, some of which don't really take into account the psg in the song, so it's still incomplete.

edited 10:37 AM EDT August 29, 2019

edited 10:42 AM EDT August 29, 2019
by ArcticJaguar725 at 11:36 PM EDT on August 29, 2019
I don't know nearly enough about how SSEQ works, but you could try hex editing the sequence itself. The MIDI conversions I've seen through VGMTrans tend to set the channel names as their SSEQ or SDAT pointers. You could try deleting or zeroing the unwanted data and see if it works. If that fails, you could also try looking through the VGMTrans or sseq2midi/midi2sseq source to see if there's a simple way to redefine the channels or channel count in the SSEQ header.

edited 11:38 PM EDT August 29, 2019
by porocopi16 at 3:20 AM EDT on August 30, 2019
well i can't do that for the sonic rush adventure song at least through vgmtrans because it doesn't account for that one use of psg in the middle of it like i stated.

i'll try cracking it, but i can upload to mega the sdats if anyone else wants to take a shot at it (both games use sdats iirc)

never edited a sseq file before though

edited 3:39 AM EDT August 30, 2019
by icecream at 2:37 PM EDT on August 30, 2019
If I am understanding this correctly (and please correct me if I'm not), then what you're asking for is impossible to achieve with an .SSEQ player alone. The phasing in and out is simply not present in any system that can play DS sequences, since that's controlled by the game and not the sequence. You'd have to do manually edit the sequence to even get it to sound exactly the way it does in game.

Though I am a bit puzzled as to why the PSG doesn't come back when you just edit the MIDI, since that's just programmed into the bank def...

edited 2:38 PM EDT August 30, 2019
by porocopi16 at 10:41 PM EDT on August 30, 2019
well i guess more of what i'm saying is i don't really want the track to phase in so much as it just not being there at all. like when you rip the bath theme normally it's just the 'clean' version where you would hear it at the end of a bath session if your dog was dirty after a while (which tends to happen if you don't care about the things for long enough). There's not been a version where the dirty dog version has been ripped, which would just require muting or zeroing out the track that plays the one instrument that normally phases in over time as the song loops.

Like for SRA and the bath song, you'd have to mute one track. For walking, you'd have to mute two (since peeing and garbage pant sample are two channels i think for their own purposes) and allow it to loop past the first portion it's usually stuck on because I usually also never see people ripping that part of it (it's why the song when extracted first starts at 3 minutes, cut a loop in half and that's still about a minute because it's got the cheerful bit in there as well from after you confirm the walk)

well i'm not sure, i tried editing the sseq very rudimentarily by grabbing it from vgmtrans (even without the psg since it doesn't recognise it for some reason) and deleting the track, and then attempted to with mid2sseq convert it back, my thought process was 'replace in-game how it sounds there then rip it again' but the second program couldn't convert the midi for some bizarre reason. Idk why, it just wouldn't do it

this was also after an old tutorial which half-explained how you should loop the song by placing markers in anvil studio and then exporting it as a special kind of midi.

so it's not real easy. I might as well link the sdats incase anyone wants to take a shot at it. The first one is the rush adventure one for big swell, the second one is nintendog's. I believe the nintendogs ones are sseq27 and 28, but that's off of Vgmtrans, if you find one the other's right next to it.

https://mega.nz/#!clZgySiT!JWXTL42N6rFily_ymugZfJ5-by9rmgAaI1J4YMrEEG4

https://mega.nz/#!YhQxSYrb!GR0fv7fIZNbhLOK7tB9CPAsJXRcz5k55rFFGFoobyR4
by ArcticJaguar725 at 1:20 AM EDT on August 31, 2019
What I was initially proposing was editing the raw SSEQ sequence itself. The converters (especially midi2sseq) unfortunately do not support all of the MIDI commands that SSEQ uses, so you'll most likely run into issues with data loss for some tracks. If you can get me a copy of the SDAT and tell me which sequences/channels need muting, I could try doing it myself too just to see if it's feasible.

EDIT: Whoops, thought you posted sequences for some reason rather than SDATs. Still need the channel info though. I haven't played either of these games, so I still don't know exactly what you're trying to do. The most useful info you could provide would probably be the channel names of the corresponding MIDIs generated by VGMTrans of whatever you want removed or zeroed from the sequence (e.g. Track: 0x118087), as this will likely result in the least amount of confusion for me. (This has to be done using conversions from an unmodified SDAT (or at least the one you uploaded) or the data will not match.)

edited 2:53 AM EDT August 31, 2019
by porocopi16 at 7:09 AM EDT on August 31, 2019
I kinda figured that, but they were all I could find on how to make it work since I'd never done it before.

alright well what i tend to do is I export from VGMTrans a midi with soundfont 2 and then in a program like synthfont it gives me a name that looks like an address and an instrument. I will try and provide as much detail as possible with prntscr (they're just pictures)

For Sonic Rush Adventure's, when I export the midi, the names appear like this http://prntscr.com/ozyw5b channel 14 appears to have the instrument needed to mute it. "0x17F6" is a constant for all of them. It's SEQ_bossF like I previously stated.

For Nintendogs, it's a little different.

Here's the bath theme with the 'clean instrument' muted http://prntscr.com/ozz0d4 this one's SSEQ_27

The walking theme is a bit weird. In VGMTrans it starts with the part of the song that isn't cut in a loop, so this one's gonna be a bit complicated

1. The loop that it currently IS stuck on (which is the beginning loop), just with the two tracks muted
2. VGMTrans appears to start the song where the second loop of the song starts or close to, this bit hasn't been ripped anywhere, it's always just the loop that is before the walk so i don't know how skipping to the second loop works (as being on a walk can take a long time in-game so it has to have a loop for it as well as the bit when you draw your route, which is where it currently sits at)

So here's a pic of synthfont after extracting the midi http://prntscr.com/ozz35y it's SSEQ_0028 in the sdat i provided.

I hope I've provided enough info. SRA/bath: mute a channel. walk: mute two channels and find a way to get it off the first loop somehow as well because the actual walking part of the walking song is nowhere.

by icecream at 12:34 PM EDT on August 31, 2019
Well, even if you had a perfect MIDI to SSEQ converter, VGMTrans doesn't actually export all of the commands anyway so you'd still need to recreate those.
by ArcticJaguar725 at 4:56 PM EDT on August 31, 2019
Alright, give these a try: Modified SDATs

What's interesting about SSEQ_0027 in Nintendogs (you got the two backwards btw) is that there appears to be two different sequences within the same SSEQ file. VGMTrans I believe plays the second one, while the NCSF player plays the first one. I tried muting the channels for both instances just in case, but I haven't looked deeply enough to figure out whether it's possible for me to separate the two or not. Everything else though should work as desired.
by porocopi16 at 3:24 AM EDT on September 1, 2019
@icecream I mean I kinda figured that when songs that have notes that fade out (the walking theme actually is like this, the bit that's currently ripped, there's an instrument that fades out each time it's used from the beginning 34-second loop) when they didn't work. I just thought if that's the way people were claiming it to work that that's the way to do it, alright, but seemingly it's not the case anyway and it's like i ran into a dead end.

and i imagine either because people don't know this happens or they just didn't care that it's never been ripped in that way before.

@ArcticJaguar ah yes that was a mistake of mine, apologies, i was looking at the bath theme first then the walking theme without realising they were backwards, it was late too. But both are right next to each other anyway.

VGMTrans starts from the beginning of the song where the actual walking part of the theme starts (because what happens is you draw a route, which the 2sf/ncsf player plays that part of the theme that loops first, then when you confirm the walk, it stops looping that bit and then starts from the beginning where vgmtrans starts). If there's two sequences maybe it's because there's two loops, because a walk can take well over a minute and that loop needs to continue for as long as the walk happens until you return home, which, given you get more stamina as you do it (which is how far you can draw the route), means walks can take longer, and the song needs to loop for that period of time until you return to the house, iirc walks on max stamina if you use up the whole amount take up to an hour i think.

Perhaps there needs to be a way for the player to skip loops somehow since the sseq would be programmed to do that ingame somehow.

it feels so good to listen to a version of the first loop without the panting sample omg though it's literally identical to in-game's version now, at least, when you're drawing the route.

thank you for your work regarding all 3, now I just gotta figure out if there's a way to split the second loop from the walking theme somehow.

edited 3:30 AM EDT September 1, 2019
by ArcticJaguar725 at 3:43 AM EDT on September 1, 2019
Yeah, I believe the two loops are merged together on a channel basis, so separating the two won't be a super easy feat. I wouldn't expect there to be any programs that natively support SSEQ separation in this manner since I've never seen anything like this done before, but I could always be wrong I suppose too. If you have coding/hexadecimal experience, what I'd recommend would be taking a look at the source code for VGMTrans and midi2sseq to see if you can decode some of the MIDI commands and make sense of the format through there. If you can find the use of values that describe channel size or mark the end point of a channel, you can use that info to try and potentially figure out what needs to be changed or deleted in the file to get it to work. This should in theory be very possible, but it certainly wouldn't be too easy if you're unfamiliar with hex editing and might take more time than it's worth.
by porocopi16 at 7:40 AM EDT on September 1, 2019
it's very small experience i've hex edited before but it's mainly comparison points and the like which yeesh i'm unfamiliar with yeah

although, i'm listening to the sdat you edited for Sonic and for some reason the psg is off again? I reripped my og copy to check, because it appears to have jumbled up the way it plays even though i see in the sseq only one value was edited and that was to mute the channel. Like there's 4 instances in the middle where it's used and the last one is supposed to be the loudest but for some reason it's not last anymore, like they got all jumbled up or something. weird how editing one value changes it up so much.

maybe they're all off, i listened through both desmume and my actual ds (as you start the fight with the song with that instrument missing as the guy on youtube stated, you're away from it majority of the fight) and it doesn't even try to change volume at all. huh.

for the walk song heck it i might just rip the midi and try to loop that since it sounds close enough.
by icecream at 10:13 AM EDT on September 1, 2019
Now I should probably confess that I haven't really listened to anything here (mainly since I'm unfamiliar with the linked tracks and don't have a point of reference, so I'm not sure what to treat as "normal"), so I've just been assuming and guessing what the problems are.

- If it's to have the .SSEQ start at a different point than the beginning, I guess you could program it the same way audio players allow you to start tracks at different points. Otherwise, I'm at a loss.

- If you're aiming for tracks that have added or missing elements depending on certain points in the game, then this might be exactly like Pokemon Gen 5's variable scoring system. If you want to listen to versions of the tracks without it, you'd have to edit the MIDI (or SSEQ like ArcticJaguar suggested, which I believe you can do in Nitro Studio since it's in ASM format) to remove those elements. Otherwise, you're out of luck, as the official soundtrack releases do not have them. (Also, even if you could isolate channels as I just saw you mentioned in the first post, that wouldn't work for PSG since program changes exist and there could be a mix.)

- If the PSG calculation by shit like Nitro Studio is wrong, then I'm really at a loss, especially when some of these programs base the calculations off of the SDK.

- If this is turning into a project to completely fix how VGMTrans exports DS stuff to be accurate to the game (putting it back in is actually not as difficult if you have Nitro Studio or the SDK), then we might want to start with fixing up the completely wrong ADSR conversions.

edited 10:14 AM EDT September 1, 2019
by ArcticJaguar725 at 5:34 PM EDT on September 1, 2019
How much information is lost as a result of conversion from and back to SSEQ with the walking theme? If it's not a noticeable amount of data, you could try doing it that way. As for adding looping support though, this can supposedly be done using Anvil Studio. Just make sure you add the event markers in the right spots and name them loopStart and loopEnd exactly. I've always used Awave Studio to accomplish this though, so I can't really say I'm familiar with Anvil Studio otherwise.
by porocopi16 at 10:15 PM EDT on September 1, 2019
@icecream well for big swell i did link a youtube post above as that's what happens when you load up the boss in-game, the track already starts. There is a soundtrack version of the walking theme that has all the pieces but it sounds a lil different since it's enhanced being an ost and all.

yeah basically, sonic rush adventure's was simply muting one of the instruments, the walking theme was two plus finding a way to skip to the second loop since the song has multiple.

+ @ArcticJaguar I did try that actually, I tried downloading Anvil Studio as that was mentioned in the tutorial I found. Especially with the loopstart and end thing, it just wouldn't convert the midi back though, not sure why. I guess for nintendogs though it could be that or vg studio, since it doesn't seem to use any psg in that song at all, most programs play everything but that perfectly fine.

I actually had downloaded Nitro Studio and I put both sdats through it, the original one from the game and jaguar's. jaguar's caused the program to crash, while the original played just fine (with that instrument unmuted), but the psg kinda exploded, so yeah idk what calculations it's using but it sounds nothing like how even the off versions of it sound on programs like vg music studio or exporting the 2sf/ncsf from it even. Like it was being corrupted as it played or something. So yeah if it is official it's definitely a bad one too.

also i think like even the rip on the site with the psg is slightly incorrect after listening through desmume with my save file there's no variation i can think of and that's really weird.

by ArcticJaguar725 at 12:08 AM EDT on September 2, 2019
Are you sure you sent me the correct file then? It is true that I only changed one byte of Sonic's SDAT, but I see no reason why it should mess with anything else. For the record, Nitro Studio crashes for me if I try to play the sequence from either SDAT through there (edited vs. unedited). On top of that, phase inversion based on NCSF conversions shows no unexpected difference between the two files. Unfortunately I don't know what it is supposed to sound like, but if it doesn't work outside of the DS AND you're absolutely certain the original SDAT file you sent is correct, you might have no choice but to record DS audio via line out.
by porocopi16 at 7:46 PM EDT on September 3, 2019
yeah i may have to just grab it from like desmume or something. i don't think it's your fault, just that the psg is wonky in all versions, even the regular one without the muted instrument

thanks for your efforts though
by icecream at 9:52 AM EDT on September 8, 2019
Record line-in; emulations may end up producing the same jank (and for Desmume some of the calculations were used for 2SF, which is now outdated).
by MDHEXT at 5:15 PM EDT on September 21, 2019
try foobar2000 with the matrix mixer plugin and kode54's 2sf decoder. use vgmtoolbox to convert the sound files into 2sf files.


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source