Clamp CV signal between note A and note B

This forum is for discussing Reason. Questions, answers, ideas, and opinions... all apply.
Post Reply
Rackman
Posts: 110
Joined: 28 Dec 2019

05 Apr 2020

Imagine you have a sine wave fed into a note cv. By default this will produce notes from the lowest note to the highest (obviously you'd need to trigger the gate of your instrument and use a sample hold on this signal to ensure pitch changes were at the correct moment).

Is there an RE out there that makes it simple to say 'scale this cv signal so the lowest value falls on G3 and the highest value on A5'? I know the Quadralectra CV Suite Line Processor allows you to trim or warp a CV signal, but this is a little slow and clumsy for what I'm after. I'm not talking about quantising to a scale, but clamping the signal so it runs between two notes (that might by octaves apart).

Bjørn Felle
Posts: 172
Joined: 15 Sep 2019

05 Apr 2020

I don't know if there is a RE which will specifically do this, but you could probably do it using an envelope generator rather than an LFO as the source. For example you could load Europa with an init patch, load a sine wave preset into envelope one, and use the mod matrix to send the envelope to CV out 1 with 100% amount. Make sure the envelope is looping and not key triggered, and then once the CV out is connected to your note in, you can adjust down the amount of the modulation to narrow the range of notes it will trigger, and adjust the peak and trough of the sine wave envelope for finer control over the lower and upper boundaries. There might be an easier way, including a RE possibly, but this would be where I would start personally.
Image

Sterioevo
Posts: 407
Joined: 02 Apr 2015

05 Apr 2020

Revolt. Bit hard to get hold of though.
Screen Shot 2020-04-06 at 12.12.54 am.png
Screen Shot 2020-04-06 at 12.12.54 am.png (577.2 KiB) Viewed 819 times
CV Line Processor. There are ways.

Sterioevo
Posts: 407
Joined: 02 Apr 2015

05 Apr 2020

After rereading I am not entirely sure I understand. CV and Note CV are 2 different things, difference being that note CV is time related to the Gate signal. Would it be a better solution to use a matrix for example rather than a sine wave, and transform this - players maybe?

Bjørn Felle
Posts: 172
Joined: 15 Sep 2019

05 Apr 2020

Sterioevo wrote:
05 Apr 2020
After rereading I am not entirely sure I understand. CV and Note CV are 2 different things, difference being that note CV is time related to the Gate signal. Would it be a better solution to use a matrix for example rather than a sine wave, and transform this - players maybe?
I think that's why OP said "obviously you'd need to trigger the gate of your instrument and use a sample hold on this signal to ensure pitch changes were at the correct moment", meaning that the note CV would just vary the note being played, and a sustained gate signal would mean that the device actually played a sound.

That RE does look like the thing, with the min/max limits knobs potentially working to scale the CV signal to the correct range. According to this thread there are a number of other REs which individually provide the functions of Revolt, so one of those might do the job.
Image

User avatar
orthodox
RE Developer
Posts: 2286
Joined: 22 Jan 2015
Location: 55°09'24.5"N 37°27'41.4"E

05 Apr 2020

Rackman wrote:
05 Apr 2020
Imagine you have a sine wave fed into a note cv. By default this will produce notes from the lowest note to the highest (obviously you'd need to trigger the gate of your instrument and use a sample hold on this signal to ensure pitch changes were at the correct moment).

Is there an RE out there that makes it simple to say 'scale this cv signal so the lowest value falls on G3 and the highest value on A5'? I know the Quadralectra CV Suite Line Processor allows you to trim or warp a CV signal, but this is a little slow and clumsy for what I'm after. I'm not talking about quantising to a scale, but clamping the signal so it runs between two notes (that might by octaves apart).
I made a simple Thor patch that seems to do what you need. Rotary1 controls the low note, Rotary2 controls the high note. Note CV is at Thor CV1 output.
note-cv.zip
note-cv.reason (for Reason 10.4+)
(30.33 KiB) Downloaded 43 times

Rackman
Posts: 110
Joined: 28 Dec 2019

05 Apr 2020

Thanks for your replies.

Quadralectra CV Suite Line Processor basically lets you do the same thing as the outlined functionality in Revolt, and in the Thor example. But because it doesn't understand the value as notes, it uses CV values of -1–1 which means it's fiddly mapping it to notes, especially when changing it on the fly. There are a lot of interesting possibilities with generating melody using LFO signals and a quantiser, but this is the missing piece to make it usable.

I'm looking for something that is note-specific. Seems like it would be a simple utility. It's really just mapping note names to CV values and mapping the input range across the clamped range. It doesn't need to do any quantising itself.

User avatar
orthodox
RE Developer
Posts: 2286
Joined: 22 Jan 2015
Location: 55°09'24.5"N 37°27'41.4"E

05 Apr 2020

Now it even plays the notes:
note-cv.zip
(63.77 KiB) Downloaded 64 times

Bjørn Felle
Posts: 172
Joined: 15 Sep 2019

05 Apr 2020

Rackman wrote:
05 Apr 2020
Thanks for your replies.

Quadralectra CV Suite Line Processor basically lets you do the same thing as the outlined functionality in Revolt, and in the Thor example. But because it doesn't understand the value as notes, it uses CV values of -1–1 which means it's fiddly mapping it to notes, especially when changing it on the fly. There are a lot of interesting possibilities with generating melody using LFO signals and a quantiser, but this is the missing piece to make it usable.

I'm looking for something that is note-specific. Seems like it would be a simple utility. It's really just mapping note names to CV values and mapping the input range across the clamped range. It doesn't need to do any quantising itself.
hmm yeah I guess any CV tool is going to use the CV range of -1 to 1, or converted values 0-127 or (-63) to 64. If you're looking for a RE which is specifically designed for this purpose then I think you might be out of luck unless I've been searching using the wrong terms. Is it possible a VST might be able to do it? I don't know how CV applies outside of the Reason ecosystem if at all as I don't use any other DAW software. I realise VSTs only support audio IO in Reason, but you can convert between CV and audio if a suitable VST exists.
Image

Arjanders
Posts: 131
Joined: 30 May 2019

05 Apr 2020

Note filter in the loopcracker suite?
https://www.reasonstudios.com/shop/bund ... ker-suite/

Rackman
Posts: 110
Joined: 28 Dec 2019

05 Apr 2020

@Bjørn Felle I'm waiting for the VCV plugin to be released which will hopefully give access to a wealth of great utilities like the one I'm after in Reason, but unfortunately the way Reason scales CV uses a different set of values, so will need some kind of transformer between the two.

@Arjanders I did look at that, but it seems to be a case that it rejects notes outside the low and high rather than mappy a signal between the low and high.

Sterioevo
Posts: 407
Joined: 02 Apr 2015

05 Apr 2020

I made a combinator that uses a LFO to transpose (via Selig Noteview Player) an existing note rather than using the LFO as the Note CV, and scaling this LFO with the CV Suite. Some interesting ARP flavoured results. See images and attached combinator.

I added a few embellishments in the combinator as compared to the images.
Screen Shot 2020-04-06 at 10.40.14 am.png
Screen Shot 2020-04-06 at 10.40.14 am.png (702.32 KiB) Viewed 691 times
Screen Shot 2020-04-06 at 10.40.21 am.png
Screen Shot 2020-04-06 at 10.40.21 am.png (718.49 KiB) Viewed 691 times
Attachments
LFO transposer.cmb.zip
(3.45 KiB) Downloaded 47 times

Sterioevo
Posts: 407
Joined: 02 Apr 2015

05 Apr 2020

You still need to tune the upper and lower limits to your desired notes, however it would be possible to create an array of values and scroll through these using Thor or some other RE's, rather than manually changing the Upper/Lower parameters. I am getting some nice usable musical results. It is an interesting idea. The rate of the LFO and the LFO shape have a big impact on the resultant notes, modulating these adds some variety.

User avatar
selig
RE Developer
Posts: 11685
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

06 Apr 2020

Sterioevo wrote:
05 Apr 2020
After rereading I am not entirely sure I understand. CV and Note CV are 2 different things, difference being that note CV is time related to the Gate signal. Would it be a better solution to use a matrix for example rather than a sine wave, and transform this - players maybe?
Note CV isn't tied to Gate CV. There is ALWAYS a note in Reason synths. Try this - connect ONLY a gate CV to any Reason synth and you'll hear E3/64 on the synth. This demonstrates the default note value in Reason. Now connect a note CV and send a new note. After the new note CV is received, it is "held" indefinitely - any new gate will simply trigger that same note until a new note CV is received.
[EDIT - I think I may have misspoke - to hear a NEW CV value the gate must be triggered, so you were correct about how note CV is tied to Gate CV! New notes WILL be received via CV if you hold the gate OPEN using a static CV value.]
Selig Audio, LLC

User avatar
selig
RE Developer
Posts: 11685
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

06 Apr 2020

To be clear, you are NOT wanting note "clamping" (clipping"), which would hold a the notes at each extreme until the value falls back within the desired range? It sounds like you want to GENERATE a sine or triangle that falls within the desired range with no clipping, right?

[EDIT, of course Thor makes quick work of this, plus using NoteView to set the ranges. I used Button 1 as an "always on" gate, Rotary 1 for offset and Rotary 2 for depth/range. LFO 2 supplies the LFO - set to a square wave to see the full range, click Button 1 to clear/reset the display. With an offset of 80 and a Range of 26 I get the "G3 to A5" range as specified by the OP.]
Selig Audio, LLC

Arjanders
Posts: 131
Joined: 30 May 2019

06 Apr 2020

Rackman wrote:
05 Apr 2020
@Bjørn Felle I'm waiting for the VCV plugin to be released which will hopefully give access to a wealth of great utilities like the one I'm after in Reason, but unfortunately the way Reason scales CV uses a different set of values, so will need some kind of transformer between the two.

@Arjanders I did look at that, but it seems to be a case that it rejects notes outside the low and high rather than mappy a signal between the low and high.

The PSQ-1684 might help.
The "override in" will be the sample and hold for the LFO.
The gate you have to route into the PSQ and not use the sequencer.
With the Quantiser you are able to set the range, offset and transpose.
You can even disable some notes.
All the values will be nicely placed in the desired range.

Rackman
Posts: 110
Joined: 28 Dec 2019

06 Apr 2020

selig wrote:
06 Apr 2020
To be clear, you are NOT wanting note "clamping" (clipping"), which would hold a the notes at each extreme until the value falls back within the desired range? It sounds like you want to GENERATE a sine or triangle that falls within the desired range with no clipping, right?

[EDIT, of course Thor makes quick work of this, plus using NoteView to set the ranges. I used Button 1 as an "always on" gate, Rotary 1 for offset and Rotary 2 for depth/range. LFO 2 supplies the LFO - set to a square wave to see the full range, click Button 1 to clear/reset the display. With an offset of 80 and a Range of 26 I get the "G3 to A5" range as specified by the OP.]
Yeah. Not sure what the correct terminology would be. Definitely not clipping.

I guess it's scaling a signal to fall within a different zone, which is definitely attenuating the signal (given that the full range of a CV signal would cover the all the notes), but also offsetting the signal so that it's bottom and top fall in the right places.

Sounds like this would be a nice addition to your Note View player maybe, or perhaps a companion player. Guess the only slight complexity is which algorithm to use in quantising the CV signal to the notes. You could even make the notes toggleable to allow for completely custom notes to map to. That would be a really handy device.

User avatar
selig
RE Developer
Posts: 11685
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

06 Apr 2020

Rackman wrote:
06 Apr 2020
selig wrote:
06 Apr 2020
To be clear, you are NOT wanting note "clamping" (clipping"), which would hold a the notes at each extreme until the value falls back within the desired range? It sounds like you want to GENERATE a sine or triangle that falls within the desired range with no clipping, right?

[EDIT, of course Thor makes quick work of this, plus using NoteView to set the ranges. I used Button 1 as an "always on" gate, Rotary 1 for offset and Rotary 2 for depth/range. LFO 2 supplies the LFO - set to a square wave to see the full range, click Button 1 to clear/reset the display. With an offset of 80 and a Range of 26 I get the "G3 to A5" range as specified by the OP.]
Yeah. Not sure what the correct terminology would be. Definitely not clipping.

I guess it's scaling a signal to fall within a different zone, which is definitely attenuating the signal (given that the full range of a CV signal would cover the all the notes), but also offsetting the signal so that it's bottom and top fall in the right places.

Sounds like this would be a nice addition to your Note View player maybe, or perhaps a companion player. Guess the only slight complexity is which algorithm to use in quantising the CV signal to the notes. You could even make the notes toggleable to allow for completely custom notes to map to. That would be a really handy device.
Probably better as a companion as this is different enough in scope from Note View (which still has some feature requests I need to implement). It could be done as a Player or a simple CV device. It could just manipulate a CV signal, or generate one. Lots of jumping off points that all achieve the same results. But I'd not want it to JUST generate or manipulate CV Note sweeps, as this would be a real "one trick pony", with it's "one trick" being something you'd not use on a regular basis IMO. It would be better if it were more flexible, offering some features that would be more commonly useful IMO. But I digress…

The thing you need to be able to do, that even the Thor example I mentioned can't do, is something the old K200 easily did. That is, you're talking ditching the basic modulation concepts of "amount" and "offset", which are how things work in Thor and most other devices, and using a different approach. And that approach is to define the modulation "minimum" and "maximum" values rather than "amount" and "offset". Same results, but different interfaces/approaches.

For example, traditionally you would set the amount (width of modulation) to equal the distance between the highest and lowest note. This requires you to do some math. Let's say we use your example of G3 (67) to A5 (93), which is a difference of 26 semitones. Your amount must thus be set to give you a 26 semitone "swing", 13 positive and 13 negative. And as the default CV in Reason for Notes is E3 (64), and the center point of your range is G#4 (80), (which is G3 (67) + 13 were 13 is half the range of 26), you need to offset by + 16 semitones (center point - default note or G#4 (80) - E3 (64) = 16. Lots of math here…

But using the other approach, your two available parameters are "low value" and "high value", which you already know and so all you have to do is match those values to those parameters. The rest is calculated internally, based on the value you're modulating - in this case semitones. That's it, you're done! This something that was easily done with the K2000 (where I first saw it in action), and while you don't ALWAYS need to set your modulation based on high and low values, there are cases when this approach is absolutely ideal, this case being an excellent example. Ideally you'd be able to switch between these two approaches on a slot by slot basis in a modulation matrix.
Selig Audio, LLC

User avatar
orthodox
RE Developer
Posts: 2286
Joined: 22 Jan 2015
Location: 55°09'24.5"N 37°27'41.4"E

06 Apr 2020

Now I calibrated it as good as I could. It oscillates precisely between midi note numbers set by Thor Rotary1 and Rotary2 (only if they are between 20 and 100, that's a good range). The rate is set with Pulsar. Run the Matrix to hear notes.
note-cv.zip
(74.06 KiB) Downloaded 55 times

Rackman
Posts: 110
Joined: 28 Dec 2019

07 Apr 2020

@selig I'd certainly use it on a regular basis.

I think having a device (or player with CV ins) that did the following would be a great and interesting addition:

- accepts an arbitrary CV signal.
- accepts a gate CV signal
- every time it receives the gate signal it samples the CV signal and emits the value alongside forwarding the gate CV
- displays a full keyboard
- allows a low and high note to be toggled which act as the low value and high value for the CV signal
- by default, all notes between these notes are included.
- the cv signal is scaled so that +1 hits the high note and -1 hits the low note, and all other values overlap notes in between.
- notes act as toggle switches so that notes can be removed (or added) to the possible notes between the high and low notes, allowing a completely custom set of notes to be defined.
- perhaps it could also offer quantising to predefined scales too (so long as it supported custom notes across the keyboard).

There would be lots of other possibilities here - allowing cv control of the high and low notes etc. Maybe even including a buffer to capture sequences, but that would be icing.

Not including gate generation or LFO generation would make it really modular (for example you could use Euclid for gate and your favourite LFO for CV).

I think it would be a great RE. Simple yes, but it would add a wealth of possibilities.
selig wrote:
06 Apr 2020
Rackman wrote:
06 Apr 2020


Yeah. Not sure what the correct terminology would be. Definitely not clipping.

I guess it's scaling a signal to fall within a different zone, which is definitely attenuating the signal (given that the full range of a CV signal would cover the all the notes), but also offsetting the signal so that it's bottom and top fall in the right places.

Sounds like this would be a nice addition to your Note View player maybe, or perhaps a companion player. Guess the only slight complexity is which algorithm to use in quantising the CV signal to the notes. You could even make the notes toggleable to allow for completely custom notes to map to. That would be a really handy device.
Probably better as a companion as this is different enough in scope from Note View (which still has some feature requests I need to implement). It could be done as a Player or a simple CV device. It could just manipulate a CV signal, or generate one. Lots of jumping off points that all achieve the same results. But I'd not want it to JUST generate or manipulate CV Note sweeps, as this would be a real "one trick pony", with it's "one trick" being something you'd not use on a regular basis IMO. It would be better if it were more flexible, offering some features that would be more commonly useful IMO. But I digress…

The thing you need to be able to do, that even the Thor example I mentioned can't do, is something the old K200 easily did. That is, you're talking ditching the basic modulation concepts of "amount" and "offset", which are how things work in Thor and most other devices, and using a different approach. And that approach is to define the modulation "minimum" and "maximum" values rather than "amount" and "offset". Same results, but different interfaces/approaches.

For example, traditionally you would set the amount (width of modulation) to equal the distance between the highest and lowest note. This requires you to do some math. Let's say we use your example of G3 (67) to A5 (93), which is a difference of 26 semitones. Your amount must thus be set to give you a 26 semitone "swing", 13 positive and 13 negative. And as the default CV in Reason for Notes is E3 (64), and the center point of your range is G#4 (80), (which is G3 (67) + 13 were 13 is half the range of 26), you need to offset by + 16 semitones (center point - default note or G#4 (80) - E3 (64) = 16. Lots of math here…

But using the other approach, your two available parameters are "low value" and "high value", which you already know and so all you have to do is match those values to those parameters. The rest is calculated internally, based on the value you're modulating - in this case semitones. That's it, you're done! This something that was easily done with the K2000 (where I first saw it in action), and while you don't ALWAYS need to set your modulation based on high and low values, there are cases when this approach is absolutely ideal, this case being an excellent example. Ideally you'd be able to switch between these two approaches on a slot by slot basis in a modulation matrix.

Sterioevo
Posts: 407
Joined: 02 Apr 2015

07 Apr 2020

orthodox wrote:
06 Apr 2020
Now I calibrated it as good as I could. It oscillates precisely between midi note numbers set by Thor Rotary1 and Rotary2 (only if they are between 20 and 100, that's a good range). The rate is set with Pulsar. Run the Matrix to hear notes.

note-cv.zip
Legato and portamento add another element, especially when you open the amp envelope release and slow down the resolution.

A LFO transform/make it happen note thing is required by the sounds of it.

User avatar
selig
RE Developer
Posts: 11685
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

07 Apr 2020

Is the "use case" simply to generate a series of rising/falling notes within a certain range/scale? Sound like you're describing a variation on an arpeggiator in up/down mode, followed by Scales & Chords, no?

This sounds like a device that may belong in EnlightenSpeed's collection?
Rackman wrote:
07 Apr 2020
@selig I'd certainly use it on a regular basis.

I think having a device (or player with CV ins) that did the following would be a great and interesting addition:

- accepts an arbitrary CV signal.
- accepts a gate CV signal
- every time it receives the gate signal it samples the CV signal and emits the value alongside forwarding the gate CV
- displays a full keyboard
- allows a low and high note to be toggled which act as the low value and high value for the CV signal
- by default, all notes between these notes are included.
- the cv signal is scaled so that +1 hits the high note and -1 hits the low note, and all other values overlap notes in between.
- notes act as toggle switches so that notes can be removed (or added) to the possible notes between the high and low notes, allowing a completely custom set of notes to be defined.
- perhaps it could also offer quantising to predefined scales too (so long as it supported custom notes across the keyboard).

There would be lots of other possibilities here - allowing cv control of the high and low notes etc. Maybe even including a buffer to capture sequences, but that would be icing.

Not including gate generation or LFO generation would make it really modular (for example you could use Euclid for gate and your favourite LFO for CV).

I think it would be a great RE. Simple yes, but it would add a wealth of possibilities.
Selig Audio, LLC

Post Reply
  • Information
  • Who is online

    Users browsing this forum: Trendiction [Bot] and 17 guests