The Radio 3 Boards Forum from myforum365.com
01:42:30, 03-12-2008 *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Whilst we happily welcome all genuine applications to our forum, there may be times when we need to suspend registration temporarily, for example when suffering attacks of spam.
 If you want to join us but find that the temporary suspension has been activated, please try again later.
 
   Home   Help Search Login Register  

Pages: [1]
  Print  
Author Topic: Topic for algorithmic composition anoraks  (Read 325 times)
Turfan Fragment
*****
Posts: 1330


Formerly known as Chafing Dish


« on: 21:37:32, 11-08-2008 »

I am a competent programmer in BASIC and am a rather quick study, and would like to appeal to computer-savvy anoraks out there.

I lost numerous BASIC programs late last month and am using the 'opportunity' (quote from trained-pianist) to upgrade my brain.

Can anyone recommend an absolutely free or at least only mildly costly computer programming language into which I can translate my (lost) algorithmic composition tools? It need not be object based and can be command-line based. I prefer command-line programming because objects (as in Patchwork, Max, etc) are simply ugly and cause me to cry tears of indignant frustration at their ugliness*.

Minimum requirements are at least some sort of engine that does typical set-theoretical transformations eg transposition, inversion; but perhaps also can take a chain of numeric values and offer options for translating them into rhythmic durations

*a yes, even the cloyingly pretty maquettes used in IRCAM software. iVomit
*b I use Max for electronic sound manipulation/ live shit, but that's b/c I have gotten used to it (sort of).
Logged

Andy D
*****
Posts: 3061



« Reply #1 on: 21:51:19, 11-08-2008 »

Have you looked at Python TF? It's object-oriented and it's free to download. Don't know if it will meet your requirements but I'd guess if you can program something in Basic, you can do it in Python.

http://www.python.org/

http://starship.python.net/crew/mhammond/ is a good source too, I use his Pythonwin to run Python under Windows.
Logged
increpatio
*****
Gender: Male
Posts: 2544


‫‬‭‮‪‫‬‭‮


« Reply #2 on: 21:54:02, 11-08-2008 »

Minimum requirements are at least some sort of engine that does typical set-theoretical transformations eg transposition, inversion
I have a couple of ideas, but I don't want to suggest something to you that you'll end up finding frustrating.  Could you describe a particular, representative, task that you would want a program to do? Not just a part of it, like the examples you gave.  In particular, the ways in which you would interact with the program might be important (whether you want to be typing in numbers at the command-line, reading data-files, entering stuff into windows applications, blah blah blah).

In general, most music-geared software deals with synthesis as opposed to more algorithmic stuff; most of the latter stuff tends to be done by hand (=coded from scratch without third-party tools).  I have a certain amount of experience when it comes to computer-assisted composition (though not really synthesis) and, for my last batch of stuff I changed programming language and it simplified things many, many times (because it was much easier to deal with lists, sets, and arrays in).
« Last Edit: 22:46:26, 11-08-2008 by increpatio » Logged

‫‬‭‮‪‫‬‭‮
Evan Johnson
*****
Gender: Male
Posts: 533



WWW
« Reply #3 on: 06:03:22, 12-08-2008 »

Have you looked at Python TF? It's object-oriented and it's free to download. Don't know if it will meet your requirements but I'd guess if you can program something in Basic, you can do it in Python.

http://www.python.org/

http://starship.python.net/crew/mhammond/ is a good source too, I use his Pythonwin to run Python under Windows.

I second this recommendation; I've used Python for some extremely simple precompositional computations and found it to be excellent for such things.  The learning curve, at least for my purposes, was not at all steep, either.
Logged
Turfan Fragment
*****
Posts: 1330


Formerly known as Chafing Dish


« Reply #4 on: 14:13:59, 12-08-2008 »

Hey EJ, long time no hear.

I will try this Python (on my Mac, mind you) and will report back duly.

Please do keep this thread open -- eye e more suggestions are always welcome
Logged

richard barrett
*****
Posts: 3123



« Reply #5 on: 14:25:36, 12-08-2008 »

I've downloaded Python, not having heard of it before the present conversation, but otherwise Chipmunk BASIC still does what I need it to under Mac OS 10.4.6, and for some permutational stuff I can't be bothered to program myself I make Max patches with objects like urn. However I do it, what the computer gives me is numerical values I then "translate" into what they're actually supposed to be. I wouldn't describe the way I do things as "algorithmic composition" as that's usually understood, though I am of course an anorak.
Logged
harmonyharmony
*****
Posts: 4080



WWW
« Reply #6 on: 14:27:49, 12-08-2008 »

I've downloaded Python, not having heard of it before the present conversation, but otherwise Chipmunk BASIC still does what I need it to under Mac OS 10.4.6, and for some permutational stuff I can't be bothered to program myself I make Max patches with objects like urn. However I do it, what the computer gives me is numerical values I then "translate" into what they're actually supposed to be. I wouldn't describe the way I do things as "algorithmic composition" as that's usually understood, though I am of course an anorak.

I'm not the only one that's been using Chipmunk BASIC then...
This thread is making me consider Python as well.
No real time at the moment, but perhaps I'll see how you all get on first!
Logged

'is this all we can do?'
anonymous student of the University of Berkeley, California quoted in H. Draper, 'The new student revolt' (New York: Grove Press, 1965)
http://www.myspace.com/itensemble
Turfan Fragment
*****
Posts: 1330


Formerly known as Chafing Dish


« Reply #7 on: 15:25:34, 12-08-2008 »

urn - never heard of that. Must look it yup.

And I admit that what I do isn't exactly algorithmic either, but it does help me set up 'work-spaces'
Logged

increpatio
*****
Gender: Male
Posts: 2544


‫‬‭‮‪‫‬‭‮


« Reply #8 on: 16:23:31, 12-08-2008 »

However I do it, what the computer gives me is numerical values I then "translate" into what they're actually supposed to be.
I rather have this sort of relationship with my programs as well.

Anyway, Python is surely an interesting and popular language.  There is, also, a pitch class library available for it here that might be worth a gander (though I remain skeptical as to the utility of such a library in general).  Let us know how you get on exploring it. 

I feel somewhat compelled to speak of my own personal choice of programming language for these sort of tasks, Haskell.   As I said before, it's good for doing stuff with lists (it does a lot of other very heavy duty stuff as well, but that's not for here)*.

A couple of examples.  It has a 'map' command that transfers a function on, say numbers, to a function on lists of number, by applying it to each element.

So say I defined my transpose function as

Code:
transpose a n =  (a+n) `mod` 12

Then if I wanted to transpose or invert the pitch-class set [0,4,7] by a 8 semitones I'd write

Code:
map (transpose 8) [0,4,7]

(output [8,0,3])

If I wanted to write a function that would, given a pcset, return all the present intervals, I'd do it as follows

Code:
intervals s  =  [ (x-y) `mod` 12 | x<-s, y <- s]

(I find these (mathematical) set-theoretic styles of definitions of functions to be really pleasant to write).

Then if I typed

Code:
intervals [1,4,6]
 

I'd get the output [0,9,7,3,0,10,5,2,0].  If I wanted to remove the duplicate entries there's a function called 'nub' that does that.

There are plenty of other list* operations that I occasionally find myself lusting after when I'm programming in other languages.

*I've heard it said that python is pretty hand when it comes to list-manipulation as well, but I'm not familiar enough with it to comment.
« Last Edit: 16:27:15, 12-08-2008 by increpatio » Logged

‫‬‭‮‪‫‬‭‮
Evan Johnson
*****
Gender: Male
Posts: 533



WWW
« Reply #9 on: 22:52:45, 12-08-2008 »

However I do it, what the computer gives me is numerical values I then "translate" into what they're actually supposed to be.
I rather have this sort of relationship with my programs as well.

Anyway, Python is surely an interesting and popular language.  There is, also, a pitch class library available for it here that might be worth a gander (though I remain skeptical as to the utility of such a library in general).  Let us know how you get on exploring it. 

I feel somewhat compelled to speak of my own personal choice of programming language for these sort of tasks, Haskell.   As I said before, it's good for doing stuff with lists (it does a lot of other very heavy duty stuff as well, but that's not for here)*.

A couple of examples.  It has a 'map' command that transfers a function on, say numbers, to a function on lists of number, by applying it to each element.

... for what it's worth, Python does this as well...
Logged
increpatio
*****
Gender: Male
Posts: 2544


‫‬‭‮‪‫‬‭‮


« Reply #10 on: 23:46:26, 12-08-2008 »

... for what it's worth, Python does this as well...
Yeah, I noticed that when I was checking stuff up earlier today.  Pretty nice innit? Smiley
Logged

‫‬‭‮‪‫‬‭‮
Pages: [1]
  Print  
 
Jump to: