The average tempo is 76, with a variation down to 50 and up to 80.
For that we are going to expand the patch we have already.
A transformer has several processing and routing modes determined by it's dropdown menu at the top. To make the cabling and general function of the whole patch clear, we just block all pitch bends after the CC1->CC11 conversion because we want to process pitch bend separately.
Creat a new transformer. Name it "No Pitch". Put it after the existing CC1->CC11 transformer and configure it as shown in the screenshot below:
The selected transformer mode means "Block the events I tell you to block, let everything else through." This way no pitch bend event will reach the sequencer along this route. Our modified CC and everything else goes through.
Tempo Fader
From the local menu select New -> Fader -> Special -> Tempo Control. In the parameter inspector of the tempo fader set its "Style" to "numerical 3", this does not change the function but makes the object smaller. For the input select "PitchBd" because we will control the fader by pitch bend events. Leave everything else unchanged:
General setup
Create two new transformers. Name them "Pitch Exp" and "Pitch Scale". Cable everything as shown in the screenshot below:
I guess you already see what we are going to do? This is parallel processing. On the upper route is our CC convertion and the pitch bend block. The lower route processes the pitch bend and turns it into tempo control. Parallel processing is not good for large patches but in this case it makes function and cabling pretty clear.
Transformer "Pitch Exp"
Configure it as shown in the screenshot below:
Transformer function:
The mode menu setting means "Process only events I specified in the Conditions row (pitch bend on all channels) and block everything else."
In the Conditions status select "Pitchbend" because this is what we want to work with.
Your tempo range 50-76-80 is not linear. If we just set the overall range, the middle position of the PitchWheel would not give a tempo of 76. Therefore we have to bend the curve. This is done by setting the Conditions Data Byte 2 (pitch bend value) to "Exp." and the parameter of the curve like shown in the screenshot.
Transformer "Pitch Scale"
The only thing we have to set here is the scaling of the pitch bend value in the Conditions area. Your requested lowest tempo of 50 bpm is already the lowest possible value for the tempo fader (value 0), so we just have to set the highest value to give us a tempo of 80 bpm:
Transformer function:
The pitch bend value starts at 0 and gets scaled to produce a maximum of 30 to produce a tempo of 80 bpm via the following tempo fader.
You are ready, the patch should work as expected:
- All CC1 on all channels from all MIDI devices are converted to CC11.
- All pitch bend events in the range 0-64-127 (low-mid-high) on all channels from all MIDI devices are converted to tempo 50-76-80 bpm (low-mid-high position of PitchWheels).
- All other events on all channels from all MIDI devices go to the Logic sequencer unchanged.
Since we connected the tempo fader to the sequencer, the tempo changes are recorded while you play:
---
Notes:
You may ask yourself how I calculated those weird parameter values for the pitch curve and scaling. Well, I didn't calculate at all. First I adjusted the scaling in the second transformer to produce tempo 80 at the high position of my PitchWheel. Then I bent the curve in the first transformer to give me 76 bpm in the middle position. This made it necessary to adjust the scaling, then the the curve again and so on. I went back and forth a couple of times until I got what you requested.
Your upper tempo range is very coarse, you have only 4 values between the middle and the high position of the PitchWheel (77, 78, 79 and 80 bpm). Due to the curve of the first transformer the upper part is kinda negative logarithmic, you reach the maximum tempo very late. If you do not want this, you can switch the curve to "Use Map" and modify the values of single events in the graph. This can be done by mouse (ouch...) or by selecting and adjusting the values by the two parameter controllers below the map (lower left corner). The first parameter selects the incoming value (position in the graph), the second parameter sets the outgoing value (height of the bar).
Continuous tempo changes with a grid of 1 bpm are coarse but this depends on your music. If you are not happy with the jumping tempo consider to use tap tempo instead, for example by tapping the tempo constantly on a foot switch. You find a description in the Logic Manual. It does not work perfectly but under certain conditions it is possible to record this way. On the other hand, you can edit and smooth the curve after recording, the recorded notes will follow your changes but of course change the performance. If you record audio simultaneously you may run into problems anyway. You just have to find out what works for you.