Csound Csound-dev Csound-tekno Search About

[Csnd] garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd

Date2007-12-04 10:18
FromTim Mortimer
Subject[Csnd] garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
Been tearing my hair out last few days trying to get RELIABLE multiple midi
outs aimed at the Garritan Personal Orchestra player, now that my (now
rewritten with classes – hooray!, still not public releaseable yet though..)
Parseval program / python script can target all the instruments in the
orchestra - including some basic "write your string parts, target the
multiple individual players" type scenarios (possibility therefore of divisi
strings, blah blah…)

But my dreams of en-masse, amateur, partly generative, subtlely gaussified
orchestrations are falling fowl due to the lack of ability I have to target
the Garritan Player on it’s 8 separate, “virtual” MIDI ports (sort of like
“MIDIyoke” basically)

Max fails dismally on the issue. No really, it does. Anything more than one
seq object at a time pointed at multiple outports results in highly
disparate tempos of playback, dropped notes, basically it’s a farce.

Davis Pyon’s csound~ object actually performs a lot better when it comes to
transmitting MIDI (hats off Davis!).

 But u need to turn the max audio on to run it. & & my driver is busy with
external Garritan player… & csound~ is still somewhat at the mercy of Csound
upgrades & compatability issues - & I think it’s a bit ludicrous to run 8 x
csound~ in a max patch just so I can generate MIDI events that could just as
easy be generated by playing MIDIfiles! Duh!

& to be honest, Max can pretty much go in the dustbin for me IF I can
actually find a way to transmit to these god damn “virtual” midi ports (as
I'm using Python & Csound now to do all those things I wanted to do with Max
but couldn’t anyway…)

SO…. I’ve started looking around for alternatives to my multi MIDI target
dilemmas. But there are few. Actiually, try zero.

There’s this for python, but it doesn’t seem to be 2.5 compatible 

http://alumni.media.mit.edu/~harrison/pyportmidi.html

&, of course, Csound can only transmit on one –Q channel at a time

I’m so close to something really bl**dy good here (after months of work) - &
yes, it (Parseval) will still make a really cool Csound score generator &
command line “interface” for working quickly with Csound & multiple orcs &
scores. 

But I REALLY REALLY REALLY just want to be able to transmit on multiple MIDI
ports to the garritan player (& I can create / "batch render" the individual
MIDI files with Csound still after all, so no complaints there)

So does anybody have any ideas how I can take this forward to fruition?

Making music purely with Csound would be cool, & if it comes to it that’s
what I’ll pursue going forward. But I’m really keen on dumping the whole
Csound “thing” onto some sort of cod – orchestral basis / simulation - &
ironically, it’s the commercial apps &/ or lack of the most basic MIDIfile &
transmission capabilities that’s letting me down.

Anybody? (im currently on windows XP…)

I can still step back & be proud of how far i've got learning Csound &
Python over the last 12 months. But why settle for "really quite good", when
"sonic bl**dy nirvana" is potentially just around the corner?

me & my infernal cries to the system! ; )

keen to hear from anyone who has tackled the issue, either from the purely
MIDI, or Garritan user side of the fence.

Yet another case of being slightly off topic, but not knowing where else to
turn. From my perspective, Csound & Python are almost synonymous /
inseparable now anyway... 
-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14147966
Sent from the Csound - General mailing list archive at Nabble.com.



Date2007-12-04 10:48
FromRory Walsh
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
Are you using the Csound API? I know there are a few midi functions in 
there, perhaps they can give you access to lower level midi operations, 
I don't really know but it might be worth looking at.

Rory.



