Jump to content
IGNORED

Sound list ripper


Asmusr

Recommended Posts

Yes, removing that particularly long string of stuff makes it load properly.

 

This one loads, starting at >0068

afterburner.bin

 

This one loads completely after being hex-edited

afterburner(hexed).bin

 

SLR sees the extra data bytes as garbage and not a valid sound list, which I do not see as a problem.

Link to comment
Share on other sites

Yes, removing that particularly long string of stuff makes it load properly.

 

This one loads, starting at >0068

attachicon.gifafterburner.bin

 

This one loads completely after being hex-edited

attachicon.gifafterburner(hexed).bin

 

SLR sees the extra data bytes as garbage and not a valid sound list, which I do not see as a problem.

 

I'm interested in one that doesn't load so I can see what the problem is.

Link to comment
Share on other sites

The number of bytes per row has to be between 1 and 11, that's the starting point for detecting a sound list.

 

The bad row has a length of >10. I thought I broke it out in a previous post. This is the bad row

>10,>81,>0A,>AF,>3F,>C0,>08,>E4,>96,>BE,>D9,>FF,>E4,>94,>B6,>D7,>F5,>02
Link to comment
Share on other sites

  • 11 months later...

Hi there!

 

I know that nothing has been written here for a long time, but yesterday I briefly downloaded the last version of Sound List Ripper and tried to compose something with it. However, that try quickly came to an end after only a few rows of composing because I got stuck at a point where the focus was on the combo box where you set the note (the leftmose one), however, I couldn't find a way to move the cursor off of it. I tried to click everywhere... changing tabs worked fine, the menues worked as well, but anywhere I clicked in the list itself had no effect because the cursor remained at the combo box, and I couldn't continue editing my list.

 

