On 3/28/20, Devon McCormick <devon...@gmail.com> wrote: > has anyone done work with generating music or musical phrases in J? I'm > helping someone develop a music training game that starts by generating > sounds with a particular key, tempo, and phrase length. ... > I've told my collaborator that I think the generation part should be > relatively straightforward but I am not schooled in music, so I'm not sure > how to start. > Does anyone have any ideas about this?
You might try checking around libraries, online used book sources, etc., for a book titled "Cybernetic Music" by Jaxitron [i.e., Jack Citron] (TAB Books, 1985) (344 p.). [Many of the ideas in the book are more or less based on "The Schillinger System of Musical Composition" by Joseph Schillinger (1946), which applies mathematics to music, especially background music for radio, films, and such.] The blurb on the rear cover of the paperback (the book was originally available in both hardcover and paperback) states: __________________________________________________ The focus here is on using the principles of artificial intelligence modeling and expert systems to help the musician compose! This where you'll find out how to use your computer to keep track of musical decisions that you've already made . . . to project possible outcomes of different musical combinations . . . to generate possible harmonies for a given melody (or vice versa) . . . or to perform such time-consuming chores as transposing and orchestrating. And what the computer does is all within the parameters that *you* have established! The basis of this computerized music generation system is the concept that rhythmic, harmonic, and melodic elements of music--even music idiom, style, and form--can be quantified and described in mathematical terms as vectors, arrays, and matrices. These elements can then be manipulated and processed in any way the composer wishes using the powerful functions of the APL programming language. Because APL has the ability to express in a single statement or operation, ideas that would require multiples lines of code in other languages, it lends itself particularly well to the necessities of creative musical composition. __________________________________________________ Since one of my master's degrees is in music (emphasizing theory and composition), I bought the book because I was a computer programming hobbyist (since 1975) with an interest in "marrying" music and computers and because I owned all of Schillinger's books. I didn't know APL (and still don't), and it was only in 2006 that a coworker at the library I worked for happened to tell me about J. That interest grew to the point where, by 3 years later (when I retired), I gave presentations at library conferences on using J, hoping to instill interest in others for J. Anyway, I had hoped to "translate" the APL code in Jaxitron's book into J, but that has been an idea that has not yet borne fruit. I hope I live long enough yet to make an attempt. On the other hand, maybe somebody in our group is knowledgeable enough in both APL and J to carry through on such a task. Another resource for *ideas* is David Cope (see Google or Amazon), who has written several books on musical composition by computers, including many code examples. Unfortunately, he uses Lisp, which probably would be very difficult to translate to J. His programs can learn musical style and then create music that can sometimes be very similar to well known classical composers (as demonstrated in published scores by his software and musical recordings of some of them). Some of his (expensive!) book titles are: Experiments in Musical Intelligence (1996) The Algorithmic Composer (2000) Virtual Music: Computer Synthesis of Musical Style (2004) Computer Models of Musical Creativity (2005) Hidden Structure: Music Analysis Using Computers (2009) Lately, he has been publishing computer generated novels and musical scores of various kinds generated by computer. Hope this helps with ideas you can follow up on! Harvey ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm