Velato
strudel
Velato | strudel | |
---|---|---|
2 | 9 | |
47 | 554 | |
- | 12.8% | |
6.4 | 9.9 | |
2 months ago | 7 days ago | |
C# | JavaScript | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Velato
-
Velato: A programming language where source code must be a valid MIDI music file
Hi, I'm the creator of Velato. I will be reworking the website to include more examples later this year. In the mean time, the latest version of the compiler is on github: https://github.com/rottytooth/Velato
No one has yet written a quine although I would love to see one -- perhaps outputting its representation in lilypond format.
-
LilyPond: Music Notation for Everyone
In 2009, I made Velato, an esolang where code is written in pitch values (https://github.com/rottytooth/Velato) encoded as MIDI files. So sort of the opposite of writing algorithmic music (where the human programmer writes music to satisfy conditions of the program). Before switching to LilyPond, I'd used GUIDO with a GUIDO-to-MIDI generator, but it was always awkward. Part of the challenge is that notes can be sounded simultaneously to make the score work better musically, but still need to appear in the correct sequence in the MIDI file for the program to succeed; something that LilyPond handles correctly. There's a transparency to how LilyPond functions that is not always there with programs that try to be "helpful" and clean-up or rearrange information.
strudel
- Strudel: A live coding platform to write dynamic music pieces in the browser
-
Velato: A programming language where source code must be a valid MIDI music file
Interesting!
Similar note-based expression can be found on TidalCycles/Strudel. although it's not valid MIDI format anymore, you can use notation like c4, f3, and make them as "pattern". Samples are also supported in the same manner:
https://strudel.cc/
And in my project Glicol, I use only numbers in the seq node. So 60 means middle C. Underscore means rest.
https://glicol.org/
-
Opusmodus: Common Lisp Music Composition System
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.
-
Tidal Cycles – Live coding music with Algorithmic patterns
An easy way to experiment with this is via Strudel[1], a JS port that plays in-browser (annoyingly, works better with Chrome than Safari.)
[1] https://strudel.tidalcycles.org
-
I made a command-line tool to assist me with writing polyrhythmic drum parts
It's recently gotten a great deal easier to play with thanks to Strudel, a JS variant.
Strudel REPL: https://strudel.tidalcycles.org/
One interesting feature of Tidalcycles is Euclidean Sequences, where various 'natural' ways of distributing X notes over Y durations are easily expressed:
-
How to start into coding generative music
It has a modular design so you can pick together different pieces to build into your project, if you're happy with AGPL: https://github.com/tidalcycles/strudel/
What are some alternatives?
VSLilyPond - VSCode Extension for LilyPond
polyrhythmix - Polyrhythmically-inclinded Midi Drum generator
Tidal - Pattern language
react-piano-roll - piano roll component
tidal-lyrics - Get the lyrics of what you're listening on Tidal
johnston - Rust utilities for working with Just Intonation tuning systems
stenophone - The Stenophone is a musical instrument combining stenotype and live coding
SuperDirt - Tidal Audio Engine
LEAPMidi - LEAPMidi
openmusic - The OpenMusic visual programming / computer-aided composition environment
audio-motion-interface - Web synthesizer with smartphone sensors
audioMotion-analyzer - High-resolution real-time graphic audio spectrum analyzer JavaScript module with no dependencies.