« Return to Thread: SF.net SVN: supercollider:[9109] trunk/build/SCClassLibrary/Common/GUI/ PlusGUI/Math/SignalPlusGUI.sc

SF.net SVN: supercollider:[9109] trunk/build/SCClassLibrary/Common/GUI/ PlusGUI/Math/SignalPlusGUI.sc

by danstowell :: Rate this Message:

Reply to Author | View in Thread

Revision: 9109
          http://supercollider.svn.sourceforge.net/supercollider/?rev=9109&view=rev
Author:   danstowell
Date:     2009-04-23 12:25:19 +0000 (Thu, 23 Apr 2009)

Log Message:
-----------
Function:loadToFloatArray fix so it works properly with k-rate

Modified Paths:
--------------
    trunk/build/SCClassLibrary/Common/GUI/PlusGUI/Math/SignalPlusGUI.sc

Modified: trunk/build/SCClassLibrary/Common/GUI/PlusGUI/Math/SignalPlusGUI.sc
===================================================================
--- trunk/build/SCClassLibrary/Common/GUI/PlusGUI/Math/SignalPlusGUI.sc 2009-04-23 09:52:28 UTC (rev 9108)
+++ trunk/build/SCClassLibrary/Common/GUI/PlusGUI/Math/SignalPlusGUI.sc 2009-04-23 12:25:19 UTC (rev 9109)
@@ -136,7 +136,7 @@
 + Function {
 
  loadToFloatArray { arg duration = 0.01, server, action;
- var buffer, def, synth, name, numChannels, val;
+ var buffer, def, synth, name, numChannels, val, rate;
  server = server ? Server.default;
  if(server.serverRunning.not) { "Server not running!".warn; ^nil };
 
@@ -148,18 +148,18 @@
  val.dump;
  Error("loadToFloatArray failed: % is no valid UGen input".format(val)).throw
  };
- if(val.rate != \audio) {
- val = K2A.ar(val);
- };
+ rate = val.rate;
  if(val.size == 0) { numChannels = 1 } { numChannels = val.size };
- RecordBuf.ar(val, bufnum, loop:0);
- Line.ar(dur: duration, doneAction: 2);
+ RecordBuf.perform(RecordBuf.methodSelectorForRate(rate), val, bufnum, loop:0);
+ Line.perform(Line.methodSelectorForRate(rate), dur: duration, doneAction: 2);
  });
 
  Routine.run({
  var c;
  c = Condition.new;
- buffer = Buffer.new(server, duration * server.sampleRate, numChannels);
+ buffer = Buffer.new(server, duration
+ * server.sampleRate * if(rate==\control, 1/server.options.blockSize, 1),
+ numChannels);
  server.sendMsgSync(c, *buffer.allocMsg);
  server.sendMsgSync(c, "/d_recv", def.asBytes);
  synth = Synth(name, [\bufnum, buffer], server);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/

 « Return to Thread: SF.net SVN: supercollider:[9109] trunk/build/SCClassLibrary/Common/GUI/ PlusGUI/Math/SignalPlusGUI.sc