Jump to content

MIDIbox CV V2 Concept


TK.

Recommended Posts

(continued from )

It's funny that you ask for this today, because currently I'm planning the "full featured" control surface of the upcoming MIDIbox CV V2 application.

In distance to MBCV V1 it uses the MBSID sound engine, optimized for the needs for a CV controller.
It features two LFOs, ENV, ARP... per channel! And with a much higher update rate than MBSID V2 (I think that up to 5 kHz can be achieved when all modulators are running in parallel, by disabling modulators even higher frequencies are possible)
-> even FM modulation is possible by using two LFOs in "fast" mode smile.gif
/edit: meanwhile the feature list has been enhanced by a second multi-stage ENV2, a modulation and a trigger matrix!

The sequencers (bassline/wavetable) will be integrated later, so: they will be available as well of course!

Here the current list of parameters:
/edit: removed, since it's obsolete!

I'm still a bit uncertain how to continue this project, because I think that without a good control surface it won't be usable in practice.
The SCS (Standard Control Surface) (2x20 LCD + 4 menu buttons + SHIFT button + encoder) gives access to all parameters, but the usage is too cumbersome.

Therefore I thought that I should start with a "virtual control surface" by using Lemur, and once I'm happy with it, I can translate it into hardware. ;)

Any additional ideas?
E.g. how would your "dream interface" for this project look like?

Best Regards, Thorsten.

 

/edit: meanwhile we've a demo video! :-)

 

Link to comment
Share on other sites

Hah yet again TK to the rescue!

I don't have a proof of concept yet but what you have sounds rather fantastic and more than I was thinking. For me, if I was going to use a separate effects box the biggest thing was envelope syncing. Not sure how to do that, but it would be nice to know that when I played something on my synth, the filter could follow it (ADSR in other words). I guess I could send note data out to both my SID and the MBCV and MBCV can use the note data to know when to trigger the envelopes?

Other than that, having the filter have it's on modulation things could give rise to some really interesting things I hadn't thought of until you mentioned it.

In terms of the control surface, I would love to have another use for my modular matrix boards I'm designing in addition to the SID and if there is going to be a sequencer in the next CV app, that might be cool to have that as an option for the control surface?

  • Like 1
Link to comment
Share on other sites

I don't have a proof of concept yet but what you have sounds rather fantastic and more than I was thinking. For me, if I was going to use a separate effects box the biggest thing was envelope syncing. Not sure how to do that, but it would be nice to know that when I played something on my synth, the filter could follow it (ADSR in other words). I guess I could send note data out to both my SID and the MBCV and MBCV can use the note data to know when to trigger the envelopes?

yes, that's exactly the way how it works. Just assign the same MIDI channel.

Other than that, having the filter have it's on modulation things could give rise to some really interesting things I hadn't thought of until you mentioned it.

I think that especially the FM capabilities are very nice when working with a filter.

Sooner or later I will post some samples to show what I mean :)

In terms of the control surface, I would love to have another use for my modular matrix boards I'm designing in addition to the SID and if there is going to be a sequencer in the next CV app, that might be cool to have that as an option for the control surface?

A 303 like programming interface could be interesting.

Not so much for the filter project, but more for people who want to turn their analog synth into a bassline with accent and especially a glide function :)

Best Regards, Thorsten.

Link to comment
Share on other sites

Wow, this is really great news, I have to get on with soldering LPC17 :)

Unfortunately I have no experience with modular synthesizers, so it is hard for me to refer your question about controll surface. The only thing that immediately comes to mind, is that full-controll surface may have modulation matrix similar to midibox SID. In the display mode led bars of the matrix may show output CV values (not shure if it will be usefull, but will look impressive ;))

Thinking about an external filter, I was planing a very simple interface (You called it a simple solution). Additionally, I thought about adding 'tap tempo' and 'manual envelope trigger' buttons, but I did not know how to implement it. Also envelope follower would be nice feature, but it requires additional hardware rather then software.

Now i think I will build full MB CV V2, because it is future-proof solution. It will be possible to create simple synthesizer by adding only VCO + VCF !

