Csound Csound-dev Csound-tekno Search About

Error in the manual?

Date2006-01-09 16:30
From"Robson Cozendey"
SubjectError in the manual?
Hello,

In the manual syntax section for grain3, it mentions the parameters "kfrpow" 
and "kprpow", however in the parameters description, it mentions only 
"irpow" from grain2. Maybe an error in the manual entry for grain3?

Thanks in advance,
Robson

_________________________________________________________________
Ligações gratuitas de PC-para-PC para qualquer lugar do Brasil e do mundo 
com o  MSN Messenger. Saiba mais em   
http://imagine-msn.com/messenger/default2.aspx?locale=pt-br

Date2006-01-09 17:38
FromIstvan Varga
SubjectRe: Error in the manual?
AttachmentsNone  

Date2006-01-09 18:41
FromSteven Yi
SubjectRe: Error in the manual?
AttachmentsNone  

Date2006-01-09 19:47
FromMC
SubjectNew user question.
I just downloaded Csound5 from the csounds.com page and tried a few different ones "as is" from the accompanying manual.chm document.. basically looked at the example there and copy pasted the .orc and .sco portions into two files and then ran csound using them. I tried a few basic ones and it worked just fine..when i tried to run the grain.orc and grain.sco it gave me an error saying python.dll was not found. Can someone tell me if python.dll was supposed to be part of the csound5 for windows binary or did my installation get corrupted somehow ? Is there a way i can get just that .dll file or am I missing something very big here ?
Any help would be greatly apprecaited.
Regards
Shyam


Yahoo! DSL Something to write home about. Just $16.99/mo. or less

Date2006-01-09 19:57
FromOeyvind Brandtsegg
Subjectchnget, chnexport, accessing the variable
It's hard for me to find my way through the csoundAPI documentation,
what is the command for accessing the software bus from a host application ?
e.g. in the example from the manual that defines   
chn_k "cutoff", 1, 3, 1000, 500, 2000
... What command would I use to write to this channel from my host app ?

I use 
csound = csnd.CppSound()
and then
csound.InputMessage("i 1 0 1 1")
to send events.

best,
Oeyvind

Date2006-01-09 20:21
FromJean-Pierre Lemoine
SubjectRe: chnget, chnexport, accessing the variable
Here is what I am doing for passing values to the host, and it works fine

Channel declaration as global in the orchestra (the csd)
gkch21_2 chnexport "CH21_2",2 ; Evolution 2 Instrument 21

Set the value in the isntrument
gkch21_2 =  krms * karms - kbrms

Read the value in the host as a float , cs is a Csound instance
v =(float)cs.GetChannel( "CH21_2" );

Jean-Pierre

Oeyvind Brandtsegg wrote:

>It's hard for me to find my way through the csoundAPI documentation,
>what is the command for accessing the software bus from a host application ?
>e.g. in the example from the manual that defines   
>chn_k "cutoff", 1, 3, 1000, 500, 2000
>... What command would I use to write to this channel from my host app ?
>
>I use 
>csound = csnd.CppSound()
>and then
>csound.InputMessage("i 1 0 1 1")
>to send events.
>
>best,
>Oeyvind
>  
>


Date2006-01-09 21:40
FromIstvan Varga
SubjectRe: chnget, chnexport, accessing the variable
AttachmentsNone  

Date2006-01-10 10:08
FromOeyvind Brandtsegg
SubjectRe: chnget, chnexport, accessing the variable
Excellent. Thanks for the example.

Oeyvind





