Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 08-09-2018, 05:19 AM   #41
Ivannn Bennnettt
Human being with feelings
 
Join Date: Feb 2017
Posts: 305
Default

Quote:
Originally Posted by Time Waster View Post
JSFX does not include tabs out of the box. It is possible to code this in the graphics section, however, it is quite a bit of work. @Geraintluff has done a lot of work on a graphical UI, but I haven't gotten into it yet.
Please get into it It'd be much much handier
Ivannn Bennnettt is offline   Reply With Quote
Old 08-09-2018, 04:28 PM   #42
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Could you possibly describe in more detail, or illustrate what you are hoping to see in a tab bar?
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-09-2018, 08:28 PM   #43
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

For the three example modules in the stash so far, I have now disallowed audio channels 1 and 2 for control signals and implemented range limiting for audio control signal input.

My plan is in the short term is to add audio control to enough modules to be able to create a synth, so the next two modules will probably be an oscillator and a filter module. I also need to go back and add audio control input to the Envelope Multi-Tool module, as currently it can only only output audio control signals. The Multi-Tool is the most complicated module I've done, so if I can add audio control to that one, the rest should be fairly straightforward.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-11-2018, 06:37 AM   #44
Ivannn Bennnettt
Human being with feelings
 
Join Date: Feb 2017
Posts: 305
Default

Quote:
Originally Posted by Time Waster View Post
Could you possibly describe in more detail, or illustrate what you are hoping to see in a tab bar?
roughly something like this:
Ivannn Bennnettt is offline   Reply With Quote
Old 08-11-2018, 09:40 PM   #45
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Yes, something like that would be possible and I would like to implement it at some point in the future. It has always been the plan to do a fully graphic UI eventually. It is a lot of work though.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-12-2018, 07:20 PM   #46
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

The ReaRack3 zip file in the stash now includes the Trapezoidal Oscillator module and the Envelope Multi-Tool module has been updated to include audio control inputs for modulation.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-13-2018, 06:08 AM   #47
Ivannn Bennnettt
Human being with feelings
 
Join Date: Feb 2017
Posts: 305
Default

Quote:
Originally Posted by Time Waster View Post
Yes, something like that would be possible and I would like to implement it at some point in the future. It has always been the plan to do a fully graphic UI eventually. It is a lot of work though.
I'm glad read that)
Thank you for your time!
Ivannn Bennnettt is offline   Reply With Quote
Old 08-13-2018, 07:32 PM   #48
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

I've added an updated Moog Filter module to the stash here: https://stash.reaper.fm/v/34071/ReaR...dularSynth.zip

There are now enough modules to build a basic subtractive synth for testing out the audio control signals. If anyone is using MPL's wire view script, I would be interested to know how it works with these modules, or if there are some other mods I need to do to get it to work?
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-14-2018, 12:08 PM   #49
SmajjL
Human being with feelings
 
Join Date: Nov 2013
Location: IKEA
Posts: 2,772
Default

Ohhh-K.. stuff have happened in script-land also..
You guys & Co are something!! thanks
__________________
_Ohh.))::_Linux_::((.Xoxo_

SmajjL is offline   Reply With Quote
Old 08-14-2018, 04:26 PM   #50
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 4,812
Default

Quote:
Originally Posted by cyrano View Post
Oops. Sorry. Just disregard the remarks about hardware.

Could an option to send CV to hardware outputs be interesting for some?
Hi ! it would be useful but Isn't there plugins for this? i think i have seen, but not in reaper i think
deeb is offline   Reply With Quote
Old 08-14-2018, 05:19 PM   #51
cyrano
Human being with feelings
 
cyrano's Avatar
 
Join Date: Jun 2011
Location: Belgium
Posts: 5,246
Default

There are a few plugins. But I couldn't find any that could manage more than four channels. And almost none of these plugins are standalone (meaning they all offer other functions like VCO's or modulation) and cross-platform.

Which might be the reason everybody seems to be using hardware and a lot of folk are even rolling their own hardware...

CV as audio is also far easier to manipulate/automate, costs less CPU and is routable to other hardware or software.
__________________
In a time of deceit telling the truth is a revolutionary act.
George Orwell
cyrano is offline   Reply With Quote
Old 08-14-2018, 07:51 PM   #52
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 4,812
Default

ok! does something like "Rea2CV" (if existed) could make this possible?

Quote:
Originally Posted by cyrano View Post
CV as audio is also far easier to manipulate/automate, costs less CPU and is routable to other hardware or software.
I know very nothing of this! . But CV is only used to feed external hardware right?
You mean CV -> VSTs and automatable voltages? : ) That would be amazing .. !
deeb is offline   Reply With Quote
Old 08-14-2018, 09:27 PM   #53
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