I just tried that again, and in fact there is a way to get out... apparently this situation happens if you TYPE a note value into the combo box instead of selecting it (such as C#1) although it's a valid value contained in the list. If you select the same note instead, you can get out of the combo box again. Another thing that can happen is that if you type "A2", which is a valid note, it gets converted to ">0A2" which is probably a different value than you intended.

 

I would have some suggestions on how this program could be enhanced...

 

Right now you can import sound lists... from where? The ZIP file doesn't come with any instructions... well, whatever. I suppose it will find them inside of TI ROM files or program files if they are stored as binary. Or you can newly create them. Then you can export them as Assembly, XB, Binary or WAV file. However, it seems you can't export them in a format that Sound List Ripper will recognize if you try to import them again. If you export them as binary, you can't import that file back into Sound LIst Ripper because at that point it says "No sound lists found". It would be nice if there was at least one format that you could import back into Sound List Ripper so that you can save your progress at one point and continue to edit your sound list later.

 

If you copy all the lines from the Table view and try to paste them into an editor window, it won't paste anything because it seems that format is unsupported. You can copy them from the Assembly view into an editor window, but you can only use it in your source code, you cannot paste it back into Sound List Ripper because the Assembly window is read-only.

 

It would be nice if the Assembly window would be editable so you can type in or paste sounds lists from your source code there in order to edit them in Sound List Ripper or convert them to a different format. That way you could also quickly copy and paste whole lines of assembly code which might be a quicker way to duplicate sections of the sound list (just as sometimes typing in the notes is a quicker way than selecting them from the combo box). I'd find it acceptable to have some constraints there such as that the line format must always be BYTE >XX, >XX, >XX, >XX * comment with each line being one event, and that the comment isn't retained if something else is written there. However, in some source codes the bytes may be ordered differently, so it might be better to allow for this too. In this case it'd be acceptable if after importing this (leaving the Assembly tab) the sound list would be converted to the standard Assembly format (with the same bytes only arranged differently).

 

Another nice feature would be a "Play from position" where it would start playing the sound list from the first selected position in the table rather than from the start. This is useful if you're creating a longer melody and want to check if the last notes you've entered are correct. Right now you have to listen to your whole song from the start until you reach the end.

 

Yes, I know this is much to ask for, but I think those features would make Sound List Ripper much more flexible. At the moment, sadly, it's impossible to save and load your sound lists as drafts, but you pretty much have to create them in one session until they're done.

 

Just for the record, here's the list I've created in Assembly format (the start of "Inchworm" as performed by Danny Kaye and the Muppets in the Muppets Show he starred in):

 

BYTE >03,>8E,>12,>90,>32 * F#21
BYTE >02,>8E,>0F,>30 * A21
BYTE >01,>9F,>02
BYTE >01,>90,>32
BYTE >02,>80,>0F,>32 * A#21
BYTE >02,>8D,>11,>32 * G21
BYTE >01,>9F,>32
BYTE >06,>8E,>12,>90,>AD,>25,>B0,>32 * F#21, F#12
BYTE >04,>8E,>0F,>AC,>1F,>30 * A21, A12
BYTE >02,>9F,>BF,>02
BYTE >02,>90,>B0,>32
BYTE >04,>80,>0F,>A0,>1E,>32 * A#21, A#12
BYTE >04,>8D,>11,>AB,>23,>32 * G21, G12
BYTE >02,>9F,>BF,>32
BYTE >06,>8E,>12,>90,>AD,>25,>B0,>32 * F#21, F#12
BYTE >04,>8E,>0F,>AC,>1F,>30 * A21, A12
BYTE >04,>86,>0D,>AC,>1A,>32 * C31, C22
BYTE >04,>82,>0E,>A5,>1C,>32 * B21, B12
BYTE >04,>80,>0F,>A0,>1E,>19 * A#21, A#12
BYTE >02,>9F,>BF,>19
BYTE >02,>90,>B0,>32
BYTE >04,>8E,>0F,>AC,>1F,>19 * A21, A12
BYTE >02,>9F,>BF,>19
BYTE >02,>90,>B0,>17
BYTE >02,>9F,>BF,>02
BYTE >02,>90,>B0,>17
BYTE >02,>9F,>BF,>02
BYTE >02,>90,>B0,>19
BYTE >02,>9F,>BF,>19
BYTE >02,>90,>B0,>17
BYTE >02,>9F,>BF,>02
BYTE >02,>90,>B0,>17
BYTE >02,>9F,>BF,>02
BYTE >02,>90,>B0,>17
BYTE >02,>9F,>BF,>02
BYTE >02,>90,>B0,>17
BYTE >02,>9F,>BF,>02
BYTE >02,>90,>B0,>19
BYTE >02,>9F,>BF,>19
BYTE >06,>8E,>12,>92,>CA,>2F,>D0,>32 * F#21, D13
BYTE >05,>8E,>0F,>AC,>1F,>B0,>19 * A21, A12
BYTE >02,>AE,>12,>17 * F#22
BYTE >01,>9F,>02
BYTE >01,>92,>32
BYTE >06,>80,>0F,>BF,>C7,>35,>D0,>32 * A#21, C13
BYTE >05,>8D,>11,>AB,>23,>B0,>19 * G21, G12
BYTE >02,>A3,>15,>17 * E22
BYTE >01,>9F,>02

  • Like 1
Link to comment
Share on other sites

Thanks for the feedback.

 

It used to work that you could save your work as binary and then import it again. I haven't tested it now, but from what you write it sounds like this feature is broken.

 

I never cared to add an internal format because you could just use binary. Well, also because I never really planned for this to become a sound editor. MOD2PSG2 combined with Tursi's VGM tools are orders of magnitude better than this.

 

Anyway, there seems to be some interest in this tool, but I don't have any time or desire to improve it now. I would be happy to make the code available, e.g. put in on GitHub, if anyone wants to develop it further. It is written in Java using the Swing framework.

Link to comment
Share on other sites

Hmmm, this is odd. I've now tried the Afterburner file posted earlier in this trade, and Sound List Ripper does manage to import them, but it fails at my Inchworm file. Would be interesting why.

 

To that end, I've added the binary version of my Inchworm file to this post. I'm running Sound List Ripper Version 1.4.1 (according to the About box), and it doesn't find a sound list in this file. Maybe you have more luck, but I doubt it. It'd be interesting what goes wrong here...

 

Inchworm.bin

Link to comment
Share on other sites

  • 2 weeks later...

Thank you for the tip... and sorry for the late reply, but I got caught up in Christmas preparations and parties.

I first made the mistake of ADDING a zero instead of changing the last byte into it... which doesn't result in the list being recognized. However, adding multiple zeros worked.

 

However, after importing the list was somewhat altered. The last line before the saving was BYTE >01,>9F,>02, and I added BYTE >00,>00,>00 (in binary of course), which was converted by Sound List Ripper into: BYTE >01,>9F,>00

 

Out of that line, >01 is the number of bytes fed into the sound chip, >9F is the actual byte being fed and >00 is the number of frames to elapse before the next command gets issued. This means that not the number of bytes, but the duration has to be set to 0 in order for the list to properly end. I wanted to clear this up just for the record...

Link to comment
Share on other sites

  • 3 weeks later...

Just for the sake of completeness, I now did the complete "Inchworm" piece. However, I didn't edit it in Sound List Ripper, rather I coded a small utility that converts from a MIDI file into a TI-99 sound list (saved as binary) which then can be loaded into Sound List Ripper. If anybody's interested, I can also post that converter program though it's a bit crude and it's coded in VB5 because it's derived from another program I wrote in VB5 which processes MIDI files as well (but in a different way).

 

Anyway, attached to this post you can find the complete Inchworm sound list...

 

inchworm.bin

 

based on this song:

 

Edited by Kurt_Woloch
Link to comment
Share on other sites

Oh, and here is your Inchworm sound list in VGM format.

 

I updated my script to properly handle durations over 89 but it took me probably four times as long as it should have as I had a difficult time focusing through this headache vexing me all day. But it needed to be done and I have sumatriptan :)

 

