Announcement

Collapse
No announcement yet.

BPM/Ms value conversion?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • BPM/Ms value conversion?

    Hey folks!

    I'm guessing the answer is no, but I'mma ask anyway: is there a good way to convert incoming BPM values as outgoing MS values? IE - I would like to use Ableton's BPM value for a MS value on an external delay device, and short of creating a Max For Live device, I'm having a hard time figuring out how to make that happen. Is there a way to do this using the midi value substitution, or some other mechanism?

    Thanks for your insight!

  • #2
    Hi Richard,

    I would use custom scalings for this.
    For instance if your input is values between 0 and 120, the output should be between 0 and 500. Given this you should be able to easily convert BPMs to ms.

    Let me know if that helps.


    Best,
    Cam

    Comment


    • #3
      Camille! That's simple and brilliant! Thank you so much!

      Comment


      • #4
        ...Dang, I'm still not quite getting this. So here's the skinny:

        x32 delay has MS range of 1ms-3000ms, Osculator sees this input as float values from 0-1.

        Ableton has a tempo range of 20bpm (3000ms,) to 999bpm (60ms.)

        I am assigning the time/ms message from x32 (/fx/4/par/02) message to a midi cc (cc88, ch7) and allowing it the full output range of 0-127:
        Screen Shot 2017-07-09 at 4.18.50 PM.jpgScreen Shot 2017-07-09 at 4.22.25 PM.jpg


        IE Ableton 20ms = cc value of 0, 999 = 127

        Where/how would you apply the scaling?
        Last edited by RichardBarley; 07-10-2017, 02:51 AM. Reason: adding info

        Comment


        • #5
          I think you are close.

          First, I would make it so both ranges match to the [60 3000] ms range.
          As the input [1 3000] is larger than the output [60 3000], I first adjust the minimal input value to 0.0197 which roughly correspond to 60 ms, and check "Cap" to reject values outside the input range [0.0197 1.0].

          Now, I want to match the output so that MIDI 0 is 3000ms and MIDI 127 is 60ms. This is done by inverting the output: 127 for output min, and 0 for output max.

          Please note that input values below 0.0197 (60ms) will be dropped (there's no tempo for these values in Live anyway), and because of MIDI control change resolution, input values will only approximately select a BPM that may not exactly be your input delay.

          See screenshot for exact values:

          Screen Shot 2017-07-10 at 12.08.33.png


          Best,
          Cam

          PS: I should mention that Input min is set to 0.02 in the screenshot, but was entered as 0.0197 as calculated. This is because of rounding to the second decimal. The next version of OSCulator will enable setting a custom precision in the Preferences.
          Last edited by camille; 07-10-2017, 01:11 PM.

          Comment

          Working...
          X