[HN Gopher] Opusmodus: Common Lisp Music Composition System
___________________________________________________________________
Opusmodus: Common Lisp Music Composition System
Author : zetalyrae
Score : 147 points
Date : 2023-11-08 10:57 UTC (12 hours ago)
(HTM) web link (opusmodus.com)
(TXT) w3m dump (opusmodus.com)
| PennRobotics wrote:
| For even easier (and still reasonably robust) text-based music
| composition, look into ABC notation:
|
| https://en.wikipedia.org/wiki/ABC_notation#Example
| metaketa wrote:
| What notation rendering library are they using?
| capableweb wrote:
| > 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/
| ctrlmeta wrote:
| > 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 wrote:
| MusicXML 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 wrote:
| Have a look at MNX, which is in the process of being
| designed:
|
| 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/
|
| (I lead creation of the format, as one of the co-chairs of
| the W3C Music Notation Community Group.)
| andrewla wrote:
| ABC 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
|
| [2] https://musescore.com/sheetmusic
|
| [3] https://imslp.org
| vindarel wrote:
| This GUI is made with LispWorks' CAPI toolkit.
| lispm wrote:
| Generally the application is based on LispWorks and thus
| available for macOS and Windows.
| shoggouth wrote:
| Also 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
|
| [1]: https://vimeo.com/2579694
|
| [2]: https://extemporelang.github.io/
| chaosprint wrote:
| If you are interested in code-based composition, try my project:
|
| 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
| sramsay wrote:
| What 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 wrote:
| TidalCycles doesn't. And you can try it online without
| installing anything.
|
| 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 wrote:
| Doesn'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")
| Jeff_Brown wrote:
| Require trig.
| Rochus wrote:
| > _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_
|
| That's a bit of a contradiction. It's exactly the reason to
| use a programming language to have that level of control over
| signal processing. Otherwise you're better off with a tool
| like Reactor or VCV Rack.
| nielsbot wrote:
| What about Orca?
|
| https://100r.co/site/orca.html
|
| Esoteric visual music programming language that uses a 2D
| grid of operators.
| sramsay wrote:
| Orca is explicitly mentioned in the comment to which you
| are responding.
| nielsbot wrote:
| oops!
| TheOtherHobbes wrote:
| Because it's a text interface, not a gestural interface.
|
| If you really want a gestural interface you can add it to any
| language that supports for MIDI control, or some other
| hardware connection option. (UDP, etc.)
|
| The gestural part is trivial, just as putting a knob on a
| synth is trivial. The hard part is getting the knob to _do_
| something,. Which is not trivial at all.
|
| In fact it's impossible without using numbers somewhere in
| the make-it-work chain. They may be a few levels down, but
| they're always going to be there.
| sramsay wrote:
| I'm not suggesting that we banish numbers from the entire
| stack. I'm asking why they are absolutely necessary for a
| textual interface in this domain -- to the point that, as
| someone says below, it is a "contradiction" to suggest
| otherwise. As if there's some sort of impassable gulf
| between csound and VCV Rack.
|
| Let's talk about LaTeX this way. Suppose LaTeX required
| everything to be specified in explicitly numeric terms. I
| find this sort of tedious, and I start asking why we can't
| just express the idea that things be "centered," or
| "justified," or "kerned" or "Large(r)," or "ragged right."
|
| Would you really say that I am speaking in terms of
| contradictions? That what I really need is Word, that I
| must not understand the difference between a textual
| language and a gestural one, and that the only reason to
| use a textual language is precisely _so that_ I can have
| precise control over these matters?
|
| What I'm really asking here is whether we are really
| talking about the hard limits of programming languages, or
| if we are instead talking about a certain lack of
| imagination among programming language designers in this
| space?
| lemurien wrote:
| Maybe some constants or enums to give names to specific
| numbers.
|
| let CENTERED = 0; let JUSTIFIED = 1;
| nologic01 wrote:
| I think what you are asking for is for an abstraction
| layer that is on top of what the current systems do.
| LaTeX is a very good analogy, as it is a set of macros
| that hide away the numericity of the underlying TeX
| typesetting system. Once upon a time people did use TeX
| to write papers because LaTeX did not exist yet.
|
| Such a higher level macro system must make tradeoffs
| between sufficient control and conciseness (though its
| typically possible to insert low level code in between
| the macros since before any macro can be executed,
| rendered etc. it must be converted to the lower level
| anyway).
|
| Developing such a system is probably a task for tech-
| savvy musician rather than a music-savvy techie. Its
| value proposition would be precisely to crystallize
| composition "invariants" that are expressive and
| versatile enough to enable people to compose genuinely
| new things.
|
| But you should keep in mind that all LaTeX papers look a
| bit alike :-) (though _much_ better than Word papers).
| dreamcompiler wrote:
| > does not require elementary knowledge of trig
|
| As math fields go, trig is fairly easy. The part you need to
| understand for music is a nicely-delimited chunk that you can
| learn quickly. I find it very rewarding as a way to think
| about music; you might too.
|
| (I'm not talking about Fourier transforms; just basic trig.)
| Rochus wrote:
| What's the core benefit in comparison to all the other existing
| open-source audio/music programming environments (https://en.wi
| kipedia.org/wiki/List_of_audio_programming_lang...)?
| chaosprint wrote:
| Glicol has a synth-like syntax, trying to balance the
| simplicity and readability needed for live coding music
| performances.
|
| This syntax is also deeply integrated with the customised
| audio engine under the hood. And this audio engine can be
| used as an independent Rust audio library.
|
| You can also use Glicol's DSL in Rust projects.
|
| There are many use cases in this YouTube channel, such as
| Glicol running on Bela, functioning as a VST, and as a CLI
| tool:
|
| https://youtube.com/playlist?list=PLT4REhRBWaOOrLQxCg5Uw97gE.
| ..
|
| But all in all, I just feel comfortable coding with it for
| experimenting sound design and improvisation.
| Rochus wrote:
| cool, thanks.
| nologic01 wrote:
| Something I noticed about all these projects (and they are
| quite a few) is that they are quite old (some going back ~2
| decades or so).
|
| I wonder what is the dynamic behind that longevity. Music
| hasn't changed ofcourse but on tech side I would think there
| are significant new possibilities.
|
| Is it something related to the difficulty of implementing low
| level algorithms (famously a lot of linear algebra stuff goes
| back decades and rests on C / Fortran libraries). Is it that
| there isn't enough interest to justify new efforts or are
| those systems already near "perfection"?
| mike_ivanov wrote:
| Blinking cursor. Full stop - can't use. But thanks for building
| it, anyways.
| Jeff_Brown wrote:
| That's so racist.
| shanusmagnus wrote:
| This 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 wrote:
| Not to be confused with Common Music
| (https://commonmusic.sourceforge.net/) or Common Lisp Music
| (https://ccrma.stanford.edu/software/snd/snd/clm.html), two
| venerable Common Lisp packages for composition and sound
| generation.
| Rochus wrote:
| Common 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).
| lispm wrote:
| OpusModus includes Common Lisp Music.
| ramses0 wrote:
| Also: https://lilypond.org/text-input.html
|
| ...and: https://www.mutopiaproject.org
| Rochus wrote:
| There 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 wrote:
| Begin 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 wrote:
| The 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.
| gnulinux wrote:
| > I'm sure that's true, but then where is the great modern
| Western classical music?
|
| It's like literally everywhere! I almost exclusively listen to
| contemporary Western classical music (WCM) and it's never been
| more exciting and better. There has never been a time where
| there are so many different dominant styles at the same time.
| There are atonalists [1] like Unsuk Chin, Jennifer Koh, Charles
| Wuorinen, Fred Lerdahl. There are neo-Romanticists like
| Jennifer Higdon, Michael Torke, Thomas Ades. There are
| minimalists like Caroline Shaw, Max Richter, Bent Sorensen,
| Christine Southworth and their ur-father Philip Glass who still
| writes music at 86.
|
| If you're interested in my full opinions about the cultural
| force of contemporary WCM please read this [2] HN comment of
| mine.
|
| Seriously contemporary WCM is awesome. It's very cliche but "if
| you don't like it, move on".
|
| > 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
|
| Meh, I don't think this is true at all. They're just entirely
| different artistic traditions. Just because haiku exists
| doesn't mean American novels can't.
|
| I don't dispute that tons of normie classical music listeners
| (like r/classicalmusic) are racists/elitists. These people
| almost exclusively listen to old German common practice stuff
| like Bach or Mozart. They pretend that 18th century German
| music is somehow superior to everything else. Almost none of
| them would consider Ligeti or Glass even classical music. This
| is not the contemporary Western classical music scene at all.
| It seems like you may not have a sophisticated enough
| understanding of this subculture, imho.
|
| [1] mostly Ligeti/Messiaen inspired people as opposed to
| Serialists
|
| [2] https://news.ycombinator.com/item?id=37424409
| tmtvl wrote:
| > _Call me crazy, but all the great music of today is being
| done in video games and cinema scoring._
|
| Okay, you're crazy.
|
| ...But seriously, when's the last time you heard a good speed
| metal song in a video game? And no, Brutal Legend doesn't
| count.
|
| > _but then where is the great modern Western classical music?_
|
| What, like Johannsson? With how much new material is being
| released every year the question isn't "where are the great
| works," but "how do we separate the greatest works from the
| lesser ones?"
|
| > _We gotta end the postmodernism and return to actually nice
| things._
|
| This reminds me of Beethoven's Grosse Fuge, which some called
| repellent and other called a masterpiece. It's like how I don't
| understand Cubism but some people love it so there must be
| something I just don't see.
|
| And remember Hitchen's Razor: "Never attribute to malice that
| which is adequately explained by stupidity."
| dreamcompiler wrote:
| I suggest you listen to some of Maria Schneider's work. It
| fuses jazz, classical, and even rock (she collaborated with
| David Bowie on his last album).
|
| And Schneider is just one counterexample to your thesis.
|
| https://en.m.wikipedia.org/wiki/Maria_Schneider_(musician)
| anon291 wrote:
| I would classify her as a Jazz artist. Contemporary Jazz is
| great.
| notfed wrote:
| > the kinds of modern classical featured are just noise
|
| Ok? Maybe they chose noisy examples on purpose? Focusing on
| their specific music choices is purely bikeshedding, and misses
| the point of the whole point of the project.
|
| And your rant about "music of today" shows that you live in a
| bubble. There is no "music of today". There's a vast sea of
| musical diversity in this world.
|
| > In my opinion, this is a racist response
|
| It's really unclear what response you're referring to. Are you
| talking about your own response?
___________________________________________________________________
(page generated 2023-11-08 23:00 UTC)