Csound Csound-dev Csound-tekno Search About

[Csnd] re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)

Date2008-04-25 05:06
FromTim Mortimer
Subject[Csnd] re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
I'm beginning to realise that a lot of what i'm groping towards GUI wise, &
from a compositional / creative standpoint looking to organise, is a way to
have heirarchical (or at least tree-structure expandable) views of
"patterns" or motifs based upon combinations of "atomic elements" for
"algorithmic" composition (to coin Michael Goggins' phrase).

wx cellblocks & treectrl's etc are suggesting themselves as obvious
candidates for the task, but a friend of mine today linked me to PyTables

http://www.pytables.org/moin/PyTables

& certainly graphically & conceptually it looks a good fit, but possibly
bordering on overkill in terms of managing a comparatively small amount of
data, that is after all handleable by conventional lists / dictionaries in
Python.

AthenaCL users etc no doubt are faced with similar issues (& i'm talking
specifically about algorithmic composition using Python here...) in terms of
organising & overviewing the material they generate (or in my case generally
specify), so i guess the question is (to the more experienced algorithmic
oriented people out there) how do you front end any "database" of atomic
elements that your working with, & do you do so in real time interaction
with your "orchestra"?

if i didn't want real-time i could use excel or calc no problem i'd suggest
& import the data into python as amended / required.

I have however got a pretty solid template of ideas for real time pattern
dispensation to midi & csound instruments, utilising a sort of "expanded
tiestatus opcode" scenario where notes can be held or terminated depending
on various conditions such as instrument polyphony models, legato
requirements etc that can be monitored & resolved as phrase follows phrase
in an arbitrary / real time jammable manner...

Im hoping therefore to use pyops or csound API in python to organise real
time, GUI fronted definition as well as execution of my patterns & "atomic
elements", & before re-inventing any wheels wondered what existing options
or interfaces some of you might be using for this type of task already?

In the meantime i've managed to lay my hands on a copy of the "wxPython in
action" book, so hopefully this will start to get me closer to a comfort
zone in using wxPython to do some more refined interface development
work....

I look forward to any ideas or suggestions.

T.

PS sorry to hear of Tristram Cary's passing. I was aware he was stuck out in
Adelaide's northern suburbs somewhere, & i am acquainted with another
Adelaide person who made a documentary film about him & the "EMS /
radiophonic workshop" era that aired on ABC TV last year. I hoped that one
day i might get the chance to meet him & experience in person some
reflections & insights from Adelaide's own small slice of significance in
the history & development of electronic music.

-----
*******************
www.phasetransitions.net
hermetic music * python * csound * possibly mindless ranting
various werk in perpetual delusions of progress....

-- 
View this message in context: http://www.nabble.com/real-time-GUI-for-Python---csound-algorithmic-%22atomic-elements%22-database-%28or-something...%29-tp16886575p16886575.html
Sent from the Csound - General mailing list archive at Nabble.com.


Date2008-04-25 07:25
FromDavidW
Subject[Csnd] Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
Hi Tim,

On 25/04/2008, at 2:06 PM, Tim Mortimer wrote:
...
> wx cellblocks & treectrl's etc are suggesting themselves as obvious
> candidates for the task, but a friend of mine today linked me to  
> PyTables
>
> http://www.pytables.org/moin/PyTables
>
> & certainly graphically & conceptually it looks a good fit, but  
> possibly
> bordering on overkill in terms of managing a comparatively small  
> amount of
> data, that is after all handleable by conventional lists /  
> dictionaries in
> Python.
PyTables is almost certainly overkill - it was designed for use with  
very large datasets which don't factor into OO or RDB structures.
I use it on a 10 Gb b-tree factored dataset which is of course pi**ing  
in the wind for the meteorologists (and the astronomers bu,t then it  
would be an astral wind, I suppose.
Not saying you couldn't use it for what you suggest, but how many  
elements are we talking about?
Pythons dictionary structure is designed pretty optimally. If you need  
to go to file, have a look at stringIO
(http://docs.python.org/lib/module-StringIO.html)
or use pickle - (http://docs.python.org/lib/module-pickle.html)

Unless it's huge, or time critical, I normally just use dicts and  
write them to files between sesssion:
( as a string and then read it back later and evaluate it.....):

 >>> dickie = someDict{}
 >>> fp = open ("fname", 'w')
 >>> fp.write(str(dickie))
 >>> fp.flush()
 >>> fp.close()
...
 >>> fp = open ("fname", 'r')
 >>> dickie = eval( fp.read())
 >>> fp.close()
...
> In the meantime i've managed to lay my hands on a copy of the  
> "wxPython in
> action" book, so hopefully this will start to get me closer to a  
> comfort
> zone in using wxPython to do some more refined interface development
> work....
>
excellent book!  the section on threading was v useful too.
> I look forward to any ideas or suggestions.
>
> T.
>
> PS sorry to hear of Tristram Cary's passing. I was aware he was  
> stuck out in
> Adelaide's northern suburbs somewhere, & i am acquainted with another
> Adelaide person who made a documentary film about him & the "EMS /
> radiophonic workshop" era that aired on ABC TV last year. I hoped  
> that one
> day i might get the chance to meet him & experience in person some
> reflections & insights from Adelaide's own small slice of  
> significance in
> the history & development of electronic music.

Sad, indeed. He was one of my UG comp. teachers and a mentor. A truly  
exploratory spirit.

D.
bugle call --->o


Date2008-04-25 10:22
From"Oeyvind Brandtsegg"
Subject[Csnd] Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
AttachmentsNone  

Date2008-04-25 12:16
FromTim Mortimer
Subject[Csnd] Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
Hi Oeyvind, 

I did something along these lines a few months back, & have revived it to a
degree by simply plonking relevant data into ftables by hand, & triggering /
dispersing the patterns via MIDI while i experiment with the begin
consolidating the whole set up

i was experimenting with some  FLTK fronted interactivity & pattern
definition for this last week, & got to a point where i thought "this has
potential" & started looking at wx again for some cataloguing & databasing
interfaceing ideas.

like a lot of my development, it gets to the point where i feel the concept
is proven (or abandoned, but fortunately not in this case) & i start
investigating how to push it forward from there.

the nasty part with my latest prototype is it's driving a preset capable
custom SDIF data based additive synthesis instrument that uses Adsynt!
hardly an illustrative inroad i assure you....

# include is my new friend, & the prototype clocks in at the moment at
around 2000 lines of csound code

how do i intend to proceed? either by passing my Python dictionary data to
csound via hosting the wxinterface using pyops, or finally embracing the API
wholeheartedly in Python & going for broke - possibly winding up with
something that looks a bit like improsculpt, but that ties in to all my
existing Parseval .txt file based "tracker" score format . my aim is to jam
patterns, but record / publish them to an editable parseval score

the parseval score format already supports most of the conditional duration
statements based on various polyphony "models" (monophonic, or "keyboard
based" polyphony models - one voice per produceable "note" / "pitch") & I
have begun looking at how to track the motific & pattern useage throughout
the score

things are very fluid here at the moment - the realisation that the whole 

i 10.1 n n
i 10.2 n n
i 10.3 n n 

polyphony thing was completely arbitrarily assignable

i 10.13 n n
i 10.27 n n
i 10.3 n n

is going to turn a lot of my work to date on it's head 

& i'm abandoning voiceleading for the moment in favour of a more
"feldmanesque" approach to pitch classes, in part because voiceleading /
contrapunctal strategies was imposing to much of an implied rhythmic basis
that ultimately i'm trying to move away from...

my aim going forward is to prototype the interfacing & the more "common
music / athena" like aspects by driving very simple csound instruments -
this will be perhaps the more "bare bones" example you may be looking for.

stay tuned, & i most certainly welcome your potential involvement & a
consolidation of some of our ideas Oeyvind.

I better press send now before my PC crashes.... sorry for any typos...


Oeyvind Brandtsegg-2 wrote:
> 
> Not to answer your specific question,
> but to ask about the realtime setup:
> How do you dispatch realtime events to Csound in your setup ?
> I have a "barebones" setup for realtime algorithmic composition here:
> http://oeyvind.teks.no/ftp/barebones.zip
> 
> 
> 


-----
*******************
www.phasetransitions.net
hermetic music * python * csound * possibly mindless ranting
various werk in perpetual delusions of progress....

-- 
View this message in context: http://www.nabble.com/real-time-GUI-for-Python---csound-algorithmic-%22atomic-elements%22-database-%28or-something...%29-tp16886575p16894906.html
Sent from the Csound - General mailing list archive at Nabble.com.


Date2008-04-25 12:24
From"Oeyvind Brandtsegg"
Subject[Csnd] Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
AttachmentsNone  

Date2008-04-25 12:45
FromTim Mortimer
Subject[Csnd] Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
David,

I'm gald you give props to the wx book. ive been immersed in it most of the
day & it's certainly helping me understand how it all basically works.

You support also my hunch re PyTables == overkill - but just to clarify it's
the interface & heirarchical & operateable-upon database aspects of the
thing that ties in to what im looking for.

I think youve probably cottoned on by now that i'm very interested in
exploiting all the tropes of 20th century Atonal composition, without
necessarily wanting to simply resort to an automated stochastic meandering
through total serialism

The conservatory trained composers may poo-poo my retorts to labour saving
through technology (yourself no doubt excluded...) but surely it's not hard
to see that Stravinsky & heaven forbid even ol Arnie himself may well have
reached for the type of tool i'm envisaging as part of their compositional
"process" - especially in their more "process" driven moments, with the
capacity to call up all their pitch sets & view all the variations, &
develop more ideas upon them, & then explore combinations & sucessions &
alternate orchestrations all at the touch of a mouse / midi key / wacom
tablet - particularly after a boozy night out!

I see all this common music & athena as built on solid, established,
conventional compositional practices - so why not have something that
functions not only as a generative & stochastically powered tool, but also
as a front end for more easily & effectively organising & developing the
material?

The cynic in me answers "because without the perpetuation of the myth &
culture of the exclusivity of genius, the associated notions of immaculate
musical / artistic conception, the promotion of western notation as the only
vaible tool for realisation, & the dogged (& I feel misguided) pursuit of
virtuosic performance practices, too many people in music departments would
be out of a job!" ; )

-----
*******************
www.phasetransitions.net
hermetic music * python * csound * possibly mindless ranting
various werk in perpetual delusions of progress....

-- 
View this message in context: http://www.nabble.com/real-time-GUI-for-Python---csound-algorithmic-%22atomic-elements%22-database-%28or-something...%29-tp16886575p16894918.html
Sent from the Csound - General mailing list archive at Nabble.com.


Date2008-04-25 14:12
FromTim Mortimer
Subject[Csnd] Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
at the moment all the component ideas reside in 2 or 3 separate orchestras.
Some new, some a few months old

i'll try & cobble something together for you starting tomorrow. hopefully
wont take too long. 

haven't implemented legato yet, but the concept & a general model is in
place.

given the discovery about arbitrary voice assignment numbers after the p1
decimal place, all my instruments are now going to be implemented as having
separate note on ( negative p3)  note off statements. 

this uses steven yi's tiestatus UDO as is, but i expand on the concept up
the chain to manage inter-pattern voice assignments / polyphony tracking /
conditional note terminations & re-executions...

all midi input is handled via midin opcode at krate
(kstatus,kchannel,kdata1,kdata2 - that one...)


Oeyvind Brandtsegg-2 wrote:
> 
> It would be interesting to see the code for your realtime system,
> could you upload a copy somewhere ?
> Oeyvind
> 
> 
> 
> 


-----
*******************
www.phasetransitions.net
hermetic music * python * csound * possibly mindless ranting
various werk in perpetual delusions of progress....

-- 
View this message in context: http://www.nabble.com/real-time-GUI-for-Python---csound-algorithmic-%22atomic-elements%22-database-%28or-something...%29-tp16886575p16895551.html
Sent from the Csound - General mailing list archive at Nabble.com.


Date2008-04-25 14:44
FromDave Phillips
Subject[Csnd] Re: Re: real time GUI for Python / csound algorithmic "atomic elements" database (or something...)
Tim Mortimer wrote:
> ... it's not hard
> to see that Stravinsky & heaven forbid even ol Arnie himself may well have
> reached for the type of tool i'm envisaging as part of their compositional
> "process"...
>   
Hi Tim,

See Elliott Carter's remarks about his visit with Stravinsky and his 
revelations re: the maestro's working methods. Amusing and amazing. 
Apparently the paste-up method will never die. :)

> I see all this common music & athena as built on solid, established,
> conventional compositional practices - so why not have something that
> functions not only as a generative & stochastically powered tool, but also
> as a front end for more easily & effectively organising & developing the
> material?
>   
I think your imagination is supposed to be that front-end. ;)

Seriously, you've touched on something that has been a grail for 
algorithmic music software, i.e. the production of large-scale designs. 
Phrase generators and note-list ejectors we have in plenty, but we're 
still short on software that helps with the creation of musically 
balanced large forms.

> The cynic in me answers "because without the perpetuation of the myth &
> culture of the exclusivity of genius, the associated notions of immaculate
> musical / artistic conception, the promotion of western notation as the only
> vaible tool for realisation, & the dogged (& I feel misguided) pursuit of
> virtuosic performance practices, too many people in music departments would
> be out of a job!" ; )
See "African Rhythm And African Sensibility" for another take on 
virtuosity.

[ramble-on]
Your inner cynic is certainly Old School, eh ? ;)  Truly, I thought 
those "becauses" were pretty well dismissed by the end of the 1970s. I'm 
reasonably certain that the academics on this list have taken more 
comprehensive attitudes towards the composition of music and sound.

Re: notation. Well, Cage of course notated his work, but unlike Boulez 
et al he defined music by its performance, i.e. its actual sound, not 
its notation. I appreciate both approaches, and as 21st century 
composers we can happily accept or reject methodologies in whole or 
part. For instance, I often begin a piece with a tone row (maybe 12 
notes, maybe more or fewer), then I'll meander into free composition by 
interval, then I'll simply change things because I prefer the sound of 
the changes.

Really, in the last analysis, the work stands on its musical merits, or 
it's just another exercise in audio engineering (which may indeed be 
interesting and even captivating). Schoenberg may well be better known 
for his methods, but it's his music that lasts for me. I don't think 
I'll ever tire of Erwartung or the quartets.

Btw, since the issue of Csound front-ends has been thrown about here 
lately, I'll mention that these days I've been working mostly with 
Jean-Pierre Lemoine's AVSynthesis. Its Csound implementation is 
fantastic, apart from the program's excellent OpenGL visual tools. And 
I've come to full agreement with Michael Gogins re: doubles. The 
resulting sound is far better, and its not just my ears wanting it to be 
so. People who have heard some of my recent things have all mentioned 
the beauty and clarity of the sound. Frankly, I never realized Csound 
could sound so good, but I'm a doubles convert now. I still keep a 
floats version alive on my 32-bit box for AlgoScore compatibility, but 
it's double precision now for the 64-bit machine.

One more btw: Hey Rory, how do you like that Wozzeck DVD ? Another piece 
I'll never tire of...
[/ramble-off]

Best regards,

dp


Date2008-04-26 01:53
FromTim Mortimer
Subject[Csnd] Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)

