myspd Files u-sing by Lif3styl3 at 4:47 PM EST on January 5, 2010
I've trying to exract the audio information out of the audio.myspd file.

I'am trying since a few days, but i've found no way.

Any Ideas ?
by manakoAT at 8:58 AM EST on January 6, 2010
Example file(s) :o)
by Lif3styl3 at 1:30 PM EST on January 6, 2010
Should i upload these files to any Filehosting Service ???
I've done it.
Related to the filename i thinks it's a special version of spd file.

Every archive should contain a complete song. (3 minutes)

Bsp 1: http://rapidshare.com/files/331311564/audio.rar.html

Bsp 2:
http://rapidshare.com/files/331313500/audio2.rar.html
by Lif3styl3 at 3:35 PM EST on January 7, 2010
Nobody there with some hints ???
by manakoAT at 3:38 AM EST on January 8, 2010
Most ppl are busy with real life ATM, you need to be more patient :)
by Lif3styl3 at 4:13 AM EST on January 8, 2010
I would try to analyze it by myself, but I don't know how to do these things.

It would be quite nice, to show a way how to this.
A direct solution will be much nicer ;-)

edited 4:13 AM EST January 8, 2010
by manakoAT at 4:17 AM EST on January 8, 2010
You could join our IRC Channel, normally you can get your "direct solution" there pretty quickly ;o)
by Lif3styl3 at 8:09 AM EST on January 9, 2010
Newest information,....

importing the file as raw data using 8000Hz 16bit Big Endian, it's possible to hear a bit music during the noise.


Nevertheless any news reagrding this ?
by hcs at 4:22 PM EST on January 10, 2010
Added support in vgmstream r724.
by Lif3styl3 at 2:09 PM EST on January 11, 2010
Any ideas, how to convert a music file into this format ???

what format is used isinde the myspd file ???

by the way:
Great work. Every Files works. Tested with 30 files.

edited 2:18 PM EST January 11, 2010
by hcs at 2:27 PM EST on January 11, 2010
I discussed the header format over on Xentax.

To convert to this you'd need some tool that generates IMA, I expect sox would be good for it. Generate a headerless IMA stream (with reversed nibbles) for each channel. Calculate the header values from the size of one channel. Pad the header out to 0x20 bytes, then append the left channel and the right channel. You may need to play with padding a bit, try padding the channels out to 1k or so. You should probably use 32khz like these files were.
by Lif3styl3 at 6:54 PM EST on January 11, 2010
hi,

thx for your help.
actuallay i've created 2 ima file with reserved nibbles.

Calculating the size of one channel is quite easy, but the question is how to get this value into the header.

Looking into the header of the myspd files, i don't see any informations.

What do you mean with padding the channels out to 1k ???

Sorry haven't done those things before.
by hcs at 9:01 PM EST on January 11, 2010
Well, you get a hex editor, and you write out the size in big endian. For instance:

Say a channel is 361890 bytes. 361890 is 0x585A2 in hexadecimal, you can convert this with the windows calculator or any number of other programs/web sites. You then open a hex editor and type it out like this:

00 05 85 A2

It has to be padded out with zeroes to fill 4 bytes. You do the same with with other values.

With 1k I meant to write zeroes to the end of the files until their size is a multiple of 1024 (0x400 hex), 1 kilobyte. I don't know if this is required by the driver.
by Lif3styl3 at 1:41 PM EST on January 12, 2010
thx for your help, will give it a try
help by superberny at 7:35 PM EST on January 22, 2010
Forgive me for my bad English.

Someone has managed to pass a wav to myspd and operating on the wii?
I tested "sox in.wav -r 32000 -N -t ima out.myspd" for each channel and then create the header according to his information but does not work.
by hcs at 8:18 PM EST on January 22, 2010
You need to put the output in two different files, outL.ima and outR.ima, then join those together after the header. Like so:

copy /b header + outL.ima + outR.ima out.myspd

If you upload your created file I can take a look at it and see if I can find what's wrong.
by superberny at 3:35 AM EST on January 23, 2010
Thanks for your interest.
That's what I did.

The sox arguments are correct?

I upload the files so that you see them.
http://www.box.net/shared/cdjj3da92t

I have also tried to pass a myspd wav and then back to myspd and files are different
by hcs at 8:38 AM EST on January 23, 2010
Your header seems a little weird, it looks like you decided to use the channel size -1 instead of the channel size. I'd have done:
0x00: 00 46 A7 F0 (size of channel)
0x04: 00 00 7D 00 (sample rate, 32khz)
0x08: 02 35 3F 7C (size of channel * 8 - 4)
0x0C: 02 35 3F 7C (size of channel * 8 - 4)
0x10: 00 8D 4F DF (size of channel * 2 - 1)

