[Stk] Ruby extensions with STK

David Michael david.michael at gmail.com
Wed, 5 Dec 2007 15:01:45 -0500


--Apple-Mail-1--465626665
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed



> I also figured it might work for sinusoids and the like, but I  
> assumed it wouldn't scale very well to more complex computation.
> Keep us posted on what you're able to do with it!
>

This may well be the case, so yes, I will write back with more as  
soon as I figure out what Im doing.

>> What would be really amazing would be a domain specific language  
>> for the STK built off of Ruby for manipulating audio objects, but  
>> I have yet to figure out how one would manage audio streams  
>> between Ruby objects...

> Heh, well actually I think this is pretty much what Chuck is, minus  
> the Ruby...  :-)

Yes true, but as much as I love Chuck, its not a very complete  
language and lacks some very basic things like string manipulation.  
Plus, strong typing still makes it more tedious to work with than I  
would prefer.

Building an audio engine into an existing dynamic language, like  
Ruby, would give access to all the syntax (and libraries) of the host  
language. I think maybe Jsyn works something like this with Java. In  
any case, Ruby is a very well used language right now with tons of  
nice libraries. I suppose also that SuperCollider is kindof this with  
SmallTalk, but it is not really SmallTalk. I have not done nearly  
enough research on audio extensions to other existing languages other  
than C/C++ to know what I am talking about, but there is this one  
already for Ruby;
http://raa.ruby-lang.org/project/ruby-audio/
but it seems that the intent of this library is somewhat different:  
perhaps just audio files (cuz it relies on libsndfile).

D
--Apple-Mail-1--465626665
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">
<br><div><div><br></div><blockquote type=3D"cite"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">I also figured it might work for sinusoids and the =
like, but I assumed it wouldn't scale very well to more complex =
computation.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">Keep us posted on what you're =
able to do with it!</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; =
"><br></div></blockquote><div><br =
class=3D"webkit-block-placeholder"></div><div>This may well be the case, =
so yes, I will write back with more as soon as I figure out what Im =
doing.</div><br><blockquote type=3D"cite"> <blockquote type=3D"cite"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">What would be really amazing would be a domain =
specific language for the STK built off of Ruby for manipulating audio =
objects, but I have yet to figure out how one would manage audio streams =
between Ruby objects...</div></blockquote></blockquote><br><blockquote =
type=3D"cite"><blockquote type=3D"cite"> </blockquote><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">Heh, well actually I think this is pretty much what =
Chuck is, minus the Ruby...<span class=3D"Apple-converted-space">=A0 =
</span>:-)</div></blockquote><br></div><div>Yes true, but as much as I =
love Chuck, its not a very complete language and lacks some very basic =
things like string manipulation. Plus, strong typing still makes it more =
tedious to work with than I would prefer.</div><div>=A0</div><div>Building=
 an audio engine into an=A0existing=A0dynamic language, like Ruby, would =
give access to all the syntax (and libraries) of the host language. I =
think maybe Jsyn works something like this with Java. In any case, Ruby =
is a very well used language right now with tons of nice libraries. I =
suppose also that SuperCollider is kindof this with SmallTalk, but it is =
not really SmallTalk. I have not done nearly enough research on audio =
extensions to other existing languages other than C/C++ to know what I =
am talking about, but there is this one already for Ruby;</div><div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" =
size=3D"3" style=3D"font: 12.0px Helvetica"><a =
href=3D"http://raa.ruby-lang.org/project/ruby-audio/">http://raa.ruby-lang=
.org/project/ruby-audio/</a></font></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">but it seems =
that the intent of this library is somewhat different: perhaps just =
audio files (cuz it relies on=A0libsndfile).</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><br></div></div></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">D</div></div></body></html>=

--Apple-Mail-1--465626665--