Other features that I think may be useful:

- Option to use 8 stage envelopes in Casio CZ style (possibly a lot of work)

- Possibility of using a note/ CV value table instead of output curve

- some SEQ V4 features (eg Note / LFO FX)

- glide option

- using all 8 CV outputs to controll polyphonic synth

Best Regards,

Przemek

Link to comment
Share on other sites

I'm still a bit uncertain how to continue this project, because I think that without a good control surface it won't be usable in practice.

The SCS (Standard Control Surface) (2x20 LCD + 4 menu buttons + SHIFT button + encoder) gives access to all parameters, but the usage is too cumbersome.

I don't think that a good control surface is crucial in the first place - maybe so for the bulk order type of guys, but for me it would be more important to have a full MIDI implementation, i.e. that every parameter can be controlled via MIDI, and that all current parameter settings can be requested from a remote device over MIDI. This way the sound processing and the control surface could be kept separate. I could use my Mackie C4 to control that thing, or I could build an Access Matrix programmer clone, or whatever control surface I like the most.

Link to comment
Share on other sites

While on the subject, since Seppo's boards are harder to come by these days, I'm curious if any thought has been put into offering a MidiBox layout for an SSM2044 board? Thought about doing one myself but I was able to score a spare SSM2044 Seppo board and have other things on my plate. But I think that might be really cool to have.

Of course, beyond that, MBCV sounds like a PERFECT compliment to a modular analog synthesizer outside of an SSM2044. I've been wanting to build an analog rack and though I'm a ways away from that, when I do get around to it, you can bet I'll want to control as much of it as I can using MIDI.

Link to comment
Share on other sites

Thanks for the inspirations!

Additionally, I thought about adding 'tap tempo' and 'manual envelope trigger' buttons, but I did not know how to implement it.

Tap Tempo can be re-used from MBSEQ V4, manual envelope trigger is a low hanging fruit (but definitely useful! -> it's like the "Play" button in MBSID)

Also envelope follower would be nice feature, but it requires additional hardware rather then software.

Yes, an envelope follower would require additional hardware, it's a different topic.

But the possibility to route analog input signals into the modulation matrix is on the agenda :)

- Option to use 8 stage envelopes in Casio CZ style (possibly a lot of work)

No, it's very simple to realize... I must also say that I started MBCV with a 7 stage envelope, but switched back to traditional ADSR after I realized, that I very rarely use the additional stages, but get more interesting effects by selecting different curves. Therefore I would like to go this way -> it's more practicable and it will result into a simpler user interface.

E.g. all relevant values (A D S R) are visible on the same LCD page!

On the other hand I think that a multi-stage envelope could be helpful for pad sounds.

It could be implemented in addition to the ENV (means: as a second ENV) and it could work table based.

Each step would define the target level and the time in mS which should pass for the sweep to the target level.

Such as:

1: 100% 1000 mS

2: 75% 200 mS

3: 50% 500 mS

4: 25% 1000 mS

5: 0% 1000 mS

What do you think about this approach?

- Possibility of using a note/ CV value table instead of output curve

Definitely there will be different output curves (e.g. a one which emulates the behavior of a RC network).

Of course, some tables could be added as well, they could be loaded from SD Card! :)

- some SEQ V4 features (eg Note / LFO FX)

no, this will be too complicated to control from a user surface which is mainly intended for synth parameters.

And I would like to use the available resources (memory, CPU load) for synth features instead of sequencing features -> therefore the sequencer/arpeggiator and note processing capabilities will be simple.

- glide option

Already implemented, and the bassline sequencer will allow to control it as well (like known from MBSID)

- using all 8 CV outputs to controll polyphonic synth

of course!

Poly mode is implemented as well, it just uses the note stack of the first channel to control the remaining channels which are set to "poly mode" as well.

Best Regards, Thorsten.

Link to comment
Share on other sites

Yes, an envelope follower would require additional hardware, it's a different topic.

But the possibility to route analog input signals into the modulation matrix is on the agenda :)

It is great news, routing signals to external modulation matrix opens up countless possibilities, especially for modular synthesizers :w00t:

No, it's very simple to realize... I must also say that I started MBCV with a 7 stage envelope, but switched back to traditional ADSR after I realized, that I very rarely use the additional stages, but get more interesting effects by selecting different curves. Therefore I would like to go this way -> it's more practicable and it will result into a simpler user interface.

E.g. all relevant values (A D S R) are visible on the same LCD page!

On the other hand I think that a multi-stage envelope could be helpful for pad sounds.

It could be implemented in addition to the ENV (means: as a second ENV) and it could work table based.

Each step would define the target level and the time in mS which should pass for the sweep to the target level.

Such as:

1: 100% 1000 mS

2: 75% 200 mS

3: 50% 500 mS

4: 25% 1000 mS

5: 0% 1000 mS

What do you think about this approach?

Exactly as I imagined and I would like to use multistage envelope mostly for pad / drone type of sounds.

Additionally I would add:

- initial value becouse not always envelope must start with 0 (it may be the same as 1: 100% 0 ms).

- sustain point or even sustain loop (the envelope loops between start and end point unless key is relased).

And I would like to use the available resources (memory, CPU load) for synth features instead of sequencing features -> therefore the sequencer/arpeggiator and note processing capabilities will be simple.

It is possible to use MB SEQ if someone needs advanced sequencer :)

Best Regards,

Przemek

Edited by maniac
Link to comment
Share on other sites

Alright!

Now were we've more concrete ideas, I will start with the Lemur interface :)

It will help to quickly find a suitable parameter set.

E.g. I think that it makes sense to provide default modulation routing paths for LFO/ENV (like I've already implemented - advantage: quick access) + additional matrix paths where two sources can be combined with a mathematical operation and routed to up to two destinations (like known from MBSID)

Best Regards, Thorsten.

Link to comment
Share on other sites

Nice progress!

I was thinking that loopable envelopes are nice (c.f Prophet VS), plus of course the possibility to sync the LFO speed to MIDI clock. It looks like the LFOs are syncable in the example above :rolleyes:

The same goes for the overall envelope speed: Always useful for rhythmic modulation or just chopping up pads with VCAs. Other useful things are MIDI-syncable gate/triggers so that one could connect a VCA or a stereo panner and do some serious gating effects.

Best regards,

Johan

Edit: Added link that shows and explains the workings of the flexible, loopable Prophet VS ADDSR envelope.

Edited by jojjelito
Link to comment
Share on other sites

- initial value becouse not always envelope must start with 0 (it may be the same as 1: 100% 0 ms).

Update: the initial value can be set in the first step, and the delay is relevant on a release->attack transition.

But of course, it could be set to 0 mS if you want.

plus of course the possibility to sync the LFO speed to MIDI clock.

Of course, MIDI Clock sync is already implemented. :)

The same goes for the overall envelope speed: Always useful for rhythmic modulation or just chopping up pads with VCAs.

Great input!

-> SpeedFactor

Other useful things are MIDI-syncable gate/triggers so that one could connect a VCA or a stereo panner and do some serious gating effects.

Seems that I should take over the Trigger Matrix of MBSID as well! ;)

Here the first "mockups" - not for the physical control surface, but for a SW based editor :)

Next step is to establish the communication between Lemur and MBCV, so that I'm able to test the parameters.

mbcv_mockup1_1.png

mbcv_mockup1_2.png

mbcv_mockup1_3.png

mbcv_mockup1_4.png

Note that the modulation matrix will allow to pass a value of a certain channel to other channels.

This means for example: LFOx of channel A can modulate channel B (and C!) regardless what kind of electrical signal they are controlling!

Best Regards, Thorsten.

Link to comment
Share on other sites

When using it in “TB303 mode†would it be possible to route accent and slide to separate gate outs? For example:

Gate out 1: Normal gate out.

Gate out 2: Slide out, when two notes overlap.

Gate out 3: Accent out, when velocity is more than 100.

This would be great when using it with TB303 clones. :rolleyes:

Magnus

Link to comment
Share on other sites