Tim Mortimer wrote:
> Been tearing my hair out last few days trying to get RELIABLE multiple midi
> outs aimed at the Garritan Personal Orchestra player, now that my (now
> rewritten with classes – hooray!, still not public releaseable yet though..)
> Parseval program / python script can target all the instruments in the
> orchestra - including some basic "write your string parts, target the
> multiple individual players" type scenarios (possibility therefore of divisi
> strings, blah blah…)
> 
> But my dreams of en-masse, amateur, partly generative, subtlely gaussified
> orchestrations are falling fowl due to the lack of ability I have to target
> the Garritan Player on it’s 8 separate, “virtual” MIDI ports (sort of like
> “MIDIyoke” basically)
> 
> Max fails dismally on the issue. No really, it does. Anything more than one
> seq object at a time pointed at multiple outports results in highly
> disparate tempos of playback, dropped notes, basically it’s a farce.
> 
> Davis Pyon’s csound~ object actually performs a lot better when it comes to
> transmitting MIDI (hats off Davis!).
> 
>  But u need to turn the max audio on to run it. & & my driver is busy with
> external Garritan player… & csound~ is still somewhat at the mercy of Csound
> upgrades & compatability issues - & I think it’s a bit ludicrous to run 8 x
> csound~ in a max patch just so I can generate MIDI events that could just as
> easy be generated by playing MIDIfiles! Duh!
> 
> & to be honest, Max can pretty much go in the dustbin for me IF I can
> actually find a way to transmit to these god damn “virtual” midi ports (as
> I'm using Python & Csound now to do all those things I wanted to do with Max
> but couldn’t anyway…)
> 
> SO…. I’ve started looking around for alternatives to my multi MIDI target
> dilemmas. But there are few. Actiually, try zero.
> 
> There’s this for python, but it doesn’t seem to be 2.5 compatible 
> 
> http://alumni.media.mit.edu/~harrison/pyportmidi.html
> 
> &, of course, Csound can only transmit on one –Q channel at a time
> 
> I’m so close to something really bl**dy good here (after months of work) - &
> yes, it (Parseval) will still make a really cool Csound score generator &
> command line “interface” for working quickly with Csound & multiple orcs &
> scores. 
> 
> But I REALLY REALLY REALLY just want to be able to transmit on multiple MIDI
> ports to the garritan player (& I can create / "batch render" the individual
> MIDI files with Csound still after all, so no complaints there)
> 
> So does anybody have any ideas how I can take this forward to fruition?
> 
> Making music purely with Csound would be cool, & if it comes to it that’s
> what I’ll pursue going forward. But I’m really keen on dumping the whole
> Csound “thing” onto some sort of cod – orchestral basis / simulation - &
> ironically, it’s the commercial apps &/ or lack of the most basic MIDIfile &
> transmission capabilities that’s letting me down.
> 
> Anybody? (im currently on windows XP…)
> 
> I can still step back & be proud of how far i've got learning Csound &
> Python over the last 12 months. But why settle for "really quite good", when
> "sonic bl**dy nirvana" is potentially just around the corner?
> 
> me & my infernal cries to the system! ; )
> 
> keen to hear from anyone who has tackled the issue, either from the purely
> MIDI, or Garritan user side of the fence.
> 
> Yet another case of being slightly off topic, but not knowing where else to
> turn. From my perspective, Csound & Python are almost synonymous /
> inseparable now anyway... 

Date2007-12-04 16:16
From"Steven Yi"
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
AttachmentsNone  

Date2007-12-05 09:45
FromTim Mortimer
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
Thanks for the suggestions Steven - but i think i'll have to chalk them down
as "longer term"

Rory - as far as using the API goes - i batch render orc & sco files from
the command line within my Python script & that's it (basically where i'm
headed with this is that your "piece" only ever exists for playback as
pre-rendered wav's (or MIDI, in this case as the target is a MIDI inst...)

the method is something like this:
 - if u change the master Parseval score 
 - you then nominate the parts you changed for "re-rendering"
 - (whizzo goes the cpu & csound...)
 - you playback your "piece" (from wav &/or MIDI) in the new altered
version....

the advantages are several - but not least of which is that every Parseval
score line inevitably affects either multiple instruments, or at leasts
alters a note event & all the allied controllers / gk's in one simple step
i.e. one parseval line usually creates several lines of csound score, saving
hours of pawing over .sco notation & going potty over floating point value
startimes on several different inst channels.... (you think my writings
verbose & unnecessarily pompous - wait till you hear the music! ; ) ..)

