Csound Csound-dev Csound-tekno Search About

[Csnd] Creation of a control-rate instance with inletk

Date2011-03-22 19:32
FromJan Jacob Hofmann
Subject[Csnd] Creation of a control-rate instance with inletk
Dear list,

using some Signal Flow Graph Opcodes I experienced, that k-rate  
signals are not properly read in by inletk in my orc. I just can not  
seem to get it working for k-rate while it works perfectly for a-rate.  
What makes me wonder is the output in the output window:

*******************************************************************************
Csound version 5.13 (float samples) Jan 17 2011
[...]
Connected outlet 1:audio_out to inlet 2:audio_in.
Connected outlet 1:control_out to inlet 2:control_in.


[...]

new alloc for instr 1:
Created instance 0x2601ad4 of 1 instances of outlet 1:audio_out
Created instance 0x2601bf4 of outlet 1:control_out

new alloc for instr 2:
BEGAN Inleta::init()...
sourceOutlets: 0x0
sourceOutlets: 0x176bfba0
Created instance 0x2604070 of inlet 2:audio_in
Connected instances of outlet 1:audio_out to instance 0x2604070 of  
inlet 2:audio_in.
ENDED Inleta::init().
Created instance 0x2604198 of inlet 2:
instr 2: icontrol = 0.000

[...]

*******************************************************************************


For the audio output we do find notes of the creation of instances. As  
it comes to the creation of instances for inletk in instr. 2 it seems  
to fail.
I now wonder, what could be wrong. Have I miscoded something or is  
there a general error in the creation of a control-rate instance with  
inletk? Anyway - no control-signal is read into instr. 2. Maybe  
someone can confirm, that inletk is working on his .csd?

You will find my test- .csd below.

Best regards,

Jan Jacob






-n


connect	 "1", "audio_out",	 "2", "audio_in"	 ;connecting a-rate output  
from instr 1 to instr 2
connect	 "1", "control_out",	 "2", "control_in"	;connecting k-rate  
output from instr 1 to instr 2
instr 1	 ; source instrument
asig	 oscil	 10000, 440, 1	 ; creating an audio signal
outleta	 "audio_out", asig	 ; sending the audio signal to channel  
"audio_out"
outletk	 "control_out", 1	 ; sending the control signal to channel  
"control_out"
schedule	2, 0, 1	 ; starting instr 2 to play simultaneously
endin
instr 2	 ; sink instrument
ktrig	 init	 1
kcontrol	init	 0
asig	 inleta	 "audio_in"	 ; reading channel "audio_in"
kcontrol	inletk	 "control_in"	 ; reading channel "audio_in"
;kcontrol	=	 2	 ; uncomment this for test reasons: "icontrol=2" should  
appear in the output window
; the reinit-pass is just for converting the k-rate signal to i rate  
to print it conveniently in the output window
cyclestart: ; start of (re)init pass
icontrol	=	 i(kcontrol)	 ; convert k-rate signal to i-rate
print	 icontrol	 ; print the control signal converted to i-rate
rireturn	 ; end of (re)init pass
if	ktrig	== 1	then ; at first k-cycle ...
reinit	 cyclestart	 ; ... and reinit "cyclestart"
endif
ktrig	 =	 0	 ; avoid repeating this every k-cycle
out asig	 ; output the sound
endin


f1	0	8192	10	1	 /*	sine */
i1	0	1




Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"

Date2011-03-22 20:48
FromMichael Gogins
SubjectRe: [Csnd] Creation of a control-rate instance with inletk
Thanks for your report, I will investigate this. I am the author of
these opcodes.

Regards,
Mike Gogins

On Tue, Mar 22, 2011 at 3:32 PM, Jan Jacob Hofmann
 wrote:
> Dear list,
>
> using some Signal Flow Graph Opcodes I experienced, that k-rate signals are
> not properly read in by inletk in my orc. I just can not seem to get it
> working for k-rate while it works perfectly for a-rate. What makes me wonder
> is the output in the output window:
>
> *******************************************************************************
> Csound version 5.13 (float samples) Jan 17 2011
> [...]
> Connected outlet 1:audio_out to inlet 2:audio_in.
> Connected outlet 1:control_out to inlet 2:control_in.
>
>
> [...]
>
> new alloc for instr 1:
> Created instance 0x2601ad4 of 1 instances of outlet 1:audio_out
> Created instance 0x2601bf4 of outlet 1:control_out
>
> new alloc for instr 2:
> BEGAN Inleta::init()...
> sourceOutlets: 0x0
> sourceOutlets: 0x176bfba0
> Created instance 0x2604070 of inlet 2:audio_in
> Connected instances of outlet 1:audio_out to instance 0x2604070 of inlet
> 2:audio_in.
> ENDED Inleta::init().
> Created instance 0x2604198 of inlet 2:
> instr 2: icontrol = 0.000
>
> [...]
>
> *******************************************************************************
>
>
> For the audio output we do find notes of the creation of instances. As it
> comes to the creation of instances for inletk in instr. 2 it seems to fail.
> I now wonder, what could be wrong. Have I miscoded something or is there a
> general error in the creation of a control-rate instance with inletk? Anyway
> - no control-signal is read into instr. 2. Maybe someone can confirm, that
> inletk is working on his .csd?
>
> You will find my test- .csd below.
>
> Best regards,
>
> Jan Jacob
>
>
>
>
> 
> 
> -n
> 
> 
> connect  "1", "audio_out",       "2", "audio_in"         ;connecting a-rate
> output from instr 1 to instr 2
> connect  "1", "control_out",     "2", "control_in"      ;connecting k-rate
> output from instr 1 to instr 2
> instr 1  ; source instrument
> asig     oscil   10000, 440, 1   ; creating an audio signal
> outleta  "audio_out", asig       ; sending the audio signal to channel
> "audio_out"
> outletk  "control_out", 1        ; sending the control signal to channel
> "control_out"
> schedule        2, 0, 1  ; starting instr 2 to play simultaneously
> endin
> instr 2  ; sink instrument
> ktrig    init    1
> kcontrol        init     0
> asig     inleta  "audio_in"      ; reading channel "audio_in"
> kcontrol        inletk   "control_in"    ; reading channel "audio_in"
> ;kcontrol       =        2       ; uncomment this for test reasons:
> "icontrol=2" should appear in the output window
> ; the reinit-pass is just for converting the k-rate signal to i rate to
> print it conveniently in the output window
> cyclestart: ; start of (re)init pass
> icontrol        =        i(kcontrol)     ; convert k-rate signal to i-rate
> print    icontrol        ; print the control signal converted to i-rate
> rireturn         ; end of (re)init pass
> if      ktrig   == 1    then ; at first k-cycle ...
> reinit   cyclestart      ; ... and reinit "cyclestart"
> endif
> ktrig    =       0       ; avoid repeating this every k-cycle
> out asig         ; output the sound
> endin
> 
> 
> f1      0       8192    10      1        /*     sine */
> i1      0       1
> 
> 
>
>
> Send bugs reports to the Sourceforge bug tracker
>           https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
> csound"
>
>



-- 
Michael Gogins
Irreducible Productions
http://www.michael-gogins.com
Michael dot Gogins at gmail dot com


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"