Csound Csound-dev Csound-tekno Search About

multiple midi outs -Q / Csound API / Python

Date2007-08-18 03:21
FromTim Mortimer
Subjectmultiple midi outs -Q / Csound API / Python
Greetings,

I thought i glimpsed a thread on this topic recently, but was unable to find
it.

I'm wondering if its possible to use Csound API in python to enable
targetting simultaneously different -Q flag targets? 

The garritan Standalone player allows housing simultaneous 8x 8-timbral
instances of GPO's Kontakt player, but each player is on a separate -Q
channel

I wish to target -Q10, -Q11 & -Q12 simultaneously with 3 different
Csound.csd files.

no audio output is required at this stage. ( -odac99 rtaudio=null )

I'm thinking this is just the ticket for an initial Python hosts CsoundAPI
project - if it's possible to do it?

Can anyone point me in the right direction, or even show a simple example?

Many thanks

Tim

P.S: My Python "meta scoring language" is pretty much functional to a
useable stage (yippee!). So far it targets 90% of the Garritan instruments,
but the Csound instrument targetting implementation could be based on a
slightly simplified version of the same code with hopefully minimal effort.
(& simultaneously forces a solution to many subjective csound related design
issues by creating a standard to which many of my orc designs will now need
to adhere...) - should also work pretty generically to control other midi
instruments also 

What was abandoned several times & took months of effort in Max has taken me
about .... maybe 60 hours total in Python? (including a couple of redesigns
from the ground up, & also including the fact that it's my first ever
programming project in any language other than csound. Talk about right
tools for the job!) Many thanks to all that have offered help & assistance.
of which thankfully i seem to be needing less & less.... I am very happy to
be reaching what feels like an exciting milestone in my attempts to get
serious with "computer music" - at least now if it sounds crap i know it's
me, & I can stop blaming the tools... 





-- 
View this message in context: http://www.nabble.com/multiple-midi-outs--Q---Csound-API---Python-tf4288950.html#a12209893
Sent from the Csound - General mailing list archive at Nabble.com.

Date2007-08-19 07:52
FromTim Mortimer
SubjectRe: multiple midi outs -Q / Csound API / Python
well after recovering from my hangover this afternoon, here's my first
attempt at getting multiple -Q's out using csnd in Python

The code runs, but it still only transmits on -Q10

am I missing something? or do i yet again drag Max out of preliminary
retirement & execute using Davis Pyon's Csound~?

# begin python code

import csnd


csoundwinds = csnd.CppSound()
csoundstrings = csnd.CppSound()

csoundwinds.setPythonMessageCallback()
csoundstrings.setPythonMessageCallback()

csoundwinds.setCommand('csound -+rtaudio=null -Q10 test.orc test.sco')
csoundstrings.setCommand('csound -+rtaudio=null -Q11 test.orc test.sco')

# generic orch to translate csound sco
# to midi events for Garritan standalone player
# using csnd to try & target different soundbanks
# on different -Q channels
# at present, the code executes fine
# but the targetting of separate -Q channels
# is not achieved


thisorch = '''

  sr	    	=  48000
  ksmps	=  64
  nchnls  =  2
  
  0dbfs = 1

opcode Pch2MIDIi, i,i

ipit		xin  

		ioct = ((int(ipit))-3)*12

		iint = (ipit%1)*100

		imidi = ioct+iint
		
		imidi = round(imidi)
		
		xout imidi  
		
endop

instr 01

	xtratim .001

	ipch = p4
	
	ivel = p5

	inotnum Pch2MIDIi ipch
	
	print inotnum

	noteondur p6, inotnum, ivel, p3

endin

instr 02
	
	kline init p5
	;;; ***********************
	;;;	line needs temposcaling
	
	icc = p4
	
	kline line p5,p6,p7
	
	midiout 176, p8, icc, kline

endin

instr 03 ;;;PITCHBEND
	
	kline init p4
	;;; ***********************
	;;;	line needs temposcaling
	
	kline line p4,p5,p6
	
	midiout 224, p7, 0, kline

endin

'''

csoundwinds.setOrchestra(thisorch)
csoundstrings.setOrchestra(thisorch)


csoundwinds.setScore('''

t 0 60

i 1 	 0.000 	 0.472 	 7.03 	 51 	 7 
i 2 	 0.000 	 0.471 	 1 	 51 	 0.471 	 0 	 7 
i 1 	 0.497 	 6.223 	 9.10 	 50 	 1 
i 2 	 0.497 	 6.222 	 1 	 51 	 6.222 	 1 	 1 
i 1 	 0.498 	 6.203 	 7.07 	 50 	 4 
i 2 	 0.498 	 6.202 	 1 	 48 	 6.202 	 1 	 4 
i 1 	 0.502 	 6.223 	 7.03 	 48 	 7 
i 2 	 0.502 	 6.222 	 1 	 50 	 6.222 	 0 	 7 
i 1 	 6.750 	 1.968 	 9.10 	 48 	 1 
i 2 	 6.750 	 0.002 	 1 	 49 	 0.002 	 49 	 1 
i 1 	 8.748 	 2.967 	 9.09 	 48 	 1 
i 2 	 8.748 	 2.966 	 1 	 60 	 2.966 	 1 	 1 
i 1 	 6.731 	 5.000 	 7.06 	 50 	 4 
i 2 	 6.731 	 4.999 	 1 	 48 	 4.999 	 0 	 4 
i 1 	 6.755 	 4.976 	 7.03 	 50 	 7 
i 2 	 6.755 	 4.975 	 1 	 51 	 4.975 	 0 	 7 
i 1 	 11.745 	 1.978 	 9.11 	 51 	 1 
i 2 	 11.745 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
i 1 	 13.753 	 0.959 	 10.05 	 50 	 1 
i 2 	 13.753 	 0.958 	 1 	 58 	 0.958 	 1 	 1 
i 1 	 11.761 	 2.975 	 7.06 	 48 	 4 
i 2 	 11.761 	 2.974 	 1 	 50 	 2.974 	 0 	 4 
i 1 	 11.761 	 2.951 	 7.03 	 50 	 7 
i 2 	 11.761 	 2.950 	 1 	 51 	 2.950 	 1 	 7 
i 1 	 14.742 	 2.248 	 10.05 	 50 	 1 
i 2 	 14.742 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
i 1 	 17.020 	 2.690 	 9.09 	 49 	 1 
i 2 	 17.020 	 2.689 	 1 	 51 	 2.689 	 0 	 1 
i 1 	 14.766 	 4.951 	 7.06 	 51 	 4 
i 2 	 14.766 	 4.950 	 1 	 50 	 4.950 	 0 	 4 
i 1 	 14.742 	 4.970 	 7.03 	 50 	 7 
i 2 	 14.742 	 4.969 	 1 	 49 	 4.969 	 0 	 7 
i 1 	 19.740 	 1.215 	 9.09 	 48 	 1 
i 2 	 19.740 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
i 1 	 20.985 	 1.491 	 9.10 	 51 	 1 
i 2 	 20.985 	 1.490 	 1 	 50 	 1.490 	 1 	 1 
i 1 	 19.747 	 2.710 	 7.06 	 49 	 4 
i 2 	 19.747 	 2.709 	 1 	 48 	 2.709 	 0 	 4 
i 1 	 22.506 	 1.075 	 9.10 	 49 	 1 
i 2 	 22.506 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
i 1 	 23.611 	 0.859 	 10.00 	 51 	 1 
i 2 	 23.611 	 0.858 	 1 	 51 	 0.858 	 0 	 1 
i 1 	 22.487 	 1.983 	 7.06 	 51 	 4 
i 2 	 22.487 	 1.982 	 1 	 51 	 1.982 	 0 	 4 

''')