my major gripe with "computer music" to date is by the time ive discovered
executed a process / technique, the composition to which i was going to
apply it has become so boring to me i abandon it, & move on to the next
experiment....

Anyway - i'm drifting again. If i looked into the API in order to try &
solve this, i think i'd be here another 6 months without writing a single
note of csound code, or music.

Whereas if someone took my "hint" onboard - simply needing a command line 
(or python script hostable == bonus points) app that plays multiple MIDI
files & can target multiple virtual ports with the output - well, for an
experienced hand it'd probably be a 3-4 hour job?

& as csound itself lacks this capacity - it might be a handy -U type
addition to the environment / package anyway!







-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14168066
Sent from the Csound - General mailing list archive at Nabble.com.


Date2007-12-05 09:52
FromTim Mortimer
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
I meant to "preview" that last post before sending - made a slip on the
nabble-age...

Was only going to add (Steven) that the Py hosting of VST's does look pretty
interesting, but transmitting all my midi data all within the python domain
i think is probably a bit ambitious in terms of a solution here
(particularly as it's heavy on the CC useage)

Thanks anyway for mentioning though. U don't hear about these sorts of
things much - & even if in 6 or 12 months time something pops up & i think
about it i'll be glad we had this conversation....(not to mention the others
who read this waffle...)
-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14168389
Sent from the Csound - General mailing list archive at Nabble.com.


Date2007-12-05 11:28
From"Chuckk Hubbard"
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
AttachmentsNone  

Date2007-12-05 12:02
From"Oeyvind Brandtsegg"
Subject[Csnd] Re: Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
AttachmentsNone  None  

Date2007-12-05 12:28
FromTim Mortimer
Subject[Csnd] Re: Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd


Oeyvind Brandtsegg-2 wrote:
> 
> I seem to recall that we discussed this some months ago (?).
> 

Yes we did, & i pulled up some code i made back then tonight for the first
time - i thought i was able to achieve the .fxb load? if so, i'll post it to
you to have a look. maybe not. will double check in next few days....(I owe
you a few Oeyvind...)

previously, my midi onslaught hadn't been an issue, but now I want to load
all 64 instruments in the garritan player! (i'd previously restricted myself
to just 18, & max dealt with that all "in house" courtesy vst~ object & i
was using csound~ as my midi transmitter!)

The problem with running the vst inside csound however is that if i have to
load all the banks on input (manually or otherwise) every time i run csound,
that's a long wait! & pretty unproductive. 

I tend to apply small changes in csound, render, & then see how it sounds
(that's a neat pun!). That's the kind of basic "modus operandi" i'm in,
using python to more or less jump from "task to task", & manage the orcs &
scos..... the constant reloading of samples by kontakt player on startup
would not bode well for that process. do it once in the supplied vst host, &
target it, just as you would from Sibelius or whatever.....

I got some basic midi targetting working better from max tonight to keep me
going - but i'm still keen to go as totally Csound / Python based as
possible..... 

Keep one windows machine to run the odd commercial or "home mastering" app,
& do the "real musicians" work somewhere else.... ; ). 

I did write to garritan once. do they take freaks like me seriously?

we need an "open source orchestra" basically. in wav & pvx format.......



-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14170493
Sent from the Csound - General mailing list archive at Nabble.com.


Date2007-12-05 12:38
From"Oeyvind Brandtsegg"
Subject[Csnd] Re: Re: Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
AttachmentsNone  None  

Date2007-12-05 12:39
FromTim Mortimer
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
Your right about 4 ports maximum on PD on windows.

The GlovePie option is a good idea! it's yet another "layer" though.....

Congrats may be premature. But i do feel i'm playing with "real toys" now,
that reperesent something genuinely aligned to my creative interests. Thank
god for the PC!!! now i don't need a life! ; )

I learnt python pretty much armed with this book alone. I refer to it daily.
It shows you how to do stuff. quick.

