electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
go to the radio page Live at electro-music.com radio 1 Please visit the chat
  host / artist show at your time
<on air> Various Artists September equinox Concert
poster
 Forum index » DIY Hardware and Software » ChucK programming language
Another audio language with a chuck-like concept
Post new topic   Reply to topic Moderators: Kassen
Page 1 of 1 [6 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Sat Oct 13, 2007 12:03 pm    Post subject: Another audio language with a chuck-like concept
Subject description: RED
Reply with quote  Mark this post and the followings unread

Interesting bit of synergy -- I was looking around today for computer science materials, mainly looking for articles about design patterns and real time algorithmic composition, but I allowed myself some detours. One was "Selected research in computer music" by Michael Droettboom, including a description of an audio processing language. Well, that got my attention, if only to see what the language looks like.

Then I was a bit startled to find this:

Quote:
6.3.2 Connecting signals
However, creating a UG on its own will not allow it to be heard or seen. It must first be “connected” to an audio or video output object. For each unit generator object, the signal inlets and outlets are accessed by providing an inlet name inside square brackets ‘[ ]'. For instance, to get the outlet of the oscillator object we can use the expression:

Code:
osc['out']


These inlets and outlets can be connected to the inlets and outlets of other objects using the overloaded left-shift '<<' and right-shift '>>' operators. The connection is made in the direction of the “arrows.” For example, to create an oscillator object, and then connect its outlet to the a stereo digital audio convertor (DAC) output generator:

Code:
dac = Dac()
osc = Osc(freq = 440)

# Connect the outlet of the osc to an inlet of the Dac

osc['out'] >> dac['left']

# Connect the output of the oscillator to the other channel
dac['right'] << osc['out']


Wow! osc['out'] >> dac['left'] ! Seems to me there is not much difference conceptually between the above and osc => dac? Although certainly ChucK takes the concept radically further, and does away with the not necessarily useful "left chuck."

It seems this line of research is totally independent of Ge's -- still, it's fascinating to me how these two people had roughly the same idea at roughly the same time.

James

_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 6221
Location: near Austin, Tx, USA
Audio files: 267

PostPosted: Sat Oct 13, 2007 4:39 pm    Post subject: Reply with quote  Mark this post and the followings unread

Yes, i agree. It seems that when an invention's time has come, it will bubble up from the public in multiple places at similar times. History is filled with examples, one such being a round flute-like clay object that looks like a flying saucer with holes in it. A guy at a Ren-fest offered to sell me one and said it had been discovered independently all around the world. And how many of us sees a new product and says "I thought of that one!"? It's amazing how much "Synergy" there is out there, isn't it?
Back to top
View user's profile Send private message Send e-mail
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24475
Location: The Netherlands, Enschede
Audio files: 297
G2 patch files: 320

PostPosted: Sat Oct 13, 2007 5:18 pm    Post subject: Reply with quote  Mark this post and the followings unread

I don't know, I hate spoiling fun, but this looks just like a device/connector pattern thing that I saw about 15 years ago as an example of how operator overloading could be put to good use in C++ .. and it's really just pointer juggling of course.

The "new" thing in Chuck to me was chucking to now (=> Now) for time control / scheduling.

_________________
Jan
also .. could someone please turn down the thermostat a bit.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
Kassen
Janitor
Janitor


Joined: Jul 06, 2004
Posts: 7678
Location: The Hague, NL
G2 patch files: 3

PostPosted: Sun Oct 14, 2007 1:49 pm    Post subject: Reply with quote  Mark this post and the followings unread

I still like this idea.

osc['out'] >>filter['in']

...would imply you could also use...

env['out'] >> filter['freq']

...which ChucK can't do like that.

It's at least similar in that the syntax is also a sort of image of the signal flow which can be very enjoyable to read. Sadly here ins and outs are explicitly marked so that means no....

SawOsc s => LPF f => dac;

Timing is still at the heart of ChucK but a little syntactic sugar can't hurt. It's also nice that anybody who has ever used a simple synth can read that last ChucK line so that's nicely accessible and might make up for the initial confusion many people have over "manually advancing time".

I could imagine this left/right style of operators could become useful at times, how about this theoretical example?

signalA['out'] >> Xfade['in'] << signalB['out']

That would be cool. I have to say though, after this post I already hate those quotes.

_________________
Kassen
Back to top
View user's profile Send private message Send e-mail Visit poster's website
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24475
Location: The Netherlands, Enschede
Audio files: 297
G2 patch files: 320

PostPosted: Sun Oct 14, 2007 2:16 pm    Post subject: Reply with quote  Mark this post and the followings unread

Kassen wrote:
I have to say though, after this post I already hate those quotes.


Very Happy

Maybe osc.out >> filter.in ?

I must say that I like >> better than => (for ease of typing).

_________________
Jan
also .. could someone please turn down the thermostat a bit.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
Kassen
Janitor
Janitor


Joined: Jul 06, 2004
Posts: 7678
Location: The Hague, NL
G2 patch files: 3

PostPosted: Sun Oct 14, 2007 3:11 pm    Post subject: Reply with quote  Mark this post and the followings unread

Blue Hell wrote:


Maybe osc.out >> filter.in ?


Yeah, much better already.

Quote:
I must say that I like >> better than => (for ease of typing).


Depends on the KB layout. On a Dutch keyboard the "=" is on the key left of the right shift and needs a shift to reach it, the ">" is right above the right shift and also needs the shift to reach it. With some experience you can type the "=>" by simply pressing your right hand down in the right way.

On a US layout it's indeed a bit inconvenient.

_________________
Kassen
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic Moderators: Kassen
Page 1 of 1 [6 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software » ChucK programming language
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use