When using it in “TB303 mode” would it be possible to route accent and slide to separate gate outs? For example:

Gate out 1: Normal gate out.

Gate out 2: Slide out, when two notes overlap.

Gate out 3: Accent out, when velocity is more than 100.

This would be great when using it with TB303 clones. :rolleyes:

Yes, triggers will be routable to DOUT pins (up to 128 trigger/gate pins at 5V level available!)

It will also be possible to route internal events to DOUTs, such as LFO overruns, ENV stage transitions, mathematical operations from the MOD matrix (such as Src1 >= Src2), Predivided Clocks, etc... :)

Best Regards, Thorsten.

Link to comment
Share on other sites

Looking absolutely stunning already TK! One curiosity I had - while I don't think it would involve any firmware changes, I was thinking it might be good to have a CV bypass. Say I built an MBCV and put the SSM2044 stuff in the same box. I would occasionally need or want to bypass the MBCV stuff so I can control the filter directly (say if I wanted to have an AOUT for my MBSID and use that).

I was thinking that could be easily solved by switched TRS jacks such that, when something is plugged in, it cuts off the CV outputs of the MBCV itself. Just a thought as a just in case. I don't forsee using that feature all that much but it might be a nice to have so I thought I would mention it.

Link to comment
Share on other sites

I don't think that a good control surface is crucial in the first place - maybe so for the bulk order type of guys, but for me it would be more important to have a full MIDI implementation, i.e. that every parameter can be controlled via MIDI, and that all current parameter settings can be requested from a remote device over MIDI. This way the sound processing and the control surface could be kept separate. I could use my Mackie C4 to control that thing, or I could build an Access Matrix programmer clone, or whatever control surface I like the most.

You are totally right, therefore I'm starting with a "virtual control surface" this time (in distance to MBSID V2 design where a HW based control surface was already available), which forces me to keep the parameter handling simple!

All parameters can be controlled via NRPN messages now.

Bidirectional communication is supported as well - means: by sending a special NRPN message, all parameters will be dumped out.

This works fine with Lemur, and I'm sure that it will also work with ctrlr, Max4Live, etc... all those modern PC based controllers which allow perfect DAW integration :)

Looking absolutely stunning already TK! One curiosity I had - while I don't think it would involve any firmware changes, I was thinking it might be good to have a CV bypass. Say I built an MBCV and put the SSM2044 stuff in the same box. I would occasionally need or want to bypass the MBCV stuff so I can control the filter directly (say if I wanted to have an AOUT for my MBSID and use that).

I was thinking that could be easily solved by switched TRS jacks such that, when something is plugged in, it cuts off the CV outputs of the MBCV itself. Just a thought as a just in case. I don't forsee using that feature all that much but it might be a nice to have so I thought I would mention it.

Yes, I agree that this is a nice thought directed to maniac!

The jacks of my semimodular synth are working on a similar way - this simplifies patching.

Current state:

- bidirectional communication with Lemur working -> means: Lemur can display and control the current patch from MBCV! :)

- access via MIDI (NRPN events) and Ethernet (OSC messages) supported

- synth engine still working with no performance loss! :shifty:

- my Kraftzwerk outputs very interesting sounds!

A snapshot of my workbench (reduced cable set!)

mbcv_v2_proto1.jpg

A scope is very helpful for debugging - and depending on modulation settings it shows very nice animated pictures (not part of this photo)! :ahappy:

mbcv_v2_proto2.jpg

Next steps:

- implementing the multistage envelope

- taking over modulation matrix from MBSID V3 code

- creating some sound samples

Best Regards, Thorsten.

Link to comment
Share on other sites

Hmm I hadn't thought about stuff like Max4Live but that actually would be wildly convenient! I think I'd still opt to make a control surface just to have something to play with while I'm finding a sound. That way I don't have to remap any buttons to anything on my soft knobs and things (which I don't use as much as I probably should). Or, better yet, if the control surface could send MIDI out events, I could do some automation using dedicated knobs into my DAW!

But I agree, it makes sense to do a software interface first. Just hope you keep all the doo-dads for us wanting to build a hardware interface ;)