Dave Phillips wrote:
> 
> 
> 
> Seriously, you've touched on something that has been a grail for 
> algorithmic music software, i.e. the production of large-scale designs. 
> Phrase generators and note-list ejectors we have in plenty, but we're 
> still short on software that helps with the creation of musically 
> balanced large forms.
> 

That would certainly be the ultimate outcome of what i'm working towards.
after all, i have dubbed my Parseval software project "the holy grail of
sequencing" ; ) Naturally, typecasting myself as the pure fool who sets out
to write it...

Essentially at this stage however all im talking about is, in a very literal
sense, a "tracker"

but instead of simply sorting events by time, the time elements would be
kept in separate lists from everything else, & "everything else" (pitch sets
being the primary point of organisation interest) would be sortable by
"atomic elements" (just like a database would be sortable by name, address,
"Social Security Number" etc etc...) + i'm adding in the real time
"knitting" aspect...(mainly because i can't play piano real good...)

i'm also envisaging some sort of tree structure of developmental
inheritance, but that i'll concede is a longer term & more esoteric ambition

If the notions discussed were infact dismissed in Adelaide by the mid 90's
(let alone 70's), then my local con would have let me in to do composition /
transfer from architecture (which i went on to drop out of)  & i would have
laernt Max MSP about 10 years ahead of when i actually did, & the software
i'm discussing may well have already been written! ; ) 

as it was, it took discovering Feldman on the net & stumbling across
Harmonielehre in my State library a few years ago to really answer a lot of
my questions & teach me something of the type of information, as a
songwriter, i always craved to know to develop my music & try & take it to
another level. 

Feldman showed me that the kind of "minimalist meets eno" sonic wallpaper -
hybrid i'd always envisaged had already been realised 50 years earlier. Im
prepared to revive the basic concepts as the wall on which to hang some
resynthesis, + noise & granular textures & my influences from the "pop" end
of the spectrum... the idea that a work rambles on for 10 minutes in a
spectrally-altered feldmanesque homage & then drops to an interlude of
"Xenakis-lite" noise & then back again ad infinitum is i think is an
attractive compositional aim for a piece of "pure tape music" - it's what
i'd like to hear anyway... 

Most of Schoenbergs music has bored me to tears compared to his
contemporaries. But his writings have been invaluable to me, & as he's the
closest thing to a teacher i've ever had, I hold him in very high esteem.
The chapters he wrote on the minor scale & secondary dominance in
Harmonielehre are IMHO exceptional in their rigorous logic & presentation,
as well as the engendered fanaticism, with just a smattering of "teutonic
hocus pocus" from Arnie that i like. Even the counterpoint book is great, if
you can find it...

If I manage to sneak behing the JSTOR firewall any time soon i'll
investigate some of these interesting topics for further research you have
raised! ; )

many thanks
T.

-----
*******************
www.phasetransitions.net
hermetic music * python * csound * possibly mindless ranting
various werk in perpetual delusions of progress....

-- 
View this message in context: http://www.nabble.com/real-time-GUI-for-Python---csound-algorithmic-%22atomic-elements%22-database-%28or-something...%29-tp16886575p16908102.html
Sent from the Csound - General mailing list archive at Nabble.com.


Date2008-04-26 04:02
FromTim Mortimer
Subject[Csnd] Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
actually dave can you link me to anything about the elliot carter /
stravinsky methods information?

all ive found via google so far is that elloit carter has the same birthday
as my mum....

i've sent oeyvind some code - i don't think its as significant as he thinks
it is. if there are problems with accurate scheduling using csound api in
python then i thought the obvious alternate thing to try would be simply
hosting a gui, & dictionary based data base for krate examination via
pyops... & set all the output (& user added) "atomic elements" / list data
values to ftables... i'm simply mocking up ideas in pure csound at this
stage... "it aint pretty, but it works" - the csound motto perhaps?

i realise some of the pyops have a limit of 8 output values, but using a
direct assignment to csound variables method is the process likely to
bottleneck at some stage?

-----
*******************
www.phasetransitions.net
hermetic music * python * csound * possibly mindless ranting
various werk in perpetual delusions of progress....

-- 
View this message in context: http://www.nabble.com/real-time-GUI-for-Python---csound-algorithmic-%22atomic-elements%22-database-%28or-something...%29-tp16886575p16908904.html
Sent from the Csound - General mailing list archive at Nabble.com.


Date2008-04-26 06:43
From"Oeyvind Brandtsegg"
Subject[Csnd] Re: Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
AttachmentsNone  

Date2008-04-26 10:59
FromTim Mortimer
Subject[Csnd] Re: Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
The uploaded pdf 9at the end of this post) is a sort of "heavily commented
python pseudo-class" that attempts to sketch out & describe the basic
methodology in the csound model i have sent Oeyvind. - Oeyvind you may find
it assists in giving you an overview of the more recent (but incomplete)
implementation i have sent you.... & give anyone else interested some more
verbose examination of the basic principles behind the ideas (which are, on
a number of levels quite "improsculpt-esqe")