Yeah we're kind of using "voltage" in quotes the same way the V in VCA is just a euphemism. We're talking about using the existing audio routing and manipulation as a different way to send control signals between plugs within Reaper. The stuff about hardware was kind of a sidetrack, though interesting.
ashcat_lt is offline   Reply With Quote
Old 08-14-2018, 09:32 PM   #54
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Regarding hardware, you need an A/D - D/A converter that is specified to allow for DC (lowest possible frequency = 0).

I assume, most are not specified for this.

-Michael
mschnell is online now   Reply With Quote
Old 08-15-2018, 07:25 AM   #55
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 4,812
Default

excuse ignorance, which are known hardware that converts D to CV? usb ? : )
I am not planning to invest much in VC hardware, but some toys are too good (ex: 0 coast)! and time will make it more affordable and varied, so i am curious : )
deeb is offline   Reply With Quote
Old 08-15-2018, 08:34 AM   #56
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 4,812
Default

Quote:
Originally Posted by ashcat_lt View Post
Yeah we're kind of using "voltage" in quotes the same way the V in VCA is just a euphemism. We're talking about using the existing audio routing and manipulation as a different way to send control signals between plugs within Reaper.
Ok! that would be something that should have happened like 30 years ago, or it is dependent on Computer processing? VSTs would need to adapt! seems a new paradigm no? i just know if it is more musical and defined and less Cpu i would like that to happen, but why it did not happen before?
deeb is offline   Reply With Quote
Old 08-15-2018, 11:15 AM   #57
cyrano
Human being with feelings
 
cyrano's Avatar
 
Join Date: Jun 2011
Location: Belgium
Posts: 5,246
Default

Quote:
Originally Posted by deeb View Post
excuse ignorance, which are known hardware that converts D to CV? usb ? : )
I am not planning to invest much in VC hardware, but some toys are too good (ex: 0 coast)! and time will make it more affordable and varied, so i am curious : )
The headphone outputs on most of RME's range can produce DC. There may be others, but it's kinda hard to find out, cause you need to search the manual of the interface in question. And "DC" is too short to make a meaningful search term.

Most audio interfaces can be modded, if there's no DC filtering in the driver or the hardware.
__________________
In a time of deceit telling the truth is a revolutionary act.
George Orwell
cyrano is offline   Reply With Quote
Old 08-15-2018, 07:06 PM   #58
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

The ReaRack3 zip in the stash now contains an Audio<>MIDI module. This allows conversion of audio sound, audio control or MIDI CC signals from one to another.

In this module, for both Inputs and Outputs there is an option to choose Audio channels 1 & 2. If Audio 1 & 2 is selected as an input, the sound signal (-1 to 1) is converted to a control signal (0 to 1) and if selected as an output, control signals are converted to sound signals.

For audio input, there is an option to use the raw signal or to use the envelope of the signal. There is a gate setting (audio below the threshold will be zeroed) and there is a window size control for extracting the envelope. The default value will give a smooth envelope with a 10 Hz signal, but you may want to reduce the window for less latency if the input frequency is higher.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-16-2018, 09:11 AM   #59
Ivannn Bennnettt
Human being with feelings
 
Join Date: Feb 2017
Posts: 305
Default

some issue with with Contol Unit in Envelope Multi-Tool it don't switch to below 512 time units (or do I something wrong?)
And I wonder is there necessary to have Amplifier plugin? (to future build)
Ivannn Bennnettt is offline   Reply With Quote
Old 08-16-2018, 05:49 PM   #60
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

@Ivannn Bennnettt, can you post a screenshot of the settings when you get the error in the Envelope Multi-Tool, or otherwise describe how or when this happens?

Regarding the amplifier plugin, do you mean can we get rid of it? If so, I can't see how. It's a fundamental component for modular synthesis.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-16-2018, 06:17 PM   #61
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

Quote:
Originally Posted by Time Waster View Post
Regarding the amplifier plugin, do you mean can we get rid of it? If so, I can't see how. It's a fundamental component for modular synthesis.
I suspect they're alluding to the idea that you can usually just multiply the control signal by the audio signal to affect any amplitude modulation we might need.
ashcat_lt is offline   Reply With Quote
Old 08-16-2018, 07:25 PM   #62
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Quote:
Originally Posted by ashcat_lt View Post
I suspect they're alluding to the idea that you can usually just multiply the control signal by the audio signal to affect any amplitude modulation we might need.
Well, yes, that's basically what the amplifier module does.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-16-2018, 09:23 PM   #63
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