Link to comment
Share on other sites

I would love to have a hardware audio input that goes to a comparator, then to a DIN. Pressing a button on the MBCV would cause it to measure the frequency on the DIN and calibrate a voltage look-up table so that it can play perfect scales, regardless of the oscillator's response or temperature.

This is similar to the auto-tuning in many vintage analog polysynths, and these days it's a very compelling reason to use something like Silent Way or Volta instead of a dedicated MIDI>CV converter.

Link to comment
Share on other sites

Update: the envelope generators got a Fast and Oneshot option.

I also added an Offset parameter to ENV2:

mbcv_mockup1_3.png

This results into an alternative usecase: ENV2 can be used as a configurable LFO - just "draw" a waveform and listen to the result!

By syncing ENV2 to MIDI clock, you can even "draw your rhythms" :)

Here two audio examples - I used extreme settings to demonstrate the difference, please don't expect nice sounds :ahappy:

Filter modulated via ENV2:

http://www.ucapps.de/mp3/midibox_cv/mbcv_env2_demo1.mp3

  • 0:00 slow modulation
  • 0:07 added a spike
  • 0:11 and another spike
  • 0:21 disabled curve
  • 0:27 enabled curve again
  • 0:35 now a bit faster
  • 0:40 and even faster
  • 0:48 much faster! (sounds like my good old 4800 baud modem!)
  • 1:07 drawing different curves
  • 1:28 back to slow mode
  • 1:33 changing the delays between individual steps
  • 1:52 finally a nice rhythm ;)



    Pitch modulated via ENV2:
    http://www.ucapps.de/mp3/midibox_cv/mbcv_env2_demo2.mp3

    • 0:00 slow modulation
    • 0:04 adding some spikes
    • 0:12 disabled curve
    • 0:16 enabling curve again
    • 0:28 changing the delay for some steps
    • 0:38 and some levels
    • 1:15 now a bit faster
    • 1:50 etc...
    • 2:04 btw.: this FM effect is realized by setting different steps to min/max level
    • 2:24 random touches...
    • /edit: next demos with stereo SSM2044 here:

      Best Regards, Thorsten.

Link to comment
Share on other sites

Btw:

The CV Channel setup is completely implemented:

mbcv_mockup1_1.png

And the modulation matrix is working:

mbcv_mockup1_4.png

You will notice that in difference to MBSID it's possible to take a modulation source of another CV channel -> keyword "cross-modulation"! :)

I also prepared 8 "knob" functions, because I think that it will be better to use configurable knobs for the "physical control surface" instead of dedicated knobs for each modulation source.

Next step is to implement an internally handled copy/paste/clear function.

Thereafter I will create a new stereo demo with Seppoman's SSM Filters :)

Best Regards, Thorsten.

Link to comment
Share on other sites

@TK - I would still love MIDIbox CV 2.0 to be able to quantize incoming CV signals using audiocommander's Harmonizer class.

In order to take 8 external voltages into the core, you either need to use 1) 5v voltage limiting diodes, or 2) voltage dividers using two matched precision resistors (so you can accept up to 10v CV sources):


signal in --- 2k resistor ---+--- 2k resistor --- ground

                             |

                        signal out

I've mentioned this before:

Unfortunately I never got very far with my earlier attempts :-/

Edited by sneakthief
Link to comment
Share on other sites

@TK - I would still love MIDIbox CV 2.0 to be able to quantize incoming CV signals using audiocommander's Harmonizer class.

Thanks for the nice idea!

Of course, I could integrate the "force-to-scale" functions of MBSEQ into the modulation matrix as an additional "operator".

This would not only allow to quantize/harmonize analog inputs, but any modulation source (such as LFOs).

In order to take 8 external voltages into the core, you either need to use 1) 5v voltage limiting diodes, or 2) voltage dividers using two matched precision resistors (so you can accept up to 10v CV sources):

I do agree - and I would also add the protection diodes to ground against negative voltages, otherwise the analog input could be fried if it is supplied by a bidirectional control voltage.

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