Jump to content

Direct SID register control from a computer via a core?


davotron
 Share

Recommended Posts

Not sure if this has been discussed on here previously: on the much useful debug terminal front, I've realised this could open up direct manipulation of the SID registers quite easily which opens up a whole bunch of possibilities.

How cool would it be to have a SID specific audio tracker program running on your PC etc.

Link to comment
Share on other sites

I was thinking back more to the days of the C64 command line and POKE to address a certain reg and then give it some value to make sounds, kinda bypassing any "hardware" i/o, Although I did think this editor is most useful. 

But why I hear you say? I though it would be cool to be able to enter a command on the MIOS studio debug terminal, similar to "POKE" to access the SID registers directly, so a small tracker program could be built to do the same etc to make cool sequenced tracks up.  Although there's actually no need for this as you could just send all the stuff as normal midi control data and have the same effect (as obviously MIOS and the SID app do it already).

Link to comment
Share on other sites

It's somehow cool, but it leads to borring results. You will really miss the mighty MBSID sound engine :)

However, some time ago I did some experiments with controlling SID registers directly via OSC protocol. The MBHP_CORE_STM32 module is used as an Ethernet->CAN proxy:

http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fmisc%2Fmbsid_can_osc_proxy%2F

This allowed me to write into the registers of up to 8 SIDs from an Reaktor environment.

OSC Path: /sid<sid>/<l|r>/<1|2|3>/direct/frq, .../pulsewidth, .../ctrl, .../adsr

E.g., "/sid1/l/direct/frq 440.0" to change the frequency of SID1, left channel to 440 Hz, or "/sid*/*/direct/adsr 0 0 15 0" to change the envelope parameters for all SIDs

There is also a path to control the gates of all SIDs with a single message.

I was able to play an additive synth (24 voice organ sound! :)) directly from Reaktor, even FM and PW modulation from Reaktor was possible :)

Alternative solution: use the ASID protocol, which allows direct access to all registers as well.

It works with SysEx messages, is the fastest solution for UART based MIDI and is already part of the MBSID V2 firmware (no additional core required)

-> http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fapps%2Fsynthesizers%2Fmidibox_sid_v2%2Fsrc%2Fsidplay.inc

But the resulting sound is very C64 like due to the slow update rate of max. 70 Hz. However, some people like this ;)

Best Regards, Thorsten.

Link to comment
Share on other sites

Although there's actually no need for this as you could just send all the stuff as normal midi control data and have the same effect (as obviously MIOS and the SID app do it already).

To have the same understanding: the MBSID firmware is doing *much* more than simply bridging a MIDI synth to the SID chip. You won't achieve the same possibilities by controlling the SID from external.

Best Regards, Thorsten.

Link to comment
Share on other sites

Ah yeah, of course! I have been looking indeed.  Just trying to generalise the point of why bother talking to the SID directly when MIOS and the SID firmware do it so easily and so well, and give you tons of awesome functionality. 

This made me thought of something else: is the sine wave generated from a table of values for a full period, i.e. sin(2?)?  Could someone, in due course, if they were so inclined, edit the software and add the functionality of storing other wavetables somewhere and use these?  Like the sounds of the early WT synths?

But Reaktor? 24 voices! awesome! sounds great!

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