Jump to content

controlling mb SID with gate/cv, is it possible?


subatomic

Recommended Posts

hi, I was wondering if there was any scheme already devised which could provide CV/Gate inputs to the mbSID.

I'm not familiar with the input pins on the 6582 itself, so perhaps it's as simple as connecting up to some of them... ?

I searched around the forums for cv/gate/midibox and saw something about output, but not input...

thanks in advance for your ideas,

Link to comment
Share on other sites

No scheme already devised.

The SID is a digitally controlled device, so there would be little advantage to controlling it with CV.  You would need a microcontroller to intervene and convert the analog voltages into messages the SID can understand.

It might be possible to code something that uses MBHP's analog inputs, and it might even respond a bit faster than MIDI, but I don't think there's room in the MB-SID app to do this.  Might be different on the new 32-bit platform, however.

Link to comment
Share on other sites

Yes, but then you limit yourself to the speed and resolution of MIDI.

Resultion: not an issue as the SID itself is an 8bit device.

Speed: CAN bus.

Again, this is doable, but I personally don't see the huge benefit in having a digitally controlled sound generator being controlled by something digital being controlled by something analog.

Link to comment
Share on other sites

If you want to use it in a modular environment, cv/gate is the only way to go...

In http://www.ucapps.de/midibox_sid_manual_fp.html it sais:

All 8 analog inputs are sampled with a frequency of 125 Hz. Multiplexing (-> MBHP_AIN module) is *not* supported! So, 8 inputs are maximum.

The firmware currently only uses the first 5 inputs of J5, the remaining 3 are reserved for future features.

The converted values are forwarded to the knob handler. This generic approach gives you all advantages of the knob concept: value changes can be forwarded to two sound parameters, a Min/Max range can be specified, and the converted values are also available as modulation source!

So it could be possible to connect CV to J5, maybe through a little  op-amp circuit to adapt the scale, and map it to osc pitch via the MOD-menu. I think 125hz won't make FM possible, but should be enough for normal playing. The Gate could be connected to the PLAY-button somehow, or to an external VCA...

Link to comment
Share on other sites

The SID is a digitally controlled device, so there would be little advantage to controlling it with CV. 

For those of us who use modular synths, there are many big advantages:

Simpler interaction with the rest of our gear

Ability to go hundreds of times faster than MIDI in real-time

External oscillator sync inputs

Ability to do low-jitter frequency/amplitude/pulse-width modulation from other synths

I've been designing an analog-controlled SID synth. It's not a simple project, but it's also not unreasonable. Some of us have plenty of uses for something like that ;)

Link to comment
Share on other sites

Resultion: not an issue as the SID itself is an 8bit device.

Speed: CAN bus.

I think for speed he means that MIDI is the bottleneck. Such a system will be prone to low sample rates, high jitter, and relatively high latency.

The data bus to the SID is 8 bits, but there are 16-bit frequency registers. This isn't really a limiting factor, though, since MIDI can always be kludged to send larger blocks of data.

Link to comment
Share on other sites

I've been designing an analog-controlled SID synth. It's not a simple project, but it's also not unreasonable. Some of us have plenty of uses for something like that ;)

Interesting!

Could you please share some MP3s to give us an impression?

How did you solve the problem of an accurate 1V/oct conversion, are you using an external 16bit ADC?

And what is the sample rate, how many CV inputs are available?

Best Regards, Thorsten.

Link to comment
Share on other sites

Interesting!

Could you please share some MP3s to give us an impression?

How did you solve the problem of an accurate 1V/oct conversion, are you using an external 16bit ADC?

And what is the sample rate, how many CV inputs are available?

Best Regards, Thorsten.

It'll be a while before I have any representative mp3s of the actual synth. The approach I take to a big design generally involves coming up with an overall system, then designing and testing each part of it individually... by the time I have mp3s, most of the design will be finished.

I'm not using any MIDIbox parts in the design; it's all from scratch. There are dedicated ADCs at different bit depths, and the sample rate is about 37 kHz for each aspect of the sound. That is, the frequency of channel one updates 37 thousand times per second, as does the pulse width of channel two, etc. The actual register update rate is much higher.

The current CV input plan is one for every value that is four or more bits.

The most accurate digital 1V/oct conversion I've seen is a lookup table, but I also had decent results from a fixed point algorithm I wrote for my Pokey synth module. I was using a dsPIC with a 40-bit accumulator in that case, though. Each extra bit helps a lot.

Link to comment
Share on other sites

It'll be a while before I have any representative mp3s of the actual synth. The approach I take to a big design generally involves coming up with an overall system, then designing and testing each part of it individually... by the time I have mp3s, most of the design will be finished.

I'm definitely interested on the results.

I'm not using any MIDIbox parts in the design; it's all from scratch. There are dedicated ADCs at different bit depths, and the sample rate is about 37 kHz for each aspect of the sound. That is, the frequency of channel one updates 37 thousand times per second, as does the pulse width of channel two, etc. The actual register update rate is much higher.

I already did some plannings for MBSID V3 where similar update rates will be possible. What I found as a limiting factor is the bus interface of the SID, as the write/chip select input has to be strobed synchronous to the SID clock (= 1 MHz) to avoid sporadical effects like multiple gate triggers (especially bad if the ADSR workaround is applied) or crackling sounds on frequency/pulse width/filter sweeps. Such a requirement means, that it won't be possible to update more than 8..10 SID registers per scan cycle - did you already consider this and/or found a better solution (e.g. additional hardware) to ensure synchronous timings?

The most accurate digital 1V/oct conversion I've seen is a lookup table, but I also had decent results from a fixed point algorithm I wrote for my Pokey synth module. I was using a dsPIC with a 40-bit accumulator in that case, though. Each extra bit helps a lot.

dsPICs are a good choice for this kind of usecase. :)

Best Regards, Thorsten.

Link to comment
Share on other sites

I'm definitely interested on the results.

I already did some plannings for MBSID V3 where similar update rates will be possible. What I found as a limiting factor is the bus interface of the SID, as the write/chip select input has to be strobed synchronous to the SID clock (= 1 MHz) to avoid sporadical effects like multiple gate triggers (especially bad if the ADSR workaround is applied) or crackling sounds on frequency/pulse width/filter sweeps. Such a requirement means, that it won't be possible to update more than 8..10 SID registers per scan cycle - did you already consider this and/or found a better solution (e.g. additional hardware) to ensure synchronous timings?

To get complete control over the timing and write as quickly as possible, I'm doing it with an FPGA. I couldn't figure out any reasonable microcontroller-based solution with the flexibility and speed I wanted.

When I first ran a SID with a microcontroller, I remember using edges from the SID clock as hardware interrupts to re-synchronize the process on each write. It seemed to work, but I didn't do enough test cases to say for sure. Once I learned the benefits of an FPGA system I stopped messing with the microcontroller setup.

Link to comment
Share on other sites

To get complete control over the timing and write as quickly as possible, I'm doing it with an FPGA. I couldn't figure out any reasonable microcontroller-based solution with the flexibility and speed I wanted.

Alright ;) (although I'm experienced with HDL design, the usage of FPGAs wouldn't be an option for my hobby project)

Best Regards, Thorsten.

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...
×
×
  • Create New...