Sampler in ChucK
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

45 satır
790B

  1. // the event
  2. KBHit kb;
  3. class MetronomeEvent extends Event{ int value; }
  4. class Metronome {
  5. MetronomeEvent metronomeEvent;
  6. spork ~pulse();
  7. fun void listen(){
  8. while (true){
  9. metronomeEvent => now;
  10. <<<"Metronome got event " + metronomeEvent.value>>>;
  11. if (metronomeEvent.value==0){
  12. spork ~pulse();
  13. }
  14. }
  15. }
  16. fun void pulse(){
  17. 1::second => now;
  18. 0=>metronomeEvent.value;
  19. metronomeEvent.signal();
  20. }
  21. fun void signal(){
  22. 1=>metronomeEvent.value;
  23. metronomeEvent.signal();
  24. }
  25. }
  26. Metronome m;
  27. spork ~m.listen();
  28. // time-loop
  29. while( true )
  30. {
  31. kb => now;
  32. while( kb.more() )
  33. {
  34. <<< "ascii: ", kb.getchar() >>>;
  35. m.signal();
  36. }
  37. }