Need a Little Help: Creating Asymmetric Slopes Using Pitchbend

This forum is for discussing Reason. Questions, answers, ideas, and opinions... all apply.
Post Reply
User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

14 Feb 2015

I'm not sure how to proceed with this because I'm having to dabble in mapping MIDI codecs to get my template to function the way I need it to. I am not sure if this requires mapping in a codec/map pair, perhaps someone would be able to tell me.

I want to create an asymmetrical slope with different rise over run depending on which side of value 64 you're on. The signal is intended to be supplied to the tempo speed in the transport bar and needs to be able to yield a minimum value of 30, a midpoint that rests at 120, and a maximum value of 480 in terms of tempo.

To get the fine enough resolution I will need to make this possible, I would have to use pitchbend as a signal source and use an EMI to loop it.

Is this specific "double slope" possible to map in a MIDI codec/map pair itself? Or is my pitchbend into EMI loopback idea the only way to create this asymmetrical graph?
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

User avatar
Olivier
Moderator
Posts: 1248
Joined: 15 Jan 2015
Location: Amsterdam

14 Feb 2015

Ok, i think i got that working by using several cv mutants, a spider CV and an EMI :P

If you redirect the midi data from the emi back into reason, and map that pitch bend signal onto the tempo it should sit at 120 in neutral, 30 at minimum and 480 at maximum.

Other then using CV mutant or edit a codec i have no idea how to make that asymmetrical slope.
Attachments
Asymmetrical_Pitch_Bend_slope_using_CV_Mutant_[eauhm].zip
(2.68 KiB) Downloaded 35 times
:reason: V9 | i7 5930 | Motu 828 MK3 | Win 10

User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

14 Feb 2015

Is it possible to replace cv mutant with stock kit? What is it doing that stock devices can't.
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

User avatar
Olivier
Moderator
Posts: 1248
Joined: 15 Jan 2015
Location: Amsterdam

14 Feb 2015

I know of no stock devices that can do this kind of CV juggling.
But let me think about it...
If i can find a way to get get only halve of a cv signal ( for example, only the positive part ) then i can possibly do it.
:reason: V9 | i7 5930 | Motu 828 MK3 | Win 10

User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

14 Feb 2015

If you mean zero or greater you can use the BV512 gate sockets to trim off negative values. Otherwise it's probably beyond the abilities of the basic tools.
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

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

14 Feb 2015

You can try to experiment with unipolar/bipolar setting of Combi jacks. In unipolar mode it should have two slopes which can be converted to what you need.

User avatar
Olivier
Moderator
Posts: 1248
Joined: 15 Jan 2015
Location: Amsterdam

14 Feb 2015

I made one with stock devices.. took a bit of time to get my head around it.

Same as with my previous attempt, redirect the midi signal from the emi back into reason and map that pitch bend onto the tempo.
With pitch wheel at 0 the tempo should be at 120, minimal 30, maximal 480.
Its a bit klunky, but it seems to work :P

[how its done]

- Thor generates 2 CV signals based on Pitch bend input. They go out CV3 and 4. Both are scaled differently. To fine tune i use 2 pitch bend signals for both because 1-127 doesn't give enough accuracy.
- From both signals i get half the signal by using the BV512. When moving pitch bend up, only cv3 outputs positive CV.. which goes through the BV512. When moving pitch bend down only CV4 outputs positive CV.
- Then invert the smaller signal originating from cv3 using thor via cv1
- Add the signals plus an additional offset from CV2 together using a spider
- Send that to control the EMI pitch bend.
Attachments
Asymmetrical_Pitch_Bend_slope_[eauhm].zip
(2.08 KiB) Downloaded 39 times
:reason: V9 | i7 5930 | Motu 828 MK3 | Win 10

User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

14 Feb 2015

Excellent, I'll look at it when I get home tonight. Where can I find a comprehensive reference for legacy midi codecs and the new lua codec standards? What I'm trying to do is use codec mappings to rig up a cheat that doesn't need an EMI.