inchworm.vgm

Link to comment
Share on other sites

VGM? Never worked with that format... but thanks for converting it! As you can see, the VGM version is much bigger than the original sound list, not to mention you'd also need a player on the TI-99 to play it back. Actually, the reason why I did a sound list is that it's reasonably small in order to be included in games and such where memory is at a premium (such as games supposed to be loaded into VDP RAM and to be run from there).

 

Since my conversion utility hasn't really got much to do with Sound List Ripper, I'll start a new thread for it.

Link to comment
Share on other sites

As you can see, the VGM version is much bigger than the original sound list, not to mention you'd also need a player on the TI-99 to play it back.

 

But after compressing it (lossless) with Tursi's utility it's only 1592 bytes + 732 bytes for the player = 2324 bytes, and the sound list alone is 2982 bytes ;).

Link to comment
Share on other sites

  • 1 year later...
58 minutes ago, Mike Harris said:

What would be really awesome if this was modified to output Assembly language to other formats such as Coleco.

You want to play TI music/sound on the Coleco? Does it have a standardized format for music/sound?

Link to comment
Share on other sites

7 minutes ago, Asmusr said:

You want to play TI music/sound on the Coleco? Does it have a standardized format for music/sound?

newcoleco https://atariage.com/forums/profile/3651-newcoleco/ seems to be the authority on Coleco Sound.
This is the last hurdle before I start cleaning up the game I am working on and future ones.
I get the concept but still have a few issues.
Maybe you can decipher more than I can.

Link to comment
Share on other sites

7 hours ago, Asmusr said:

Newcoleco mentions a similar tool for the Coleco that would most likely be better suited.

His tool just plays a sound list and does not rip or do anything while your tool actually gives a notes and duration list ect...

 

Anyway....It was a thought that would be extremely helpful to myself and the programing community at large and I have yet to find a post of where he released his ripper in DOS from a long time ago.

 

Edited by Mike Harris
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...