Hot answers tagged algorithmic-composition
Besides Haskore which is already mentioned in the paper you refer to and the ones mentioned by other, there is "supercollider" and "pure data". I absolutely understand you question. I've been looking for such a high-level thing myself. Here are my personal thoughts on this: I haven't found anything good and came to the conclusion, that there are no ...
See this SO question. I'm not sure if this is exactly what you need, but it might help. Because I'm just linking another question, I'd normally put this as a comment. However I don't have commenting permissions on this site (yet).
I'm not 100% sure what your goals are since I see a conflict between using the tone net, which just goes off in all directions with more and more sharps/flats, and your goal of limiting/manipulating the number of sharps and flats. In conventional music the key signatures are (usually) selected so as to avoid double-flats/sharps and the use of chromatic ...
Getting into tracker software might another approach. You could consider the tracker score notation the programming language, and the tracker player the complier/interpreter. There are plenty of music modules (songs) you can load and play with. These are shared all the time. You can use tracker software out of the box to edit your 'input music' (E.g. ...
You may be interested in the CHucK programming language. https://www.coursera.org/course/chuck101
I am not sure if they include all of the features you require. But the java jmusic library is quite extensive, I think that would be your best shot. Otherwise other options would be JFugue, music21 (python) or the visual programming language CSound, from ircam, also very extensive.
Give a try to OpenMusic, a visual programming language for symbolic music. It’s a bit frightening at first, but the tutorial should get you going pretty quick.
One can consider Lilypond to fit in this mold: although it is more focused on typesetting music, it can output a MIDI representation of the score. However, I find that, in terms of basic usage, it is not easy to achieve expressive effects in the midi output. In addition, it has no real-time capabilities. I mention it primarily since it may provide ideas ...
Édouard mentions OpenMusic, somewhat similar, and descendant of PatchWork is PWGL (http://www2.siba.fi/PWGL/). Looking at what you need from a language it might be useful especially 'constrains' part of PWGL. Learning curve is steep (LISP) but well worth your time. Some great external libraries for rhythm manipulation too. good luck
I think Overtone has what you're looking for and more. It's a Clojure library that acts as a powerful front-end to SuperCollider. It may take a while to learn how to use it (especially if you're new to Clojure), but once you do, it's quite powerful and flexible. You can do things like define a melody as a sequence of scale intervals, and then combine that ...
"So, the real way to figure out an interval name, given 2 pitch classes" I think this is the wrong starting point. Pitch class is just the collection of sounds (tones) that are 1 octave apart. In a well-tempered 12 tone system, 0, 1, 2, ... 11 are pitch classes. "First, count the distance between the letters of the pitch classes, then add one." ...
As noted, the term "Pitch Class" (PC) assumes enharmonic equivalence, and there are only 12 of them. Rather than calling them "note names" I have also seen the term "Tonal Pitch Class" (TPC) used to represent the non-enharmonic version of this concept. IOW, F# and Gb have the same PC, but a different TPC. This terminology, for example, is used by the open ...
Well, it seems like the answer to the question is that my assumptions are wrong. (Note to self for the future: I should've just looked up intervals on wikipedia as a starting point and I could've easily answered my question.) My first assumption was that you cannot determine the name of an interval without knowing the key it exists in. That seems to be ...
Sounds like you want to do something similar to Andrew Sorensen, which is amazing. He uses a language called Extempore, similar to Lisp with a bit of C in it, which allows you to define and play stuff in real time. You can see this in action in this video, where he performs a piece doing live coding.
Only top voted, non community-wiki answers of a minimum length are eligible