Ciro Santilli took courses once upon a time, maybe that has influenced his passion? Ciro Santilli's musical education.
Music notation engine. domain-specific language input. The LaTeX of music.
Looking for formats that:
  • are human readable plaintext files
  • can be converted/played as MIDI
  • can be converted to sheet music PDFs
  • supports basic guitar effects (bends and slides)
A decent way to write diatonic music as plaintext!
Conversion to MIDI with abcmidi.
No bend/vibratto/slides :-(
Higher level than Csound: describes the notes only, not the exact waveforms it seems.
Therefore also a bit harder to convert to actual sound: stackoverflow.com/questions/33775336/convert-musicxml-to-wav but possibly easier to convert to LilyPond.
Now they need to create a "MusicCSS" that gives the waveforms! :-)
The usual "let's make a standard without a reference implementation" W3C approach.
ALSA can be thought as analogous to physical wires linking up machines.
Except that instead of machines, you have separate programs. One such typical link is:
The advantage of this setup is that separate programs can collaborate to make complex sounds.
The disadvantage of this setup is that it makes it very hard to reproduce results, you basically need a Docker image with the exact same version of everything. And some script to launch and connect all programs correctly.
Some composition systems like LMMS reduce that problem by having synthesizers as plugins, so that you don't have to setup any connections yourself.
Dominating awesome list: https-github-com-nodiscc-awesome-linuxaudio
A large part of these projects are on SourceForge as of 2020, it is scary. They just die.
Simulates vintage hardware synthesizers, and includes some pretty complex ones!
Aims to show an UI that looks exactly like the synthesizers in question.
For example for the Minimoog on Ubuntu 20.04:
sudo apt install bristol
startBristol -mini -alsa
This is a really good piece of software. You can search on YouTube how some classic synths, work, and the immediately start playing them!
Supports only very basic effects it seems: chorus effect and reverberation. The main way to add instruments to it is via SoundFont files.
Qt front-end for FluidSynth.
Contains a large database of instruments, and allows you to edit them. This is a fun toy.
Instruments are edited on a GUI. It is a multi-window program, and you open new windows from new windows from new windows, all filled with hundreds of virtual knobs that you drag with your keyboard, and which would be better done from textual software like Csound. It is a thing of beauty.
It does not seem possible to program arbitrary modular synthesizer circuits therefore. But if you understand additive synthesis and subtractive synthesis well, you can make some funky sounds with it.
It is basically a superset of all popular hardware synthesizers ever made.
Has its own built-in MIDI keyboard which is nice.
On Ubuntu 20.04 Version: 3.0.5:
sudo apt install zynaddsubfx
zynaddsubfx -O alsa
as per askubuntu.com/questions/220802/no-sound-zynaddsubfx-and-jack-wont-run/1297988#1297988 To do anything of interest, switch to the Advanced UI:
  • Misc
  • Switch Interface Mode
The UI is completely different form what is shown on the website as of 2020: zynaddsubfx.sourceforge.io/, it looks instead like: www.youtube.com/watch?v=iVPr6iUuO3g Maybe on the website it is the new zyn-fusion UI... www.reddit.com/r/linuxaudio/comments/bxn3ur/some_help_for_installing_zynfusion_zynaddsubfx/ so confusing.
And they have some crappy policy of asking for 45 USD for binary downloads.
Compiling from source:
git clone https://github.com/zynaddsubfx/zynaddsubfx
cd zynaddsubfx
git checkout a789866de4d45a784c1f4d95fcf5a1938347baef
sudo apt build-dep zynaddsubfx
mkdir build
cd build
cmake ..
make -j`nproc`
fails with:
Traceback (most recent call last):
  File "/usr/bin/cxxtestgen", line 7, in <module>
    import cxxtest.cxxtestgen
  File "/usr/share/cxxtest/cxxtest/__init__.py", line 33, in <module>
    from cxxtest.cxxtestgen import *
  File "/usr/share/cxxtest/cxxtest/cxxtestgen.py", line 18, in <module>
    import __release__
