Jump to content

MIOS32 SID and FM applications


TAG
 Share

Recommended Posts

  • 3 weeks later...

Hi All, first post!

I'm possibly blind, but have been searching online for most of the day!

Is there a built MBSID file for the STM32F4 Core? Or is it intended to build the SVN code? 

I pulled my 6581 back when MidiBoxSID first started years ago but could never afford a 16f870. Just finished building a core module and loaded MIOS32 onto an STM32F4DISCO board, and am very eager to hear anything from the SID!

Thanks!

Link to comment
Share on other sites

Welcome, hyperr! :-)

MBSID is only working on the old Core8 PIC-based systems, but these are not really expensive, have a look at Tim/SmashTV's shop and you might find some boards available! (TK started porting it the the 32-bit cores a few years back, but stopped it for the moment... one reason being, that it makes no real sense, as he managed to get to the maximum SID register update speed with the older cores, too).

Many greets!
Peter

Link to comment
Share on other sites

Hi Peter,

Awesome, cheers for the quick reply!

I guess I can build the STM core into a MidiCV to kick start the modular system that's been floating around in my head for a few years...

I've got an 18F452 lying around - would it be better to source a 4652 for the PIC Core?

Link to comment
Share on other sites

MBSID V2 needs a PIC18F4685, it is pin-compatible with the 18F452, but has more flash memory for the code. It is a requirement, not an option, but hey, these things only cost a few bucks. I'd recommend you get them from Tim:

the board:

http://midiboxshop.bigcartel.com/product/core8-pic-core-board

and a pre-programmed PIC (with the MIOS bootloader installed):

http://midiboxshop.bigcartel.com/product/pic18f4685

This saves a lot of hassles and you can just get down to source the rest of the parts and solder the core. As the bootloader is preprogrammed you can then upload apps directly afterwards via MIOS Studio/MIDI cables directly, without further headaches :-).

(I recommended these two separate units, as his "kit" version is currently sold out, that would be even preferable)

Enjoy and have a great weekend!
Peter

Link to comment
Share on other sites

The reason I think that an updated version of the SID project makes sense isn't for performance, but rather cost and lowering the bar for the community to add new features.  The PIC is expensive and people are less likely to tinker with assembly.  Also the recent developments in reproducing SIDs in FPGA make an updated STM32 version more enticing. Would it be possible to get some information regarding what would need to be done in order to finish what TK started?  I am interested in helping move the project forward.

Link to comment
Share on other sites

Cheers guys, that's great I'll definitely get a PCB. I've got some PIC dev/programming boards lying around from uni (quite a long time ago :D )!

Wow - had no idea about the FPGA SID, cool project! A shame I never got to finish the VHDL course - I'd always intended on programming a C64 into an FPGA - never even considered the SID!

Awesome, thanks and you too.

 

Link to comment
Share on other sites

TAG: Fully agreed, it would be great for the community to have it and it would be much easier to extend! The thing is just, that the efforts of transferring the code from PIC assembly to 32-bit C are not to be underestimated at all! MBSIDv2 has got to be one of the most complex DIY synth architectures on this planet. Really, i often get lost in the possibilities even after 6+ years of having one... :-).


You can find the current state of 32-bit MBSIDv3 in the MIDIbox subversion code repository, it just begs to be worked on by community members. Fork it and have a go:

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

Many greets and have a great Sunday!
Peter

 

Link to comment
Share on other sites

Yes, I have forked the code and plan to start digging in.  What I was hoping to find out was a kind of big picture of what is missing.  It looked to me like there was quite a bit there already and it wasn't obvious what the missing pieces were.

Link to comment
Share on other sites

Big Picture:

  • the MBSID V2 sound engine has been 1:1 replicated and delivers identical results.
    This has been proven with a virtual prototype (the AU instrument) and with direct connection to hardware (more about this below)
    The number of engines running in parallel is only limited by available RAM and chip performance.
    E.g. running 4 engines which service 8 SID chips isn't a big problem, and even on the STM32F1 there was enough headroom to increase the update frequency (which is only 500 Hz on the PIC based MIDIbox SID V2)
  • Only exception: the oscillator phase offset feature is not available because it required special treatments which conflict with servicing multiple cores.
    This feature requires that oscillators will be reset and a uS accurate delay between 1..250 uS takes place to release the oscillators.
    It will be very difficult to support this directly on the core which handles the engines, because 250 uS delay has a much higher impact than on a PIC.
    While a PIC could only execute 2k instructions during this time, a STM32F4 could execute ca. 40k instructions, and it would need this to service more than one engine...
    However, there are solutions to support even this feature (see below)

Missing parts at the software side:

  • the entire control surface
    Currently the synth can only be controlled from a SysEx editor (e.g. the Ctrlr based)
    I prepared the CS by introducing SCS, which is for example integrated into the MIDIbox CV V2 application (the software architecture is similar to MIDIbox SID V2)
  • possibility to store/restore patches and ensembles on SD Card

For somebody who is good in SW programming it shouldn't be a big deal to implement this, especially since the basis is already available in other applications.
It just needs some time...

 

Hardware side:

  • the serial shift registers could be connected to J19, for CS lines individual IO pins are required (e.g. J10B + level shifter).
    I tried this at the beginning of the project with a STM32F1 core and it worked.
  • alternatively an existing MIDIbox SID, MB6582 or sammichSID can be controlled from a MIOS32 core via MBNET (-> the CAN interface).
    This was my focus during development, because I was able to use my existing hardware
    It worked as well, the appr. extensions are in the official PIC based MIDIbox SID V2 firmware (I just noticed: I added it 6 years ago! ;-)
  • but actually the preferred solution today would be a connection to FPGA based SID via J19
    CS lines available via this SPI connection as well.
    And the FPGA could support additional features such as the (missing) oscillator phase offset feature to offload the firmware
    Note that I'm in contact with the FPGA developer - at least I would like to try it out :)

Alternative solution:

  • a software based SID emulation could be developed, running on STM32F4
    Advantage: the STM32F4DISCOVERY has already an Audio DAC integrated, which means that this would probably be the cheapest way to get some nice SID sounds :)

Misc:

  • no documentation available
  • I'm sure that once MIDIbox SID V2 will be released for MIOS32, new users will come up with new feature requests
  • Actually it should also be considered a MIDIbox SID V3 with different sound engine architecture to utilize the new possibilities of MIOS32

The last three points somehow blocked my motivation when I compare with that what I already created with the PIC based MIDIbox SID V2
I noticed that for myself there wouldn't be a big advantage anymore, because I'm happy with MIDIbox SID V2 as it is.

So - if somebody else feels motivated to continue and maintain this work, and to support future users over long term feel welcome!

Best Regards, Thorsten.

 

Link to comment
Share on other sites

I wish I had more free time! (I really need to learn a new platform and STM32F4 seems to be the one).

Having SID running in FPGA is very exciting - makes me wonder how many gates will be left over, enough for a PIC18F core on-chip? Although multiple tweaked SID cores on-chip sounds just as enticing... even just the prospect of tweaking the SID at all!

Link to comment
Share on other sites

Thanks TK, this is exactly the kind of information I was looling for!

Hyperr, i did consider attempting to synthesize the pic in the fpga, but i dont think it would be worth it considering the resources it would use that could go to more SIDs, and also I havent found a good candidate for a core that would be a drop in anyway.

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