Jump to content

Photo

Sound list ripper


116 replies to this topic

#101 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,578 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Mon Dec 19, 2016 10:32 AM

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

 

This one loads, starting at >0068

Attached File  afterburner.bin   9.86KB   9 downloads

 

This one loads completely after being hex-edited

Attached File  afterburner(hexed).bin   9.85KB   9 downloads

 

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



#102 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,893 posts
  • Location:Denmark

Posted Mon Dec 19, 2016 11:40 AM

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.



#103 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,893 posts
  • Location:Denmark

Posted Mon Dec 19, 2016 11:43 AM

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



#104 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,578 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Mon Dec 19, 2016 12:09 PM



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


#105 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,893 posts
  • Location:Denmark

Posted Mon Dec 19, 2016 1:03 PM

Well, there we have it.  :)



#106 Kurt_Woloch OFFLINE  

Kurt_Woloch

    Stargunner

  • 1,402 posts

Posted Sat Dec 2, 2017 11:42 AM

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
 



#107 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,893 posts
  • Location:Denmark

Posted Sat Dec 2, 2017 4:00 PM

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.



#108 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,578 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sat Dec 2, 2017 7:51 PM

Binary import and export work perfectly for me.  Sometimes it forgets which directory is being working in and defaults back to the documents directory, but that is a minor annoyance.



#109 Kurt_Woloch OFFLINE  

Kurt_Woloch

    Stargunner

  • 1,402 posts

Posted Mon Dec 4, 2017 1:06 PM

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...

 

Attached File  Inchworm.bin   225bytes   6 downloads



#110 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,143 posts

Posted Mon Dec 4, 2017 3:02 PM

Change the last byte to zero.

#111 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,578 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Mon Dec 4, 2017 3:59 PM

Change the last byte to zero.

 

This.



#112 Kurt_Woloch OFFLINE  

Kurt_Woloch

    Stargunner

  • 1,402 posts

Posted Sat Dec 16, 2017 8:54 AM

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...



#113 Kurt_Woloch OFFLINE  

Kurt_Woloch

    Stargunner

  • 1,402 posts

Posted Thu Jan 4, 2018 11:53 AM

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...

 

Attached File  inchworm.bin   2.91KB   6 downloads

 

based on this song:

 


Edited by Kurt_Woloch, Thu Jan 4, 2018 11:58 AM.


#114 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,578 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Jan 4, 2018 2:19 PM

I am definitely interested in your MIDI-to-TI conversion utility!



#115 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,578 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Jan 4, 2018 9:15 PM

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 :)

 

Attached File  inchworm.vgm   5.09KB   5 downloads



#116 Kurt_Woloch OFFLINE  

Kurt_Woloch

    Stargunner

  • 1,402 posts

Posted Fri Jan 5, 2018 11:59 AM

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.



#117 Asmusr OFFLINE  

Asmusr

    River Patroller

  • Topic Starter
  • 2,893 posts
  • Location:Denmark

Posted Fri Jan 5, 2018 12:49 PM

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 ;).






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users