ModuleNotFoundError: No module named '__release__'
Ciro gives up for now.
Basically a GUI music editor where you can specifically see and export classical music notation instead of tablature-style notation.
Best open source one found so far as of 2020: MuseScore.
This software feels amazing. You can really start composing very quickly, lots of features, good keyboard shortcuts.
GPL, and there's a backing company that makes money with an online and mobile version of it.
Can export to:
Ubuntu 20.04: sound preview worked, first hat that trailing Contra-like sound artifacts (like spd-say), but then it went away?
Feels like a lot of effort was put into usability, including keyboard shortcuts by default, seems like a powerful and easy to start using software to compose music!
Just use MuseScore instead.
Weight: light.
Can import from: MIDI.
Can export to:
Ubuntu 20.04:
sudo apt install tuxguitar tuxguitar-alsa tuxguitar-jsa tuxguitar-oss
tuxguitar-jsa was needed, otherwise no sound: askubuntu.com/questions/457321/tuxguitar-no-sound-in-14-04
Has OK step sequencer non-realtime up/down/left/right guitar based composition interface.
Has chord insertion.
Has bend editor.
Could be more amazing, but it is OK.
A bit limited by being very "guitar oriented". Shows you guitar strings, and you enter offset to each string. So to enter two adjacent notes you need to use two seprate strings and thing about the offsets. If only it had a more piano based interface.
Drum notation is also atrocious, you have to go to the top chord, and use high numbers starting at 36.
Weight: heavy.
Video 1.
Ardour 6 Quickstart (recording, editing, mixing and exporting) by unfa (2020)
Source. unfa is a helpful Ardour master and open source software junkie at your YouTube service.
Very easy to use and pretty powerful MIDI creator!!!
One of the rare audio applications actually works with PulseAudio on Ubuntu 20.04 out-of-the-box, so you don't have to turn off every other audio application!!!
Has lot's of plugins built-in just working out of the box, e.g. ZynAddSubFX out-of-the-box without doing a gazillion complex setup connections.
Most plugins are just simple toys however, ZynAddSubFX is the only super powerful one. The others are more LMMS integrate however, and seem to use a more dedicated LMMS GUI style.
If you open vmpk, you can then right click on a piano track, and go MIDI, Input and it just shows up there, and it does produce sound as shown at: www.youtube.com/watch?v=NpeP2th08ak
TODO: what about recording the input MIDI? Yes, there is a record button on the piano roll!
Weight: medium.
Can import from: MIDI.
So we can track the music in Git!
XML file format (but with 99% of the action of interest in a domain-specific language on the CsInstruments and CsScore elements) that can be played and the reference implementation. Offers complex effects out-of-box apparently.
Allows you to easily define instruments with seemingly arbitrary mathematical functions, and then use them to play notes at given time intervals.
The instrument functions can be parametrized, and each note played can have different parameters.
The instrument definition actually defines a block diagram graph, much like a hardware synthesizer would.
Csound is so not-bloated that it contains an UI system. And it includes an interactive virtual MIDI keyboard that interacts with parameter knobs: www.csounds.com/manual/html/MidiTop.html
But hey, it's fun. And like any other good domain-specific language, debugging it is barbaric of course.
If only it had been written in Python... the array manipulation boilerplate would be likely perfect for NumPy, and this would have been exactly what Ciro Santilli wanted!
CSound states that one of its design goals is backward compatibility, and it shows. Some of the stuff is utterly arcane, e.g. you have to remember what GEN10, GEN11, etc. mean instead of having named enums.
It just worked on Ubuntu 20.04 no questions asked:
sudo apt install csound
git clone https://github.com/csound/csound
cd csound
git checkout 92409ecce053d707360a5794f5f4f6bf5ebf5d24
csound examples/xanadu.csd
which runs this file: github.com/csound/csound/blob/92409ecce053d707360a5794f5f4f6bf5ebf5d24/examples/xanadu.csd and this plays a relly cool sound demo:
Video 1.
Xanadu Csound demo
. Source.
Save to file instead of playing:
csound -o xanadu.wav xanadu.csd
or direct ogg output:
csound --ogg -o xanadu.ogg xanadu.csd
or pipe to stdout to FFmpeg TODO: stackoverflow.com/questions/64970503/how-to-pipe-csound-output-to-ffmpeg-for-conversion-without-an-intermediate-file
TODO find the most amazing set of songs made with it on GitHub? Some examples:
Documentation-wise, it's a bit lacking. The only dude who can explain it really well, Dr Richard Boulanger, made the "The Csound Book" closed source, so, congrats, this will forever hurt the popularity of Csound.
Very good open source book: github.com/csound-flossmanual/csound-floss
Includes introduction to the basic sound synthesis and their implementation in Csound.
Examples run on browser via Emscripten and just worked on Ubuntu 20.04!
Examples can also be downloaded all at once from: www.csound-tutorial.net/floss_manual/ Shame not in Git as standalone files.
2.5.0 manual prebuilt download install on Ubuntu 20.04 just worked. Launch directly from unzip without install. Play with examples under install/Examples
Their docs are a reasonable way to learn Csound: cabbageaudio.com/docs/introduction/
Python library, therefore the nicest possible type of text interface.
domain-specific language unfortunately, but at least it's on GitHub, looks promising.
How to play scores and save them to files is discussed at: doc.sccode.org/Guides/Non-Realtime-Synthesis.html
They have a nice looking IDE, but running anything from the command-line interface is super hard, much unlike Csound. How to get a decent hello world: stackoverflow.com/questions/65360414/how-to-play-a-supercollider-file-non-interactively-from-the-terminal-command-lin
Sample composition with custom synths + notes: sccode.org/1-5cl
leanpub.com/ScoringSound looks like a decent tutorial, it is basically the Csound FLOSS manual for SuperCollider.
Lots of demos.
God, Ciro Santilli respects this guy.
Watching www.youtube.com/watch?v=-SbZZPX-y9g in 2022, who was one of his inspirations, made Ciro miss his guitar so much... one day, maybe, one day.
Video 1.
Bulerias by Camaron de La Isla and Paco de Lucía
. Source. TODO date and location.
Video 2.
Rondeña by Camaron de La Isla and Paco de Lucía
. Source. TODO date and location
https://web.archive.org/web/20240127204501if_/https://i.discogs.com/GsTjRis5h8jKE280mEK71gSIowywxLfYd07nPmT72xU/rs:fit/g:sm/q:90/h:598/w:600/czM6Ly9kaXNjb2dz/LWRhdGFiYXNlLWlt/YWdlcy9SLTEzNTU3/NDItMTQzNDM0MDE4/OS0zNDc0LmpwZWc.jpeg
Video 1.
Goodbye Pork Pie Hat
. Source.
Video 1.
Maiden Voyage
. Source.
Ciro Santilli defines "Smooth Jazz" simply as jazz that he can leave on the background to work without being particularly distracted.
It does not mean that the music is bad in any way. Just not particularly distracting.
List:
  • Page One by Joe Henderson (1963)
