how to rip instruments from sids
-
- Newbie
- Posts: 2
- Joined: 21/04/2011 - 13:00
how to rip instruments from sids
hi guys,
this is my first post here,
I am trying to find a tool that can allow me to rip instruments and possibly use them on a hardware sid chip.
is there any tool or method that can do this?
Thanks
this is my first post here,
I am trying to find a tool that can allow me to rip instruments and possibly use them on a hardware sid chip.
is there any tool or method that can do this?
Thanks
- Commie_User
- Forum God
- Posts: 1486
- Joined: 14/07/2009 - 23:34
- Location: England
- Contact:
Re: how to rip instruments from sids
A very glib question.
If you're after porting soundfonts or keyboard presets to a C64 in order to have the SID regenerate what you've got, then no. If you're after using samples on the C64, then yes. You can either program your own routines using short snippets or use the MSSIAH. (The MSSSIAH is the easiest, as I believe Sony Sound Forge allows the transfer of 8-bit wavefiles via MIDI.)
Best thing to do is sample your C64 and use the samples in a DAW: viewtopic.php?f=3&t=7594
If you're after porting soundfonts or keyboard presets to a C64 in order to have the SID regenerate what you've got, then no. If you're after using samples on the C64, then yes. You can either program your own routines using short snippets or use the MSSIAH. (The MSSSIAH is the easiest, as I believe Sony Sound Forge allows the transfer of 8-bit wavefiles via MIDI.)
Best thing to do is sample your C64 and use the samples in a DAW: viewtopic.php?f=3&t=7594
Re: how to rip instruments from sids
I think that what you want to do is to RIP for example, a bas sound from a .SID file, and use it on a hardware SID synth like MIDI BOX SID, or HardSID?
If this is it, you can as well forget it, as there is no such software to do this that I'm aware of. Even though many of the sounds on a SID are not that complex and with not so complex modulations, SIDs are actually small snippets of real C64 code that is being run in an emulator when played back... it would be impossible to generate code in a hardware synth that could take account for all the possibilities.
It could however, be realized if the SID player program could actually record any changes made to the SIDs registers in REAL TIME, at the frequency that the .SID is updated (likely about every raster frame on a C64... about 50hz?)... it would work as sort of a "sampler", but the hardware should be capable of playing back these "samples" too, so some sort of collaboration would have to be done to make this at all, and the size of the recording would make it impractical for hardware that use memory limited Microcontrollers like the MIDI BOX SID.
Think yu'd be better of if you tried to program the sound you want in the hardware itself... SID sounds are not that complex afterall...
If this is it, you can as well forget it, as there is no such software to do this that I'm aware of. Even though many of the sounds on a SID are not that complex and with not so complex modulations, SIDs are actually small snippets of real C64 code that is being run in an emulator when played back... it would be impossible to generate code in a hardware synth that could take account for all the possibilities.
It could however, be realized if the SID player program could actually record any changes made to the SIDs registers in REAL TIME, at the frequency that the .SID is updated (likely about every raster frame on a C64... about 50hz?)... it would work as sort of a "sampler", but the hardware should be capable of playing back these "samples" too, so some sort of collaboration would have to be done to make this at all, and the size of the recording would make it impractical for hardware that use memory limited Microcontrollers like the MIDI BOX SID.
Think yu'd be better of if you tried to program the sound you want in the hardware itself... SID sounds are not that complex afterall...
Regards, Jess D. Skov-Nielsen (Razmo).
- poke16384
- Forum Loony
- Posts: 118
- Joined: 09/07/2011 - 13:11
- Location: Lost in the past where the original SIDs reside
Re: how to rip instruments from sids
I have to agree with Razmo on this. Back then, the waveforms were defined in 6502 assembly language and then loaded at run-time, (i.e in the tune)
Those values got poked into predefined addresses in the SID chip, defining the waveform, pulse width modulation, etc... then:
values at MC00 are in the format 'DFL note, duration, note, duration, (31=D, for 10, 26=A, for 4, D, for 4, A, for 2, C, for 2, A, for 2 - then go to the 2nd CT line and do -4 semitones to the pitch, and
so on).
So! knowing that most SID tunes got programmed in a similar if not identical way, dunno how you extract that in a format for a modern synth....
I gotta credit Paul 'Paulie' Hughes for the above as he was the programmer of what we all now know as the 'Ocean Loader' (i.e. The wavey lines, play the music & pretty picture routine).
If you want to know more about how the SID chip got its preset sounds poked in - http://www.pauliehughes.com
Above is the Preset for the bass in Ocean Loader 3. (vFRTLSS I Wish!)vFRTLSS....DFW +10,-10,+10,0:DFL 3,6,3,0,10,%00000101
...............DFL 50,50,0,%00000101:DFW +40,-40,$0400
...............DFL %01000001,$09,$CD,05,100
Those values got poked into predefined addresses in the SID chip, defining the waveform, pulse width modulation, etc... then:
The Filter settings followed.... and finally....fFRTLSS....DFW +40,-50,0,0:DFL 2,13,0,0,00,%00000100:DFW 1250
The Notes get played - 'MARTSBIT0 refers to the begining of the tune before it changes, (a la Martin Galway). The CT values define pitch changes for each time the notes at MC00 get played and theNEWSPEED.....LDA #4:STA CalcDurations+1:LDX #0:JMP NewDurations
MARTSBIT0....DFL FLoad,VRC:DFW vFRTLSS
...................DFL For,6
...................DFL Rest,24
...................DFL Next
...................DFL CT,-0:DFW MC00
...................DFL CT,-4:DFW MC00
...................DFL CT,-7:DFW MC00
...................DFL CT,-4:DFW MC00
...................DFL CT,-5:DFW MC00
...................DFL CT,-2:DFW MC00
...................DFL FLoad,VRC:DFW vDRONE
...................DFL Transp,-0
...................DFL 19,32,Rest,32,Rest,8
...................DFL Code:DFW NEWSPEED
...................DFL Jmp:DFW LOADER0
MC00............DFL 31,10,26,4,31,4,26,2,29,2,26,2
...................DFL Ret
values at MC00 are in the format 'DFL note, duration, note, duration, (31=D, for 10, 26=A, for 4, D, for 4, A, for 2, C, for 2, A, for 2 - then go to the 2nd CT line and do -4 semitones to the pitch, and
so on).
So! knowing that most SID tunes got programmed in a similar if not identical way, dunno how you extract that in a format for a modern synth....
I gotta credit Paul 'Paulie' Hughes for the above as he was the programmer of what we all now know as the 'Ocean Loader' (i.e. The wavey lines, play the music & pretty picture routine).
If you want to know more about how the SID chip got its preset sounds poked in - http://www.pauliehughes.com
It's all about the notes, where you put 'em, what you do with 'em and how long they last
Re: how to rip instruments from sids
From the discussion of SID vs MIDI
So that could be one way of analysing the "instruments"...Chris Abbott wrote:Also, did anyone notice that SID2MIDI has a TXT output option that shows you what the registers are doing? I once wrote an Access database to process that output: once you can see what waveforms are being used, what SFX are being put on, what the ADSR is doing, and what the pulse-width and filter are doing, you can pretty much recreate the patch by hand.
--Anyone want to remix my SIDs?--
merman1974 on Twitter, Steam and Xbox Live
merman1974 on Twitter, Steam and Xbox Live
- Analog-X64
- I Adore My 64
- Posts: 3518
- Joined: 08/12/2002 - 3:50
- Location: Canada
- Contact:
Re: how to rip instruments from sids
Its been a while since I'd look at some C64 code, thanks for posting.poke16384 wrote:I have to agree with Razmo on this. Back then, the waveforms were defined in 6502 assembly language and then loaded at run-time, (i.e in the tune)
Re: how to rip instruments from sids
Well... actually it COULD be done I think... making it "sampler like", but it would perhaps be complicated.
The SID has the following registers for each voice:
Pitch
Pulsewidth
Waveform control
ADSR
if we forget about the filter for a while, even with just these few controls it would be complicated.
We would have to track the changes for every frame to the pitch, pulsewidth, and waveform from the time a note is gated on, and this should be stored in linear format for some time to ensure that we have a full cycle of whatever changes is made to the registers.
When that has been done, some code must analyse the recorded changes, and figure out exactly the rate of a given vibrato, and if this is not periodic, the game stops already there... otherwise if we can learn the rate and depth of the vibrato, we COULD convert that into the correct synth parameters of a SID synthesizer hardware like MIDI Box SID for example.
When we then have to analyze wavetable changes it gets even worse... pulsewidth, filter cutoff... we would have to convert every SID parameter into parameter values this way for it to work... but the chance of meeting some register manipulations that is impossible to recreate is too great.
If on the other hand, the changes to SID registers could be recorded linearly like a PCM sample, and played back linearly as well... just like a sample if the hardware synth had enough memory to save the "sample"... all we would have to do to use the "sample" is to add whatever note we play, to the recorded pitch... again like a real sample really.
You could set the "sampling" to start whenever the "gate" bit in the SID is set, and stop when it's closed for example... in theory it's not that big of a problem in coding to make this, but the memory requirement is too big for machines like MIDI Box SID for example.
With a device like HardSID 4U it would be feasible to make this, and I believe that the creator of this device also had this scheduled for development once (after I gave him the idear).. but I do not know if it ever was made... maybe it posed more problems that I'm not even aware of.
The SID has the following registers for each voice:
Pitch
Pulsewidth
Waveform control
ADSR
if we forget about the filter for a while, even with just these few controls it would be complicated.
We would have to track the changes for every frame to the pitch, pulsewidth, and waveform from the time a note is gated on, and this should be stored in linear format for some time to ensure that we have a full cycle of whatever changes is made to the registers.
When that has been done, some code must analyse the recorded changes, and figure out exactly the rate of a given vibrato, and if this is not periodic, the game stops already there... otherwise if we can learn the rate and depth of the vibrato, we COULD convert that into the correct synth parameters of a SID synthesizer hardware like MIDI Box SID for example.
When we then have to analyze wavetable changes it gets even worse... pulsewidth, filter cutoff... we would have to convert every SID parameter into parameter values this way for it to work... but the chance of meeting some register manipulations that is impossible to recreate is too great.
If on the other hand, the changes to SID registers could be recorded linearly like a PCM sample, and played back linearly as well... just like a sample if the hardware synth had enough memory to save the "sample"... all we would have to do to use the "sample" is to add whatever note we play, to the recorded pitch... again like a real sample really.
You could set the "sampling" to start whenever the "gate" bit in the SID is set, and stop when it's closed for example... in theory it's not that big of a problem in coding to make this, but the memory requirement is too big for machines like MIDI Box SID for example.
With a device like HardSID 4U it would be feasible to make this, and I believe that the creator of this device also had this scheduled for development once (after I gave him the idear).. but I do not know if it ever was made... maybe it posed more problems that I'm not even aware of.
Regards, Jess D. Skov-Nielsen (Razmo).
Re: how to rip instruments from sids
http://www.tednilsen.com/
Somebody somewhere has a copy of this...
See also this:
http://midibox.org/forums/topic/15560-r ... ntry137450
That said, most SID sounds are pretty simple to recreate. If you sample a single SID drum sound for example, you can actually see what waveforms make it up just by looking at it.
Somebody somewhere has a copy of this...
See also this:
http://midibox.org/forums/topic/15560-r ... ntry137450
That said, most SID sounds are pretty simple to recreate. If you sample a single SID drum sound for example, you can actually see what waveforms make it up just by looking at it.
Re: how to rip instruments from sids
Was trying to remember what this was called for ages when this thread came up.
ICU64 - look inside the C64's memory with VICE
http://icu64.blogspot.com/
ICU64 - look inside the C64's memory with VICE
http://icu64.blogspot.com/
--Anyone want to remix my SIDs?--
merman1974 on Twitter, Steam and Xbox Live
merman1974 on Twitter, Steam and Xbox Live
-
- Newbie
- Posts: 2
- Joined: 21/04/2011 - 13:00
Re: how to rip instruments from sids
well after many months , still no progress in my search as tonka linked i also tried on the midibox forums, and the closest i found to any tool is the HardSID Ripper on ted nilsens site, but its not availible only a video to see it in action.
any one in the knowhow/ any other suggestions or in contact with ted please feel free to comment?
any one in the knowhow/ any other suggestions or in contact with ted please feel free to comment?
Re: how to rip instruments from sids
I think you might as well forget it... it would require a lot of effort from someone coding the necessary code on one of the available hardware SID synths... The closest you'll get is to play the sounds you want through a HardSID unit, using software that will allow you to mute individual SID channels, and then sample the instruments... it'll never be the same as the real deal of course, especially not with instruments... percussion can be sampled convincingly this way though, which I also did with my latest RobHubbard percussion sample pack.sweetsynthchuck wrote:well after many months , still no progress in my search as tonka linked i also tried on the midibox forums, and the closest i found to any tool is the HardSID Ripper on ted nilsens site, but its not availible only a video to see it in action.
any one in the knowhow/ any other suggestions or in contact with ted please feel free to comment?
If you need to create instruments on for example a MIDI Box SID, then the best approach wouold be to study each and every instruments in a waveform editor on your PC, and then by hand enter the necessary parameters to get the sound... MIDI Box SID is more than capable at making most of the sounds from SID tunes, as the instruments are actually rather simple when you first get how the classic stuff is made... most use only ONE oscillator, some two with combined sync or ringmod... that's it... a single LFO or Envelope to modulate Pulsewidth/Pitch etc. is usualy all that is needed extra.
I admit that it would be cool if you could have a program that did what you want... I've asked for the same in the past (actualy I was the one giving the creator of the HardSID the idear in the first place i remember)... but eventualy they sacked the idear... most possible because it's complicated.
Regards, Jess D. Skov-Nielsen (Razmo).