From 16104cd17ba855972b46fd4f87a0654a1b560450 Mon Sep 17 00:00:00 2001 From: jreus Date: Thu, 6 Dec 2018 12:49:59 +0100 Subject: [PATCH] added SayBuf convenience method on String --- Classes/Say.sc | 1 - Classes/SayBuf.sc | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Classes/Say.sc b/Classes/Say.sc index de7160a..204f7d5 100644 --- a/Classes/Say.sc +++ b/Classes/Say.sc @@ -141,7 +141,6 @@ Say { } *addSayEvent { - Event.addEventType(\say, { var str = "say", cond, pid, thisEvent; diff --git a/Classes/SayBuf.sc b/Classes/SayBuf.sc index 8d4451b..6fb8f55 100644 --- a/Classes/SayBuf.sc +++ b/Classes/SayBuf.sc @@ -1,6 +1,6 @@ SayBuf { classvar <>dir, usesRoundRobin = true, verbose = false; *initClass { dir = Platform.userAppSupportDir +/+ "saybuf"; @@ -139,8 +139,18 @@ SayBuf { // will call sayEvent doneFunc when ready, // which loads buffer, // which calls sayEvent bufAction when ready - defer { sayEvent.play }; - + defer { sayEvent.play }; // why is this deferred? ^sayEvent } } + ++ String { + say2 {|voice="Alex",out=0,rate=1,amp=1.0,pan=0,wpm=180| + var text=this; + ^SayBuf.prepare((text: text, voice: voice, rate: wpm),Server.default,{|b| { + var sig = PlayBuf.ar(1,b,BufRateScale.kr(b) * rate, doneAction: 2); + Pan2.ar(sig, pan, amp); + }.play(outbus:out); + } , true); + } +}