What I plan to do is use two single channel codecs that both respond to the same control change but lock to separate devices. I want tempo and pitchbend to happen from the same rotary control.

If I could just understand why pitchbend is mapped the way it is in the generic "other" midi controller files, I'd be halfway to at least knowing if it's possible to achieve the tempo curve by fiddling with the arithmetic used for pitch bend in those codecs:

y * 128 + x

Can I build slope one with x and slope 2 with y, basically drawing two lines that begin to add together after knob value 64?
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

User avatar
Olivier
Moderator
Posts: 1248
Joined: 15 Jan 2015
Location: Amsterdam

14 Feb 2015

Ehhhmmmmm.... I'm maybe completely lost, but lets see :)

If i understand your question correctly, you want to be able to map a physical control to the tempo in such a way that when it sits at neutral the tempo is 120, with max at 480, with minimal at 30. At the same time you want to control pitch bend to rise or fall with the tempo.

If thats correct then there's a few things to consider.

"Normal" midi signals go from 0 to 127. Its 7 bits in resolution.
Pitch bend however goes from -8192 through 0 to +8192. Its 14bit. So it doesn't sit at 64 in the middle.
If you use any midi control signal to work this, you would have 64 steps to cover 120 to 480.. and 64 to handle 120 to 30. This would get very "steppy". So using pitch bend with its 16384 values is smart.

To the codec hacking... If you want pitch bend and tempo change to happen from the same rotary control, this will probably only work smoothly if you do this from a 14bit rotary control. If you have those, great! If you don't then you can't really hack that kind of resolution into a codec.
To do normal pitch bends and tempo changes, you should indeed as you say have two control devices in Reason because you cannot control 2 Reason objects at the same time from 1 control.

How to hack this into a codec ? i don't know.

I think however i can solve all this without hacking codecs. Apart from rerouting MIDI in/out reason ;)

Assuming you have a (extra) pitch bend wheel at your disposal, my suggestion would be to use that as the input for both effects. Its the smoothest midi signal you can get into Reason. Why do i say extra, because in my solution pitch bend is always stuck to the tempo. Wich could be something you don't want live. An extra pitch bend wheel would solve that.

My combi then does the altering of a 14bit pitch bend curve in such a way that it fits the tempo's you need. (cv internal resolution is a lot higher then 128 steps *need confirmation, but i'm pretty sure). At the same time you can use that same CV signal to do pitch bends wherever you need them by routing CV intelligently.

I hope this helps :P

:reason: V9 | i7 5930 | Motu 828 MK3 | Win 10

User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

14 Feb 2015

Actually, if you use multiple codecs and map the values correctly, you can turn the entire rack into a combinator type of thing where controls spider out to device locks via midi assignments in the dummy control surfaces.
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

User avatar
Olivier
Moderator
Posts: 1248
Joined: 15 Jan 2015
Location: Amsterdam

14 Feb 2015

I'm sure anything can be done using the right codecs.
When i read your post i was intrigued if i could solve what i thought to be your question inside Reason. ^^
:reason: V9 | i7 5930 | Motu 828 MK3 | Win 10

User avatar
Raveshaper
Posts: 1089
Joined: 16 Jan 2015

17 Feb 2015

Thanks very much, eauhm. Works like a charm.

I am using pitchbend and the asymmetrical curve together to create a sort of faux vinyl playback effect for the Dr. OctoRex device. Default behavior of the rex is to trigger slices at normal playback speed at points in time that are relative to when the start of the loop was triggered. This causes gaps in the audio and undesired behavior. With a pitch bend range of 24 the playback speed ranges from 1/4x speed to 4x speed, so with this workaround I'm able to eliminate gaps and perfectly pitch/stretch the rex to the tempo from 30 BPM to 480 BPM with a native sample BPM of 120.
:reason: :ignition: :re: :refillpacker: Enhanced by DataBridge v5

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 37 guests