> From: Istvan Varga [istvan_v@fibermail.hu]
> Sent: 2006-01-09 22:40:57 CET
> To: csound@lists.bath.ac.uk
> Subject: Re: [Csnd] chnget, chnexport, accessing the variable
> 
> On Monday 09 January 2006 20:57, Oeyvind Brandtsegg wrote:
> 
> > It's hard for me to find my way through the csoundAPI documentation,
> > what is the command for accessing the software bus from a host application ?
> > e.g. in the example from the manual that defines   
> > chn_k "cutoff", 1, 3, 1000, 500, 2000
> > ... What command would I use to write to this channel from my host app ?
> > 
> > I use 
> > csound = csnd.CppSound()
> > and then
> > csound.InputMessage("i 1 0 1 1")
> > to send events.
> 
> For simple access to the bus (limited to setting and getting control
> channels, and setting string channels), you can use Csound::SetChannel()
> and Csound::GetChannel(). The first example shows using this interface.
> 
> A more advanced example is also included, in which the channels
> exported in the orchestra header are listed after calling
> Csound::Compile(), and pointers to the channel data are used
> later during performance (you may want to read the cs_glue.hpp
> header included with the RC2 release for documentation on the
> various classes used in this example).
> 
> ------------------------------------------------------------------------
> 
> #!/usr/bin/python
> 
> import csnd
> 
> csound = csnd.Csound()
> 
> f = open('chn_simple_1.csd', 'w')
> print >> f, '''
> 
> 
> -d -m135 -H0 -s -h -o dac
> 
> 
> sr = 44100
> ksmps = 100
> nchnls = 2
> 
> gkpwd chnexport   "PulseWidth", 1
> gkpan chnexport   "Pan", 1
> 
>       instr       1
> a1    vco2        p5, p4, 2, gkpwd
> apanL interp      cos(gkpan * 1.57), 0, 1
> apanR interp      sin(gkpan * 1.57), 0, 1
>       outs        a1 * apanL, a1 * apanR
>       endin
> 
> 
> i 1 0 5 220 16000
> e
> 
> 
> '''
> f.close()
> 
> if csound.Compile('chn_simple_1.csd') == 0:
>     csound.SetChannel('PulseWidth', 0.95)
>     csound.SetChannel('Pan', 1.0)
>     while csound.PerformKsmps() == 0:
>         curTime = (csound.GetScoreTime() / 5.0) % 1.0
>         csound.SetChannel('Pan', 1.0 - curTime)
>         csound.SetChannel('PulseWidth', 0.05 + abs(curTime * 1.8 - 0.9))
> 
> csound.Reset()
> 
> ------------------------------------------------------------------------
> 
> #!/usr/bin/python
> 
> import csnd
> import wave
> import array
> import math
> 
> csound = csnd.Csound()
> 
> # create and compile a CSD file
> 
> f = open('chntest.csd', 'w')
> print >> f, '''
> 
> 
> sr      =  48000
> ksmps   =  32
> nchnls  =  1
> 
> gkfco   init 1000
> gkfco   chnexport "FilterFreq", 1, 3, 1000, 200, 4000
> gSfname chnexport "FileName", 1
> gaout   chnexport "AudioOutput", 2
> 
>         instr 1
>         printf_i "The file name is: '%s'\\n", 1, gSfname
> a1      vco2 20 / sqrt(gkfco), 220
> a2      pareq a1, gkfco, 0, gkfco / 220, 2
> gaout   =  taninv(a2) * 0.6
>         endin
> 
> 
> 
> 
> i 1 0 5
> e
> 
> 
> 
> '''
> f.close()
> err = csound.Compile('-d', '-n', 'chntest.csd')
> if (err != 0):
>     raise(SystemExit(err))
> 
> # create and print a channel list
> 
> controlInput = ''
> audioOutput = ''
> stringInput = ''
> 
> chnlst = csnd.CsoundChannelList(csound)
> n = chnlst.Count()
> if n > 0:
>     print '============================================================'
>     print n, ' channels'
>     print '------------------------------------------------------------'
>     for i in range(n):
>         print 'Name:           ', chnlst.Name(i)
>         tmp = 'unknown'
>         if chnlst.IsControlChannel(i):
>             tmp = 'control'
>         elif chnlst.IsAudioChannel(i):
>             tmp = 'audio'
>         elif chnlst.IsStringChannel(i):
>             tmp = 'string'
>         print 'Type:           ', tmp
>         print 'Input:          ', ['no', 'yes'][chnlst.IsInputChannel(i)]
>         print 'Output:         ', ['no', 'yes'][chnlst.IsOutputChannel(i)]
>         if chnlst.SubType(i) > 0:
>             tmp = ['integer', 'linear', 'exponential']
>             print 'Subtype:        ', tmp[chnlst.SubType(i) - 1]
>             print 'Default value:  ', chnlst.DefaultValue(i)
>             print 'Minimum value:  ', chnlst.MinValue(i)
>             print 'Maximum value:  ', chnlst.MaxValue(i)
>         print '------------------------------------------------------------'
>         if chnlst.IsControlChannel(i) and chnlst.IsInputChannel(i):
>             if chnlst.SubType(i) == csnd.CSOUND_CONTROL_CHANNEL_EXP:
>                 controlInput = chnlst.Name(i)
>         if chnlst.IsAudioChannel(i) and chnlst.IsOutputChannel(i):
>             audioOutput = chnlst.Name(i)
>         if chnlst.IsStringChannel(i) and chnlst.IsInputChannel(i):
>             stringInput = chnlst.Name(i)
> 
> # free memory used by the channel list; call this before csound.Reset()
> 
> chnlst.Clear()
> 
> if controlInput == '' or audioOutput == '':
>     csound.Reset()
>     raise(SystemExit(0))
> 
> # if found an exponential control input channel and an audio output channel,
> # perform the orchestra
> 
> # get pointer to the control input channel
> ptr1 = csnd.CsoundMYFLTArray()
> csound.GetChannelPtr(ptr1.GetPtr(), controlInput,
>                      csnd.CSOUND_CONTROL_CHANNEL + csnd.CSOUND_INPUT_CHANNEL)
> # get pointer to the audio output channel
> ptr2 = csnd.CsoundMYFLTArray()
> csound.GetChannelPtr(ptr2.GetPtr(), audioOutput,
>                      csnd.CSOUND_AUDIO_CHANNEL + csnd.CSOUND_OUTPUT_CHANNEL)
> # if there is a string input channel, write the file name to it
> if stringInput != '':
>     ptr3 = csnd.CsoundMYFLTArray()
>     csound.GetChannelPtr(ptr3.GetPtr(), stringInput,
>                          csnd.CSOUND_STRING_CHANNEL + csnd.CSOUND_INPUT_CHANNEL)
>     ptr3.SetStringValue('chntest.wav', csound.GetStrVarMaxLen())
>     ptr3 = None
> # get the range of the control channel
> tmp, dflt, minVal, maxVal = csound.GetControlChannelParams(controlInput)
> ksmps = csound.GetKsmps()
> 
> # open a 16 bit mono WAV file for storing the audio output
> 
> f = wave.open('chntest.wav', 'wb')
> f.setframerate(int(csound.GetSr()))
> f.setnchannels(1)
> f.setsampwidth(2)
> buf = array.array('B')
> 
> # writes a floating point sample (-1.0 to 1.0) to the buffer
> 
> def writeSample(x):
>     nn = int(x * 32767.0)
>     if nn < 0:
>         if nn > -32768:
>             nn = 65536 + nn
>         else:
>             nn = 32768
>     elif nn > 32767:
>         nn = 32767
>     buf.append(nn & 255)
>     buf.append(nn >> 8)
> 
> x = maxVal
> c1 = math.pow(0.5, (1.0 / csound.GetKr()))
> 
> while 1:
>     # set control input
>     ptr1.SetValue(0, x)
>     x = minVal + ((x - minVal) * c1)
>     # perform one control period
>     if csound.PerformKsmps() != 0:
>         break
>     # get audio output
>     for i in range(ksmps):
>         writeSample(ptr2.GetValue(i))
> 
> # write sound file
> 
> f.writeframes(buf)
> f.close()
> 
> # clean up
> 
> csound.Reset()
> 
> ------------------------------------------------------------------------
> -- 
> Send bugs reports to this list.
> To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk
>