Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] some ideas for Csound 6

Date2009-02-09 04:15
Frommichael.gogins@gmail.com
SubjectRe: [Cs-dev] some ideas for Csound 6
A music synthesizer or processor is, always, a signal flow graph. The arcs 
are signal flows from node to node. It is important to understand that a 
unit generator is not a single node. Each input and output of a unit 
generator is its own node, an inlet or outlet node.

A signal flow graph is a special case of a data flow language. In a data 
flow language, the nodes are operations and the arcs are data flows from 
operation to operation. For a data flow language to be Turing complete, as 
Csound is, the operations must include sequence, branch depending on logical 
value, and loop.

Because the graph is directed, the order of execution of the nodes and 
signal flows can be determined simply by traversing the graph.

Some of the nodes in the graph are external: score readers, MIDI input 
ports, audio input ports, soundfile readers, score writers, MIDI output 
ports, audio output ports, soundfile output, and so on.

An instrument in a signal flow graph is also actually a subgraph, not a 
single node. Each signal flowing into the instrument is an inlet port, 
itself a node. Each signal flowing out of the instrument is an outlet port, 
itself a node. Max/MSP and Pure Data show this very clearly. An instrument 
can be considered a unit generator that is required to have at least one 
control inlet and one audio outlet. In Csound, an instrument must be able to 
dynamically allocate multiple instances of itself to handle overlapping 
control signals.

Very rarely does a synthesizer follow this signal flow graph design all the 
way down to elementary arithmetic and logic operations. More commonly, the 
unit generators are "black boxes" containing C code whose public interface 
is a set of inlet nodes and outlet nodes. If you will, N inlet nodes are 
collected by one "black box" processor node, which fans out to M outlet 
nodes.

In some DSP graphs, there are special unit generators for mixing. But this 
is is not necessary. In other DSP graphs, the inlet nodes can sum or collect 
any number of connecting arcs from outlet nodes, as analog gear can.

Hope this helps,
Mike

----- Original Message ----- 
From: "Anthony Kozar" 
To: "New Csound Developer list" 
Sent: Sunday, February 08, 2009 10:37 PM
Subject: Re: [Cs-dev] some ideas for Csound 6


> Maybe I am not fully understanding your intention with the DAGUG idea 
> then.
> I was assuming that all nodes in the DAGUG would be Csound opcodes or
> special mixing and routing nodes.  I was going off of this previous post 
> you
> made:
>
>  -was%09Re%3AQuestions%09about-musmon-insert%29-to20096522.html#a20110528>
>
> While loading plugin instruments in CLM style (as shared libraries) is an
> intriguing idea, what do you think that it would gain for us over loading
> the same code as a plugin opcode?  An opcode can be arbitrarily complex 
> and
> is "patchable" via the orch language.
>
> Anthony
>
> michael.gogins@gmail.com wrote on 2/8/09 11:38 AM:
>
>> Modifications for DLI are logically independent of modifications for 
>> DAGUG.
>> A unit generator in a DAGUG could have an abstract interface suited for
>> loading from a shared library, and so could a DLI. Thus, a DAGUG could 
>> and
>> should have two types of node interfaces, of which one would be a DLI.
>
>
> ------------------------------------------------------------------------------
> Create and Deploy Rich Internet Apps outside the browser with 
> Adobe(R)AIR(TM)
> software. With Adobe AIR, Ajax developers can use existing skills and code 
> to
> build responsive, highly engaging applications that combine the power of 
> local
> resources and data with the reach of the web. Download the Adobe AIR SDK 
> and
> Ajax docs to start building applications 
> today-http://p.sf.net/sfu/adobe-com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> 


------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net