sorry for the Amazon reference. I know they want to eat our babies...

http://www.amazon.com/Python-Visual-QuickStart-Guide-Fehily/dp/0201748843/ref=sr_1_1?ie=UTF8&s=books&qid=1196857817&sr=1-1


Python (Visual QuickStart Guide) (Paperback)
by Chris Fehily





Chuckk Hubbard wrote:
> 
> 
> 
> Pure Data can handle multiple MIDI outs.  To send on channel n of port
> x, you send to channel x*16 + n.
> I'm not sure what its limit is though, it might be 4 on Windows.  On
> Linux it appears to be limitless.
> I'm guessing that if you're using Garritan software you're not doing
> it under Linux...
> Well one roundabout possibility I can think of, for Windows, is GlovePIE:
> http://carl.kenner.googlepages.com/glovepie
> 
> 
> Congrats.  Despite what I've heard, I'm a little overwhelmed by the
> Python documentation.  It must be far simpler than it seems, because
> people say it's one of the easiest languages to learn.
> 
> Noroc.
> -Chuckk
> 
> 
> -- 
> http://www.badmuthahubbard.com
> 
> Send bugs reports to this list.
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
> csound"
> 

-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14170562
Sent from the Csound - General mailing list archive at Nabble.com.


Date2007-12-05 16:02
From"Chuckk Hubbard"
Subject[Csnd] Re: Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
AttachmentsNone  

Date2007-12-06 09:02
FromTim Mortimer
Subject[Csnd] Re: Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
For the sake of posterity, i'll add i've had some correspondence with Tim
Thompson about KeyKit re all this. 

He directed me to some further multi port MIDI capable python libraries, but
still nothing for Python 2.5

Otherwise, with a bit of luck & assistance from Tim T, this KeyKit might be
the low footprint, audio free solution to my multi port MIDI dramas. Let's
hope so

http://nosuch.com/keykit/

once again though it's a case of a lot of features & hullaballoo just to
play back a bunch of MIDI files at 60bpm....

I've no experience with PD from the command line, but that's now my plan B.
(Chuck i'll sling you a mail if i need any pointers there...)

thanks for all the input everyone.
-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14188720
Sent from the Csound - General mailing list archive at Nabble.com.


Date2007-12-07 17:49
From"Matt J. Ingalls"
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
sorry for jumping in so late in this thread.   when you say "garritan 
Player" do you mean their "Garritan Studio" application?  i've had pretty 
good luck sending MIDI to it from other applications (on a mac)

-m

On Tue, 4 Dec 2007, Tim Mortimer wrote:

> 
Been tearing my hair out last few days trying to get RELIABLE multiple midi
outs aimed at the Garritan Personal Orchestra player, now that my (now
rewritten with classes ÿÿ hooray!, still not public releaseable yet though..)
Parseval program / python script can target all the instruments in the
orchestra - including some basic "write your string parts, target the
multiple individual players" type scenarios (possibility therefore of divisi
strings, blah blahÿÿ)

But my dreams of en-masse, amateur, partly generative, subtlely gaussified
orchestrations are falling fowl due to the lack of ability I have to target
the Garritan Player on itÿÿs 8 separate, ÿÿvirtualÿÿ MIDI ports (sort of like
ÿÿMIDIyokeÿÿ basically)

Max fails dismally on the issue. No really, it does. Anything more than one
seq object at a time pointed at multiple outports results in highly
disparate tempos of playback, dropped notes, basically itÿÿs a farce.

Davis Pyonÿÿs csound~ object actually performs a lot better when it comes to
transmitting MIDI (hats off Davis!).

  But u need to turn the max audio on to run it. & & my driver is busy with
external Garritan playerÿÿ & csound~ is still somewhat at the mercy of Csound
upgrades & compatability issues - & I think itÿÿs a bit ludicrous to run 8 x
csound~ in a max patch just so I can generate MIDI events that could just as
easy be generated by playing MIDIfiles! Duh!