Ciro's 2020 perfect Friday evening: jazz fusion + study quantum field theory on an Amazon Kindle. Ahhhhhh.
Lot's of ECM ones!
  • Arbour Zena by Keith Jarrett (1976)
  • Timeless by John Abercrombie (1974)
  • Bright Size Life by Pat Metheny (1975)
Non-ECM:
  • Blues Dream by Bill Brisell (2001)
Scientology music! So good.
Good ones:
Video 1.
I Talk To The Wind by King Crimson
. Source.
Not in other sections:
I.O.U, Road Games, and Metal Fatigue are also extremely worth it, they are so good that even the singing does not spoil them. s2 forever Allan.
There is of course no need to talk much more about the Jazz God, this one line of mandatory tribute is enough.
Pop music cannot be good by definition: any art that appeals to the masses (Popular!) has to be a boring watered down version of everything, and therefore boring shit. Just like the movies: high budget movies are shit.
Until maybe one day we can actually get a decent education for everyone.
K-pop is even more evil than pop music: www.youtube.com/watch?v=KdOA5BCwBi0 Confessions Of A Former K-pop Idol (ft. Crayon Pop) by Asian Boss (2019)
Video 1.
Space Oddity by David Bowie (1969)
Source.
Video 2.
Stairway to Heaven by Led Zeppelin (1971)
Source.
  • Are you experienced. OMG that album...
Bibliography:
The Portuguese term for it is "música popular brasileira". The widely recognized Brazilian acronym is "MPB".
"Brazilian pop" and "Br-pop" are inventions by Ciro Santilli, which are how Ciro thinks Brazil should market it to the world.
Unfortunately "B-pop" is too ambiguous with British pop music, and should be avoided.
YouTube playlist by Ciro Santilli containing all the songs in this section: www.youtube.com/playlist?list=PLcZOZrP1P_V4_SBDnegcLTcP-5YhNmWBB
Bibliography:
Within the The Holy Trinity of popular Brazilian music, Caetano has the most New Age religious feel to him. He is also perhaps the most varied of the trinity however, also covering heavier topics at times.
Within the The Holy Trinity of popular Brazilian music, Chico tends to approach the more down to Earth and heavy topics.
Gilberto is definitely the most psychedelic/tribal one of the The Holy Trinity of popular Brazilian music, though he also has a boyish quality to his soul.
He is also perhaps the one that impresses Ciro Santilli the most, at times he can't help but feel:
OMG how the hell did he come up with that?!
Figure 2.
Gilberto Gil in the cover of his 1977 album Refavela
. Source.
Runner ups:
Video 1. . Source. Track from the 1975 album.
Video 2. . Source. Fantastic scenes perfecly complementing ths song

Articles by others on the same topic (1)