As for sox, that's a bit of a pickle. First, it doesn't seem like sox is capable of generating reverse-nibble IMA. Second, when I have it generate IMA normally, and reverse the nibbles myself, in vgmstream it looks like the signal gradually accumulates a DC bias. The issue is caused by a variation on the decoder that both vgmstream and a lot of other code uses, it is slightly different from the real specification.
I don't know if the decoder used in U-Sing will have the same issue. It might not even be noticeable.
In any case, you can try it out by encoding with sox and then reversing the nibbles with my little nibble reversal tool].

---

Been up all night poking at this, I've built a modified sox that uses the broken decode method in its encoder, this is the type of rounding that vgmstream expects. Get it here.

Note: This is the latest (released) version of sox, it uses dithering automatically so you might want to disable that with -D at least during testing so you're not wondering why your files change.

Also note: I wasn't able just yet to track down how the nibble reversing should get applied to output, so you'll still have to use nibble_reverse on the output .imas.

I don't know what rounding method U-Sing expects, I suggest trying both with my modified sox and with regular sox and see which sounds better.

edited 11:24 AM EST January 23, 2010

edited 11:24 AM EST January 23, 2010
by Lif3styl3 at 2:24 PM EST on January 26, 2010
Hi hcs,

is there a command line to sepeare the files into 2 differnet wav files and converting them into an ima file with one command ??


Try to shorten my code
by hcs at 3:28 PM EST on January 26, 2010
I don't think so, without using some funky named pipe stuff. sox only can handle one output file at a time, and I don't think it has any mechanism for dealing with noninterleaved files.
by Lif3styl3 at 3:44 PM EST on January 26, 2010
ok,...

by the way, i think i have told u this already, but the wii is playing back the files which I've created with your help.

so thx for your help,....,
i wasn't here the last few days, because i've written the conversion tool for the singstar games.


Used header:
0x00: 00 2D B3 56 (size of channel)
0x04: 00 00 7D 00 (sample rate, 32khz)
0x08: 01 6D 9A AC (size of channel * 8 - 4)
0x0C: 01 6D 9A AC (size of channel * 8 - 4)
0x10: 00 5B 66 AB (size of channel * 2 - 1)

I've filled the rest of the byte with zero values.

edited 3:54 PM EST January 26, 2010
by hcs at 5:05 PM EST on January 26, 2010
Ok, did you try comparing the ima produced by the build of sox that I'd provided with the standard one?
by superberny at 5:06 PM EST on January 26, 2010
Thanks HCS.
It works! I used SOX-mod to create a ima in each channel, then reverse with your tool and finally Panding 32.

Now I need (and I think also Lif3styl3) a command that allows me to extract a MP3 to WAV as independent channels to do:
"Mp3towav in.mp3 -channel L | sox-t outL.ima ima" and
"Mp3towav in.mp3 -channel R | sox-t ima outR.ima "

Lif3styl3: I think we are working on the same project. I would like to talk to you about it: superberny@gmail.com

Again sorry for my bad English

edited 5:08 PM EST January 26, 2010
by Lif3styl3 at 5:29 PM EST on January 26, 2010
hmm, i don't need this function ;-)
In my opinion Sox is also your solution, but you need the mp3 libaray to get sox to work with mp3 files.

@hcs, havent't compares the files,.....

I've done all this stuff by a self-written conversion tool, which does the error checking for me ;-)
by hcs at 5:35 PM EST on January 26, 2010
Ok, I was just hoping that someone would try both ways in the game itself and see which sounds better so you can tell which decoding method is being used. I may have to dig into the executable to satisfy my curiosity.

edited 5:35 PM EST January 26, 2010
by Lif3styl3 at 5:54 PM EST on January 26, 2010
np,....

i will give it a try, but not today ;-)
So I will post my results tomorrow.

so you mean try converting with your version of sox and the current one?
by hcs at 6:19 PM EST on January 26, 2010
Right, they use somewhat different methods to encode. If the right decoder is used the signal will stay AC, otherwise it will accumulate a fairly large DC offset, in the negative or positive direction depending on the mismatch.

Interestingly, the original files seem to decode fine using either method, so there may be a way to adjust the encoder to avoid accumulating rounding errors in any case.
by Lif3styl3 at 4:15 PM EST on January 27, 2010
sorry, will try to answer your question tomorrow,...


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