& to be honest, Max can pretty much go in the dustbin for me IF I can
actually find a way to transmit to these god damn ÿÿvirtualÿÿ midi ports (as
I'm using Python & Csound now to do all those things I wanted to do with Max
but couldnÿÿt anywayÿÿ)

SOÿÿ. Iÿÿve started looking around for alternatives to my multi MIDI target
dilemmas. But there are few. Actiually, try zero.

Thereÿÿs this for python, but it doesnÿÿt seem to be 2.5 compatible

http://alumni.media.mit.edu/~harrison/pyportmidi.html

&, of course, Csound can only transmit on one ÿÿQ channel at a time

Iÿÿm so close to something really bl**dy good here (after months of work) - &
yes, it (Parseval) will still make a really cool Csound score generator &
command line ÿÿinterfaceÿÿ for working quickly with Csound & multiple orcs &
scores.

But I REALLY REALLY REALLY just want to be able to transmit on multiple MIDI
ports to the garritan player (& I can create / "batch render" the individual
MIDI files with Csound still after all, so no complaints there)

So does anybody have any ideas how I can take this forward to fruition?

Making music purely with Csound would be cool, & if it comes to it thatÿÿs
what Iÿÿll pursue going forward. But Iÿÿm really keen on dumping the whole
Csound ÿÿthingÿÿ onto some sort of cod ÿÿ orchestral basis / simulation - &
ironically, itÿÿs the commercial apps &/ or lack of the most basic MIDIfile &
transmission capabilities thatÿÿs letting me down.

Anybody? (im currently on windows XPÿÿ)

I can still step back & be proud of how far i've got learning Csound &
Python over the last 12 months. But why settle for "really quite good", when
"sonic bl**dy nirvana" is potentially just around the corner?

me & my infernal cries to the system! ; )

keen to hear from anyone who has tackled the issue, either from the purely
MIDI, or Garritan user side of the fence.

Yet another case of being slightly off topic, but not knowing where else to
turn. From my perspective, Csound & Python are almost synonymous /
inseparable now anyway... 
-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14147966
Sent from the Csound - General mailing list archive at Nabble.com.



Send bugs reports to this list.
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"

Date2007-12-07 23:33
FromTim Mortimer
Subject[Csnd] Re: garritan users / transmitting MIDI on multiple virtual ports - ANY solution reqd
Hi Matt,

Latecomers always welcome

Yes I do mean the the "Garritan Studio" application.

& yes, It seems to be functioning fine

My problem is simply finding an application that reliably transmits MIDI to
it's multiple ports. I guess you would have to say the MIDI is heavy
traffic, as there is so much reliance on the CC1 controller in particular,
as well as note on & note off

Keykit is actually a language that seems to be some sort of 80% pythonesque,
with the occasional nod to c++ syntax.

I havent quite got it "happening" yet, but it looks like an interesting &
effective little piece of work.

In the meantime, i have simplified my max patch as much as i possibly can
(no Midi parseing or optional channel muting, just seq to midout x 4 (at the
mo)  fullstop) & that seems to hang together long enough to give me
playback.

i use python & csound API to continually edit & "refresh" the midi content,
hence the need for constant re-execution of syncronised small fragments of
MIDI (whist i grope my way to some sort of "cod orchestration")

i've given up on the divisi strings for the moment. Too "phasey"
(particularly violas & cellos) &/ or not enough options for mutes / tremolo
on the individual string players

but no divisi is possibly good news in a way - there will then be more
likely some room left in the spectra assumedly for some csound / synthetic /
resynthesis content & or effects processing...




Matt J. Ingalls wrote:
> 
> 
> sorry for jumping in so late in this thread.   when you say "garritan 
> Player" do you mean their "Garritan Studio" application?  i've had pretty 
> good luck sending MIDI to it from other applications (on a mac)
> 
> -m
> 
> 

-- 
View this message in context: http://www.nabble.com/garritan-users---transmitting-MIDI-on-multiple-virtual-ports---ANY-solution-reqd-tf4942241.html#a14222921
Sent from the Csound - General mailing list archive at Nabble.com.