5 ms·
Opusmodus: Common Lisp Music Composition System
- vindarel 3y agoThis GUI is made with LispWorks' CAPI toolkit.
- lispm 3y agoGenerally the application is based on LispWorks and thus available for macOS and Windows.
- PennRobotics 3y agoFor even easier (and still reasonably robust) text-based music composition, look into ABC notation: https://en.wikipedia.org/wiki/ABC_notation#Example https://en.wikipedia.org/wiki/ABC_notation#Example
- metaketa 3y agoWhat notation rendering library are they using?
- capableweb 3y ago> That Opusmodus has adopted MusicXML as the de facto standard for displaying notated scores should be no surprise. This is inextricably bound up with the development of the distinctive Opusmodus Notation script (OMN). It gives the composer the means to design into the very composition of a score a host of musical details that have until now been impossible to bring together in a single line of script. https://opusmodus.com/forums/notation-viewer/ https://opusmodus.com/forums/notation-viewer/
- ctrlmeta 3y ago> That Opusmodus has adopted MusicXML What are some other notable and open formats for notating scores? I'd like to know the what the popular formats are, do a survey and choose one for my own work.
- phlakaton 3y agoMusicXML is pretty much the game in town as far as open formats go. Lilypond is an open TeX-like format, but it's really a domain-specific programming language for Lilypond itself.
- adrianh 3y agoHave a look at MNX, which is in the process of being designed: https://w3c.github.io/mnx/docs/ https://w3c.github.io/mnx/docs/ It's an open JSON format that's being hashed out by members of the music technology community. It's not production-ready yet, but I encourage you to get involved in the discussions! https://github.com/w3c/mnx/ https://github.com/w3c/mnx/ (I lead creation of the format, as one of the co-chairs of the W3C Music Notation Community Group.)
- andrewla 3y agoABC is the other major player in the space besides MusicXML and Lilypond. The Mutopia project [1] is magnificent but largely abandoned in favor of MuseScore [2] which uses MusicXML. The amount of music available there is staggering but locked in to their backend. Unfortunately automated translation is difficult because Lilypond is very oriented towards specifics on how the notation is rendered. And, if you are interested in general archives of music, IMSLP [3] (Internet Music Score Library Project) has to be mentioned as well, but mostly contains scans of existing engraved music. [1] https://github.com/MutopiaProject/MutopiaProject https://github.com/MutopiaProject/MutopiaProject [2] https://musescore.com/sheetmusic https://musescore.com/sheetmusic [3] https://imslp.org https://imslp.org
- shoggouth 3y agoAlso there is Impromptu[0], a live coding Scheme. This is my favorite piece written in it[1]. The guy behind Impromptu created Extempore[2]. [0]: http://impromptu.moso.com.au/index.html http://impromptu.moso.com.au/index.html [1]: https://vimeo.com/2579694 https://vimeo.com/2579694 [2]: https://extemporelang.github.io/ https://extemporelang.github.io/
- eggy 3y agoI've used Extempore and GRACE, the cross-platform GUI for Common Music. I am a Lisper so these tick that box. I always wanted to use Opusmodus, and I think I will now. It has great tutorials and documentation and seems to have matured nicely. It has high-concept functions for composing compared with some of the others that require for you to build those functions. I'm not sure how it will compare with Extempore's live coding abilities.
- chaosprint 3y agoIf you are interested in code-based composition, try my project: https://glicol.org https://glicol.org I am still working on the composition system, together with many other stuff here is an example of Kraftwerk: https://glicol.org/demo#themodel https://glicol.org/demo#themodel
- sramsay 3y agoWhat I really want to see is a music programming language that does not require elementary knowledge of trig. In fact, I don't want it to use any numbers at all. They all do: Faust, Impromptu, ChuCK, csound, SuperCollider, etc., etc. I suppose that by itself should convince me that there's no other way (there are things like Orca, but I'm thinking of things that look more like conventional programming languages). I seldom think about numbers when I'm programming a synthesizer -- I just turn this knob more this way or this slider down a bit. Why can't a music programming language be more . . . gestural? Not sure what the right word is. I want the benefits of a textual programming language, but I don't really want to have to start thinking about sound waves in terms of literal numeric frequencies, particular since I really don't do that while doing sound design. I don't meant to pick on your project in particular; it looks really cool. But since you're writing one of these, perhaps you can answer my question. Why do these languages ask synth programmers to think in terms of precise numbers when programming an "actual" synth isn't really like that at all?
- Jeff_Brown 3y agoTidalCycles doesn't. And you can try it online without installing anything. https://strudel.cc/ https://strudel.cc/ Try evaluating `d1 $ s "bd sn"` to get a bass drum-snare drum rhythm going. Then `d1 $ s "bd*2 sn"` to kick the bass drum twice each loop instead of once. It can be extremely intuitive.
- sramsay 3y agoDoesn't what? Doesn't use numbers? scale(scales) .scaleTranspose("[0 <2 4>]*2") .struct("x*4") .velocity("<.8 .5>\*4") .velocity(0.8) .slow(2) ) .fast(1) .note() .clip("<.4 .8 1 1.2 1.4 1.6 1.8 2>/8")
- shanusmagnus 3y agoThis is interesting and inspiring! However, if you don't know anything about music, would it be fun to play around with it, or tedious? Trying to allocate my down-the-rabbit-hole cycles a bit...
- phlakaton 3y agoNot to be confused with Common Music (https://commonmusic.sourceforge.net/ https://commonmusic.sourceforge.net/) or Common Lisp Music (https://ccrma.stanford.edu/software/snd/snd/clm.html https://ccrma.stanford.edu/software/snd/snd/clm.html), two venerable Common Lisp packages for composition and sound generation.
- Rochus 3y agoCommon Music switched from Common Lisp to Scheme in 2008 (and also supports SAL for people who don't like the Scheme syntax); it uses the S7 Scheme interpreter included with sndlib. Actually Common Lisp Music is neither Common Lisp anymore, but a C library and part of the mentioned sndlib (with some language bindings).
- iainctduncan 3y agoAnd I use the same one in Scheme for Max and Scheme for Pd. s7 is by Bill Schottstaedt, one of the godfathers of computer music and the author of Common Lisp Music and the Snd editor. It has really nice design decisions for the composer-programmer.
- lispm 3y agoOpusModus includes Common Lisp Music.
- ramses0 3y agoAlso: https://lilypond.org/text-input.html https://lilypond.org/text-input.html ...and: https://www.mutopiaproject.org https://www.mutopiaproject.org
- Rochus 3y agoThere are a lot of cross-platform open-source solutions with comparable capabilities, like e.g. Common Music, Nyquist, Csound, SonicPi, etc. Maybe anyone has experience why Opusmodus would be preferable to the ones listed?
- anon291 3y agoBegin rant. Call me crazy, but all the great music of today is being done in video games and cinema scoring. I'm sure this system is useful for some, but I can't help but feel the kinds of modern classical featured are just noise. The claim is often that music is cultural. I'm sure that's true, but then where is the great modern Western classical music? Why was it thrown away? There are reasonable explorations to be had. For example, modern composers could have chosen to integrate Jazz harmonies (which still sound concordant), but instead they chose to go off the deep end with atonality, aharmony, and arhythm. We gotta end the postmodernism and return to actually nice things. And really, it's sad because the kinds of scores being produced with the rhythm changes every measure, etc. They really ultimately sound like the pretentious ramblings of some drunk/high guy at a MIDI controller instead of the carefully assembled score. It takes real talent to properly keep meter over the course of an entire song. Just banging some keys and then making other people attempt to replicate it... I mean props to the replicators (the players), but the scorer just threw some notes on a page. In my opinion, this is a racist response by mainly European composers to the popularity of Jazz music which is associated mainly with African Americans, from whom the source originated. They were jealous of what they perceived as the novel rhythms and harmonies, but instead of building off that or inventing something new that still had rhythmic and harmonic value.. they did this
- TheOtherHobbes 3y agoThe accusation of racism is an interesting take. There were strong links and crossovers between jazz and classical music until serialism happened. They didn't develop independently. It wasn't all that unusual for black jazz players and composers to be as classically trained as white musicians. But serialism was too far for most people. And still is. Failed composer/critic Adorno, who adored serial music and is a Big Name on the scene, absolutely loathed jazz and popular music. It's not really atonal. It's antitonal. Truly atonal music wouldn't care about standard pitches or notation at all, because they're still based on the harmonic series. It's antitonal because it pretends that's not true, while also trying its best to avoid the usual paths through harmonic space. As for the quality - there's an opera called Wozzeck which is performed fairly regularly. The rest is mostly museum music - relegated to special academic festivals. Not mainstream at all. It's actually very structured, and if you know what's happening you can hear the patterns and components going by. But as music it has a very limited emotional range. And intellectually, most of it is pure crossword puzzling for the sake of it.
- nyx_land 3y agoI've always wondered why Common Lisp has so many algorithmic composition applications. In addition to Opusmodus, Common Music, and Common Lisp Music, which were mentioned elsewhere ITT, there's also Open Music (http://repmus.ircam.fr/openmusic/home http://repmus.ircam.fr/openmusic/home) and Incudine (https://incudine.sourceforge.net/ https://incudine.sourceforge.net/), and then of course there's some SuperCollider client stuff. it feels like such a niche within a niche to write algorithmic composition software (something that requires an intersection of some very specific skills and knowledge) in a language like CL that hardly anyone knows, but I'm glad it exists even if I can't personally make use of the one that most interests me (Open Music) because of LispWorks.
- lispm 3y agoOpen Music has precompiled LispWorks applications for Windows/86, Linux/86, macOS 86&ARM. https://github.com/openmusic-project/openmusic/releases/tag/v7.3 https://github.com/openmusic-project/openmusic/releases/tag/... LispWorks is 'relatively' popular for Lisp-based music applications like Open Music, om#, Scorecloud, OpusModus and a few others, because the native GUI toolkit for Windows, Linux and macOS allows to write portable GUI applications. One pays for being able to use a niche language able to write such applications.
- nyx_land 3y agoI'm aware, but I use *BSD on my computers and can't afford to pay for a FreeBSD LW license to compile something from source myself, so I'm shit outta luck. I am aware that the reason why it uses LispWorks is for the GUI toolkit, which is an understandable reason to since there isn't currently a real free software alternative to CAPI unless one wants to be reliant on Qt or GTK (neither of which are native to MacOS or Windows obviously). maybe one day if McCLIM gets better support for backends other than X11 there will be a real alternative, but even then, from digging into Open Music's source code it would be an absolutely massive undertaking to try to rewrite it to not be dependent on LW and it probably is the same for other CL composition software that uses LW.
- iainctduncan 3y ago
- johnisgood 3y ago> Everyone Can Code Right...
- iainctduncan 3y agoFWIW, I have also authored a related tool. I wrote Scheme for Max and Scheme for PD, enabling you to run s7 Scheme inside Max, PureData, and Live (through Max). It uses the same Scheme interpreter as the Common Music (mentioned here) and allows you to run a fair bit of common music code, though it is in general targetted at being a bit more low level. And of course includes a bunch of Max integration things not in CM. You can use it, for example, to write sequencers and automation tools that share Max buffers, sync with the transport, use the Live API in Ableton Live, etc. Project page here: http://github.com/iainctduncan/scheme-for-max http://github.com/iainctduncan/scheme-for-max Demos here: https://youtube.com/c/musicwithlisp https://youtube.com/c/musicwithlisp Long form (thesis) paper on the project: https://iainctduncan.github.io/papers/index.html https://iainctduncan.github.io/papers/index.html
- iainctduncan 3y agoFor those wondering "why lisp for music?", I wrote a chapter about this specifically in my recent Music Tech Master's Thesis, for which Scheme for Max was my thesis project. Might be of interest! (This is written to be accessible to a non-computer scientist audience, btw) https://iainctduncan.github.io/papers/design.html#why-use-a-lisp-language https://iainctduncan.github.io/papers/design.html#why-use-a-...