Re: (no subject)

iain duncan <[email protected]> Sat, 19 Jun 2004 12:26:33 +0000
Newsgroups gmane.comp.audio.csound.tekno
Message-ID <[email protected]>
> I have had a few ideas for synthesizer design which I was going to implement in
> c++/wxwindows/alsa, but after being introduced to csound, i think its possible
> to implement the ideas using csound as the synthesis engine.
> 
> I was wondering if anyone has played with designing a midi controllable
> intrument playable in real time in csound, and building a GUI sequencer to
> generate the midi messages to control it.
> 
> I think one of the first things I'd like to do is build a basic drum machine
> like sequencer, with each part driving its own intrument synth via midi.
> Serveral csound intruments and effect units, with midi control for parameters
> and dynamic routing, would be written as well.

> I'd like to use my external midi controller to communicate with the GUI
> sequencer, and have the GUI act as a midi thru relaying them to csound, as well
> as generating midi notes itself.

Hi Nathan. Yes, Glyn and I have done all of the above. The main problem 
I find is that doing a GUI in csound is a bit of a performance drain, as 
well as not the most elegant way of making a GUI. The method we wound up 
using was to store all instrument paramaters that one wants to change 
dynamically in csound tables. The GUI or user interface without gui ( ie 
midi input only, no writing to screen ) then writes to those tables. 
This has a number of advantages, you can use the macro system to make 
editing patches easy, you can save and load the patch tables with all 
the ft_blah opcodes, and you can edit them as plain text files and load 
em up using GEN 23. It's also very easy to turn on and off the gui.

Personally I am looking forward to exploring this area further with 
csound5, as we will be able to put csound in one thread or process of a 
containg C or C++ program, and the gui/user interface in another with 
lower priority. These can communicate with each other and with the 
csound tables via the wonderful new CsoundAPI. I'm convinced this is the 
direction to go for GUIizing csound instruments. I plan on exploring 
that this summer after my current deadline goes by.

If you want to look at a design for a sequencer engine you can go look 
at the sample code I put up at www.xornot.com I have recently rethought 
the clocking though, and will be changing how it clocks in order to 
allow the sequencer engine to play alongside a normal score in perfect 
sync. I'll mention that on the list once it's up on the site, but again 
I don't anticipate having time to do that till July.

> Im trying to put together a toolkit for live linux laptop/microatx sets, and
> just want to know if anyone has played with doing this or if open source tools
> exist for controlling csound in this manner.

Yup yup. We're doing it in 100% csound! Well actually we also did a dual 
csound / PD rig. Another option for gui stuff is to do the gui in PD ( 
easy! ) and have it communicate with csound tables by making a csound 
instrument who's job it is to just write a number to a table and then 
die off. This is really handy for communcating with csound in any way 
you want via midi. I use the midiin opcode for that or use the -Lstdin 
option and actually send a score event to csound in text score language. 
So there's a little csound instrument that takes as pfields the target 
table number, target table index, and data to write there. After writing 
once it kills itself with turnoff.

> Also, I haven't yet done much performance testing, but I'd be interested in how
> many instruments people have had success running simultaneously in real time! I
> haven't yet been able to guage the speed of csound for intense processing.

Lots, especially if you keep krate low ( ie ksamps = 50 to 100 ) and use 
the interp or a() opcodes/operators to smooth out any coarseness. 
Another fantastic improvement coming in csound5 is the variable krates 
for user defined opcodes. Whoo hoo!

> I'm considering putting together a microatx p4 3.2ghz/800mhz fsb/512mb ram for
> live sets(laptops with the speed I want are too expensive right now), and am
> intersted in how many intruments can run on various cpus speeds. 

You will certainly be able to do an entire studio ensemble for live work 
at 3.2 ghz.

Looking forward to hearing about your work!
Iain

_______________________________________________
csoundtekno mailing list
[email protected]

Subscribe, unsubscribe, change mailing list options:
http://plot.bek.no/mailman/listinfo/csoundtekno