csoundstrings.setScore('''

t 0 60

i 1 	 0.000 	 0.002 	 6.01 	 100 	 3 
i 1 	 0.000 	 0.002 	 6.01 	 100 	 4 
i 1 	 0.000 	 0.002 	 6.01 	 100 	 5 
i 1 	 0.000 	 0.002 	 6.01 	 100 	 6 
i 1 	 0.000 	 0.470 	 9.02 	 51 	 4 
i 2 	 0.000 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
i 1 	 0.000 	 0.458 	 6.03 	 48 	 6 
i 2 	 0.000 	 0.457 	 1 	 49 	 0.457 	 0 	 6 
i 1 	 0.504 	 6.209 	 8.10 	 49 	 3 
i 2 	 0.504 	 6.208 	 1 	 51 	 6.208 	 0 	 3 
i 1 	 0.488 	 6.227 	 6.03 	 49 	 6 
i 2 	 0.488 	 6.226 	 1 	 50 	 6.226 	 1 	 6 
i 1 	 6.743 	 1.975 	 8.10 	 51 	 3 
i 2 	 6.743 	 0.050 	 1 	 0 	 0.050 	 50 	 3 
i 1 	 8.748 	 2.971 	 8.09 	 50 	 3 
i 2 	 8.748 	 2.970 	 1 	 59 	 2.970 	 0 	 3 
i 1 	 6.758 	 4.971 	 9.02 	 49 	 4 
i 2 	 6.758 	 0.002 	 1 	 48 	 0.002 	 48 	 4 
i 1 	 6.745 	 4.980 	 6.03 	 50 	 6 
i 2 	 6.745 	 4.979 	 1 	 50 	 4.979 	 0 	 6 
i 1 	 11.749 	 1.965 	 8.11 	 51 	 3 
i 2 	 11.749 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
i 1 	 13.744 	 0.951 	 9.05 	 51 	 3 
i 2 	 13.744 	 0.950 	 1 	 59 	 0.950 	 0 	 3 
i 1 	 11.759 	 2.974 	 9.02 	 50 	 4 
i 2 	 11.759 	 2.973 	 1 	 51 	 2.973 	 1 	 4 
i 1 	 11.755 	 2.973 	 6.03 	 51 	 6 
i 2 	 11.755 	 2.972 	 1 	 48 	 2.972 	 0 	 6 
i 1 	 14.725 	 2.256 	 9.05 	 48 	 3 
i 2 	 14.725 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
i 1 	 17.011 	 2.680 	 8.09 	 50 	 3 
i 2 	 17.011 	 2.679 	 1 	 50 	 2.679 	 1 	 3 
i 1 	 14.763 	 4.915 	 9.02 	 50 	 4 
i 2 	 14.763 	 0.050 	 1 	 1 	 0.050 	 51 	 4 
i 2 	 14.813 	 4.864 	 1 	 51 	 4.864 	 0 	 4 
i 1 	 14.758 	 4.970 	 6.03 	 50 	 6 
i 2 	 14.758 	 4.969 	 1 	 48 	 4.969 	 0 	 6 
i 1 	 19.771 	 1.195 	 8.09 	 51 	 3 
i 2 	 19.771 	 0.040 	 1 	 1 	 0.040 	 49 	 3 
i 1 	 20.996 	 1.472 	 8.10 	 50 	 3 
i 2 	 20.996 	 1.471 	 1 	 51 	 1.471 	 0 	 3 
i 1 	 19.758 	 2.712 	 9.02 	 48 	 4 
i 2 	 19.758 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
i 1 	 22.498 	 1.097 	 8.10 	 48 	 3 
i 2 	 22.498 	 0.050 	 1 	 0 	 0.050 	 51 	 3 
i 1 	 23.625 	 0.845 	 9.00 	 49 	 3 
i 2 	 23.625 	 0.844 	 1 	 51 	 0.844 	 1 	 3 
i 1 	 22.500 	 1.970 	 9.02 	 49 	 4 
i 2 	 22.500 	 0.002 	 1 	 50 	 0.002 	 50 	 4 

''')


csoundwinds.exportForPerformance()
csoundstrings.exportForPerformance()

csoundwinds.perform()
csoundstrings.perform()


-- 
View this message in context: http://www.nabble.com/multiple-midi-outs--Q---Csound-API---Python-tf4288950.html#a12219867
Sent from the Csound - General mailing list archive at Nabble.com.

Date2007-08-21 01:28
FromTim Mortimer
SubjectRe: multiple midi outs -Q / Csound API / Python
Ok, so i went & set it up using Csound~ in Max instead, but I'm still very
keen to know how to set up multiple calls to csnd.CppSound() & to get
multiple MIDI outputs working as a result. Or, OTOH, to know that it's not
possible for some reason

Michael G? Oeyvind? Anyone?

Ignoring my posts does seem to be the fashion of late. Many times i can
understand why, & often i go on to sort out the issue myself.

On this occasion however, i'd appreciate some advice. Particularly as there
is no documentation for the Csnd API (if i'm not mistaken?)

Do i need to have separate threads or something? 




Tim Mortimer wrote:
> 
> well after recovering from my hangover this afternoon, here's my first
> attempt at getting multiple -Q's out using csnd in Python
> 
> The code runs, but it still only transmits on -Q10
> 
> am I missing something? or do i yet again drag Max out of preliminary
> retirement & execute using Davis Pyon's Csound~?
> 
> # begin python code
> 
> import csnd
> 
> 
> csoundwinds = csnd.CppSound()
> csoundstrings = csnd.CppSound()
> 
> csoundwinds.setPythonMessageCallback()
> csoundstrings.setPythonMessageCallback()
> 
> csoundwinds.setCommand('csound -+rtaudio=null -Q10 test.orc test.sco')
> csoundstrings.setCommand('csound -+rtaudio=null -Q11 test.orc test.sco')
> 
> # generic orch to translate csound sco
> # to midi events for Garritan standalone player
> # using csnd to try & target different soundbanks
> # on different -Q channels
> # at present, the code executes fine
> # but the targetting of separate -Q channels
> # is not achieved
> 
> 
> thisorch = '''
> 
>   sr	    	=  48000
>   ksmps	=  64
>   nchnls  =  2
>   
>   0dbfs = 1
> 
> opcode Pch2MIDIi, i,i
> 
> ipit		xin  
> 
> 		ioct = ((int(ipit))-3)*12
> 
> 		iint = (ipit%1)*100
> 
> 		imidi = ioct+iint
> 		
> 		imidi = round(imidi)
> 		
> 		xout imidi  
> 		
> endop
> 
> instr 01
> 
> 	xtratim .001
> 
> 	ipch = p4
> 	
> 	ivel = p5
> 
> 	inotnum Pch2MIDIi ipch
> 	
> 	print inotnum
> 
> 	noteondur p6, inotnum, ivel, p3
> 
> endin
> 
> instr 02
> 	
> 	kline init p5
> 	;;; ***********************
> 	;;;	line needs temposcaling
> 	
> 	icc = p4
> 	
> 	kline line p5,p6,p7
> 	
> 	midiout 176, p8, icc, kline
> 
> endin
> 
> instr 03 ;;;PITCHBEND
> 	
> 	kline init p4
> 	;;; ***********************
> 	;;;	line needs temposcaling
> 	
> 	kline line p4,p5,p6
> 	
> 	midiout 224, p7, 0, kline
> 
> endin
> 
> '''
> 
> csoundwinds.setOrchestra(thisorch)
> csoundstrings.setOrchestra(thisorch)
> 
> 
> csoundwinds.setScore('''
> 
> t 0 60
> 
> i 1 	 0.000 	 0.472 	 7.03 	 51 	 7 
> i 2 	 0.000 	 0.471 	 1 	 51 	 0.471 	 0 	 7 
> i 1 	 0.497 	 6.223 	 9.10 	 50 	 1 
> i 2 	 0.497 	 6.222 	 1 	 51 	 6.222 	 1 	 1 
> i 1 	 0.498 	 6.203 	 7.07 	 50 	 4 
> i 2 	 0.498 	 6.202 	 1 	 48 	 6.202 	 1 	 4 
> i 1 	 0.502 	 6.223 	 7.03 	 48 	 7 
> i 2 	 0.502 	 6.222 	 1 	 50 	 6.222 	 0 	 7 
> i 1 	 6.750 	 1.968 	 9.10 	 48 	 1 
> i 2 	 6.750 	 0.002 	 1 	 49 	 0.002 	 49 	 1 
> i 1 	 8.748 	 2.967 	 9.09 	 48 	 1 
> i 2 	 8.748 	 2.966 	 1 	 60 	 2.966 	 1 	 1 
> i 1 	 6.731 	 5.000 	 7.06 	 50 	 4 
> i 2 	 6.731 	 4.999 	 1 	 48 	 4.999 	 0 	 4 
> i 1 	 6.755 	 4.976 	 7.03 	 50 	 7 
> i 2 	 6.755 	 4.975 	 1 	 51 	 4.975 	 0 	 7 
> i 1 	 11.745 	 1.978 	 9.11 	 51 	 1 
> i 2 	 11.745 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
> i 1 	 13.753 	 0.959 	 10.05 	 50 	 1 
> i 2 	 13.753 	 0.958 	 1 	 58 	 0.958 	 1 	 1 
> i 1 	 11.761 	 2.975 	 7.06 	 48 	 4 
> i 2 	 11.761 	 2.974 	 1 	 50 	 2.974 	 0 	 4 
> i 1 	 11.761 	 2.951 	 7.03 	 50 	 7 
> i 2 	 11.761 	 2.950 	 1 	 51 	 2.950 	 1 	 7 
> i 1 	 14.742 	 2.248 	 10.05 	 50 	 1 
> i 2 	 14.742 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
> i 1 	 17.020 	 2.690 	 9.09 	 49 	 1 
> i 2 	 17.020 	 2.689 	 1 	 51 	 2.689 	 0 	 1 
> i 1 	 14.766 	 4.951 	 7.06 	 51 	 4 
> i 2 	 14.766 	 4.950 	 1 	 50 	 4.950 	 0 	 4 
> i 1 	 14.742 	 4.970 	 7.03 	 50 	 7 
> i 2 	 14.742 	 4.969 	 1 	 49 	 4.969 	 0 	 7 
> i 1 	 19.740 	 1.215 	 9.09 	 48 	 1 
> i 2 	 19.740 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
> i 1 	 20.985 	 1.491 	 9.10 	 51 	 1 
> i 2 	 20.985 	 1.490 	 1 	 50 	 1.490 	 1 	 1 
> i 1 	 19.747 	 2.710 	 7.06 	 49 	 4 
> i 2 	 19.747 	 2.709 	 1 	 48 	 2.709 	 0 	 4 
> i 1 	 22.506 	 1.075 	 9.10 	 49 	 1 
> i 2 	 22.506 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
> i 1 	 23.611 	 0.859 	 10.00 	 51 	 1 
> i 2 	 23.611 	 0.858 	 1 	 51 	 0.858 	 0 	 1 
> i 1 	 22.487 	 1.983 	 7.06 	 51 	 4 
> i 2 	 22.487 	 1.982 	 1 	 51 	 1.982 	 0 	 4 
> 
> ''')
> 
> csoundstrings.setScore('''
> 
> t 0 60
> 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 3 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 4 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 5 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 6 
> i 1 	 0.000 	 0.470 	 9.02 	 51 	 4 
> i 2 	 0.000 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
> i 1 	 0.000 	 0.458 	 6.03 	 48 	 6 
> i 2 	 0.000 	 0.457 	 1 	 49 	 0.457 	 0 	 6 
> i 1 	 0.504 	 6.209 	 8.10 	 49 	 3 
> i 2 	 0.504 	 6.208 	 1 	 51 	 6.208 	 0 	 3 
> i 1 	 0.488 	 6.227 	 6.03 	 49 	 6 
> i 2 	 0.488 	 6.226 	 1 	 50 	 6.226 	 1 	 6 
> i 1 	 6.743 	 1.975 	 8.10 	 51 	 3 
> i 2 	 6.743 	 0.050 	 1 	 0 	 0.050 	 50 	 3 
> i 1 	 8.748 	 2.971 	 8.09 	 50 	 3 
> i 2 	 8.748 	 2.970 	 1 	 59 	 2.970 	 0 	 3 
> i 1 	 6.758 	 4.971 	 9.02 	 49 	 4 
> i 2 	 6.758 	 0.002 	 1 	 48 	 0.002 	 48 	 4 
> i 1 	 6.745 	 4.980 	 6.03 	 50 	 6 
> i 2 	 6.745 	 4.979 	 1 	 50 	 4.979 	 0 	 6 
> i 1 	 11.749 	 1.965 	 8.11 	 51 	 3 
> i 2 	 11.749 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
> i 1 	 13.744 	 0.951 	 9.05 	 51 	 3 
> i 2 	 13.744 	 0.950 	 1 	 59 	 0.950 	 0 	 3 
> i 1 	 11.759 	 2.974 	 9.02 	 50 	 4 
> i 2 	 11.759 	 2.973 	 1 	 51 	 2.973 	 1 	 4 
> i 1 	 11.755 	 2.973 	 6.03 	 51 	 6 
> i 2 	 11.755 	 2.972 	 1 	 48 	 2.972 	 0 	 6 
> i 1 	 14.725 	 2.256 	 9.05 	 48 	 3 
> i 2 	 14.725 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
> i 1 	 17.011 	 2.680 	 8.09 	 50 	 3 
> i 2 	 17.011 	 2.679 	 1 	 50 	 2.679 	 1 	 3 
> i 1 	 14.763 	 4.915 	 9.02 	 50 	 4 
> i 2 	 14.763 	 0.050 	 1 	 1 	 0.050 	 51 	 4 
> i 2 	 14.813 	 4.864 	 1 	 51 	 4.864 	 0 	 4 
> i 1 	 14.758 	 4.970 	 6.03 	 50 	 6 
> i 2 	 14.758 	 4.969 	 1 	 48 	 4.969 	 0 	 6 
> i 1 	 19.771 	 1.195 	 8.09 	 51 	 3 
> i 2 	 19.771 	 0.040 	 1 	 1 	 0.040 	 49 	 3 
> i 1 	 20.996 	 1.472 	 8.10 	 50 	 3 
> i 2 	 20.996 	 1.471 	 1 	 51 	 1.471 	 0 	 3 
> i 1 	 19.758 	 2.712 	 9.02 	 48 	 4 
> i 2 	 19.758 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
> i 1 	 22.498 	 1.097 	 8.10 	 48 	 3 
> i 2 	 22.498 	 0.050 	 1 	 0 	 0.050 	 51 	 3 
> i 1 	 23.625 	 0.845 	 9.00 	 49 	 3 
> i 2 	 23.625 	 0.844 	 1 	 51 	 0.844 	 1 	 3 
> i 1 	 22.500 	 1.970 	 9.02 	 49 	 4 
> i 2 	 22.500 	 0.002 	 1 	 50 	 0.002 	 50 	 4 
> 
> ''')
> 
> 
> csoundwinds.exportForPerformance()
> csoundstrings.exportForPerformance()
> 
> csoundwinds.perform()
> csoundstrings.perform()
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/multiple-midi-outs--Q---Csound-API---Python-tf4288950.html#a12246352
Sent from the Csound - General mailing list archive at Nabble.com.

Date2007-08-26 05:13
FromTim Mortimer
SubjectRe: multiple midi outs -Q / Csound API / Python
Hello,

As i still have had no indication or further insight into if it is or is not
possible to do what I am attempting in the code below, I thought I may as
well post again in the hope that someone might actually be able to spare 60
seconds & provide an answer.

To clarify/ restate - i am attempting to use multiple calls to
csnd.CppSound() in Python to enable transmission of midi data to separate -Q
channels simultaneously

If it is not possible, a simple "no that is not possible" will suffice.

I happily accept that some of my more speculative threads may not merit
attention when everyone is busy (like myself) gazing deeply into their own
navels on various projects of their own, or imminent release / development
deadlines / the "real world".

However without pushing the belligerance angle too far, i sincerely believe
this query is deserving of an answer, if only due to it's overwhelmingly
specific focus, & extreme brevity of time investment for anyone capable of
actually giving a response.

with continued gratitude & thanks

Tim


Tim Mortimer wrote:
> 
> 
> The code runs, but it only transmits on -Q10
> 
> am I missing something? 
> 
> import csnd
> 
> csoundwinds = csnd.CppSound()
> csoundstrings = csnd.CppSound()
> 
> csoundwinds.setPythonMessageCallback()
> csoundstrings.setPythonMessageCallback()
> 
> csoundwinds.setCommand('csound -+rtaudio=null -Q10 test.orc test.sco')
> csoundstrings.setCommand('csound -+rtaudio=null -Q11 test.orc test.sco')
> 
> # generic orch to translate csound sco
> # to midi events for Garritan standalone player
> # using csnd to try & target different soundbanks
> # on different -Q channels
> # at present, the code executes fine
> # but the targetting of separate -Q channels
> # is not achieved
> 
> 
> thisorch = '''
> 
>   sr	    	=  48000
>   ksmps	=  64
>   nchnls  =  2
>   
>   0dbfs = 1
> 
> opcode Pch2MIDIi, i,i
> 
> ipit		xin  
> 
> 		ioct = ((int(ipit))-3)*12
> 
> 		iint = (ipit%1)*100
> 
> 		imidi = ioct+iint
> 		
> 		imidi = round(imidi)
> 		
> 		xout imidi  
> 		
> endop
> 
> instr 01
> 
> 	xtratim .001
> 
> 	ipch = p4
> 	
> 	ivel = p5
> 
> 	inotnum Pch2MIDIi ipch
> 	
> 	print inotnum
> 
> 	noteondur p6, inotnum, ivel, p3
> 
> endin
> 
> instr 02
> 	
> 	kline init p5
> 	;;; ***********************
> 	;;;	line needs temposcaling
> 	
> 	icc = p4
> 	
> 	kline line p5,p6,p7
> 	
> 	midiout 176, p8, icc, kline
> 
> endin
> 
> instr 03 ;;;PITCHBEND
> 	
> 	kline init p4
> 	;;; ***********************
> 	;;;	line needs temposcaling
> 	
> 	kline line p4,p5,p6
> 	
> 	midiout 224, p7, 0, kline
> 
> endin
> 
> '''
> 
> csoundwinds.setOrchestra(thisorch)
> csoundstrings.setOrchestra(thisorch)
> 
> csoundwinds.setScore('''
> 
> t 0 60
> 
> i 1 	 0.000 	 0.472 	 7.03 	 51 	 7 
> i 2 	 0.000 	 0.471 	 1 	 51 	 0.471 	 0 	 7 
> i 1 	 0.497 	 6.223 	 9.10 	 50 	 1 
> i 2 	 0.497 	 6.222 	 1 	 51 	 6.222 	 1 	 1 
> i 1 	 0.498 	 6.203 	 7.07 	 50 	 4 
> i 2 	 0.498 	 6.202 	 1 	 48 	 6.202 	 1 	 4 
> i 1 	 0.502 	 6.223 	 7.03 	 48 	 7 
> i 2 	 0.502 	 6.222 	 1 	 50 	 6.222 	 0 	 7 
> i 1 	 6.750 	 1.968 	 9.10 	 48 	 1 
> i 2 	 6.750 	 0.002 	 1 	 49 	 0.002 	 49 	 1 
> i 1 	 8.748 	 2.967 	 9.09 	 48 	 1 
> i 2 	 8.748 	 2.966 	 1 	 60 	 2.966 	 1 	 1 
> i 1 	 6.731 	 5.000 	 7.06 	 50 	 4 
> i 2 	 6.731 	 4.999 	 1 	 48 	 4.999 	 0 	 4 
> i 1 	 6.755 	 4.976 	 7.03 	 50 	 7 
> i 2 	 6.755 	 4.975 	 1 	 51 	 4.975 	 0 	 7 
> i 1 	 11.745 	 1.978 	 9.11 	 51 	 1 
> i 2 	 11.745 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
> i 1 	 13.753 	 0.959 	 10.05 	 50 	 1 
> i 2 	 13.753 	 0.958 	 1 	 58 	 0.958 	 1 	 1 
> i 1 	 11.761 	 2.975 	 7.06 	 48 	 4 
> i 2 	 11.761 	 2.974 	 1 	 50 	 2.974 	 0 	 4 
> i 1 	 11.761 	 2.951 	 7.03 	 50 	 7 
> i 2 	 11.761 	 2.950 	 1 	 51 	 2.950 	 1 	 7 
> i 1 	 14.742 	 2.248 	 10.05 	 50 	 1 
> i 2 	 14.742 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
> i 1 	 17.020 	 2.690 	 9.09 	 49 	 1 
> i 2 	 17.020 	 2.689 	 1 	 51 	 2.689 	 0 	 1 
> i 1 	 14.766 	 4.951 	 7.06 	 51 	 4 
> i 2 	 14.766 	 4.950 	 1 	 50 	 4.950 	 0 	 4 
> i 1 	 14.742 	 4.970 	 7.03 	 50 	 7 
> i 2 	 14.742 	 4.969 	 1 	 49 	 4.969 	 0 	 7 
> i 1 	 19.740 	 1.215 	 9.09 	 48 	 1 
> i 2 	 19.740 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
> i 1 	 20.985 	 1.491 	 9.10 	 51 	 1 
> i 2 	 20.985 	 1.490 	 1 	 50 	 1.490 	 1 	 1 
> i 1 	 19.747 	 2.710 	 7.06 	 49 	 4 
> i 2 	 19.747 	 2.709 	 1 	 48 	 2.709 	 0 	 4 
> i 1 	 22.506 	 1.075 	 9.10 	 49 	 1 
> i 2 	 22.506 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
> i 1 	 23.611 	 0.859 	 10.00 	 51 	 1 
> i 2 	 23.611 	 0.858 	 1 	 51 	 0.858 	 0 	 1 
> i 1 	 22.487 	 1.983 	 7.06 	 51 	 4 
> i 2 	 22.487 	 1.982 	 1 	 51 	 1.982 	 0 	 4 
> 
> ''')
> 
> csoundstrings.setScore('''
> 
> t 0 60
> 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 3 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 4 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 5 
> i 1 	 0.000 	 0.002 	 6.01 	 100 	 6 
> i 1 	 0.000 	 0.470 	 9.02 	 51 	 4 
> i 2 	 0.000 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
> i 1 	 0.000 	 0.458 	 6.03 	 48 	 6 
> i 2 	 0.000 	 0.457 	 1 	 49 	 0.457 	 0 	 6 
> i 1 	 0.504 	 6.209 	 8.10 	 49 	 3 
> i 2 	 0.504 	 6.208 	 1 	 51 	 6.208 	 0 	 3 
> i 1 	 0.488 	 6.227 	 6.03 	 49 	 6 
> i 2 	 0.488 	 6.226 	 1 	 50 	 6.226 	 1 	 6 
> i 1 	 6.743 	 1.975 	 8.10 	 51 	 3 
> i 2 	 6.743 	 0.050 	 1 	 0 	 0.050 	 50 	 3 
> i 1 	 8.748 	 2.971 	 8.09 	 50 	 3 
> i 2 	 8.748 	 2.970 	 1 	 59 	 2.970 	 0 	 3 
> i 1 	 6.758 	 4.971 	 9.02 	 49 	 4 
> i 2 	 6.758 	 0.002 	 1 	 48 	 0.002 	 48 	 4 
> i 1 	 6.745 	 4.980 	 6.03 	 50 	 6 
> i 2 	 6.745 	 4.979 	 1 	 50 	 4.979 	 0 	 6 
> i 1 	 11.749 	 1.965 	 8.11 	 51 	 3 
> i 2 	 11.749 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
> i 1 	 13.744 	 0.951 	 9.05 	 51 	 3 
> i 2 	 13.744 	 0.950 	 1 	 59 	 0.950 	 0 	 3 
> i 1 	 11.759 	 2.974 	 9.02 	 50 	 4 
> i 2 	 11.759 	 2.973 	 1 	 51 	 2.973 	 1 	 4 
> i 1 	 11.755 	 2.973 	 6.03 	 51 	 6 
> i 2 	 11.755 	 2.972 	 1 	 48 	 2.972 	 0 	 6 
> i 1 	 14.725 	 2.256 	 9.05 	 48 	 3 
> i 2 	 14.725 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
> i 1 	 17.011 	 2.680 	 8.09 	 50 	 3 
> i 2 	 17.011 	 2.679 	 1 	 50 	 2.679 	 1 	 3 
> i 1 	 14.763 	 4.915 	 9.02 	 50 	 4 
> i 2 	 14.763 	 0.050 	 1 	 1 	 0.050 	 51 	 4 
> i 2 	 14.813 	 4.864 	 1 	 51 	 4.864 	 0 	 4 
> i 1 	 14.758 	 4.970 	 6.03 	 50 	 6 
> i 2 	 14.758 	 4.969 	 1 	 48 	 4.969 	 0 	 6 
> i 1 	 19.771 	 1.195 	 8.09 	 51 	 3 
> i 2 	 19.771 	 0.040 	 1 	 1 	 0.040 	 49 	 3 
> i 1 	 20.996 	 1.472 	 8.10 	 50 	 3 
> i 2 	 20.996 	 1.471 	 1 	 51 	 1.471 	 0 	 3 
> i 1 	 19.758 	 2.712 	 9.02 	 48 	 4 
> i 2 	 19.758 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
> i 1 	 22.498 	 1.097 	 8.10 	 48 	 3 
> i 2 	 22.498 	 0.050 	 1 	 0 	 0.050 	 51 	 3 
> i 1 	 23.625 	 0.845 	 9.00 	 49 	 3 
> i 2 	 23.625 	 0.844 	 1 	 51 	 0.844 	 1 	 3 
> i 1 	 22.500 	 1.970 	 9.02 	 49 	 4 
> i 2 	 22.500 	 0.002 	 1 	 50 	 0.002 	 50 	 4 
> 
> ''')
> 
> 
> csoundwinds.exportForPerformance()
> csoundstrings.exportForPerformance()
> 
> csoundwinds.perform()
> csoundstrings.perform()
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/multiple-midi-outs--Q---Csound-API---Python-tf4288950.html#a12332024
Sent from the Csound - General mailing list archive at Nabble.com.

Date2007-08-27 02:45
FromAndres Cabrera
SubjectRe: multiple midi outs -Q / Csound API / Python
Hi Tim
Sorry for the silence....
I believe it's not possible for csound to currently use more than one 
MIDI device per instance.
You'd need to use multimple instances and intercommunicate them... sorry.
Cheers,
Andrés


Tim Mortimer escribió:
> Hello,
>
> As i still have had no indication or further insight into if it is or is not
> possible to do what I am attempting in the code below, I thought I may as
> well post again in the hope that someone might actually be able to spare 60
> seconds & provide an answer.
>
> To clarify/ restate - i am attempting to use multiple calls to
> csnd.CppSound() in Python to enable transmission of midi data to separate -Q
> channels simultaneously
>
> If it is not possible, a simple "no that is not possible" will suffice.
>
> I happily accept that some of my more speculative threads may not merit
> attention when everyone is busy (like myself) gazing deeply into their own
> navels on various projects of their own, or imminent release / development
> deadlines / the "real world".
>
> However without pushing the belligerance angle too far, i sincerely believe
> this query is deserving of an answer, if only due to it's overwhelmingly
> specific focus, & extreme brevity of time investment for anyone capable of
> actually giving a response.
>
> with continued gratitude & thanks
>
> Tim
>
>
> Tim Mortimer wrote:
>   
>> The code runs, but it only transmits on -Q10
>>
>> am I missing something? 
>>
>> import csnd
>>
>> csoundwinds = csnd.CppSound()
>> csoundstrings = csnd.CppSound()
>>
>> csoundwinds.setPythonMessageCallback()
>> csoundstrings.setPythonMessageCallback()
>>
>> csoundwinds.setCommand('csound -+rtaudio=null -Q10 test.orc test.sco')
>> csoundstrings.setCommand('csound -+rtaudio=null -Q11 test.orc test.sco')
>>
>> # generic orch to translate csound sco
>> # to midi events for Garritan standalone player
>> # using csnd to try & target different soundbanks
>> # on different -Q channels
>> # at present, the code executes fine
>> # but the targetting of separate -Q channels
>> # is not achieved
>>
>>
>> thisorch = '''
>>
>>   sr	    	=  48000
>>   ksmps	=  64
>>   nchnls  =  2
>>   
>>   0dbfs = 1
>>
>> opcode Pch2MIDIi, i,i
>>
>> ipit		xin  
>>
>> 		ioct = ((int(ipit))-3)*12
>>
>> 		iint = (ipit%1)*100
>>
>> 		imidi = ioct+iint
>> 		
>> 		imidi = round(imidi)
>> 		
>> 		xout imidi  
>> 		
>> endop
>>
>> instr 01
>>
>> 	xtratim .001
>>
>> 	ipch = p4
>> 	
>> 	ivel = p5
>>
>> 	inotnum Pch2MIDIi ipch
>> 	
>> 	print inotnum
>>
>> 	noteondur p6, inotnum, ivel, p3
>>
>> endin
>>
>> instr 02
>> 	
>> 	kline init p5
>> 	;;; ***********************
>> 	;;;	line needs temposcaling
>> 	
>> 	icc = p4
>> 	
>> 	kline line p5,p6,p7
>> 	
>> 	midiout 176, p8, icc, kline
>>
>> endin
>>
>> instr 03 ;;;PITCHBEND
>> 	
>> 	kline init p4
>> 	;;; ***********************
>> 	;;;	line needs temposcaling
>> 	
>> 	kline line p4,p5,p6
>> 	
>> 	midiout 224, p7, 0, kline
>>
>> endin
>>
>> '''
>>
>> csoundwinds.setOrchestra(thisorch)
>> csoundstrings.setOrchestra(thisorch)
>>
>> csoundwinds.setScore('''
>>
>> t 0 60
>>
>> i 1 	 0.000 	 0.472 	 7.03 	 51 	 7 
>> i 2 	 0.000 	 0.471 	 1 	 51 	 0.471 	 0 	 7 
>> i 1 	 0.497 	 6.223 	 9.10 	 50 	 1 
>> i 2 	 0.497 	 6.222 	 1 	 51 	 6.222 	 1 	 1 
>> i 1 	 0.498 	 6.203 	 7.07 	 50 	 4 
>> i 2 	 0.498 	 6.202 	 1 	 48 	 6.202 	 1 	 4 
>> i 1 	 0.502 	 6.223 	 7.03 	 48 	 7 
>> i 2 	 0.502 	 6.222 	 1 	 50 	 6.222 	 0 	 7 
>> i 1 	 6.750 	 1.968 	 9.10 	 48 	 1 
>> i 2 	 6.750 	 0.002 	 1 	 49 	 0.002 	 49 	 1 
>> i 1 	 8.748 	 2.967 	 9.09 	 48 	 1 
>> i 2 	 8.748 	 2.966 	 1 	 60 	 2.966 	 1 	 1 
>> i 1 	 6.731 	 5.000 	 7.06 	 50 	 4 
>> i 2 	 6.731 	 4.999 	 1 	 48 	 4.999 	 0 	 4 
>> i 1 	 6.755 	 4.976 	 7.03 	 50 	 7 
>> i 2 	 6.755 	 4.975 	 1 	 51 	 4.975 	 0 	 7 
>> i 1 	 11.745 	 1.978 	 9.11 	 51 	 1 
>> i 2 	 11.745 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
>> i 1 	 13.753 	 0.959 	 10.05 	 50 	 1 
>> i 2 	 13.753 	 0.958 	 1 	 58 	 0.958 	 1 	 1 
>> i 1 	 11.761 	 2.975 	 7.06 	 48 	 4 
>> i 2 	 11.761 	 2.974 	 1 	 50 	 2.974 	 0 	 4 
>> i 1 	 11.761 	 2.951 	 7.03 	 50 	 7 
>> i 2 	 11.761 	 2.950 	 1 	 51 	 2.950 	 1 	 7 
>> i 1 	 14.742 	 2.248 	 10.05 	 50 	 1 
>> i 2 	 14.742 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
>> i 1 	 17.020 	 2.690 	 9.09 	 49 	 1 
>> i 2 	 17.020 	 2.689 	 1 	 51 	 2.689 	 0 	 1 
>> i 1 	 14.766 	 4.951 	 7.06 	 51 	 4 
>> i 2 	 14.766 	 4.950 	 1 	 50 	 4.950 	 0 	 4 
>> i 1 	 14.742 	 4.970 	 7.03 	 50 	 7 
>> i 2 	 14.742 	 4.969 	 1 	 49 	 4.969 	 0 	 7 
>> i 1 	 19.740 	 1.215 	 9.09 	 48 	 1 
>> i 2 	 19.740 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
>> i 1 	 20.985 	 1.491 	 9.10 	 51 	 1 
>> i 2 	 20.985 	 1.490 	 1 	 50 	 1.490 	 1 	 1 
>> i 1 	 19.747 	 2.710 	 7.06 	 49 	 4 
>> i 2 	 19.747 	 2.709 	 1 	 48 	 2.709 	 0 	 4 
>> i 1 	 22.506 	 1.075 	 9.10 	 49 	 1 
>> i 2 	 22.506 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
>> i 1 	 23.611 	 0.859 	 10.00 	 51 	 1 
>> i 2 	 23.611 	 0.858 	 1 	 51 	 0.858 	 0 	 1 
>> i 1 	 22.487 	 1.983 	 7.06 	 51 	 4 
>> i 2 	 22.487 	 1.982 	 1 	 51 	 1.982 	 0 	 4 
>>
>> ''')
>>
>> csoundstrings.setScore('''
>>
>> t 0 60
>>
>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 3 
>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 4 
>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 5 
>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 6 
>> i 1 	 0.000 	 0.470 	 9.02 	 51 	 4 
>> i 2 	 0.000 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
>> i 1 	 0.000 	 0.458 	 6.03 	 48 	 6 
>> i 2 	 0.000 	 0.457 	 1 	 49 	 0.457 	 0 	 6 
>> i 1 	 0.504 	 6.209 	 8.10 	 49 	 3 
>> i 2 	 0.504 	 6.208 	 1 	 51 	 6.208 	 0 	 3 
>> i 1 	 0.488 	 6.227 	 6.03 	 49 	 6 
>> i 2 	 0.488 	 6.226 	 1 	 50 	 6.226 	 1 	 6 
>> i 1 	 6.743 	 1.975 	 8.10 	 51 	 3 
>> i 2 	 6.743 	 0.050 	 1 	 0 	 0.050 	 50 	 3 
>> i 1 	 8.748 	 2.971 	 8.09 	 50 	 3 
>> i 2 	 8.748 	 2.970 	 1 	 59 	 2.970 	 0 	 3 
>> i 1 	 6.758 	 4.971 	 9.02 	 49 	 4 
>> i 2 	 6.758 	 0.002 	 1 	 48 	 0.002 	 48 	 4 
>> i 1 	 6.745 	 4.980 	 6.03 	 50 	 6 
>> i 2 	 6.745 	 4.979 	 1 	 50 	 4.979 	 0 	 6 
>> i 1 	 11.749 	 1.965 	 8.11 	 51 	 3 
>> i 2 	 11.749 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
>> i 1 	 13.744 	 0.951 	 9.05 	 51 	 3 
>> i 2 	 13.744 	 0.950 	 1 	 59 	 0.950 	 0 	 3 
>> i 1 	 11.759 	 2.974 	 9.02 	 50 	 4 
>> i 2 	 11.759 	 2.973 	 1 	 51 	 2.973 	 1 	 4 
>> i 1 	 11.755 	 2.973 	 6.03 	 51 	 6 
>> i 2 	 11.755 	 2.972 	 1 	 48 	 2.972 	 0 	 6 
>> i 1 	 14.725 	 2.256 	 9.05 	 48 	 3 
>> i 2 	 14.725 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
>> i 1 	 17.011 	 2.680 	 8.09 	 50 	 3 
>> i 2 	 17.011 	 2.679 	 1 	 50 	 2.679 	 1 	 3 
>> i 1 	 14.763 	 4.915 	 9.02 	 50 	 4 
>> i 2 	 14.763 	 0.050 	 1 	 1 	 0.050 	 51 	 4 
>> i 2 	 14.813 	 4.864 	 1 	 51 	 4.864 	 0 	 4 
>> i 1 	 14.758 	 4.970 	 6.03 	 50 	 6 
>> i 2 	 14.758 	 4.969 	 1 	 48 	 4.969 	 0 	 6 
>> i 1 	 19.771 	 1.195 	 8.09 	 51 	 3 
>> i 2 	 19.771 	 0.040 	 1 	 1 	 0.040 	 49 	 3 
>> i 1 	 20.996 	 1.472 	 8.10 	 50 	 3 
>> i 2 	 20.996 	 1.471 	 1 	 51 	 1.471 	 0 	 3 
>> i 1 	 19.758 	 2.712 	 9.02 	 48 	 4 
>> i 2 	 19.758 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
>> i 1 	 22.498 	 1.097 	 8.10 	 48 	 3 
>> i 2 	 22.498 	 0.050 	 1 	 0 	 0.050 	 51 	 3 
>> i 1 	 23.625 	 0.845 	 9.00 	 49 	 3 
>> i 2 	 23.625 	 0.844 	 1 	 51 	 0.844 	 1 	 3 
>> i 1 	 22.500 	 1.970 	 9.02 	 49 	 4 
>> i 2 	 22.500 	 0.002 	 1 	 50 	 0.002 	 50 	 4 
>>
>> ''')
>>
>>
>> csoundwinds.exportForPerformance()
>> csoundstrings.exportForPerformance()
>>
>> csoundwinds.perform()
>> csoundstrings.perform()
>>
>>
>>
>>     
>
>   

Date2007-08-27 11:57
FromTim Mortimer
SubjectRe: multiple midi outs -Q / Csound API / Python
Thanks Andres,

I was beginning to think i had mortally offended some or all of you
(particularly the developers, grovel grovel) with some outrageous hubris or
insensitivity or something.... (things i am no doubt capable of, but strive
to avoid i promise...)

In terms of "use multimple instances and intercommunicate them" - i thought
that's what my code was doing?  

I've instantiated 2 separate instances of csnd.CppSound() after all - 

like this: see?

>> csoundwinds = csnd.CppSound()
>> csoundstrings = csnd.CppSound()

is there more to it than that? some sort of "threading" issue or something?

assumedly then i have achieved the "multiple instances", but not the
"intercommunication"?

or is that only possible by using Csound API nested in C code or something?

yours ignorantly....



Andres Cabrera wrote:
> 
> Hi Tim
> Sorry for the silence....
> I believe it's not possible for csound to currently use more than one 
> MIDI device per instance.
> You'd need to use multimple instances and intercommunicate them... sorry.
> Cheers,
> Andrés
> 
> 
> Tim Mortimer escribió:
>> Hello,
>>
>> As i still have had no indication or further insight into if it is or is
>> not
>> possible to do what I am attempting in the code below, I thought I may as
>> well post again in the hope that someone might actually be able to spare
>> 60
>> seconds & provide an answer.
>>
>> To clarify/ restate - i am attempting to use multiple calls to
>> csnd.CppSound() in Python to enable transmission of midi data to separate
>> -Q
>> channels simultaneously
>>
>> If it is not possible, a simple "no that is not possible" will suffice.
>>
>> I happily accept that some of my more speculative threads may not merit
>> attention when everyone is busy (like myself) gazing deeply into their
>> own
>> navels on various projects of their own, or imminent release /
>> development
>> deadlines / the "real world".
>>
>> However without pushing the belligerance angle too far, i sincerely
>> believe
>> this query is deserving of an answer, if only due to it's overwhelmingly
>> specific focus, & extreme brevity of time investment for anyone capable
>> of
>> actually giving a response.
>>
>> with continued gratitude & thanks
>>
>> Tim
>>
>>
>> Tim Mortimer wrote:
>>   
>>> The code runs, but it only transmits on -Q10
>>>
>>> am I missing something? 
>>>
>>> import csnd
>>>
>>> csoundwinds = csnd.CppSound()
>>> csoundstrings = csnd.CppSound()
>>>
>>> csoundwinds.setPythonMessageCallback()
>>> csoundstrings.setPythonMessageCallback()
>>>
>>> csoundwinds.setCommand('csound -+rtaudio=null -Q10 test.orc test.sco')
>>> csoundstrings.setCommand('csound -+rtaudio=null -Q11 test.orc test.sco')
>>>
>>> # generic orch to translate csound sco
>>> # to midi events for Garritan standalone player
>>> # using csnd to try & target different soundbanks
>>> # on different -Q channels
>>> # at present, the code executes fine
>>> # but the targetting of separate -Q channels
>>> # is not achieved
>>>
>>>
>>> thisorch = '''
>>>
>>>   sr	    	=  48000
>>>   ksmps	=  64
>>>   nchnls  =  2
>>>   
>>>   0dbfs = 1
>>>
>>> opcode Pch2MIDIi, i,i
>>>
>>> ipit		xin  
>>>
>>> 		ioct = ((int(ipit))-3)*12
>>>
>>> 		iint = (ipit%1)*100
>>>
>>> 		imidi = ioct+iint
>>> 		
>>> 		imidi = round(imidi)
>>> 		
>>> 		xout imidi  
>>> 		
>>> endop
>>>
>>> instr 01
>>>
>>> 	xtratim .001
>>>
>>> 	ipch = p4
>>> 	
>>> 	ivel = p5
>>>
>>> 	inotnum Pch2MIDIi ipch
>>> 	
>>> 	print inotnum
>>>
>>> 	noteondur p6, inotnum, ivel, p3
>>>
>>> endin
>>>
>>> instr 02
>>> 	
>>> 	kline init p5
>>> 	;;; ***********************
>>> 	;;;	line needs temposcaling
>>> 	
>>> 	icc = p4
>>> 	
>>> 	kline line p5,p6,p7
>>> 	
>>> 	midiout 176, p8, icc, kline
>>>
>>> endin
>>>
>>> instr 03 ;;;PITCHBEND
>>> 	
>>> 	kline init p4
>>> 	;;; ***********************
>>> 	;;;	line needs temposcaling
>>> 	
>>> 	kline line p4,p5,p6
>>> 	
>>> 	midiout 224, p7, 0, kline
>>>
>>> endin
>>>
>>> '''
>>>
>>> csoundwinds.setOrchestra(thisorch)
>>> csoundstrings.setOrchestra(thisorch)
>>>
>>> csoundwinds.setScore('''
>>>
>>> t 0 60
>>>
>>> i 1 	 0.000 	 0.472 	 7.03 	 51 	 7 
>>> i 2 	 0.000 	 0.471 	 1 	 51 	 0.471 	 0 	 7 
>>> i 1 	 0.497 	 6.223 	 9.10 	 50 	 1 
>>> i 2 	 0.497 	 6.222 	 1 	 51 	 6.222 	 1 	 1 
>>> i 1 	 0.498 	 6.203 	 7.07 	 50 	 4 
>>> i 2 	 0.498 	 6.202 	 1 	 48 	 6.202 	 1 	 4 
>>> i 1 	 0.502 	 6.223 	 7.03 	 48 	 7 
>>> i 2 	 0.502 	 6.222 	 1 	 50 	 6.222 	 0 	 7 
>>> i 1 	 6.750 	 1.968 	 9.10 	 48 	 1 
>>> i 2 	 6.750 	 0.002 	 1 	 49 	 0.002 	 49 	 1 
>>> i 1 	 8.748 	 2.967 	 9.09 	 48 	 1 
>>> i 2 	 8.748 	 2.966 	 1 	 60 	 2.966 	 1 	 1 
>>> i 1 	 6.731 	 5.000 	 7.06 	 50 	 4 
>>> i 2 	 6.731 	 4.999 	 1 	 48 	 4.999 	 0 	 4 
>>> i 1 	 6.755 	 4.976 	 7.03 	 50 	 7 
>>> i 2 	 6.755 	 4.975 	 1 	 51 	 4.975 	 0 	 7 
>>> i 1 	 11.745 	 1.978 	 9.11 	 51 	 1 
>>> i 2 	 11.745 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
>>> i 1 	 13.753 	 0.959 	 10.05 	 50 	 1 
>>> i 2 	 13.753 	 0.958 	 1 	 58 	 0.958 	 1 	 1 
>>> i 1 	 11.761 	 2.975 	 7.06 	 48 	 4 
>>> i 2 	 11.761 	 2.974 	 1 	 50 	 2.974 	 0 	 4 
>>> i 1 	 11.761 	 2.951 	 7.03 	 50 	 7 
>>> i 2 	 11.761 	 2.950 	 1 	 51 	 2.950 	 1 	 7 
>>> i 1 	 14.742 	 2.248 	 10.05 	 50 	 1 
>>> i 2 	 14.742 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
>>> i 1 	 17.020 	 2.690 	 9.09 	 49 	 1 
>>> i 2 	 17.020 	 2.689 	 1 	 51 	 2.689 	 0 	 1 
>>> i 1 	 14.766 	 4.951 	 7.06 	 51 	 4 
>>> i 2 	 14.766 	 4.950 	 1 	 50 	 4.950 	 0 	 4 
>>> i 1 	 14.742 	 4.970 	 7.03 	 50 	 7 
>>> i 2 	 14.742 	 4.969 	 1 	 49 	 4.969 	 0 	 7 
>>> i 1 	 19.740 	 1.215 	 9.09 	 48 	 1 
>>> i 2 	 19.740 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
>>> i 1 	 20.985 	 1.491 	 9.10 	 51 	 1 
>>> i 2 	 20.985 	 1.490 	 1 	 50 	 1.490 	 1 	 1 
>>> i 1 	 19.747 	 2.710 	 7.06 	 49 	 4 
>>> i 2 	 19.747 	 2.709 	 1 	 48 	 2.709 	 0 	 4 
>>> i 1 	 22.506 	 1.075 	 9.10 	 49 	 1 
>>> i 2 	 22.506 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
>>> i 1 	 23.611 	 0.859 	 10.00 	 51 	 1 
>>> i 2 	 23.611 	 0.858 	 1 	 51 	 0.858 	 0 	 1 
>>> i 1 	 22.487 	 1.983 	 7.06 	 51 	 4 
>>> i 2 	 22.487 	 1.982 	 1 	 51 	 1.982 	 0 	 4 
>>>
>>> ''')
>>>
>>> csoundstrings.setScore('''
>>>
>>> t 0 60
>>>
>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 3 
>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 4 
>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 5 
>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 6 
>>> i 1 	 0.000 	 0.470 	 9.02 	 51 	 4 
>>> i 2 	 0.000 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
>>> i 1 	 0.000 	 0.458 	 6.03 	 48 	 6 
>>> i 2 	 0.000 	 0.457 	 1 	 49 	 0.457 	 0 	 6 
>>> i 1 	 0.504 	 6.209 	 8.10 	 49 	 3 
>>> i 2 	 0.504 	 6.208 	 1 	 51 	 6.208 	 0 	 3 
>>> i 1 	 0.488 	 6.227 	 6.03 	 49 	 6 
>>> i 2 	 0.488 	 6.226 	 1 	 50 	 6.226 	 1 	 6 
>>> i 1 	 6.743 	 1.975 	 8.10 	 51 	 3 
>>> i 2 	 6.743 	 0.050 	 1 	 0 	 0.050 	 50 	 3 
>>> i 1 	 8.748 	 2.971 	 8.09 	 50 	 3 
>>> i 2 	 8.748 	 2.970 	 1 	 59 	 2.970 	 0 	 3 
>>> i 1 	 6.758 	 4.971 	 9.02 	 49 	 4 
>>> i 2 	 6.758 	 0.002 	 1 	 48 	 0.002 	 48 	 4 
>>> i 1 	 6.745 	 4.980 	 6.03 	 50 	 6 
>>> i 2 	 6.745 	 4.979 	 1 	 50 	 4.979 	 0 	 6 
>>> i 1 	 11.749 	 1.965 	 8.11 	 51 	 3 
>>> i 2 	 11.749 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
>>> i 1 	 13.744 	 0.951 	 9.05 	 51 	 3 
>>> i 2 	 13.744 	 0.950 	 1 	 59 	 0.950 	 0 	 3 
>>> i 1 	 11.759 	 2.974 	 9.02 	 50 	 4 
>>> i 2 	 11.759 	 2.973 	 1 	 51 	 2.973 	 1 	 4 
>>> i 1 	 11.755 	 2.973 	 6.03 	 51 	 6 
>>> i 2 	 11.755 	 2.972 	 1 	 48 	 2.972 	 0 	 6 
>>> i 1 	 14.725 	 2.256 	 9.05 	 48 	 3 
>>> i 2 	 14.725 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
>>> i 1 	 17.011 	 2.680 	 8.09 	 50 	 3 
>>> i 2 	 17.011 	 2.679 	 1 	 50 	 2.679 	 1 	 3 
>>> i 1 	 14.763 	 4.915 	 9.02 	 50 	 4 
>>> i 2 	 14.763 	 0.050 	 1 	 1 	 0.050 	 51 	 4 
>>> i 2 	 14.813 	 4.864 	 1 	 51 	 4.864 	 0 	 4 
>>> i 1 	 14.758 	 4.970 	 6.03 	 50 	 6 
>>> i 2 	 14.758 	 4.969 	 1 	 48 	 4.969 	 0 	 6 
>>> i 1 	 19.771 	 1.195 	 8.09 	 51 	 3 
>>> i 2 	 19.771 	 0.040 	 1 	 1 	 0.040 	 49 	 3 
>>> i 1 	 20.996 	 1.472 	 8.10 	 50 	 3 
>>> i 2 	 20.996 	 1.471 	 1 	 51 	 1.471 	 0 	 3 
>>> i 1 	 19.758 	 2.712 	 9.02 	 48 	 4 
>>> i 2 	 19.758 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
>>> i 1 	 22.498 	 1.097 	 8.10 	 48 	 3 
>>> i 2 	 22.498 	 0.050 	 1 	 0 	 0.050 	 51 	 3 
>>> i 1 	 23.625 	 0.845 	 9.00 	 49 	 3 
>>> i 2 	 23.625 	 0.844 	 1 	 51 	 0.844 	 1 	 3 
>>> i 1 	 22.500 	 1.970 	 9.02 	 49 	 4 
>>> i 2 	 22.500 	 0.002 	 1 	 50 	 0.002 	 50 	 4 
>>>
>>> ''')
>>>
>>>
>>> csoundwinds.exportForPerformance()
>>> csoundstrings.exportForPerformance()
>>>
>>> csoundwinds.perform()
>>> csoundstrings.perform()
>>>
>>>
>>>
>>>     
>>
>>   
> -- 
> Send bugs reports to this list.
> To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk
> 
> 

-- 
View this message in context: http://www.nabble.com/multiple-midi-outs--Q---Csound-API---Python-tf4288950.html#a12344924
Sent from the Csound - General mailing list archive at Nabble.com.

Date2007-08-27 20:25
FromAndres Cabrera
SubjectRe: multiple midi outs -Q / Csound API / Python
Hi,

Tim Mortimer escribió:
> Thanks Andres,
>
> I was beginning to think i had mortally offended some or all of you
> (particularly the developers, grovel grovel) with some outrageous hubris or
> insensitivity or something.... (things i am no doubt capable of, but strive
> to avoid i promise...)
>
> In terms of "use multimple instances and intercommunicate them" - i thought
> that's what my code was doing?  
>
> I've instantiated 2 separate instances of csnd.CppSound() after all - 
>
> like this: see?
>
>   
>>> csoundwinds = csnd.CppSound()
>>> csoundstrings = csnd.CppSound()
>>>       
>
> is there more to it than that? some sort of "threading" issue or something?
>
> assumedly then i have achieved the "multiple instances", but not the
> "intercommunication"?
>   
Yes, you are missing the intercommunication part.... You can use 
software buses for this:
file:///home/andres/src/manual/html/SoftwareBus.html
file:///home/andres/src/manual/html/chnset.html

You would also need something like jack (or another instance of csound) 
so you can mix both outputs of csound to the same sound card.

Cheers,
Andrés

> or is that only possible by using Csound API nested in C code or something?
>
> yours ignorantly....
>
>
>
> Andres Cabrera wrote:
>   
>> Hi Tim
>> Sorry for the silence....
>> I believe it's not possible for csound to currently use more than one 
>> MIDI device per instance.
>> You'd need to use multimple instances and intercommunicate them... sorry.
>> Cheers,
>> Andrés
>>
>>
>> Tim Mortimer escribió:
>>     
>>> Hello,
>>>
>>> As i still have had no indication or further insight into if it is or is
>>> not
>>> possible to do what I am attempting in the code below, I thought I may as
>>> well post again in the hope that someone might actually be able to spare
>>> 60
>>> seconds & provide an answer.
>>>
>>> To clarify/ restate - i am attempting to use multiple calls to
>>> csnd.CppSound() in Python to enable transmission of midi data to separate
>>> -Q
>>> channels simultaneously
>>>
>>> If it is not possible, a simple "no that is not possible" will suffice.
>>>
>>> I happily accept that some of my more speculative threads may not merit
>>> attention when everyone is busy (like myself) gazing deeply into their
>>> own
>>> navels on various projects of their own, or imminent release /
>>> development
>>> deadlines / the "real world".
>>>
>>> However without pushing the belligerance angle too far, i sincerely
>>> believe
>>> this query is deserving of an answer, if only due to it's overwhelmingly
>>> specific focus, & extreme brevity of time investment for anyone capable
>>> of
>>> actually giving a response.
>>>
>>> with continued gratitude & thanks
>>>
>>> Tim
>>>
>>>
>>> Tim Mortimer wrote:
>>>   
>>>       
>>>> The code runs, but it only transmits on -Q10
>>>>
>>>> am I missing something? 
>>>>
>>>> import csnd
>>>>
>>>> csoundwinds = csnd.CppSound()
>>>> csoundstrings = csnd.CppSound()
>>>>
>>>> csoundwinds.setPythonMessageCallback()
>>>> csoundstrings.setPythonMessageCallback()
>>>>
>>>> csoundwinds.setCommand('csound -+rtaudio=null -Q10 test.orc test.sco')
>>>> csoundstrings.setCommand('csound -+rtaudio=null -Q11 test.orc test.sco')
>>>>
>>>> # generic orch to translate csound sco
>>>> # to midi events for Garritan standalone player
>>>> # using csnd to try & target different soundbanks
>>>> # on different -Q channels
>>>> # at present, the code executes fine
>>>> # but the targetting of separate -Q channels
>>>> # is not achieved
>>>>
>>>>
>>>> thisorch = '''
>>>>
>>>>   sr	    	=  48000
>>>>   ksmps	=  64
>>>>   nchnls  =  2
>>>>   
>>>>   0dbfs = 1
>>>>
>>>> opcode Pch2MIDIi, i,i
>>>>
>>>> ipit		xin  
>>>>
>>>> 		ioct = ((int(ipit))-3)*12
>>>>
>>>> 		iint = (ipit%1)*100
>>>>
>>>> 		imidi = ioct+iint
>>>> 		
>>>> 		imidi = round(imidi)
>>>> 		
>>>> 		xout imidi  
>>>> 		
>>>> endop
>>>>
>>>> instr 01
>>>>
>>>> 	xtratim .001
>>>>
>>>> 	ipch = p4
>>>> 	
>>>> 	ivel = p5
>>>>
>>>> 	inotnum Pch2MIDIi ipch
>>>> 	
>>>> 	print inotnum
>>>>
>>>> 	noteondur p6, inotnum, ivel, p3
>>>>
>>>> endin
>>>>
>>>> instr 02
>>>> 	
>>>> 	kline init p5
>>>> 	;;; ***********************
>>>> 	;;;	line needs temposcaling
>>>> 	
>>>> 	icc = p4
>>>> 	
>>>> 	kline line p5,p6,p7
>>>> 	
>>>> 	midiout 176, p8, icc, kline
>>>>
>>>> endin
>>>>
>>>> instr 03 ;;;PITCHBEND
>>>> 	
>>>> 	kline init p4
>>>> 	;;; ***********************
>>>> 	;;;	line needs temposcaling
>>>> 	
>>>> 	kline line p4,p5,p6
>>>> 	
>>>> 	midiout 224, p7, 0, kline
>>>>
>>>> endin
>>>>
>>>> '''
>>>>
>>>> csoundwinds.setOrchestra(thisorch)
>>>> csoundstrings.setOrchestra(thisorch)
>>>>
>>>> csoundwinds.setScore('''
>>>>
>>>> t 0 60
>>>>
>>>> i 1 	 0.000 	 0.472 	 7.03 	 51 	 7 
>>>> i 2 	 0.000 	 0.471 	 1 	 51 	 0.471 	 0 	 7 
>>>> i 1 	 0.497 	 6.223 	 9.10 	 50 	 1 
>>>> i 2 	 0.497 	 6.222 	 1 	 51 	 6.222 	 1 	 1 
>>>> i 1 	 0.498 	 6.203 	 7.07 	 50 	 4 
>>>> i 2 	 0.498 	 6.202 	 1 	 48 	 6.202 	 1 	 4 
>>>> i 1 	 0.502 	 6.223 	 7.03 	 48 	 7 
>>>> i 2 	 0.502 	 6.222 	 1 	 50 	 6.222 	 0 	 7 
>>>> i 1 	 6.750 	 1.968 	 9.10 	 48 	 1 
>>>> i 2 	 6.750 	 0.002 	 1 	 49 	 0.002 	 49 	 1 
>>>> i 1 	 8.748 	 2.967 	 9.09 	 48 	 1 
>>>> i 2 	 8.748 	 2.966 	 1 	 60 	 2.966 	 1 	 1 
>>>> i 1 	 6.731 	 5.000 	 7.06 	 50 	 4 
>>>> i 2 	 6.731 	 4.999 	 1 	 48 	 4.999 	 0 	 4 
>>>> i 1 	 6.755 	 4.976 	 7.03 	 50 	 7 
>>>> i 2 	 6.755 	 4.975 	 1 	 51 	 4.975 	 0 	 7 
>>>> i 1 	 11.745 	 1.978 	 9.11 	 51 	 1 
>>>> i 2 	 11.745 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
>>>> i 1 	 13.753 	 0.959 	 10.05 	 50 	 1 
>>>> i 2 	 13.753 	 0.958 	 1 	 58 	 0.958 	 1 	 1 
>>>> i 1 	 11.761 	 2.975 	 7.06 	 48 	 4 
>>>> i 2 	 11.761 	 2.974 	 1 	 50 	 2.974 	 0 	 4 
>>>> i 1 	 11.761 	 2.951 	 7.03 	 50 	 7 
>>>> i 2 	 11.761 	 2.950 	 1 	 51 	 2.950 	 1 	 7 
>>>> i 1 	 14.742 	 2.248 	 10.05 	 50 	 1 
>>>> i 2 	 14.742 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
>>>> i 1 	 17.020 	 2.690 	 9.09 	 49 	 1 
>>>> i 2 	 17.020 	 2.689 	 1 	 51 	 2.689 	 0 	 1 
>>>> i 1 	 14.766 	 4.951 	 7.06 	 51 	 4 
>>>> i 2 	 14.766 	 4.950 	 1 	 50 	 4.950 	 0 	 4 
>>>> i 1 	 14.742 	 4.970 	 7.03 	 50 	 7 
>>>> i 2 	 14.742 	 4.969 	 1 	 49 	 4.969 	 0 	 7 
>>>> i 1 	 19.740 	 1.215 	 9.09 	 48 	 1 
>>>> i 2 	 19.740 	 0.002 	 1 	 48 	 0.002 	 48 	 1 
>>>> i 1 	 20.985 	 1.491 	 9.10 	 51 	 1 
>>>> i 2 	 20.985 	 1.490 	 1 	 50 	 1.490 	 1 	 1 
>>>> i 1 	 19.747 	 2.710 	 7.06 	 49 	 4 
>>>> i 2 	 19.747 	 2.709 	 1 	 48 	 2.709 	 0 	 4 
>>>> i 1 	 22.506 	 1.075 	 9.10 	 49 	 1 
>>>> i 2 	 22.506 	 0.002 	 1 	 51 	 0.002 	 51 	 1 
>>>> i 1 	 23.611 	 0.859 	 10.00 	 51 	 1 
>>>> i 2 	 23.611 	 0.858 	 1 	 51 	 0.858 	 0 	 1 
>>>> i 1 	 22.487 	 1.983 	 7.06 	 51 	 4 
>>>> i 2 	 22.487 	 1.982 	 1 	 51 	 1.982 	 0 	 4 
>>>>
>>>> ''')
>>>>
>>>> csoundstrings.setScore('''
>>>>
>>>> t 0 60
>>>>
>>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 3 
>>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 4 
>>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 5 
>>>> i 1 	 0.000 	 0.002 	 6.01 	 100 	 6 
>>>> i 1 	 0.000 	 0.470 	 9.02 	 51 	 4 
>>>> i 2 	 0.000 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
>>>> i 1 	 0.000 	 0.458 	 6.03 	 48 	 6 
>>>> i 2 	 0.000 	 0.457 	 1 	 49 	 0.457 	 0 	 6 
>>>> i 1 	 0.504 	 6.209 	 8.10 	 49 	 3 
>>>> i 2 	 0.504 	 6.208 	 1 	 51 	 6.208 	 0 	 3 
>>>> i 1 	 0.488 	 6.227 	 6.03 	 49 	 6 
>>>> i 2 	 0.488 	 6.226 	 1 	 50 	 6.226 	 1 	 6 
>>>> i 1 	 6.743 	 1.975 	 8.10 	 51 	 3 
>>>> i 2 	 6.743 	 0.050 	 1 	 0 	 0.050 	 50 	 3 
>>>> i 1 	 8.748 	 2.971 	 8.09 	 50 	 3 
>>>> i 2 	 8.748 	 2.970 	 1 	 59 	 2.970 	 0 	 3 
>>>> i 1 	 6.758 	 4.971 	 9.02 	 49 	 4 
>>>> i 2 	 6.758 	 0.002 	 1 	 48 	 0.002 	 48 	 4 
>>>> i 1 	 6.745 	 4.980 	 6.03 	 50 	 6 
>>>> i 2 	 6.745 	 4.979 	 1 	 50 	 4.979 	 0 	 6 
>>>> i 1 	 11.749 	 1.965 	 8.11 	 51 	 3 
>>>> i 2 	 11.749 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
>>>> i 1 	 13.744 	 0.951 	 9.05 	 51 	 3 
>>>> i 2 	 13.744 	 0.950 	 1 	 59 	 0.950 	 0 	 3 
>>>> i 1 	 11.759 	 2.974 	 9.02 	 50 	 4 
>>>> i 2 	 11.759 	 2.973 	 1 	 51 	 2.973 	 1 	 4 
>>>> i 1 	 11.755 	 2.973 	 6.03 	 51 	 6 
>>>> i 2 	 11.755 	 2.972 	 1 	 48 	 2.972 	 0 	 6 
>>>> i 1 	 14.725 	 2.256 	 9.05 	 48 	 3 
>>>> i 2 	 14.725 	 0.002 	 1 	 49 	 0.002 	 49 	 3 
>>>> i 1 	 17.011 	 2.680 	 8.09 	 50 	 3 
>>>> i 2 	 17.011 	 2.679 	 1 	 50 	 2.679 	 1 	 3 
>>>> i 1 	 14.763 	 4.915 	 9.02 	 50 	 4 
>>>> i 2 	 14.763 	 0.050 	 1 	 1 	 0.050 	 51 	 4 
>>>> i 2 	 14.813 	 4.864 	 1 	 51 	 4.864 	 0 	 4 
>>>> i 1 	 14.758 	 4.970 	 6.03 	 50 	 6 
>>>> i 2 	 14.758 	 4.969 	 1 	 48 	 4.969 	 0 	 6 
>>>> i 1 	 19.771 	 1.195 	 8.09 	 51 	 3 
>>>> i 2 	 19.771 	 0.040 	 1 	 1 	 0.040 	 49 	 3 
>>>> i 1 	 20.996 	 1.472 	 8.10 	 50 	 3 
>>>> i 2 	 20.996 	 1.471 	 1 	 51 	 1.471 	 0 	 3 
>>>> i 1 	 19.758 	 2.712 	 9.02 	 48 	 4 
>>>> i 2 	 19.758 	 0.002 	 1 	 51 	 0.002 	 51 	 4 
>>>> i 1 	 22.498 	 1.097 	 8.10 	 48 	 3 
>>>> i 2 	 22.498 	 0.050 	 1 	 0 	 0.050 	 51 	 3 
>>>> i 1 	 23.625 	 0.845 	 9.00 	 49 	 3 
>>>> i 2 	 23.625 	 0.844 	 1 	 51 	 0.844 	 1 	 3 
>>>> i 1 	 22.500 	 1.970 	 9.02 	 49 	 4 
>>>> i 2 	 22.500 	 0.002 	 1 	 50 	 0.002 	 50 	 4 
>>>>
>>>> ''')
>>>>
>>>>
>>>> csoundwinds.exportForPerformance()
>>>> csoundstrings.exportForPerformance()
>>>>
>>>> csoundwinds.perform()
>>>> csoundstrings.perform()
>>>>
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>> -- 
>> Send bugs reports to this list.
>> To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk
>>
>>
>>     
>
>