Jump to content

Highcooley
 Share

Recommended Posts

Hey everybody! I'm learning more about the Midibox_NG every day. So far, I am able to read out analog and digital signals, assign them to CCs or NRPNs and routing them to outputs. It is truly amazing what you guys accomplished with this Midi platform. Kudos to you!

 

What I am looking for at the moment is a way to add, subtract or scale (divide) two or multiple NRPNs, CCs or even a combination of both. My application is to fine tune a Midi note value by an AIN pot (+- 2 semitones) before sending it to an AOUT. As I build a three VCO analog synth, I would further like to scale the frequency for each oscillator by an octave rotary switch (6 octaves) as well as a detune AIN pot (+- 7 semitones). One solution would be to waste AOUTs for each setting and combining the voltages in the hardware. However, this is certainly not what I am after, as AOUTs are expensive and I will eventually run out of spare ones, once my full fledged analog synth reaches completion.

 

Does anybody know if this is even possible with the Midibox_NG scripting language and how it can be done?

 

I see three ways how the AOUT part could be done:

- Use one AOUT for the fine tuned frequency voltage for all three OSCs together and one scale/detune AOUT for each individual oscillator (4 AOUTs) -> pro: it's the easiest solution, the VCO can be modulated via just the first AOUT. con: four AOUTS needed

- Use one AOUT for each OSC and calculate the frequency value out of Midi tone, fine tune, octave and detune value for each OSC individually (3 AOUTs) -> pro: only three AOUTs needed, the solution is still pretty logic and straight forward. con: the modulation of the whole VCO would be much more complicated

- Or use a combination of both by using Midinote, finetune plus octave value of the first OSC for all three oscillators (the first OSC doesn't need a detune function for obvious reasons) and then use two other AOUTs to subtract the octave value of the first OSC and add the individual octave settings and detune values for the two other oscillators (3 AOUTs) -> pro: only three AOUTs needed, the VCO could still be modulated as a whole. con: quite a complicated solution.

 

It would be cool, if somebody could point me into the right direction. Thanks for your replies! 

 

 

By the way: Although http://www.midibox.o...i_specification explains the splitting of 14bit values into MSB and LSB, I wasn't able to fully comprehend, how this can be done using the Midibox_NG scripting language. Is this even possible without altering the code of Midibox_NG itself? However, this is not my main question, as the whole Midi_Out part will come later in my build. 

Link to comment
Share on other sites

I guess that the best way to handle this would be a software extension in MIDIbox NG instead of wasting AOUT pins.

 

I won't have the time to plan and test such extensions in the next 2..3 weeks, but I will come back to this topic then.

 

The most simple way would be to provide new AOUT channel targets for finetune and octave + semitone based transpose, right?

 

 

By the way: Although http://www.midibox.o...i_specification explains the splitting of 14bit values into MSB and LSB, I wasn't able to fully comprehend, how this can be done using the Midibox_NG scripting language. Is this even possible without altering the code of Midibox_NG itself? However, this is not my main question, as the whole Midi_Out part will come later in my build. 

 

See http://www.ucapps.de/midibox_ng_manual_ngc.html (search for nrpn_format)

Currently only "Normal", "Signed" and "MSBOnly" are supported, I haven't seen a usecase for LSBOnly yet, but this could be easily added if you describe your use case

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 months later...
I guess that the best way to handle this would be a software extension in MIDIbox NG instead of wasting AOUT pins.

 

I won't have the time to plan and test such extensions in the next 2..3 weeks, but I will come back to this topic then.

 

The most simple way would be to provide new AOUT channel targets for finetune and octave + semitone based transpose, right?

 

 

 

See http://www.ucapps.de/midibox_ng_manual_ngc.html (search for nrpn_format)

Currently only "Normal", "Signed" and "MSBOnly" are supported, I haven't seen a usecase for LSBOnly yet, but this could be easily added if you describe your use case

 

Best Regards, Thorsten.

 

Hi Thorsten

 

I would like to ask, if you already found the time to implement this option to do some basic math with several AINs to one AOUT or dedicate a finetune option to the Tone out as well as a combined octave + semitone output?

 

Regards,

Andy

Link to comment
Share on other sites

Than longer I'm waiting, than better ideas... ;-)

 

Meanwhile I think that the best way would be to give direct access to the AOUT_PinSlewRate*, AOUT_PinPitchRange*, AOUT_PinPitch* functions of the AOUT driver via meta events, so that any controller could change them directly.

 

TODO marker

 

Best Regards, Thorsten.

Link to comment
Share on other sites

:-) wow, sounds very good! Especially for the tuning function.

However, this way it wouldn't be possible to use the base pitch for multiple VCOs and adjust pitch and octave for each voice individually but still follow the base pitch. My goal is to implement a VCO section like it is used in classic synths like the MiniMOOG.

Thanks and regards,

Andy

Link to comment
Share on other sites

  • 3 weeks later...

The meta events are finally implemented: http://www.ucapps.de/mios32/midibox_ng_v1_030_pre4.zip

 

Usage example: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_ng_v1%2Fcfg%2Ftests%2Fcvtransp.ngc

 

So, there is an individual pitchbend (14bit or 7bit) for each CV channel which controls the fine pitch over the configurable pitchrange

 

And there are individual octave and semitone transpose values for each CV channel as well.

 

The example forwards the configuration value from EVENT_RECEIVERs to EVENT_SENDERs.

Of course, you could also control the values from another source, e.g. forward from EVENT_AIN to EVENT_SENDER which then performs the meta operation.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Dear TK, god of the Midi Box  :queen:

 

Finally I managed to finish all my three VCO boards, hooked them up to the uP and tuned the oscillators. The result with your transpose options are great and the whole note pitch as well as octave and semitone transpose only need 4 AOUTs for 3 VCOs. However, is there a possibility to have a finer resolution than semitones to transpose, (like for example pitch-bend) which I can use likewise mutliple times to detune OSC2 and 3 individually as well as finetune the whole synth to other instruments? I tried to use semitone transpose but with NRPNs instead of CCs. But the result is still a semitone transpose.

 

Thank you very much for these awesome features!

Edited by Highcooley
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...