Jump to content

MIDIbox CV V2 Concept


TK.
 Share

Recommended Posts

wow, i'm late to this party...

this looks fantastic so far.

2 cents is still not very many euros, and i have a tendency to generalize applications too far, but i will just bring up a few ideas that may already be too generalized:

1) starting phase for oscillators, this would allow for 4 phase and 3 phase functions (ie solina chorus). it might be enough to just allow 12 start points, which allows exact division by 2,3,4, and 6, but since we are in midi land it might make sense to use 128 ([0, 43, 86] would probably be indistinguishable from "true" 3-phase, certainly so for a chorus effect)

2) constants could be allowed as inputs to mod<n>, maybe even named constants (ex. CVMIN, CVMAX, CVMID)

3) why limit mod values to 2 inputs with single math operators? maybe i mistake the meaning of the names mod<n>, i'm assuming they relate to the modmatrix on the sid, which i enjoy playing with a lot. it seems like it would be better to at least have one layer of indirection, having a variables table with these operators and then simply assign a var<n> or input<n> to mod<n>. this would at least allow for more complex operations, though it can quickly become unwieldy and the size of the variables table may be an issue... an example: one operation that might be commonly used is to scale an input to a range, ie "take input 1 and scale it to 1v-2v"). this is a 3 input function, so supporting it with a built in function would still require a change to the interface. it would be possible with one layer of indirection but would require several variable table positions to implement. the best thing for me would be an expression evaluator, but that's probably not practical on this platform. ok so not a very concrete suggestion and based on some assumptions, but something to consider...

4) i really like sneakthiefs idea for an interface to the quantizer, as it more closely relates to how i would think of the various modes, esp if they can be played on the keyboard and captured, ex by a footswitch funtion that starts grabbing notes when pressed down and calculates the pitch set when released...

5) this brings up something i have resisted mentioning about the force-to-scale function of the mbseq, since by the time i got interested in the mbseq it had already been in use for some time. it may be that this should only be considered for a separate quantizer module, but since this is a new application it might be worth considering now. the list of scales includes many sets that are the same set of intervals with a different starting note (modes). most musicians i know who think modally think of these as the same scale, or more specifically as 2 things: scale and mode. the problem with using names for each mode is that there are many useful modes that have not been named, or that have more than one name. a more general approach is to name a normalized form of the set (ex. harmonic minor) and then use a number from 1-8 to indicate the mode (0-7 in programmereze). the downside is that you waste some bits because there are many scales that only have a few modes and the other numbers are either repeated (ex. the diminished scale only has 2) or meaningless (pentatonic mode 7??) and mode 8 is meaningless for most scales

hehe this leads to the notion of implementing other tuning systems than 12 tone equal temperament, esp since many of the included named scales don't really exist in that domain. but wouldn't it be nice to synthesize a baroque piece in just intonation, or hear bach's well tempered clavier in the tuning system he used? then there are more modern microtonal systems... ok this is already into deep outer space, back to lurk mode...

Link to comment
Share on other sites

1) starting phase for oscillators

implemented: the LFO phase can be configured from 0..255. It's not only useful for chorus effects, but also results into nice sequences when dynamically changed while (for example) a bassline is playing.

2) constants could be allowed as inputs to mod<n>, maybe even named constants (ex. CVMIN, CVMAX, CVMID)

implemented (0..127)

My favorite usecase is to apply XOR between a source (e.g. LFO) and a constant value :)

3) why limit mod values to 2 inputs with single math operators?

I've to think about this... an expression evaluator is definitely not practical.

Currently three sources can be combined by using two MODs. The second MOD can take over the modulation result of the first MOD.

4) i really like sneakthiefs idea for an interface to the quantizer, as it more closely relates to how i would think of the various modes, esp if they can be played on the keyboard and captured, ex by a footswitch funtion that starts grabbing notes when pressed down and calculates the pitch set when released...

good idea!

In addition: if the MBCV gets an optional "tb303-like" interface with a one octave input, it could be used to enter the scale as well.

most musicians i know who think modally think of these as the same scale, or more specifically as 2 things: scale and mode.

I got the point and your proposal makes sense. There is no need to re-use exactly the same table like MBSEQ.

hehe this leads to the notion of implementing other tuning systems than 12 tone equal temperament, esp since many of the included named scales don't really exist in that domain. but wouldn't it be nice to synthesize a baroque piece in just intonation, or hear bach's well tempered clavier in the tuning system he used? then there are more modern microtonal systems... ok this is already into deep outer space, back to lurk mode...

you are right!

Thanks for the input! :)

Ok, here an update:

I had some SSM2044 stereo filter fun:

mbcv_v2_with_ssm2044.jpg

In following demo a LFO is routed thru the modulation matrix to the CV channels which control the cutoff frequency.

One channel is inverted, and this is the result:

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

In the second demo I combined ENV (with exponential curve!) and LFO through the MOD matrix to produce different stereo effects while a simple bassline is playing:

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

Listening with headphones is recommended! ;)

Best Regards, Thorsten.

Link to comment
Share on other sites

Yes, for all demos I used the Kraftzwerg VCO.

