Hacker News new | past | comments | ask | show | jobs | submit login

If you've worked in music programming languages it does. One of the major problems with the widespread visual programming environments (Max, Reaktor) is that they mix signal flow and time flow in often unclear ways.

In ChucK you have different "shreds" (threads) where you advance time explicitly by doing something like:

  1::second => now;
That makes the flow of time between different elements very clear and in theory (though not always in practice) it's sample accurate between different shreds. Durations are an ordinal type in ChucK, so you can also do something like:

  1::minute / beatsPerMinute => dur beatLength;
And then do:

  for(0 => int i; i < 4; i++)
  {
    spork ~ snare();
    beatLength => now;
  }
Where "snare()" is a function that plays a snare drum sample and "spork ~" spawns a new shred to play that sample (where time is advanced independantly).



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: