Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

runSync(func, id)

Description

Executes a function in the processor thread. With runSync you can invoke a function of the processor thread by an operation in the controller thread. For example, by calling runSync in a parameter change callback you can invoke an event function like playNotereleaseVoice, controlChange, etc. The callback that called runSync is not stopped and continues its execution. The specified function will be exectued in the next audio block. If id is specified, another call to runSync with the same ID overwrites the previous function, if it has not been executed yet. Only the last function with the same ID will be executed in the next audio block.

Available in: Processor.

Arguments

funcThe name of the function to be called.function
idIf this is specified, another call to runSync with the same ID overwrites the previous function, if it has not been executed yet. Only the last function with the same ID will be executed in the next audio block.variant, optional

Example

-- fade all voices with a parameter
defineSlotLocal("noteIDs")
noteIDs = {}

function onNote(event)
  local id = postEvent(event)
  table.insert(noteIDs, id)
end

function syncFadeAllVoices()
  for i, id in ipairs(noteIDs) do
      fade(id, nil, 0, 1000, true)
  end
  noteIDs = {}
end

function fadeAllVoices()
  if fadeVoices then
    runSync(syncFadeAllVoices, 1)
  end
end

defineParameter("fadeVoices", "Fade All Voices", false, fadeAllVoices)
  • No labels