Forum rss-feed


Developers: Csound

Most Recent

written by: bwong

Sounds good, there is no rush. I would also like to check out working with the raw stream, for learning purposes.

written by: bwong

Tue, 18 Oct 2011 20:36:37 +0100 BST

I did not want to hijack the OSC prototype thread with my Csound boosterism, so I created a new thread for this. Csound is really not particularly difficult.

Obviously I am biased, but to me Csound is very much easier to use than Max or PD. The built-in opcodes allow one to create many different types of synths with very few lines of Csound code, which is basically simple C-like syntax with few idiosyncratic aspects.

Csound has some distinct advantages including :
- Totally freeware and open-source
- OSC compatible
- up to 96k 32bit sound quality
- Extensive library of built-in opcodes
- Extensive tutorials and examples available online
- Strong and helpful user community

Ableton users may be interested in the recent release of Csound4Live, which allows Csound to be run as a plugin for with Max4Live.

Basically I just wanted to post this so people would not be scared off Csound due to prevalent misconceptions about it being "not suited for realtime" or "difficult".

I hope someday being able to write synths in Csound for the Eigenharp via OSC or directly through the Csound API, but am a relatively inexperienced C++ programmer and as of yet been unable to get EigenD to build. However I believe it should be quite feasible to achieve something similar to what barnone has done with Max/Msp and the OSC prototype using Csound. Alternatively the Csound API would allow direct software communication without OSC, but would definitely require a strong C++ programmer to implement and integrate it with EigenD.

I have tried to get some of the Csound gurus interested in this, but have not been successful. Perhaps some folks here might consider it.

written by: barnone

Tue, 18 Oct 2011 23:30:51 +0100 BST

It's interesting.

If you wanted to create a CSound patch that takes OSC input. I could probably glue it up for you. Could create a somwhat simpler interface than the raw.

Something like /note iiffff {midi note} {note/on/off} {velocity} {pressure} {pitch} {yaw}

written by: bwong

Tue, 18 Oct 2011 21:31:58 +0100 BST

That sound great barnone! If you could send an brief example of some of the raw and/or proposed filtered/processed OSC data I will attempt put together a Csound project that can use it. Keeping it simple to start with is a good idea. I have worked with OSC and Csound previously, using the "Processing" java programming language so should be able to make it work. If you wish please feel free to send directly to my email


written by: bwong

Wed, 19 Oct 2011 18:38:46 +0100 BST

The field descriptors you have added look good! Can you give me a port number and the range of the float variables?

written by: bwong

Wed, 19 Oct 2011 21:11:08 +0100 BST

I have put together a very basic Csound project that simply receives the /note OSC message and prints out the received variables. It does not make any sound yet, but just verifies the data is coming through properly.

written by: barnone

Thu, 20 Oct 2011 00:22:06 +0100 BST

floats are -1..1

Be aware that this is just experimentation at this point because there will be a MAX patch intercepting the raw stream and converting it to the processed stream.

Alternately you could use the raw stream direct but maybe more work than you want.

Ideally could create an agent that produced the processed stream and did things like velocity detection and smoothing, decimation.

written by: bwong

Thu, 20 Oct 2011 01:49:09 +0100 BST

Thanks barnone. I would be glad to have a look at the raw stream alternative and see what I can do with it, though certainly a processed stream would be great if you have the time to create the agent. However I am not sure I can use a Max patch. I have a old copy of Max/Msp 5.0 which I got for Windows, I can't recall whether it also includes a OSX version, and I am currently using only OSX for the Eigenharp. Another possibility is Pure Data, if it has the required OSC functionality. I have not really used PD much, but might possibly be able to implement the Max patch using it.


written by: barnone

Thu, 20 Oct 2011 02:13:48 +0100 BST

You can always use MAX Runtime which is free if you do not need to edit the patch, which you shouldn't.

I need some time to finish my patch, but hopefully not too long.

It could be reimplemented in the agent itself or another environment.

written by: bwong

Thu, 20 Oct 2011 02:19:33 +0100 BST

Sounds good, there is no rush. I would also like to check out working with the raw stream, for learning purposes.

Please log in to join the discussions