Jump to content
IGNORED

Converting songs into 8 bit music ROM files


Rev

Recommended Posts

What is the process for this?

 

It depends on whether you are using the Intellivision Music Tracker or IntyBASIC. It also depends on the tools at hand. I write my tracks using Logic Pro (a fancy-pants GarageBand "Pro" software for the Mac) and then hand-transcribe the MIDI data into the tracker's data. I believe Arnauld did something similar, except that he used a program to convert a MIDI file into a MOD one, then used a script to alter it into Intellivision music data.

 

-dZ.

Link to comment
Share on other sites

 

It depends on whether you are using the Intellivision Music Tracker or IntyBASIC. It also depends on the tools at hand. I write my tracks using Logic Pro (a fancy-pants GarageBand "Pro" software for the Mac) and then hand-transcribe the MIDI data into the tracker's data. I believe Arnauld did something similar, except that he used a program to convert a MIDI file into a MOD one, then used a script to alter it into Intellivision music data.

 

-dZ.

 

Where is the Music Tracker program located?

Link to comment
Share on other sites

 

Where is the Music Tracker program located?

 

It's in the Interwebz. Here's a handy link to my tutorial, which includes attached the library file in Assembly Language, along with a sample song from Christmas Carol.

 

Is it for you or are you passing it along to a programmer?

 

-dZ.

Link to comment
Share on other sites

 

It's in the Interwebz. Here's a handy link to my tutorial, which includes attached the library file in Assembly Language, along with a sample song from Christmas Carol.

 

Is it for you or are you passing it along to a programmer?

 

-dZ.

 

For me. Unless im an epic fail at it. I dont mind trying, but my technical limitations dont get me too far sometimes. ha

Link to comment
Share on other sites

 

For me. Unless im an epic fail at it. I dont mind trying, but my technical limitations dont get me too far sometimes. ha

 

Ah, then, you may want to avoid clicking the link I sent, lest you go blind. :lol:

 

The Intellivision Music Tracker is an Assembly Language library for programmers to play music in their games, defined in a specially supported format. It's mostly a manual process at the moment, although some people automate parts of it with their own scripts.

 

As far as I know, there isn't a "synth package" available to generate Intellivision music. I believe Arnauld was working on a web tool once, along with his scene builder and sprite drawing tools; but I do not know what became of it.

Link to comment
Share on other sites

Your post (I don't know about the formatting...)

------------------




If you want to convert a reasonably simple SID song to IntyBASIC format, this is the process I tried before:


1. Use SID2MIDI (download link) and locate the .SID file you want to use. Click on "Create TEXT file" and select where you want to save it.


2. Open the text file in an advanced editor. I am an Emacs junkie since 20++ years, but YMMV. However you will need to do a bit of editing, so the more features your editor has, the better.


It should be noted that IntyBASIC operates with octaves 2-6 + C7, while SID music starts at C0. It means the range of music might be too large. You could do a lot of string replacement to adjust octaves or "compress" the relative distance between channels, but it will involve far more work than this guide covers. Consider if the song is worth the amount of work. See also below where I discuss frequency changes due to vibratos and glissandos.


You will also note that SID2MIDI outputs about six lines of music per 0.1 seconds. A lot of those statements will be duplicates, so to get efficient use of the music, you will want to go through lines and remove duplicates. You might be able to use a scripting language like awk for that purpose, or remove lines by hand. Actually I think this step (which can be done at the very end of the editing) may be the most time consuming and you need to keep a very good sense which lines you can remove without screwing up the music.


3. Remove the top lines of text, as you have no use of those.


4. Remove the columns "Time", "PW", "WF", "ADSR", "VL" and "Filter". In Emacs, I would point the cursor to the top left position, press Ctrl-Space to set the marker, move the bottom right bottom and press Ctrl-x r k to "kill" a rectangle of text.


5. Check the column "Freq" so it doesn't change without the column "Note" changing at the same time. If the frequency shifts, it is due to a vibrato, arpeggio, glissando or something else that SID2MIDI doesn't detect as a new note. Sometimes you can insert actual notes to match the changing frequency, if you understand the relation between the two.


6. Kill the "Freq" columns like we did in step 4. Also remove the >< symbols surrounding each note with ESC x replace-string or something similar.


At this point, we should have something that looks like this:




G#5 D#5 C-5
+++ +++ +++
+++ +++ +++
+++ +++ +++
--- --- ---
--- --- ---
--- --- ---
--- --- ---
F#5 C#5 A#4
+++ +++ +++
+++ +++ +++
+++ +++ +++
--- ---
---
--- --- ---
--- --- ---
--- --- ---

  • Like 1
Link to comment
Share on other sites

Yup, and what was supposed to follow below the code block:

 

From this point, spaces are marked as "_".

7. Remove leading and trailing spaces with ESC x replace-regexp ^_+ Return Return and ESC x replace-regexp _+$ Return Return

 

8. Remove spaces between columns with ESC x replace-regexp _+ Return ,_ Return

 

9. Adjust the note syntax to IntyBASIC format:

ESC x replace-regexp \([A-H]\)#\([0-9]\) Return \1\2# Return

ESC x replace-regexp \([A-H]\)-\([0-9]\) Return \1\2_ Return

ESC x replace-string +++ Return s__

ESC x replace-string --- Return -__

ESC x replace-string H Return B

 

10. Add MUSIC to each line: ESC x replace-regexp ^ __MUSIC_ (two leading spaces, one trailing space)

 

11. Add MUSIC REPEAT / END / JUMP at the end. Add DATA at the beginning to set the tempo.

 

Well, a bit of further polish might be required, but it is a start.

 

Edit: A lot of this could be rolled into a script in your favorite language, whether it is awk, Perl, PHP, Python or something else. I leave that as an exercise for the reader.

Edited by carlsson
Link to comment
Share on other sites

No promises, but it strikes me that the C program I'm using to convert MOD text output to my own tracker format (currently used on the VIC-20 and Creativision) probably could be used as a basis for producing music in the format used by Arnauld's tracker, in case a such script or program to roll music isn't publically available. There is a lot of YMMV in this, which is a reason not to release tools that other people would find confusing and not working as expected, but if disclaimers are given that there is no true single click plug and play solution, but some helper tools for dedicated users to get along the road, it could be useful.

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