In the first two demos I used the Kraftzwerg filter, and in the last two demos SSM2044 filters.

VCOs and VCFs are directly controlled by MBCV, this basically makes the synth :) (the two analog LFOs and ENVs of Kraftzwerg are not used)

Best Regards, Thorsten.

Link to comment
Share on other sites

This is excellent news TK! I love the Lemur control surface, and having worked Lemur quite a lot within the past two weeks, I admire your bitwise code in the template. :)

The only problem that I have with this is that I am only just completing the MIDIbox CV as a 5U x 3U wide module for my still being soldered modular synth.

I am looking forward to building this one when available.

cheers~

Jay

Link to comment
Share on other sites

Would it be completely crazy to combine this with the functionality of the AC_Sensorizer?

alright, I will add this to the TODO list.

AC already did most of the work, and as experienced with his speakjet project the migration of his code should be easy. :)

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...

This project is a dream come true :)

I think you are on the right track with the features, I'm excited about the prospect of using this to retrofit my monosynths and be the brain of my modular!

I do have two things to request, but I'd understand if they fall outside the scope of work :)

1.) If this could support the SHx8 module I'll be _thrilled_. 8 CV's isn't enough for the architecture of modular I've been building all these years and I'm one of the lucky ones who has plenty of the parts around :whistle:

2.) Add a clock-synched option to the multi-stage envelopes (yes, this gets close to sequencing). In this mode, instead of choosing a time period to elapse between stages the stage increments based on a clock divider. The ideal operation for this mode would include a start and end value for each stage and a curve parameter which selects between log, lin and rev. log. When the last stage has finished the envelope can either start a release stage or loop back to a loop point.

I'd suggest giving this some thought, it's not exactly the same thing as sequencing and, particularly for the creation of pads, the ability to sync envelope stages to a clock divider can achieve some really neat effects when there are multiples of these envelopes working together on different parameters! Imagine a filter sweep that starts out as a slow linear rise for a bar and then becomes a 1/8 note saw wave 'LFO' at the end by using the loop points. Sounds neat to me!

The clock divider time could probably be independent per stage too (ie: 1 bar for the first stage, 1/8 for the second stage), perhaps by having each stage responsible for triggering the next once it's time is up.. not too sure about this, I've only coded it mentally.. but it seems that each stage should be able to notify the main process that it's about to complete and the next stage should be queued up.

Thanks again for all your hard work on this TK, this will compete with the SEQ for my favorite MB project :thumbsup:

EDIT:

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

Missed this the first read-through! TK you have once again outdone yourself! :sorcerer:

Edited by moogah
Link to comment
Share on other sites

I.ve missed something, or what.ll be te minimum hardware option? I mean usb2cv using iPad or laptop as control surface? New core+ aout NG? Or we still need 8 bit core?

As far as I have heard, it's very much an LPC CORE option. The control surface is being prototyped for digital (iPad/Laptop) with the intend being to have a physical control surface option. I'm not sure how much of a template for a real control surface there will be since the project is fairly flexible in its own right so it may come down to preference.

Link to comment
Share on other sites

Unfortunately the SHX8 module somehow doesn't fit into the concept of having the complete set of modulators for each CV.

I would also have to reduce the update rate dramatically - regardless if CV outputs are modulated or not because each SHX8 output has to be refreshed each mS.

So: no go for this project, it would be another project with limited capabilities, focused on more CV outputs.

I.ve missed something, or what.ll be te minimum hardware option? I mean usb2cv using iPad or laptop as control surface? New core+ aout NG? Or we still need 8 bit core?

This is how the minimum hardware option could look like: ;)

mbcv_minimalest.png

More advanced configurations will be demonstrated once this project leaves the alpha state.

But I'm sure that no 8bit core will be involved - just connect an AOUT/AOUT_LC/AOUT_NG module to the MBHP_CORE_LPC17 module and you are already done.

Another option will be to edit parameters via 2x20 LCD, 5 buttons and 1 encoder directly connected to J10 of the core module.

More buttons/encoders/pots/faders/whatever etc...: I will plan this later once the sound engine is final!

Best Regards, Thorsten.

Link to comment
Share on other sites

The bassline sequencer is up&running! :smile:

Specs:

  • each CV channel has a dedicated sequencer (-> 8 bassline sequencers are running in parallel)
  • typical 303ish entry with Key/Octave/Gate/Glide/Accent
  • optionally sequenced values can be entered directly (fader at the left side) for direct CV modulation independent from note values
  • 8 sequences per channel, each sequence has 32 steps
  • EnvMod and Accent are forwarded to the modulation matrix
  • selectable resolutions (e.g. 96th, 48th, 32th, 16th... but also triple and dotted measures)
  • selectable gatelength (used for all steps)

The sequence can be entered with the Lemur template and it's transfered to MBCV via NRPN messages:

mbcv_mockup5_1.png

The configuration is done on a special page:

mbcv_mockup5_2.png

To ensure highest flexibility, VCF and VCA control for EnvMod and Accent isn't hardwired to certain CV channels.

Instead, these parameters are routed through the modulation matrix.

