p0 = output start time (seconds) p1 = duration (seconds) p2 = pitch (Hz or oct.pc) p3 = amplitude (absolute, for 16-bit soundfiles: 0-32768) p4 = oscillator writing frequency p5 = oscillator wavetable reference p6 = pan [optional; default is 0] p2 (pitch), p3 (amplitude), p4 (oscillator writing frequency) and p6 (pan) can receive dynamic updates from a table or real-time control source. p5 (oscillator wavetable reference) should be a reference to a pfield table-handle. Author Brad Garton, 7/2007
By modulating the frequency of the 'writing' oscillator (p4, "OSCFREQ"), dynamically changing timbral effects are possible because the waveform being written between resets of the oscillator will shift:
SYNC can produce both mono and stereo output.
Sample Scores
very basic:
   rtsetparams(44100, 1)
   load("SYNC")
   ampenv = maketable("line", 1000, 0,0, 1,1, 9,1, 10,0)
   wave = maketable("wave", 1000, "sine")
   wdex = maketable("line", "nonorm", 1000, 0, 200, 1, 400, 2, 200)
   SYNC(0, 3.5, 225, 20000*ampenv, wdex, wave)
   rtsetparams(44100, 2)
   load("SYNC")
   amp = 8000
   ampenv = maketable("line", 1000, 0,0, 1,1, 9,1, 10,0)
   wave = maketable("wave", 1000, "saw7")
   for (i = 0; i < 7; i += 1) {
      pchenv = maketable("line", "nonorm", 1000, 0, irand(5.065, 5.075),
         irand(1, 5), irand(5.065, 5.075),
         irand(5, 9), irand(5.065, 5.075), 10, 5.07)
      wdex = maketable("line", "nonorm", 1000, 0, irand(100, 500), irand(1, 3),
         irand(100, 500), irand(4, 7),
         irand(100, 500), irand(8, 10), irand(100, 500))
      SYNC(0, 14, pchenv, amp*ampenv, wdex, wave, random())
   }
   rtsetparams(44100, 2)
   load("SYNC")
   reset(10000)
   pches = { 0.00, 0.01, 0.03, 0.04, 0.06, 0.09, 0.12 }
   lpches = len(pches)
   bpitch = 7.09
   amp = 10000
   ampenv = maketable("line", 1000, 0,0, 1,1, 9,1, 10,0)
   wave = maketable("wave", 1000, "saw3")
   wdex = maketable("line", "nonorm", 1000, 0, 400, 1, 200)
   st = 0
   dur = 0.15
   for (i = 0; i < 78; i += 1) {
      pch = bpitch + pches[trand(0, lpches)]
      SYNC(st, dur, pch, amp*ampenv, wdex, wave, random())
      st += irand(0, dur)
   }