Is it possible to thin data or add a delay between CC messages in streams ?

Home Forums General Programming Is it possible to thin data or add a delay between CC messages in streams ?

This topic contains 3 replies, has 3 voices, and was last updated by Puppeteer Puppeteer 6 days, 9 hours ago.

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #85173
    zmix
    zmix
    Participant
    • Topics: 8
    • Replies: 50
    • Total: 58

    I’m working on a panel for a MIDI controllable guitar pedal (the “Thermae” by Chase Bliss Audio), and having issues where it will stop responding to CC data. The designer suggested that it’s possible the pedal’s MIDI buffer is overflowing and suggested I insert a delay between messages. I can see that there is a provision for doing this when sending SYSEX data, but is it also possible when sending CC data?

    #85175

    daimondamps
    Participant
    • Topics: 7
    • Replies: 67
    • Total: 74

    You could use a Timer and a table of CC messages. When timer reach max count send the message and restart the timer. Add + 1 to table counter.

    function timerStart()
    
    	timer:setCallback (4, queryNextParametersFromList)
    	timer:stopTimer(4)
    	timer:startTimer(4,timerQueryTime)
    	console("TimerStart")
    end
    function queryNextParametersFromList()
    
    	local isConnectedBtn=panel:getModulatorByName("StartComm"):getValue()
    
    	if isConnectedBtn ==1 and isMessageProcessed==true then
    
    		
    		queryCounterUpdate()
    		sendMidiSysex(queryList[queryIndex])
    		
    
    	end 
    end
    function queryCounterUpdate()
    
    	if queryIndex<queryListSize then
    
    		queryIndex=queryIndex+1
    
    	else 
    		
    		queryIndex = 1
    
    	end
    
    end
    • This reply was modified 2 weeks, 2 days ago by  daimondamps.
    #85183
    zmix
    zmix
    Participant
    • Topics: 8
    • Replies: 50
    • Total: 58

    Excellent advice, thank you!!

    #85222
    Puppeteer
    Puppeteer
    Participant
    • Topics: 15
    • Replies: 180
    • Total: 195
    • ★★

    I had to do a similar thing for my Jupiter 8 plugin.

    What I ended up doing was essentially not having the controls send MIDI directly.

    I set up a timer that sampled all parameters at a set rate. If they had changed since the last sample, I sent out an update.

    It’s important to implement the timer in a callback otherwise the panel will be frozen until the timer expires.

    The Puppeteer
    http://godlike.com.au

Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.

There is currently 1 user and 13 guests online
Synthman
Forum Statistics
Threads: 2,152, Posts: 15,167, Members: 13,864
Most users ever online was 5 on March 28, 2018 6:11 pm
Do NOT follow this link or you will be banned from the site!