[Csnd] re al time GUI for Python / csound algorithmic "atomic elements" database (or something...)
Date | 2008-04-25 05:06 |
From | Tim 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. |
Date | 2008-04-25 07:25 |
From | DavidW |
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 |
Date | 2008-04-25 10:22 |
From | "Oeyvind Brandtsegg" |
Subject | [Csnd] Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...) |
Attachments | None |
Date | 2008-04-25 12:16 |
From | Tim 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. |
Date | 2008-04-25 12:24 |
From | "Oeyvind Brandtsegg" |
Subject | [Csnd] Re: Re: re al time GUI for Python / csound algorithmic "atomic elements" database (or something...) |
Attachments | None |
Date | 2008-04-25 12:45 |
From | Tim 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. |
Date | 2008-04-25 14:12 |
From | Tim 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. |
Date | 2008-04-25 14:44 |
From | Dave 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 |
Date | 2008-04-26 01:53 |
From | Tim 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. |
Date | 2008-04-26 04:02 |
From | Tim 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. |
Date | 2008-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...) |
Attachments | None |
Date | 2008-04-26 10:59 |
From | Tim 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. |
Date | 2008-04-26 11:50 |
From | Dave 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 |