Platform for DIY polysynths

From circuitbending to homebrew stompboxes & synths, keep the DIY spirit alive!

Moderators: luketeaford, Joe., lisa, Kent

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Platform for DIY polysynths

Post by ricko » Fri Jul 31, 2020 11:19 pm

If a fellow wanted to make a DIY polysynth and was interested on allowing different analog voice cards and architectures, because he had various unique designs but had no interest in the digital and DAC side of things, what options does he have?

There are many bus designs around, but they are all geared towards the specific voice architcture. Like backplane for the CrowBX. Or like the common platfirm that the recent Sequential/Dave Smith polys use.

DREAM

I guess the kind of thing I think would be neat would be first a digital unit that

* took MIDI in
* allocated the MIDI to 16 single voice Midi-over-i2c channels including Midi CC, in ways that allowed cs80 voice allocations
* allowed preset saving (losded from the midi in) and selection by panel buttons
* allowed, say, MIDI ch 1 to be voice cards 1 to 4, ch 2 to be voicecards 5 to 16, where the cards have completely different architecture
* basic software LFO and EG, portamento and master tune for each group

So no actual knowledge of any board architcture beyond MIDI: program it using a computer or info from the board.

And second, a PCB biard for a I2C channel, allowing say 16 DACs for CVs and 16 gates per single (monophonic) voice, with some kind of hardwired selection matrix to determine which MIDI CC (or note, velocity, lfo, eg) each DAC should listen to. With a standard bus connector.

This would make the voice card analog parts pretty straightforward.

So is there anything around like this? Or different/almost/better?

Rick

User avatar
Bjarne
Common Wiggler
Posts: 101
Joined: Sat Jul 20, 2013 10:31 am
Location: Stockholm

Re: Platform for DIY polysynths

Post by Bjarne » Sat Aug 01, 2020 2:18 am

Hi,

It sure would be awesome to have a generic powerful diy polysynth platform but if you want a programmable (presets) synth with analog voicecards I don’t understand how you could avoid many more DAC channels.

EDIT: Ignore the above. I didn’t read your post right. 16 channels per voice should be plenty.

(I love the Ambika but it is a hybrid architecture with some quirks.)

Cheers

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Sat Aug 01, 2020 3:55 am

Yes.

To specific:

DAC card: microcontroller with 2x 8 channel i2c DACs, 2x 8 channel logic buffers. 1x i2c input. CC mapping header.*

Mother card. Microcontroller with 1x MIDI in. 1x usb MIDI. 16 i2c outs to DAC boards. Button and pot support enough for mode, data entty and preset selection. MiDI mapping switches.*

Voices can be configured by any DAW that can send MIDI CC.

So that is all plausible. Where I suggest a really old fashioned kind of hack, is these MIDI and CC "mapping matrix" I mention. But there may be other betterways to do it.) The requirement is that I want to put together a system without having to do any programming, and I want to be able to add, change or remove voice cards freely.
So the easiest way for hardware-only is just to use jumpers or small switches on the board that are : first, on the mother card, one 16x 4bit switch to say which MIDi channel each DAC/voice belongs to, where if voices share a midi channel, notes are allocated polyphonically; second, on each DAC card, a set of say 64 3-way headers(!) which set up which MiDI CC (1 to 31 MSB + LSB), 64 to 95, note, gate, velocity, mute) are used for the DACs. So if positions 1 and 3 are both set with a jumper left and then gp and headers 5 and 6 are both set with a jumper right, then DAC 1 & 2 are registered as say CC1 and CC2, and Logic buffer 1 and 2 are registered as CC 5 and six.

Using hardware configuration means that the mother card and DAC cards can then have absolutely generic code, with no programming required to support any specific voice card: no configurator or burning of specific microcontroller EPROMs, for example. What do I gave against progeramming microcontrollers? I can do it (was my job, years ago) but it is one more obstacle, one more skill set, something that I would prefer to be able to buy in.

Anyway, this lurch into detail may defeat my purpose, which is not so much as to propose a solution (the last resort) as to find out if one already exists to some extent.

tele_player
Common Wiggler
Posts: 236
Joined: Fri Feb 15, 2019 10:50 am
Location: Sacramento

Re: Platform for DIY polysynths

Post by tele_player » Sat Aug 01, 2020 10:57 am

I’m pretty certain such a thing doesn’t exist.

KSS
Super Deluxe Wiggler
Posts: 2698
Joined: Mon Jan 25, 2016 7:28 am

Re: Platform for DIY polysynths

Post by KSS » Sat Aug 01, 2020 11:17 am

You've pretty much described generic industrial process control -outside the MIDI, but that's been used for industrial process control before too.

Since that's the case, I'd say looking for answers in that industrial process control domain will yield better fruit than the music industry.

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Mon Aug 03, 2020 8:54 am

The design for the output side of the DAC board would be pretty much like Navicat's design:
https://www.docdroid.net/uw2u/cv-gate-pdf

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Mon Aug 03, 2020 9:56 am

On the issue of how many DAC channels per voice:

Chroma = 8 12 bit DAC + 13 logic per dual voice. But 2x3 of the logic gates are 3bit filter resolution. So effectively, 10 DACs and 7 gates per dual voice.

Arp Prosoloist - 32 gates for resonant filter array, 17 for vco f a, and about 12 gates for envelops. Yikes.

User avatar
J3RK
Super Deluxe Wiggler
Posts: 6619
Joined: Tue Dec 22, 2009 12:46 pm
Location: Seattle

Re: Platform for DIY polysynths

Post by J3RK » Mon Aug 03, 2020 11:44 am

I just re-read your original post. You already covered it, but I was going to mention maybe making cards for the Sequential synths. It would be pretty restrictive, as they'd still have to match the controls present on the synth itself, (without altering firmware and modding the panel I guess :mrgreen: ) but it's something that I've thought about a bit. It would allow for a little bit of experimentation at least. It wouldn't allow for vastly different architectures though as you know. I do like the voice card designs though. Kinda-SIMM/DIMM socket style. At the very least, coming up with something like this would be cool. A lot of work however.
:goo:
SequentialCards.jpeg
You do not have the required permissions to view the files attached to this post.
Are you lemon? Does your head come to a nub?

weasel79
Common Wiggler
Posts: 92
Joined: Mon May 06, 2019 7:42 am

Re: Platform for DIY polysynths

Post by weasel79 » Mon Aug 03, 2020 1:10 pm

aside from the 16 parallel i2c outputs, you might want to look into the axoloti platform for a "mother card"/control board. supplies all the midi i/o you need, preset saving, has convenient LFOs and envelopes that you could send over something like the 20 channel max11300 codec board, or any multichannel cirrus etc DAC.

Image
there is also an updated hardware version of the axoloti, the akso with much more powerful specs:
Image


aaaaand the max11300 20x 12bit codec board. each pin can be configured as DAC or ADC.
Image

as a bonus you could use the axoloti audio i/o and processing for a multi fx device on the master bus. or whatever else.

User avatar
J3RK
Super Deluxe Wiggler
Posts: 6619
Joined: Tue Dec 22, 2009 12:46 pm
Location: Seattle

Re: Platform for DIY polysynths

Post by J3RK » Mon Aug 03, 2020 1:48 pm

Edit: I need to learn to read. :lol: You already mentioned it. I just didn't notice.
Last edited by J3RK on Mon Aug 03, 2020 2:33 pm, edited 1 time in total.
Are you lemon? Does your head come to a nub?

User avatar
J3RK
Super Deluxe Wiggler
Posts: 6619
Joined: Tue Dec 22, 2009 12:46 pm
Location: Seattle

Re: Platform for DIY polysynths

Post by J3RK » Mon Aug 03, 2020 2:30 pm

Same as above. Sorry.
Are you lemon? Does your head come to a nub?

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Mon Aug 03, 2020 6:48 pm

weasel79 wrote:
Mon Aug 03, 2020 1:10 pm
aside from the 16 parallel i2c outputs, you might want to look into the axoloti platform for a "mother card"/control board. supplies all the midi i/o you need, preset saving, has convenient LFOs and envelopes....

as a bonus you could use the axoloti audio i/o and processing for a multi fx device on the master bus. or whatever else.
Actually, using/adapting axoloti as the processor module would not be a bad idea.
The hardware would become more like

1. new interface panel card ->
2. Off-the-shelf Axyloti digital card ->
3. new motherboard/busboard/carrierboard with SPI multiplexors ->
4. off-the-shelf SPI DAC cards plus 4a. new (SPI-ish) logic cards ->
5. various voice cards ->
6. new interface analog summing card -->
7. off-the-shelf DSP effects card?

I guess 1 and 6 could be on the motherboard too. Using off-the-shelf components for the complex parts would save headaches.

The concept would have to change somewhat. Having a visual config environment changes the complexity of programming
(compared to a solution based on MIDIBox for example) so we could avoid the CC to DAC mapping hardware hack.
And the axoloti is fast enough that we wouldnt need to MIDI over SPI, like my balloon, avoiding the slave microprocessors.
The core idea of doing all programming by a simple mapping of CC to DAC/gate is the same.

I see this 20 DAC card is only US$29, for example.
Image
Having 20 DAC channels per voice would be great for supporting interesting voice cards.
But I guess it could be shared done as 10 DAC channels per voice card, and if people needed some more CVs,
they could make some low-res resistor DACs using, say, three gate inputs (like 70s preset synths)

weasel79
Common Wiggler
Posts: 92
Joined: Mon May 06, 2019 7:42 am

Re: Platform for DIY polysynths

Post by weasel79 » Mon Aug 03, 2020 7:38 pm

sounds liek a smart plan to me. i am not sure how big the "market" for poly synth diy stuff is, as in not sure how much sense it makes to build a general all-purpose poly controller board. but hey, not trying to knock your enthusiasm down haha. since you seem to be in general conception/planning status still, i would also consider making the whole thing compatible with something like the electrosmith sub modules. very convenient and still flexible, for the "assemble-yousrself" instead of the hardcore diy crowd.

i have a bunch of those modules around and always meant to configure an axoloti as the controler/aux cv generator board for those.

also one more note on the max11300 codec, its 29$ for the full dev board, if you just get the chip and do your own circuitry its much cheaper still. but then again i like the idea of just utilizing readily available modules, just like the electrosmith stuff.

KSS
Super Deluxe Wiggler
Posts: 2698
Joined: Mon Jan 25, 2016 7:28 am

Re: Platform for DIY polysynths

Post by KSS » Mon Aug 03, 2020 9:33 pm

@ricko
J3rk's photos of the SIMM voice cards reminds me.
Member dikkietron was working with well-regarded synth tech MarkMark on similar voice cards for their Anatol?<sp?> 'crossswitch' project. It's intended to be much more than that, but the point for this thread is that they were working on something which now sounds quite a bit like what you're looking for.
Dikkietron's new proiject ios a JP8 re-do that's currently semi-active in the DIY section. You might want to give him a shout -or MarkMark, who may not be a member here.

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Tue Aug 04, 2020 12:20 am

Looking at requirements, makes me re-jig the idea a little, with less extravagence.

(To make sure it is viable for novel synths, the goal is that it could be used to host any of: ARP Chroma, Prophet 5, OB SEM 4, CS80, memorymoog, juno6, jupiter 8, sequential six trax, a polyphonic Arp prosoloist, a (16 voice) polymoog-alike, a (limited polyphony) Korg PS 3300-alike, elka synthex, plus any combination of monophonic versions of all the above. So support for a wavetable synth or sampler or anything that requires lots of data would be out of scope, though not excluded.)

So the platform supports one or more "synths". Each "synth" has a MIDI channel. (A midi channel can go in a parallel to more than one synth. ) Each synth has 1 to 16 voices of the same card type. Each voice uses 1 to four analog slots. Each analog slot has 10 analog CVs and 8 logic signals.

There are two mother board, each with 8 analog slots.

Physically, each analog slot can carries a card big enough to fit a VCO, VCF and VCA. Maybe 48mm x 100mm (1.9" x 4" ish?).

So this allows

* 16 simple mono synths (like the Sequrntial 6 Tracks?)
* 1 x 16 voice simple polysynth (like a Korg PS3200 Or ARP Chroma or CS60)
* 1 x 8voice doubled monosynths (like CS80)
* 1 x 4 voice tripled polysynth, plus 1 4 voice simple polysynth

Wrinkle 1: But we also allow analog cards (still single voice) that occupy 2 or more slots, adjusting the polyphony.

* You might have a 2 slot card that had two simple vco vcf vca chains as above, but which also had sunch, ring mod, cross mod and output redirdction. In thst case, 8 of these dual cards would not onl support the simple Chroma 16 voice sbove, but also the various dual modes.

* You might have a 2 slot card with 3VCO, 1 VCF and one VCA. That would support an 6 voice multimoog arrangement, with 6 dual cards.(Or 4, 5,6,8 whatever) leaving 2 slots free.

* A 3 slot card might support a Pro-Soloist module (having 30 CVs and 24 switches)

Wrinkle 2:
The last slot can be used as a paraphonic slot for a synth, Eg carry a card with a VCF or other VC processor, and be fed the signal from thd other card slots of the synth. So this allows, eg Junos or Polymoog. Or a CS80 ring mod effect

Wrinkle 3.
The output board allows routing to some static effects for a synth. Eg a chorus unit, or a polymoog resonator array, or Korg travellor, etc. At least some MIDI selectable send/return loop.

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Wed Aug 05, 2020 8:10 am

Just in case it is useful, here is a sketch if how it is working out from what people have said.
sketch1596601888224.png
You do not have the required permissions to view the files attached to this post.

User avatar
mrand
Common Wiggler
Posts: 169
Joined: Thu May 23, 2013 11:26 pm
Location: Whitehorse, Yukon
Contact:

Re: Platform for DIY polysynths

Post by mrand » Wed Aug 05, 2020 10:50 am

I'd love the chance to use a platform like this. I've got everything I need to develop the analog side of a poly, but not enough time in life to tackle the digitals.
Just my 2cents but what about beginning with a simpler version with a more fixed architecture? Personally I don't care to replicate existing/vintage synth topologies. If I had just one basic platform but could redesign the voice cards any time I wanted, well that's enough modularity for me!
One further suggestion is to consider voice allocations in increments of 5, so that I can design/order my voicePCBs and not have unused product remaining (since we order these in increments of 5).
Looking forward to seeing how this progresses.
Cheers,
Colin
--ssdp--

KSS
Super Deluxe Wiggler
Posts: 2698
Joined: Mon Jan 25, 2016 7:28 am

Re: Platform for DIY polysynths

Post by KSS » Wed Aug 05, 2020 11:06 am

@mrand
Five may not be a good choice.
Increments of four mean you have a proto or test or repair module built-in to the process. Also aligns with typical digital, which is 2^n

Can also say from experience that fitting new modules -AKA voice cards here- into fixed formats can be pretty limiting in itself. You might find that your expected 'freedom' with new voice cards was instead severely limiting.

@ricko
Keep going. Broad strokes are good, but it's the finer details that derail projects like this.
Treat utility modules as stars instead of backup singers and your Synth becomes much more versatile and playable.

pld
Ultra Wiggler
Posts: 959
Joined: Thu Mar 05, 2015 5:15 am
Location: Germany

Re: Platform for DIY polysynths

Post by pld » Wed Aug 05, 2020 11:16 am

I might be wrong by an order of magnitude, but even fast-mode I2C at 1Mbit/s / 20 channels x (control byte + 16 data = 24 bits) = 2Khz?
Scaling is always fun...

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Wed Aug 05, 2020 10:37 pm

pld wrote:
Wed Aug 05, 2020 11:16 am
I might be wrong by an order of magnitude, but even fast-mode I2C at 1Mbit/s / 20 channels x (control byte + 16 data = 24 bits) = 2Khz?
Scaling is always fun...
Definitely something to be looked at seriously, if anyone was serious! But the numbers I get seem OK. Remember we are not doing audio rate signal processing.

My Q&D estimates: assuming the architecture above (2 boards of 8 slots, each board having a single 8-channel i2c multiplexor (controlled by 3 lines not i2c, e.g. PCA9547) which then feeds the 4x 20 channel DACs and 4 x 16 bit IO gate expanders.).

Taking standard i2c speed is 100k bits sec, and say 10 bits/byte= 10k bytes/second to the multiplexor (ie we are tunneling the DAC i2c inside the multiplexor i2c). And then 20 channels x 4 DAC through a multiplexer (ignore the gates), say being 1 extra control byte per byte sent to the DAC = 6 bytes. So that gives 10k/480 =~ 21 complete updates per second, if all parameters are being manipulated at once. That is a resolution of 50ms.

So that is 20 x 4 x 3 + 2 x 8 = 256 bytes to change all CVs and Gates on one 8 slot board. 100k/256 = 390 complete updates/second. I think that is fine (if it is correct).

I can think of a few improvements:

* There is no reason that every DAC parameter needs to be updated at the same rate. It could have a priority, so that e.g.

* Indeed you might want your analog board to have some kind of analog EG, if there is space and spare DAC channels.

* It might be that instead of dividing our 16 slots between two boards, each with an 8-channel SDL multiplexor, we would be better using two four-channel multiplexors per board. So the Axyloti drives four i2c interfaces not two. That requires, what, 16 free IO bits?

* Use some faster bus.

Any better ideas? What would the sweet spot for a modern design be? Any other kinds of chips floating around that might be useful?

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Wed Aug 05, 2020 11:56 pm

mrand wrote:
Wed Aug 05, 2020 10:50 am
I'd love the chance to use a platform like this. I've got everything I need to develop the analog side of a poly, but not enough time in life to tackle the digitals.
Me too. I often find that ideas take a long time to gestate, so putting my 10c in for what would be good might help along someone smarter, looking for a project.
mrand wrote:
Wed Aug 05, 2020 10:50 am
Just my 2cents but what about beginning with a simpler version with a more fixed architecture? Personally I don't care to replicate existing/vintage synth topologies. If I had just one basic platform but could redesign the voice cards any time I wanted, well that's enough modularity for me!
Yes, we cannot have everything.

I am not much interested in supporting long-unobtainable products either, however there definitely are many users who want to recreate some now-unavailable classic synths they fell in love with, which seems a lovely thing thing to support, and an important capability for viability (e.g. of some Creative Commons design). Also, existing synth topologies do kinda indicate what the minimum number of CV and performance parameters needed for decent polysynths are, and if there are simple tricks that make major differences to playability, then why not?

What I thought could be ruled out was support for uploadable wavetables, onboard programable complex DSP FX, end so on. And I think we could restrict ourselves to single or double slot cards per voice only (I.e. the 20 CV and 16 gates, currently): more complex cards can piggyback an extra layer.
mrand wrote:
Wed Aug 05, 2020 10:50 am
One further suggestion is to consider voice allocations in increments of 5, so that I can design/order my voicePCBs and not have unused product remaining (since we order these in increments of 5).
Yes, that kind of practical development cost consideration is pretty important.

But there is no problem with allocating five voices to a single "synth". That would be 5 slots if each voice required a single-slot card, or 10 slots if each voice required a double-slot card. Supporting that is the idea. If you had just one motherboard, you could have a five-voice synth from single-slot cards, and three slots left over for monosynths etc.

For physical + electrical constraints on cards, here is what I was thinking.

1) A motherboard needs to be able fit into a rack width. So say 16".

2) We want to have analog cards that suit the PCB fabricator deals, which are often max 100mm x 100mm. 4 of these could fit into a 16" motherboard horizontally. (Vertical cards would be possible too, however, you then need make sure the things don't shake loose.)

3) For card width: so the convenient number is to have each slot take a 49x100mm card with a 1mm gap. This regular spacing means that a 99mm x 100mm card can be put into two slots.

4) For card length: the advantage of the 100mm is that it would allow a nice development: an analog voice card could be plugged into a generic carrier board to make a Eurorack breakout module. The module might have e.g. 16 switches and 20 CV inputs, a couple of gate inputs etc. So you could do all your analog testing without using the motherboard if you wanted. (And, indeed, you could produce your analog card in a Eurorack module also.)

5) And if we want the Eurorack compatability, then that means we adopt the +/12V power. But I am not sure that it isn't a good idea to have lower-level CV and audio signals to/from the card, because of power draw consideration: say 50% of Eurorack conventions (.5V per 8ve, etc)

6) I guess it means that each motherboard needs to provide its own regulated power: perhaps low-dropout 12V regulators, supplied from 13 ~14V raw DC power? Or is it better that each voice has its own regulation?

pld
Ultra Wiggler
Posts: 959
Joined: Thu Mar 05, 2015 5:15 am
Location: Germany

Re: Platform for DIY polysynths

Post by pld » Thu Aug 06, 2020 2:04 am

ricko wrote:
Wed Aug 05, 2020 10:37 pm
Any better ideas? What would the sweet spot for a modern design be? Any other kinds of chips floating around that might be useful?
Dunno. It just looked like you're overestimating the bus capabilities, and underestimating the resources to drive it, especially if by...
So the Axyloti drives four i2c interfaces not two. That requires, what, 16 free IO bits?
...you're thinking about bit-banging rather than using hardware peripherals.

