Audiobus: Use your music apps together.

What is Audiobus?Audiobus is an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller.

Download on the App Store

Audiobus is the app that makes the rest of your setup better.

Perforator -> CC#A CC#B output rate

edited August 2019 in Support and Feedback

Hi Guys / @brambos ,

I'm using the CC output from the most excellent Perforator to control parms on my Digitakt. Unfortunately the Digitakt becomes unresponsive as there are too many incoming CC's from Perforator for it to handle. I did some quick logging via mosaic and it seems there are 100's / 1,000s being sent every 1s.

Does anyone know if there an existing script in mosaic to reduce the rate/resolution of midi data? Or maybe this could be a setting in Perforator itself.

Any other ideas on how to reduce the number of CC's sent are welcome!

Cheers!
Andy.

Comments

  • 1000s per second, really? I need to check but off the top if my head it should only be a few dozen max... I’ll have a look :o

  • I just did a video to demo the issue, but can't upload it :(
    It should be straight forward to reproduce though.

  • @kryten42 said:
    I just did a video to demo the issue, but can't upload it :(
    It should be straight forward to reproduce though.

    One could write a program of just a few lines that would reduce the number of cc messages. You could specify minimum time between events. And only let events through when enough time has elapsed since the last one that passed out.

    Pseudocode:

    On midiccreceived:
    If timeSinceLastSent > minTime
    sendmidicc
    TimeSinceLastSent = 0
    Else
    -donothing

  • @espiegel123 said:

    @kryten42 said:
    I just did a video to demo the issue, but can't upload it :(
    It should be straight forward to reproduce though.

    One could write a program of just a few lines that would reduce the number of cc messages. You could specify minimum time between events. And only let events through when enough time has elapsed since the last one that passed out.

    Pseudocode:

    On midiccreceived:
    If timeSinceLastSent > minTime
    sendmidicc
    TimeSinceLastSent = 0
    Else
    -

    A better solution is to only send on cc change instead of flooding the midi bus with duplicate messages.

  • _ki_ki
    edited August 2019

    @kryten42 I didn't try, but i assume that the Sample & Hold script for Mozaic can downsample the CCs to a different rate.

  • @MonkeyDrummer said:

    @espiegel123 said:

    @kryten42 said:
    I just did a video to demo the issue, but can't upload it :(
    It should be straight forward to reproduce though.

    One could write a program of just a few lines that would reduce the number of cc messages. You could specify minimum time between events. And only let events through when enough time has elapsed since the last one that passed out.

    Pseudocode:

    On midiccreceived:
    If timeSinceLastSent > minTime
    sendmidicc
    TimeSinceLastSent = 0
    Else
    -

    A better solution is to only send on cc change instead of flooding the midi bus with duplicate messages.

    +1

  • _ki_ki
    edited August 2019

    @brambos and @kryten42
    In my tests its 102 CCs from Perforator per second, which is about one CC every 9.8 msec. The number also depends on the host bpm, with 240bpm its 120 CC, one every 8.4msec. Perforator sends 2 CCs at a time.

    As a comparison, Rozeta LFO sends 32 CC per second (one about every 3q.2msec) per enabled LFO, independend of Host BPM.

    @FredAntonCorvest
    FAC Evolver (only one of the 4 CCs enabled) sends 128 (every 7.7msec) with 120bpm and 257 (every 3.8msec) for 240 bpm - this could be problematic if feeding some synth, but allows for tight volume tracking. Maybe add a setting for the update rate.

    .

    In the times when i tested around scripting a Midi CC LFO with streambyter, sending faster than 15msec was problematic to receive for some synth (ie Zeeon) - they started to glitch when overrun with CCs.

  • Thanks for all the suggestions gents.
    i've implemented @MonkeyDrummer solution for now of only sending on cc change .

  • _ki_ki
    edited August 2019

    Here my quick and dirty Mozaic measurement script:

    @OnLoad
      ShowLayout 0
      LabelPads {Quick & Dirty CC Rate Measure}
      FillArray ccCount,0, 128
      SetTimerInterval 1000
      StartTimer 
    @End
    
    @OnTimer
      ccReceived = 0
      ccMax   = 0
      ccMaxId = 0
      ccNum   = 0
      for c=0 to 127
        if ccCount[c] <> 0
          ccReceived = ccReceived + ccCount[c]
          Inc ccNum
          if ccMax < ccCount[c]
            ccMax = ccCount[c]
            ccMaxId = c        
          endif
        endif
      endfor
    
      ccRate = 0
      if ccMax > 0
        ccRate = 1000 / ccMax
      endif
    
      LabelKnobs {MAX: },ccMax,{ for CC-},ccMaxId,{  ≈ 1 per },ccRate,{ ms}
      LabelXY {Total }, ccReceived,{ CCs for },ccNum,{ IDs}
    
      FillArray ccCount,0, 128
    @End
    
    @OnMidiCC
      Inc ccCount[MIDIByte2]
    @End 
    

    The script handles multi CC-Ids output by the test-subject.

  • Hi @brambos - Did you have time to investigate this? Did you find out if Perforator outputting too many midi msgs? thanks!

  • edited September 2019

    To be honest I didn't (also got buried in other stuff).. but a few posts up it was already established that Perforator doesn't send thousands of CCs per second and actually sends fewer messages than Rozeta and other apps. So something else is likely going wrong.

    Is there perhaps a MIDI loop somewhere in the setup?

  • edited September 2019

    Ok no worries, thanks for the honest response, I (and many others) Appreciate Moziac getting some more development in the form of sysex support amongst other things.

    Although I think ki's tests showed it was the other way round:
    "Rozeta LFO sends 32 CC per second"
    "In my tests its 102 CCs from Perforator per second"

    I'll test it again in simple set up see how it behaves, I guess there could have been a midi loop in my original issue.

    Thanks again, #1 for customer service with a smile

    @brambos said:
    To be honest I didn't (also got buried in other stuff).. but a few posts up it was already established that Perforator doesn't send thousands of CCs per second and actually sends fewer messages than Rozeta and other apps. So something else is likely going wrong.

    Is there perhaps a MIDI loop somewhere in the setup?

  • @kryten42 said:
    Ok no worries, thanks for the honest response, I (and many others) Appreciate Moziac getting some more development in the form of sysex support amongst other things.

    Although I think ki tests showed it was the other way round:
    _"Rozeta LFO sends 32 CC per second"

    "In my tests its 102 CCs from Perforator per second"

    I'll test it again in simple set up see how it behaves, I guess there could have been a midi loop in my original issue.

    Thanks again, #1 for customer service with a smile

    @brambos said:
    To be honest I didn't (also got buried in other stuff).. but a few posts up it was already established that Perforator doesn't send thousands of CCs per second and actually sends fewer messages than Rozeta and other apps. So something else is likely going wrong.

    Is there perhaps a MIDI loop somewhere in the setup?

    I could tweak the MIDI output mechanism to only send MIDI CC when the value has actually changed (I did the same thing for Rozeta LFO some time ago). That should already make a difference :)

  • Yeaaah :) that sounds a quick and already tested fix. cool :sunglasses:

Sign In or Register to comment.