carlsson Posted July 27, 2016 Share Posted July 27, 2016 (edited) Tonight I decided to see how many steps are involved to convert a "simple" SID song to IntyBASIC format. By simple, I mean one that just outputs tones on the three channels. No note arpeggios, no vibratos, no glissandos, no waveform arpeggios, no pulse wave effects, no filters, no digis etc. Think the kind of C64 music you likely would hear between 1982 and 1985-86. Since a few years ago, SID2MIDI is freely available. It used to be a shareware program, but as the author stopped working on it, he released the full version for free. This program will take any SID file, match it to the Songlengths database that is included in the High Voltage SID Collection and output either a MIDI file, or what we really want in this case: a text file that for each millisecond outputs the note value, frequency, register content on each channel. By converting a SID song to text format and apply a lot of editing (I love my Emacs!), it took just short of one hour to get an IntyBASIC song that can be compiled and played back. Of course it depends on how long the song is. In this particular case, I found that every 6 steps of output, there should be one line of music data since that was the resolution of the song but another song might give different results. So I deleted five rows at a time, to get it evenly spaced. I'm sure I could create a macro that does this, only if I'm sure it doesn't misalign along the way. The instruments are the default ones, so they could be improved. So are the release patterns, but I think they're quite OK. The tempo is set to 6, but should probably be 7 to be closer to the original tempo. So with nothing more to add, here is the title song from Mail Order Monsters on the Intellivision! mailorder.bin mailorder.bas Edited July 27, 2016 by carlsson 4 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted July 28, 2016 Share Posted July 28, 2016 Just saw the video of the original game, you could change the instrument to flute for an even better rendering Quote Link to comment Share on other sites More sharing options...
freewheel Posted July 28, 2016 Share Posted July 28, 2016 Very nice! As luck would have it, earlier this week I was thinking about the feasibility of an Inty port of this game. The monochrome sprites and lots of static screens would work very well and make it easy to program much of it. It kinda fits with my thoughts about Archon. I bet the keypad could be used very well - instead of the awkward joystick menu selections. Plus, I played the living hell out of this game as a kid. One of my all time faves. 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted July 28, 2016 Share Posted July 28, 2016 For those that can't compile or run an emu, here is what it sounds like: Intymailorder.wav 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 28, 2016 Share Posted July 28, 2016 Mail Order Monsters! Ahhhh... the memories of my C=64 and hundreds of floppies... That song brings it all back. Thanks for that. Very good rendition. -dZ. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 28, 2016 Share Posted July 28, 2016 Tonight I decided to see how many steps are involved to convert a "simple" SID song to IntyBASIC format. By simple, I mean one that just outputs tones on the three channels. No note arpeggios, no vibratos, no glissandos, no waveform arpeggios, no pulse wave effects, no filters, no digis etc. Think the kind of C64 music you likely would hear between 1982 and 1985-86. P.S. The old Intellivision Tracker created by Arnauld Chevallier actually did arpeggios, vibratos, glissandos, and other wave effects. No filters, though. Perhaps someday IntyBASIC will gain those as well. -dZ. Quote Link to comment Share on other sites More sharing options...
carlsson Posted July 28, 2016 Author Share Posted July 28, 2016 Yeah, it would just be a matter of re-implementing those from the raw data output by the program. I haven't so far looked into what kind of text data you get from a more complex file. The tool is somehow available for download, but I'm not sure if the executable will run on modern 64-bit Windows machines. Since I'm still sticking with 32-bit Windows XP, it is not an issue for me. In case it wasn't clear: I haven't edited a single note from the SID output. Not even octave shifts, as it turns out the octave numbers output by the SID2MIDI tool nearly perfectly matches the IntyBASIC MUSIC syntax. Thus "converted" rather than "covered", as the latter would mean I have made my own arrangement from existing music, rather than a very mechanical conversion. Quote Link to comment Share on other sites More sharing options...
mmarrero Posted July 28, 2016 Share Posted July 28, 2016 Nice! Although I tend to avoid C64 music that doesn't use analog filters, I didn't realize in the 80's it's what made the SID chip special. Btw, someone recorded nearly all C64 songs from real hardware, different revisions of the SID chip. It's called "Stone Oakvalley's Authentic SID Collection". About Inty Music, a while ago I found out that in ModPlug Tracker, selecting track, pasting onto a text editor produces great results, syntax is Note-Octave Instrument: ModPlug Tracker XM|C-601......|C-701......|E-701......|...........|...........|........... 2 Quote Link to comment Share on other sites More sharing options...
carlsson Posted July 28, 2016 Author Share Posted July 28, 2016 (edited) As an example that not all conversions are mechanical, here is a bit more complex song that obviously is "wip" in the right sense of the word. Bonus points to anyone who recognizes it... http://www.anders.sfks.se/mp3/icecream.mp3 Edited July 28, 2016 by carlsson Quote Link to comment Share on other sites More sharing options...
First Spear Posted July 30, 2016 Share Posted July 30, 2016 Correctly interpreting the "resolution" is my biggest challenge when converting/making music. Every line of music in IntyBASIC takes several words, even if they are a rest. If a song has a quarter note, and you decide that a quarter note takes 8 lines to make discernable sound, then a whole note has to take 32 lines. If a song has 16th notes, and you decide a 16th is 1 Music line in IntyBASIC, then a single whole note is an order of magnitude larger, and you will have to speed up the replay speed, which sucks away CPU cycles for everything else. I have tried to convert some modern pop songs, and because the BPM is high along with a combination of whole notes and 32nd or 64th notes, I eat up 8k with a song speed set to 1, leaving about 12 seconds of music, not good. It's a "fun" challenge. Tonight I decided to see how many steps are involved to convert a "simple" SID song to IntyBASIC format. By simple, I mean one that just outputs tones on the three channels. No note arpeggios, no vibratos, no glissandos, no waveform arpeggios, no pulse wave effects, no filters, no digis etc. Think the kind of C64 music you likely would hear between 1982 and 1985-86. Since a few years ago, SID2MIDI is freely available. It used to be a shareware program, but as the author stopped working on it, he released the full version for free. This program will take any SID file, match it to the Songlengths database that is included in the High Voltage SID Collection and output either a MIDI file, or what we really want in this case: a text file that for each millisecond outputs the note value, frequency, register content on each channel. By converting a SID song to text format and apply a lot of editing (I love my Emacs!), it took just short of one hour to get an IntyBASIC song that can be compiled and played back. Of course it depends on how long the song is. In this particular case, I found that every 6 steps of output, there should be one line of music data since that was the resolution of the song but another song might give different results. So I deleted five rows at a time, to get it evenly spaced. I'm sure I could create a macro that does this, only if I'm sure it doesn't misalign along the way. The instruments are the default ones, so they could be improved. So are the release patterns, but I think they're quite OK. The tempo is set to 6, but should probably be 7 to be closer to the original tempo. So with nothing more to add, here is the title song from Mail Order Monsters on the Intellivision! mailorder.bin mailorder.bas Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.