Re: Lilypond for serial music?
Hi Trevor, thanks for sharing your thoughts with such an analytical insight. So, still waiting for the system...:) Really, there are some people interested in this stuff so would be nice to have a wiki or something... Best -a- On 30 Nov 2007, at 18:24, Trevor Bača wrote: Hi Andrea and Miguel and Eyolf and everybody, Sorry I've been absent from this thread for a bit; Andrea's guessing right that I've been busy ... :-) Warning: lots of words, and it's all personal stuff, too. Quite a few years ago I sat down and made the conscious decision that trying to write out by hand the massive textural type of stuff that I was writing was going to kill me. That realization started me down the score formalization path -- modelling increasingly many score elements as data structures in some programming language or other. The initial efforts were all implemented in C ... most definitely *not* because it was the language for the job ... but because it was the language that I happened to know the best at the time ... this being the mid- to late-nineties. And the output was only MIDI for input to Finale. I know. Gasp. I moved to Mathematica in 2001 and -- exactly like Miguel -- found the language outstanding. There are tons of combinatorial functions in Steve Skiena's Combinatorica package and -- more importantly -- the functional constructs are completely effortless. There's something magical about watching Nest[ ] and NestWhile[ ] and Sow [ ] and Reap[ ] do their work over huge music expressions ... and render magic bits of score. And the notation input at this time switched from Finale (after a brief stint with Sibelius ... which helped not at all) to Leland Smith's SCORE, which I loved. The SCORE GUI is crude. But the SCORE parameter description .pmx format allowed for *very* minute control of absolutely every glyph on the score ... and was clear-text. But there were a couple of problems with the Mathematica / SCORE approach. Debugging, to start with. The Mathematica model of computation is just vastly different than anything I was used to. And while most of the time I strongly benefited from the differences -- literally EVERYTHING is an expression, the functional constructs are effortless, etc -- what eventually brought me down was not being able to profile and manage the recursion in the structures that I kept building bigger and bigger. In Java I would've just encapsulated more stuff in classes, sprinkled some printfs all over the place and figured it out. But precisely because you can express so much power in a single expressions in Mma, stuff can become *extremely* difficult to debug. (Though, as Miguel notes, Mathematica is increasingly becoming an enviornment ... complete with what I hear is an ever- better profiler ... so perhaps my management problems would be somewhat ameliorated were I to go back now.) Similar problem with SCORE -- though 20 years behind. The SCORE .pmx formats read most nearly like Fortran (from what I've been able to gather): rows and rows of nothing but numbers. So, although the .pmx format is clear-text, it's almost strictly *numeric* clear-text ... and deciphering whether a tuplet bracket has nibs that point up, down, or disappear, and have a certain length and thickness means examining your parameter 08 to find that slots 6 through 10 have values 0, 0, 1.95, 1.95 and 1.83, all in a row. Imagine if every Lily grob override had the format \override 08 #'3 = 1.95 instead of \override TupletBracket #'transparent = ##t ... So (lack of) robustness drove me away from C / Finale and (lack of) maintainability drove me away from Mathematica / SCORE. Then I (re)discovered Lily in about 2006. And in the interests of full disclosure I should mention that I had found Lily as early as 2001 ... but (and it kills me to say this, but there's a lesson in here) both the tone of the docs and the examples on the site kept me -- incorrectly -- from thinking that Lily would suit my purposes. The tone seemed to have a we're not really into modern music so don't bother us sorta feel to it. And the examples seemed to be a couple of pages of absolutely beautifully engraved Classical and Romantic stuff ... together with pages and pages and pages of two-note examples of middle C slurring or beaming or linking or whatever to another middle C. There just wasn't anything there that jumped out at me and said yep, you're gonna be able to model whatever level of rhythmic complexity you want AND have it turn out beautifully. My understanding was wrong, of course. And the tone of the docs has changed forever for the better. Lily turns out to be extraordinarily friendly to composers of whatever stripe ... with rhythmic (and other types of complexity) being no object. Then I switched to python ... just like Andrea. There were a couple of different reasons motivating the
Re: Lilypond for serial music?
On 29 Nov 2007, at 22:18, Andrea Valle wrote: I don't like lisp-like languages. I really prefer OO languages. Haskell http://haskell.org/ is an OO functional language with more working math like syntax (the LISP syntax comes from Church's thesis in mathematical logic). There is a Haskell library Haskore that outputs MIDI. You can try it using say the Haskell interpreter Hugs. Hans Åberg ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond for serial music?
On 30.11.2007 (11:24), Trevor Bača wrote: Hi Andrea and Miguel and Eyolf and everybody, The initial efforts were all implemented in C ... major or minor? :) So (lack of) robustness drove me away from C What's more robust than a C major chord? Sorry for joking -- thanks for your story. I must admit I don't do that kind of music, but I'm quite interested in the possibilities. Some day I'll look into it... Eyolf -- There are three possible parts to a date, of which at least two must be offered: entertainment, food, and affection. It is customary to begin a series of dates with a great deal of entertainment, a moderate amount of food, and the merest suggestion of affection. As the amount of affection increases, the entertainment can be reduced proportionately. When the affection IS the entertainment, we no longer call it dating. Under no circumstances can the food be omitted. -- Miss Manners' Guide to Excruciatingly Correct Behaviour ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond for serial music?
Hi Andrea and Miguel and Eyolf and everybody, Sorry I've been absent from this thread for a bit; Andrea's guessing right that I've been busy ... :-) Warning: lots of words, and it's all personal stuff, too. Quite a few years ago I sat down and made the conscious decision that trying to write out by hand the massive textural type of stuff that I was writing was going to kill me. That realization started me down the score formalization path -- modelling increasingly many score elements as data structures in some programming language or other. The initial efforts were all implemented in C ... most definitely *not* because it was the language for the job ... but because it was the language that I happened to know the best at the time ... this being the mid- to late-nineties. And the output was only MIDI for input to Finale. I know. Gasp. I moved to Mathematica in 2001 and -- exactly like Miguel -- found the language outstanding. There are tons of combinatorial functions in Steve Skiena's Combinatorica package and -- more importantly -- the functional constructs are completely effortless. There's something magical about watching Nest[ ] and NestWhile[ ] and Sow[ ] and Reap[ ] do their work over huge music expressions ... and render magic bits of score. And the notation input at this time switched from Finale (after a brief stint with Sibelius ... which helped not at all) to Leland Smith's SCORE, which I loved. The SCORE GUI is crude. But the SCORE parameter description .pmx format allowed for *very* minute control of absolutely every glyph on the score ... and was clear-text. But there were a couple of problems with the Mathematica / SCORE approach. Debugging, to start with. The Mathematica model of computation is just vastly different than anything I was used to. And while most of the time I strongly benefited from the differences -- literally EVERYTHING is an expression, the functional constructs are effortless, etc -- what eventually brought me down was not being able to profile and manage the recursion in the structures that I kept building bigger and bigger. In Java I would've just encapsulated more stuff in classes, sprinkled some printfs all over the place and figured it out. But precisely because you can express so much power in a single expressions in Mma, stuff can become *extremely* difficult to debug. (Though, as Miguel notes, Mathematica is increasingly becoming an enviornment ... complete with what I hear is an ever-better profiler ... so perhaps my management problems would be somewhat ameliorated were I to go back now.) Similar problem with SCORE -- though 20 years behind. The SCORE .pmx formats read most nearly like Fortran (from what I've been able to gather): rows and rows of nothing but numbers. So, although the .pmx format is clear-text, it's almost strictly *numeric* clear-text ... and deciphering whether a tuplet bracket has nibs that point up, down, or disappear, and have a certain length and thickness means examining your parameter 08 to find that slots 6 through 10 have values 0, 0, 1.95, 1.95 and 1.83, all in a row. Imagine if every Lily grob override had the format \override 08 #'3 = 1.95instead of \override TupletBracket #'transparent = ##t ... So (lack of) robustness drove me away from C / Finale and (lack of) maintainability drove me away from Mathematica / SCORE. Then I (re)discovered Lily in about 2006. And in the interests of full disclosure I should mention that I had found Lily as early as 2001 ... but (and it kills me to say this, but there's a lesson in here) both the tone of the docs and the examples on the site kept me -- incorrectly -- from thinking that Lily would suit my purposes. The tone seemed to have a we're not really into modern music so don't bother us sorta feel to it. And the examples seemed to be a couple of pages of absolutely beautifully engraved Classical and Romantic stuff ... together with pages and pages and pages of two-note examples of middle C slurring or beaming or linking or whatever to another middle C. There just wasn't anything there that jumped out at me and said yep, you're gonna be able to model whatever level of rhythmic complexity you want AND have it turn out beautifully. My understanding was wrong, of course. And the tone of the docs has changed forever for the better. Lily turns out to be extraordinarily friendly to composers of whatever stripe ... with rhythmic (and other types of complexity) being no object. Then I switched to python ... just like Andrea. There were a couple of different reasons motivating the move. To start with, I had just finished up a subsystem at work, all python (in my other life I do engineering stuff). The work was realtime network stat analysis and after deployment I was amazed at two things: (1) the code was extraordinarily compressed (compared to, say, comparable Java) and (2) it was turning out to be extremely maintainable. Oh, and easy to trial (because of the interpreter and dynamic reloads)
Re: Lilypond for serial music?
Miguel Lopes Santos Ramos [EMAIL PROTECTED] writes: I'm considering either moving back to Common LISP with Lilypond output or using the built-in Scheme interpreter; but although I have a 15+ year programming background, I'm not finding it very easy to use Lilypond Scheme. I found googling scheme for common lispers quite helpful, along with googling things from the Guile manual. But I don't do the same kind of thing with it, though. Cheers, -- Arvid ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond for serial music?
From: Andrea Valle [EMAIL PROTECTED] I typically use lilypond for algorithmic composition. I use Python to =20= script lily. Sorry to meddle in the thread. Why Python and not the built-in Scheme interpreter? Personal preference or something you would advise other people to? I would be interested to know. I've used Excel outputting to Cakewalk in the distant past, then LISP with output hand copied to score, more recently Mathematica with cut-and-paste to lilypond. Mathematica is great, has lots of combinatorial functions and also does audio, but I'm finding some problems keeping things working across versions and it really is not free at all; it's becoming more an environment than a programming language and it's too expensive to use only as a programming language. I'm considering either moving back to Common LISP with Lilypond output or using the built-in Scheme interpreter; but although I have a 15+ year programming background, I'm not finding it very easy to use Lilypond Scheme. Greetings, Miguel Ramos Lisboa ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond for serial music?
(Still can't understand this list behaviour of replying to the author and not to the list...) Hi Miguel, I don't like lisp-like languages. I really prefer OO languages. More, I've always find difficult to understand lily internals (no figure, scheme stuff etc). So, for my personal preference indeed, I have used Python. There's also to say that Trevor B. has an incredible on going project integrating Python and Lilypond. I started pressing him to release it under sourceforge but evidently he is busy...:-) For the last project I used SuperCollider, an audio prog language which has a Smalltalk-like syntax: this allowed me to integrate notation with audio analysis and synthesis. If you want to integrate very complex audio stuff, use a very sophisticated language and then output to lily, I'll suggest SC. More, I wrote some classes in SC which allowed me to import/export with Praat. So, I have all the audio analysis I need. You may check this: http://www.nabble.com/python-%3Elilypond-tf2401329.html#a6698740 http://archive.contextgarden.net/message/ 20070504.140614.ff7f1029.en.html There are some people interested in stuff like this. We could share some infos on a wiki or something. Best -a- On 29 Nov 2007, at 20:18, Miguel Lopes Santos Ramos wrote: From: Andrea Valle [EMAIL PROTECTED] I typically use lilypond for algorithmic composition. I use Python to =20= script lily. Sorry to meddle in the thread. Why Python and not the built-in Scheme interpreter? Personal preference or something you would advise other people to? I would be interested to know. I've used Excel outputting to Cakewalk in the distant past, then LISP with output hand copied to score, more recently Mathematica with cut-and-paste to lilypond. Mathematica is great, has lots of combinatorial functions and also does audio, but I'm finding some problems keeping things working across versions and it really is not free at all; it's becoming more an environment than a programming language and it's too expensive to use only as a programming language. I'm considering either moving back to Common LISP with Lilypond output or using the built-in Scheme interpreter; but although I have a 15+ year programming background, I'm not finding it very easy to use Lilypond Scheme. Greetings, Miguel Ramos Lisboa -- Andrea Valle -- CIRMA - DAMS Università degli Studi di Torino -- http://www.cirma.unito.it/andrea/ -- [EMAIL PROTECTED] -- I did this interview where I just mentioned that I read Foucault. Who doesn't in university, right? I was in this strip club giving this guy a lap dance and all he wanted to do was to discuss Foucault with me. Well, I can stand naked and do my little dance, or I can discuss Foucault, but not at the same time; too much information. (Annabel Chong) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Lilypond for serial music?
The thread about strange meters made me wonder: have any of you lilypudlians used LP to write serial music? It would seem to be an ideal combination: make a variable and expose it to different output parameters. I assume that with some scheme code, a sequence of pitches could be translated into other series like rhythmic values, dynamics, etc., either through hard-coded permutations or generated from the series by way of some kind of algorithm. If anyone has experiences to share, I'd be interested in hearing about it. I can often say: It's not for me, it's for my son when I ask this kind of question at gaming sites etc. -- this time around it's for a colleague who writes serial-tonal music. I feel so sorry for him when he sits there, the night before the premiere, like a latter-day Mozart, and writes out all his permutations, when it could have been done by a simple lilypond weirdly.ly Eyolf -- You will be audited by the Internal Revenue Service. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond for serial music?
I typically use lilypond for algorithmic composition. I use Python to script lily. Serial practices are just very simple cases. There are other on the list doing so in very complex ways (e.g. Trevor Bača). Best -a- On 27 Nov 2007, at 22:44, Eyolf Østrem wrote: The thread about strange meters made me wonder: have any of you lilypudlians used LP to write serial music? It would seem to be an ideal combination: make a variable and expose it to different output parameters. I assume that with some scheme code, a sequence of pitches could be translated into other series like rhythmic values, dynamics, etc., either through hard-coded permutations or generated from the series by way of some kind of algorithm. If anyone has experiences to share, I'd be interested in hearing about it. I can often say: It's not for me, it's for my son when I ask this kind of question at gaming sites etc. -- this time around it's for a colleague who writes serial-tonal music. I feel so sorry for him when he sits there, the night before the premiere, like a latter-day Mozart, and writes out all his permutations, when it could have been done by a simple lilypond weirdly.ly Eyolf -- You will be audited by the Internal Revenue Service. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user -- Andrea Valle -- CIRMA - DAMS Università degli Studi di Torino -- http://www.cirma.unito.it/andrea/ -- [EMAIL PROTECTED] -- I did this interview where I just mentioned that I read Foucault. Who doesn't in university, right? I was in this strip club giving this guy a lap dance and all he wanted to do was to discuss Foucault with me. Well, I can stand naked and do my little dance, or I can discuss Foucault, but not at the same time; too much information. (Annabel Chong) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Lilypond for serial music?
Hi, (that should have been to the list, sorry to bother you Andrea) On Nov 28, 2007 12:27 AM, Andrea Valle [EMAIL PROTECTED] wrote: I typically use lilypond for algorithmic composition. I use Python to script lily. Serial practices are just very simple cases. There are other on the list doing so in very complex ways (e.g. Trevor Bača). One of these days (when I get a round tuit) I'll write a program to output a .ly file to typeset a (random) version of Riley's In C (see http://www.otherminds.org/SCORES/InC.pdf for a score of the work). It'd be nice to have a midi file of it ;-) Christ van Willegen -- 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user