what’s that box with lots of jacks and pots next to the scope?
Current state:
…
- my Kraftzwerk outputs very interesting sounds!
what’s that box with lots of jacks and pots next to the scope?
Current state:
…
- my Kraftzwerk outputs very interesting sounds!
Btw:
The CV Channel setup is completely implemented:
And the modulation matrix is working:
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.
@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:
http://discourse.midibox.org/t/topic/8491
Unfortunately I never got very far with my earlier attempts :-/
@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.
Wow, that would be amazing!
Now imagine a control page that looked like this for your own custom quantizer scales:
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:
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)
constants could be allowed as inputs to mod<n>, maybe even named constants (ex. CVMIN, CVMAX, CVMID)
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…
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…
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…
- 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.
- 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 ![]()
- 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.
- 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:
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.
This is an amazing project. Can not wait to build this one! Thanks!
Hey TK, what was the sound source that you were filtering against for the demos? An MBSID or something else? (They sound AMAZING by the way - this project looks incredibly exciting)
Hey TK, what was the sound source that you were filtering against for the demos? An MBSID or something else? (They sound AMAZING by the way - this project looks incredibly exciting)
I suspect his Kraftzwerg. :shifty:
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.
Would it be completely crazy to combine this with the functionality of the AC_Sensorizer?
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
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.
Excellent news! You have just made my day ![]()
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 ![]()
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:
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?
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.
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: ![]()
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.
The bassline sequencer is up&running! ![]()
Specs:
The sequence can be entered with the Lemur template and it’s transfered to MBCV via NRPN messages:
The configuration is done on a special page:
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:
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.