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

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


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
 
 
 
# We can now play sounds using the metronome.
# 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



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
 
 
 
# We can now play sounds using the metronome:
 
 
# 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