But it kind of depends on what the DAC parameters are supposed to be updating and what the requirements are, e.g. just UI/controls where 1KHz might suffice, or what about common LFOs for all voices? Then you derive the bus architecture to allow that. My hunch is that a big central controller might not scale well. So I'd tend to think about offloading generating shared signals like LFOs/EGs (perhaps into an additional slot?) and only send messages on that bus.
* There is no reason that every DAC parameter needs to be updated at the same rate. It could have a priority, so that e.g.
Sure, you can have different priorities, but that also has implications. What if you have a high priority (say an LFO) that's running, then there's a burst of other changes. Will you sacrifice the timing, drop values, ?

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Thu Aug 06, 2020 3:44 am

So the Axyloti drives four i2c interfaces not two. That requires, what, 16 free IO bits?
...you're thinking about bit-banging rather than using hardware peripherals.
If you mean that it would be possible to use address lines and multiplex the signal for DAC Enable, rather than multiplplex the i2c, then certainly. If the DACs support that. (I don't see that these particular devices support allocation to an i2c address channel, to allow bus addressing.)

(For the i2c multiplexer calculation: an i2c interface uses 4 lines (bits). So if we use two 8 channel i2c multiplexers, with three address lines, that makes (4 + 3 ) x 2 = 14 bits of IO from the MPU. If we use four 4 channel multiplexers, with 2 address lines, that makes (4 + 2) x 4 = 24 bits from the MPU. )

Cheers
Rick
Last edited by ricko on Thu Aug 06, 2020 3:59 am, edited 1 time in total.

ricko
Wiggling with Experience
Posts: 302
Joined: Sat Dec 03, 2016 5:36 am
Location: Sydney, Australia
Contact:

Re: Platform for DIY polysynths

Post by ricko » Thu Aug 06, 2020 3:57 am

But it kind of depends on what the DAC parameters are supposed to be updating and what the requirements are, e.g. just UI/controls where 1KHz might suffice, or what about common LFOs for all voices? Then you derive the bus architecture to allow that. My hunch is that a big central controller might not scale well. So I'd tend to think about offloading generating shared signals like LFOs/EGs (perhaps into an additional slot?) and only send messages on that bus.
It depends on the capacity of the MPU (e.g. Axloti or Rasberry PI whatever) rather than the motherboard, doesn't it?

It is a fair point, that there can be duplication of the same signal. But assuming that the vco cv has its Vibrato, PB and glide done in software, there is no additional DAC channel required. Similarly for VCA amplitude, the software would provide EG, volume, dynamics, tremolo mixed on the same DAC channel.

Where there is some scope for sharing might be the constant CVs (for all voices) of the same "synth". E.g. it might be a particular pulse width. But, why bother? (If adequate time resolution was possible.)
* There is no reason that every DAC parameter needs to be updated at the same rate. It could have a priority, so that e.g.
Sure, you can have different priorities, but that also has implications. What if you have a high priority (say an LFO) that's running, then there's a burst of other changes. Will you sacrifice the timing, drop values, ?
Certainly, these are questions that an engineer would consider. I wonder if there are any academic studies on time-resolution perception?

Personally, I would be tempted to do something like degrade into a worst case priority scheduing. E.g. for the 10 channels, the DAC channel registers could be checked for pending updates:
A B D E
A C F G
A B H I
A C J (Logic gates)

I.e. channels A updates min 100 times a second (VCA?)
assuming our MPU can drive the i2c at full capacity, then
10k byte/s i2c / ( 3 bytes * 8 voices * 4 channels each update)
B&C update min 50 times per sec
D, E, F, G, H, I J and the gates min 25 times per second (plenty fast enough for vibrato etc.)
The board developer would be told these behaviours, and they can select whichever trade-offs they want for best degradation. (Or, indeed, write/tweak their own scheduler, if they were not happy with the vanilla one. Which depends on what realtime facilities Axyloti or whatever actually supports.)

Cheers
Rick
[/quote]

pld
Ultra Wiggler
Posts: 959
Joined: Thu Mar 05, 2015 5:15 am
Location: Germany

Re: Platform for DIY polysynths

Post by pld » Thu Aug 06, 2020 3:59 am

ricko wrote:
Thu Aug 06, 2020 3:44 am
(For the i2c multiplexer calculation: an i2c interface uses 4 lines (bits). So if we use two 8 channel i2c multiplexers, with three address lines, that makes (4 + 3 ) x 2 = 14 bits of IO from the MPU. If we use four 4 channel multiplexers, with 2 address lines, that makes (4 + 2) x 4 = 24 bits from the MPU. )
I2C is two lines, SDA/SCL. It's not clear why you use bits in this context. Do you mean GPIO pins?

Post Reply

Return to “Music Tech DIY”