It's nothing radical in terms of algorithmic & atomic methods - the 2.5
things i have arrived at that i think assist the real-time implementation (&
interfacing in general) are

1) the various conditional duration statements & their handling

2) the "target instrument" definition layer that exists to assist in
resolving these duration statements (independant from any physical
instrument code per se) - this could be easily re-interpreted as a structure
for a purely abstracted, "voiceled" implementation - however the development
from my early voiceled-only models is that "voices" can be
polyphonically-capable colours, as well as simply monophonic voicelines in
the pure "voiceled" sense...

2.5) the reduction of heavy p-field dependent score statements to preset (or
"p-sets" even) pre-defined p field parameters with linked resynthesis
masking calls etc.. that could all become synonymous on the "meta-level"
with expressive statements or articulations

let us know what sense (if any) you were able to get out of what i have sent
you Oeyvind.. & specifically if anything i have offered you resolves or
improves your own more thoroughly researched & road-tested methods....

In the meantime, the wx book, & some pyops oriented development upon the
attached will keep me occupied for a few weeks at least.... 

http://www.nabble.com/file/p16911298/atomicdatabase1.pdf atomicdatabase1.pdf 

-----
*******************
www.phasetransitions.net
hermetic music * python * csound * possibly mindless ranting
various werk in perpetual delusions of progress....

-- 
View this message in context: http://www.nabble.com/real-time-GUI-for-Python---csound-algorithmic-%22atomic-elements%22-database-%28or-something...%29-tp16886575p16911298.html
Sent from the Csound - General mailing list archive at Nabble.com.


Date2008-04-26 11:50
FromDave Phillips
Subject[Csnd] Re: Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
Tim Mortimer wrote:
> actually dave can you link me to anything about the elliot carter /
> stravinsky methods information?
>   
The story I referred to is in David Schiff's "The Music Of Elliott 
Carter", pp. 37-38. You can get a used copy on Amazon for about $5US.

Basically, EC simply relates his surprise at discovering that Stravinsky 
often used a collage or cut-up method to put pieces together. Apparently 
Stravinsky kept a big paste-up book in which he'd glue fragments of 
music to eventually get to the piece's desired overall form. Perhaps not 
so elegant, but it was a fruitful method for the Maestro.

> all ive found via google so far is that elloit carter has the same birthday
> as my mum....
>   
Auspicious. :)

Btw, although I can't directly contribute to the gist of this thread, I 
am very interested in its content. Oeyvind's ImproSculpt has long been 
one of my favorite Csound-based apps, it's good to see it developing and 
influencing other development tracks.

Best,

dp