This has two advantages: any CV channel can pick up the current Accent and EnvMod value from any other channel (e.g. you could also control LFO modulation with this)

And it allows to finetune the modulation depth - because depending on the analog synth which is used, this definitely is required for best results:

mbcv_mockup5_3.png

Here a short demo (I removed the drums by intention):

Again the Kraftzwerg is used with it's own filter; VCO, VCA and VCF are controlled by MBCV.

And btw.: the digital background noise seems to come from the synth itself - it's time to disable the internal MIDI interface, because there is no need for it anymore ;)

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

Best Regards, Thorsten.

Link to comment
Share on other sites

*drool* That's quite impressive! Hard to take my mind off how good the Kraftzwerg itself sounds and focus on the MBCV feature-set though (which is, also, very very cool)! Really excited about this! I should probably start figuring out where to source some SSM2044's so I can hurry up and build this thing and have a use for it :)

Link to comment
Share on other sites

The bassline sequencer is up&running! :smile:

Specs:

  • each CV channel has a dedicated sequencer (-> 8 bassline sequencers are running in parallel)
  • typical 303ish entry with Key/Octave/Gate/Glide/Accent
  • optionally sequenced values can be entered directly (fader at the left side) for direct CV modulation independent from note values
  • 8 sequences per channel, each sequence has 32 steps
  • EnvMod and Accent are forwarded to the modulation matrix
  • selectable resolutions (e.g. 96th, 48th, 32th, 16th... but also triple and dotted measures)
  • selectable gatelength (used for all steps)

Best Regards, Thorsten.

74hlR.jpg

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

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

I almost missed this point, wow cool! Do you think we could get into quantising external CV signals? That would be killer :D

So my suggestion I've not seen in the thread yet would be to also support some analogue trigger in and outs, for example to sync external analogue LFOs, sequencers etc.

Link to comment
Share on other sites

  • 2 months later...

Yes: meanwhile I added a patch change mechanism which can be synchronized to the MIDI clock (e.g. change before the next 16th note will be played), and which can be controlled from a Lemur Matrix! Very nice in conjunction with Bassline sequences! :)

There is still no HW control surface, but I will probably implement another editor with Ctrlr so that MBCV can be configured with a common computer as well.

Best Regards, Thorsten.

Link to comment
Share on other sites

I'm personally more interested in the physical control surface. I like to play my synths like instruments.. (very hands on.. I dislike screens and menus when it comes to my old analog gear)

Even if we could re-use the mb-6582 control surface PCB as one potential mb-cv2 control surface, it would be good. (I'd like more sets of knobs, personally, as tweaking two filters or two envelopes at the same time is quite common). The ability to do that and record all the knob twists to a track would be amazing! The ability to record and replicate anything I do w/ my modular in the MIDI realm would be amazing :).

Link to comment
Share on other sites

I'm personally more interested in the physical control surface. I like to play my synths like instruments.. (very hands on.. I dislike screens and menus when it comes to my old analog gear)

Even if we could re-use the mb-6582 control surface PCB as one potential mb-cv2 control surface, it would be good. (I'd like more sets of knobs, personally, as tweaking two filters or two envelopes at the same time is quite common). The ability to do that and record all the knob twists to a track would be amazing! The ability to record and replicate anything I do w/ my modular in the MIDI realm would be amazing :).

I agree with you, but I'm pretty sure TK is planning on a physical control surface. He just wanted to get the basic design down where it is more fluid and cheaper (in software). Even if he doesn't, I wouldn't think it would be too difficult for someone else to add.

For today, though, you can accomplish basically the same thing with a MIDI controller and CTRLR and could even build a customer MIDIBox controller if you so desired. You could even put those two things together in the same box such that the difference would be almost indistinguishable from a native control surface.

Link to comment
Share on other sites

Well, after much thought I've come to the same conclusion as always, that midifying my modular is an impossible dream.. (I've already got 3 midi-cv modules and sometimes those 24 cv's aren't even enough for a track..)

Building a new semi-modular synth around this midibox cv2 project seems like a very good idea, though.

I might have the wrong idea about this project, though. Since I found this thread from the other post where the guy was asking about some SID functionality, the first thing that popped in my head was patch recall. Basically, I was thinking i'd sort of permanently assign cv outs to osc's, filters, vca's, etc. Then be able to adjust all the settings and save it as a patch. Basically a little synth like the sid, only all analog. (and only one voice, instead of 4(or8))

Is that possible, or have a gone too far outside of the "midi-cv" box?

-Edit, I just read the midi-cv page and it has answered a lot of questions, and I see it's basically designed w/ patch recall in mind. This new one w/ the LFOs and EG's and all is a LOT more useable in that area, tho.. I'm excited!

Edited by wicked1
Link to comment
Share on other sites

Is that possible, or have a gone too far outside of the "midi-cv" box?

I don't have one yet (the old or new MBCV), but to my knowledge, you're not too far off. The new MBCV will have patch recall, in addition to LFOs and all sorts of fancy things. It will eventually also have a hardware control surface option (but the software control surface is being designed first). Obviously you still need something that makes noise and speaks CV but sounds like you already have that covered.

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