Jump to content

Converting sid tune instruments


M.U.L.E.
 Share

Recommended Posts

I'm interested in emulating some classic C64 instruments faithfully from a few games, and have a few questions.

I just read the wavetable tutorial TK posted at this link: http://www.ucapps.de/howto_sid_wavetables_1.html

First, is this primarily for drum sounds or can this be used for instruments as well?

I've downloaded siddump and the perl extension, and successfully created a dump of a SID tune to show the MBSid converted data. I converted a single track from a tune to a file and viewed the converted data.

I see the wavetable information and how to input that, and the ADSR info, nice. I'm wondering how to read the two digit WF column, how do those numbers tell me which waveform to use? Also wondering what the PUL column data is. Is it possible to perfectly emulate an instrument patch on the mbsid from a sid tune using siddump and the convert script? Thanks in advance for any help!

Link to comment
Share on other sites

For example, here is the output of the beginning of a track

Starting with frame 0 (0:00)
| Frame | Time  | Freq Note/Abs WF ADSR Pul | MBSID Wave Transpose Att Dec Sus Rel |
+-------+-------+---------------------------+--------------------------------------+
|     0 |  0:00 | 0000  ... ..  00 0000 000 |         10 +00 (+00)   0   0   0   0 |
|     1 |  0:00 | ....  ... ..  .. .... ... |        +00 +00 (+00) ... ... ... ... |
|     2 |  0:00 | ....  ... ..  .. 0F00 ... |        +00 +00 (+00)   0 120   0   0 |
|     3 |  0:00 | ....  ... ..  .. .... ... |        +00 +00 (+00) ... ... ... ... |
|     4 |  0:00 | ....  ... ..  09 02AA 100 |         00 +00 (+00)   0  16  80  80 |
|     5 |  0:00 | 45A1  C-6 C8  81 .... 140 |         08 +64 ( 64) ... ... ... ... |
|     6 |  0:00 | 03A9 (A-1 95) 41 .... 180 |         04 -33 ( 31) ... ... ... ... |
|     7 |  0:00 | ....  ... ..  .. .... 1C0 |        +00 +00 (+00) ... ... ... ... |
|     8 |  0:00 | ....  ... ..  .. .... ... |        +00 +00 (+00) ... ... ... ... |
|     9 |  0:00 | ....  ... ..  .. .... 200 |        +00 +00 (+00) ... ... ... ... |
|    10 |  0:00 | ....  ... ..  .. .... 240 |        +00 +00 (+00) ... ... ... ... |
|    11 |  0:00 | ....  ... ..  .. .... 280 |        +00 +00 (+00) ... ... ... ... |
|    12 |  0:00 | ....  ... ..  .. .... 2C0 |        +00 +00 (+00) ... ... ... ... |
|    13 |  0:00 | ....  ... ..  .. .... 300 |        +00 +00 (+00) ... ... ... ... |
|    14 |  0:00 | ....  ... ..  40 0F00 ... |         14 +00 (+00)   0 120   0   0 |
|    15 |  0:00 | ....  ... ..  .. .... 340 |        +00 +00 (+00) ... ... ... ... |
|    16 |  0:00 | ....  ... ..  09 02AA 100 |         00 +00 (+00)   0  16  80  80 |
|    17 |  0:00 | 45A1  C-6 C8  81 .... 140 |         08 +33 ( 64) ... ... ... ... |

I'm a little confused on where the note info starts, it looks like before anything happens there is some info on line 1, Wave is 10, and then on line three the decay is set to 120, and on line 4 the Waveform is set to 09, and the ADSR is 0, 16, 80, 80 - and THEN a note plays at line 5, and on line 6?

I'm a bit confused by where the patch begins and ends, how long the wavetable is for this patch, and what to enter for the non wavetable info.

Link to comment
Share on other sites

I spent a little time playing with SIDDasm.  It basically generates 6510 assembly source for music routines from a .sid file.  It's a bit of work (esp. if you don't know 6510 assembler) but that really is getting to the source (!) of it.  This tool along with some great others is available at http://cadaver.homeftp.net/tools.htm

If you're trying to extract instruments from Rob Hubbard tunes you should definitely read the article "Rob Hubbard's Music: Disassembled, Commented and Explained" in C= Hacking 5 (http://www.ffd2.com/fridge/chacking/c=hacking5.txt).  Unbelievable article.  It really helped me understand how SID tunes work and it makes you appreciate how much Rob Hubbard was able to do with a relatively simple player.  A must-read.

That said I started poking about with Zoids by RH trying to emulate some sounds.  It's still a work in progress and I am using QuadraSID instead of my MB-6582 but it seems like a promising approach.  That said, there are a lot of tricks to emulating these sounds, esp. when you have ring modulation involved since two voices have to be used instead of one, etc.

Fun stuff though.  Good luck!

Link to comment
Share on other sites

I was considering doing a java app to convert patches,

something that would recognise a lead, or bass melody, or drums for example, based on the range of notes that same patch was played for each note.

A class that could be imported into the existing Midibox V2 Java Editor, under a different tab.

It might be a bit difficult doing all that with hexadecimal code though.

On the gui side, buttons marked Lead 1, Lead 2, etc would pop up,

as it read the sid file, and it would be cool to be able to play back that selected patch with the sidplay engine, if that was possible, (or just sent it to MbSid via midi).

You could then click an import button which would import the selected patch, into the rest of the V2 Editor,

with all knobs in the relevant positions, so you could save the patch.

All dreams for now only!

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.

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

×
×
  • Create New...