Cue other threads

cue

[cue_id (symbol)]

Send a heartbeat synchronisation message containing the (virtual) timestamp of the current thread. Useful for syncing up external threads via the sync fn.

Introduced in v2.0.0

Example 0 


in_thread do
  sync :foo
  sample :ambi_lunar_land
end

sleep 5

cue :foo
         



 
 
 # this parks the current thread waiting for a foo cue message to be received.
 
 
 
 
 
 # We send a cue message from the main thread.
 # This then unblocks the thread above and we then hear the sample



Example 1 


in_thread do  
  loop do     
    cue :tick
    sleep 0.5 
  end
end

# We can now play sounds using the metronome.
loop do                   
  sync :tick              
  sample :drum_heavy_kick 
end


 
 # Start a metronome thread
 # Loop forever:
 # sending tick heartbeat messages
 # and sleeping for 0.5 seconds between ticks
 
 
 
 
 # In the main thread, just loop
 # waiting for :tick cue messages
 # after which play the drum kick sample
 



Example 2 


in_thread do  
  loop do     
    cue [:foo, :bar, :baz].choose
    sleep 0.5 
  end
end

# We can now play sounds using the metronome:

in_thread do
  loop do                   
    sync :foo              
    sample :elec_beep 
  end
end

in_thread do
  loop do                   
    sync :bar              
    sample :elec_flip 
  end
end

in_thread do
  loop do                   
    sync :baz              
    sample :elec_blup 
  end
end


 
 # Start a metronome thread
 # Loop forever:
 # sending one of three tick heartbeat messages randomly
 # and sleeping for 0.5 seconds between ticks
 
 
 
 
 
 
 # In the main thread, just loop
 # waiting for :foo cue messages
 # after which play the elec beep sample
 
 
 
 
 # In the main thread, just loop
 # waiting for :bar cue messages
 # after which play the elec flip sample
 
 
 
 
 # In the main thread, just loop
 # waiting for :baz cue messages
 # after which play the elec blup sample