for a 0..1 control signal, an amplifier is the same as a ring-modulator: just multiplying the signals.

-Michael
mschnell is online now   Reply With Quote
Old 08-16-2018, 09:40 PM   #64
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

You still need a method for doing that and in the context of ReaRack the Amplifier module is that method, albeit with some smarts and gimmicks built in for click reduction and distortion.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-16-2018, 11:06 PM   #65
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Having said that, I've just started working on the MIDI Mixer module, which will now be called the Control Mixer module. This module takes two inputs and outputs a signal based on an operation, one of which is multiply (the other choices being maximum and minimum). Potentially this module could replace a number of the existing modules, depending on how complicated you want to make it. If I added the output smoothing of the amplifier, it could make the Amplifier redundant. I could add the non linear scaling functionality of the Nonlinerizer module to the output and make that module redundant. I could also include the functionality the Audio<>MIDI module and make that redundant. It could also replace the Key Follower module if the Nonlinearizer is incorporated, as I have added the ability to input MIDI note values.

Is that getting to far away from the modular concept?
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-17-2018, 03:53 AM   #66
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Thinking out loud, I'm warming to the idea of a universal 'Signal Processor' module, which will take the place of the amplifier module and others, as mentioned above. One nice thing about this is that it moves ReaRack away from the virtual hardware model, so that it becomes more of its own digital thing.

I think that I might also rearrange the input/output sliders so that the first choices in the list are the audio inputs. This would tend to make audio the first option for control signals.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-17-2018, 09:23 AM   #67
Ivannn Bennnettt
Human being with feelings
 
Join Date: Feb 2017
Posts: 305
Default

Quote:
Originally Posted by Time Waster View Post
@Ivannn Bennnettt, can you post a screenshot of the settings when you get the error in the Envelope Multi-Tool, or otherwise describe how or when this happens?
I was a bit wrong it happens wen I try to choose something below '32 time units' on 'Control Unit' then it jumps back to '32'. Actually that's not critical, just noticed)
Quote:
Regarding the amplifier plugin, do you mean can we get rid of it? If so, I can't see how. It's a fundamental component for modular synthesis.
Yes, it's fundamental yes but for hardware because that has physical issues
I mean include 'amplifier' in osc it's digital, isn't it?)
About your new ideas, I'd say just go ahead!
I'd like to see more flexibility with modulation for modulation and handy adjust as well)
Ivannn Bennnettt is offline   Reply With Quote
Old 08-17-2018, 09:51 AM   #68
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

This is a little OT, but if we want to use "CV" to control plugins which are not specifically written to accept it, we usually have to go through Parameter Modulation at some point. Yes, we can convert to MIDI first, but we still end up in the PM/Link screen, and that already has audio>parameter built in. That mechanism has a couple of issues which make it less than ideal though. I proposed a simple feature Default Parameter Modulation - Linear "CV mode" for Audio Control Signal, and I'm almost positive it would be pretty easy to implement, but they're not going to bother if literally nobody else is interested.
ashcat_lt is offline   Reply With Quote
Old 08-17-2018, 08:44 PM   #69
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Quote:
Originally Posted by Ivannn Bennnettt View Post
Yes, it's fundamental yes but for hardware because that has physical issues
I mean include 'amplifier' in osc it's digital, isn't it?)
About your new ideas, I'd say just go ahead!
I'd like to see more flexibility with modulation for modulation and handy adjust as well)
This is a good point. We already have a control in the oscillator modules for output volume, so it is a bit silly that it has no modulation input. I'll put it on my list.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-17-2018, 08:56 PM   #70
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Quote:
Originally Posted by ashcat_lt View Post
This is a little OT, but if we want to use "CV" to control plugins which are not specifically written to accept it, we usually have to go through Parameter Modulation at some point. Yes, we can convert to MIDI first, but we still end up in the PM/Link screen, and that already has audio>parameter built in. That mechanism has a couple of issues which make it less than ideal though. I proposed a simple feature Default Parameter Modulation - Linear "CV mode" for Audio Control Signal, and I'm almost positive it would be pretty easy to implement, but they're not going to bother if literally nobody else is interested.
Reading your FR reminds me that I should be extracting the volume curve value of audio signal envelopes, not the sample value. Something else to fix.

We should try to find out what curve is used for parameter modulation and how it works (window size, how does it handle DC etc.) @Justin? If we knew that, we could have an option to convert to an appropriate signal, maybe a high frequency carrier with a volume adjusted envelope, as a workaround.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-17-2018, 09:16 PM   #71
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

Quote:
Originally Posted by Time Waster View Post
Reading your FR reminds me that I should be extracting the volume curve value of audio signal envelopes, not the sample value. Something else to fix.
That goes back to how modular you want to make it. You're really just talking about building a waveshaper module into whatever.
ashcat_lt is offline   Reply With Quote
Old 08-17-2018, 09:46 PM   #72
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Quote:
Originally Posted by ashcat_lt View Post
That goes back to how modular you want to make it. You're really just talking about building a waveshaper module into whatever.
I think in this case if using an audio sound signal for control, you are almost always going to want to be using the perceived volume value as the control curve. Clearly that's how parameter modulation is set up. Similarly, when outputting an audio sound signal, it's not just control value X audio sample value, it also has to be adjusted so that perceived volume matches the control curve (this what the current Amplifier module does).
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-17-2018, 10:30 PM   #73
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,271
Default

But we don't always want that! There doesn't have to be a tool for audio and a separate tool for control if we can just have another module that conditions the audio to be a control.
ashcat_lt is offline   Reply With Quote
Old 08-18-2018, 02:13 AM   #74
cyrano
Human being with feelings
 
cyrano's Avatar
 
Join Date: Jun 2011
Location: Belgium
Posts: 5,246
Default

It just boils down to the question "How much extra coding work is involved to allow a channel to be used as CV?"

If it's a lot, abandon the idea, as it will only be useful for a minority.

If not, why not include it?

The Control mixer will allow to convert MIDI to CV. On a first look, it's limited in number of channels.

My idea is that allowing CV in channels allows a nearly unlimited number of channels and it has instant cross platform ability. The Control mixer probably will never run on Cubase. Channels can be output as wav and used in any DAW.
__________________
In a time of deceit telling the truth is a revolutionary act.
George Orwell
cyrano is offline   Reply With Quote
Old 08-18-2018, 02:26 AM   #75
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Quote:
Originally Posted by ashcat_lt View Post
But we don't always want that! There doesn't have to be a tool for audio and a separate tool for control if we can just have another module that conditions the audio to be a control.
She'll be right, mate. The signal processor module will provide the option to convert from any one type of signal to any other, within reason.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-18-2018, 02:36 AM   #76
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Quote:
Originally Posted by cyrano View Post

The Control mixer will allow to convert MIDI to CV. On a first look, it's limited in number of channels.

My idea is that allowing CV in channels allows a nearly unlimited number of channels and it has instant cross platform ability. The Control mixer probably will never run on Cubase. Channels can be output as wav and used in any DAW.
Each track in REAPER can have 64 audio channels, of which we will use up to 62 for control, so I guess the total number of available channels is limited by the number of tracks your processor can handle. High Res MIDI can have 64 distinct CCs and 16 busses, so 1024 possible MIDI 'channels', plus pitch bend, aftertouch etc.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 08-22-2018, 09:00 PM   #77
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

In the stash, I have updated the LFO module. Audio channels are now first in the list for input and output selection. The other existing modules will be updated will be updated to follow this convention over time.

I have also added a Signal Processor module. This is based on the ReaRack2 MIDI Mixer module, but allows processing of both audio and MIDI signals and conversion between them. This module can also perform the same basic functions as the both the Amplifier and the Audio<>MIDI modules.

The signal processing has the following logic:

"Audio 1 and 2" can be selected as an input or an output. This is reserved for audio sound signal processing. Only one of the two inputs can be selected as Audio 1 and 2, the other must be a control signal (audio channels 3 to 64 or a MIDI signal).

If Audio 1 & 2 is selected as both an input and the output, the audio is treated as audio sound (AC). In this scenario, only the "Mulitply" operation is available and the effect behaves as per the Amplifier module.

If Audio 1 & 2 is selected as an input and the output is a control signal, the volume envelope is extracted from the audio signal and converted to a control signal (DC).

If both inputs are control signals and the output is set to Audio 1 & 2, the output is still a DC signal, but the audio volume output curve is applied to the result. This should (untested) allow the audio control output to be used with parameter modulation with (close to) expected results.

If there is only one input, only the "Maximum" operation is available. Use this scenario for direct conversion between signal types or channels.

Upper and lower level limits are available for both inputs and the output. If an input or the output are selected as Audio 1 & 2, only the upper limit is available for that input or output.

I haven't done much testing yet on this module yet, so let me know how it goes. At some stage I will add a output curve option and some better graphics for the signal indicators.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth

Last edited by Time Waster; 08-23-2018 at 04:28 PM. Reason: Fixed an error in the logic description regarding the "multiply" operation.
Time Waster is offline   Reply With Quote
Old 08-30-2018, 11:12 PM   #78
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

In the stash, ReaRack3, I have updated the Trapezoidal Oscillator module:
- Revised the order of the input/output menus (audio is now first in the list).
- Added Volume modulation. This removes the need for the Amplifier module.

I've also fixed a bug in the LFO module, was no output if using CC 0.

I have removed the Amplifier and Audio<>MIDI modules as they are no longer necessary.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Old 09-01-2018, 08:00 AM   #79
jcjr
Human being with feelings
 
Join Date: Dec 2015
Location: SE TN USA
Posts: 77
Default

Hi Time Waster. I don't expect the following ideas to be "adopted" it is just something I was thinking about recently, for what little it may be worth.

Long ago I did analog synth hardware but have never written any virtual synth code, only various sequencer and effects coding. But I was thinking about doing a particular kind of chorus with cross-modulated LFOs, and was thinking about making the LFOs "similar to 1 volt per octave". The beauty of 1 volt per octave is that you can simply add multiple voltages (either positive or negative) and the sum has chromatic-tuned properties.

Simple example: If there is one CV from the keyboard for pitch and another CV from a LFO, added together and fed into an audio oscillator-- For instance if the LFO is attenuated so that it is +/- 1/12 volt peak to peak, then there will be +/- 1 semitone vibrato regardless what root pitch is determined by the keyboard CV, and it is so simple just adding the two together, even if the keyboard CV might be "unipolar" positive only and the LFO is bipolar both positive and negative. Simple simple simple.

Apologies that the above is so Captain Obvious, just forming groundwork.

So I was thinking maybe a nice dsp oscillator control prototype covering both LFO and audio ranges might be 1.0 units per octave. Furthermore, an input value of 0.0 will set the oscillator to a rate of 1.0 Hz.

Therefore a CV input of -1.0 would have frequency of 0.5 Hz and a CV input of -2.0 would have frequency of 0.25 Hz. Going the other way, CV of 1 = 2 Hz, CV of 2 = 4 Hz, etc.

Given a positive frequency, you can get the CV value: CV = log2(Frequency). It is possible to do a pretty good log2 pretty fast. For instance the CV for 20 kHz would be log2(20000) = 14.288

Going from CV to frequency: Frequency = 2 ^ CV. Which can also be done pretty fast. If you want to go from CV to wave period, just negate CV: WavePeriod = 2 ^ (-1.0 * CV)

A440 would be CV of 8.7814

I believe MIDI note to CV and CV to MIDI note would be straightforward but didn't bother to figure it out yet. All I currently needed was a bipolar-frequency-modulatable LFO, was just letting my mind wander in the process.
jcjr is offline   Reply With Quote
Old 09-02-2018, 08:02 PM   #80
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

Hi jcjr, I think what you are describing is a new protocol for transmitting the control signal, whereas the current efforts have been to use existing protocols, firstly MIDI and now audio channels. The constraints are the number ranges provided by the particular protocol, combinations of 0 to 127 in the case of MIDI and -1 to +1 in the case of audio (of which we have agreed to use only the positive values for control signals). Of course these ranges can be re-interpreted any way you like. Inside ReaRack I convert everything to 0 to 1 regardless and I refer to all control signal values in this manner, regardless of source, except for MIDI notes, which are referred to by MIDI note number (0 to 127).

Rather than having a fixed value per octave, in ReaRack you can generally specify the modulation range over which the full range of the control signal will act, so 0 to 1 can act over, say, 12 semitones, 4 octaves or whatever you specify. I guess this is a different approach from having a fixed range.

For pitch modulation of audio oscillators, the control signal is linear with respect to note value, not frequency. You can set a fixed base note and you could then vary the pitch using the pitch modulation control. However, the Signal Processor module only provides multiplication of (two) control signals (as well as maximum and minimum functions). Interestingly, I had addition and subtraction operations in earlier versions of the signal processor, but I dropped them because I didn't think they were particularly useful. Addition can take the control signal out of range, so it is necessary to hard limit it at a value of 1, which is not really very elegant. I can add these functions back in easily enough though, if you think it would be useful.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:09 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.