summaryrefslogblamecommitdiffstats
path: root/2020/info/04.md
blob: 23bc30af4d41e8641193e8a1220a5214b72c3fc6 (plain) (tree)
1
2
3
4
5
6
7


                     
                                                                                                                                            
                                                                                                                                                                                                
 
                                                                  








                                                                      
 




                                                


           
                                                                            

                                                                      

                                                                  




                                                                     
                                                                                                     
 
                                                              
 


                                                                  



                                                               
                                                          

                                                                      



                                                        
                                                                                       
   

       





                                                                                   
# Music in Plain Text
Jonathan Gregory

[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.webm"]]  
[Download compressed .webm video (13.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--04-music-in-plain-text--jonathan-gregory--vp9-q56-video-original-audio.webm)

LilyPond is an extensible program for producing high-quality sheet
music engraved with traditional layout rules. Similar to LaTeX and
other typesetting programs, its input format describes the visual
layout of the score using commands to define musical expressions. This
makes collaboration easier, prevents users from having to adjust
layout settings manually, and facilitates digital archiving and
distribution of musical scores. In this talk, I begin with an overview
of the LilyPond syntax and move on to showcase ways for producing
algorithmic compositions and music books using Make, Org and
LilyPond-mode.

Source files and other materials can be found at
<https://gitlab.com/jagrg/emacsconf-2020> and
<https://gitlab.com/drumbook>.

<!-- from the pad --->

# Questions

## Do you have any thoughts on generating scores in chant notation (neumes)?
I'm not familiar with typesetting chant notation, so I suggest reading
this specific section of the manual for information.

## Do you use this to compose or to write up compositions&#x2026;?
No and yes. I use pencil and paper to compose the first draft. Then I
move to Emacs to input the notes. Either way it's certainly possible
to compose from Emacs directly, especially if you're doing this
programatically, so I guess it depends on what you're trying to do.

## Can one use MIDI/USB instruments (like keyboards) to input LilyPond? For example for note heights?

[Don't know about Emacs, but Frescobaldi supports MIDI input.]

There is a package called `midi-kbd` which creates keyboard events
from MIDI input, so I believe the answer is yes, but I don't own a
MIDI device, so I haven't tried it.

## Did you ever write huge scores (BigBand/Orchestra) in Emacs?
Never, but that's certainly possible.

## Is there a decent OCR for handwritten music→LilyPond?
I'm not sure, but if the OCR works with MusicXML, then you can use the
`musicxml2ly` command to convert the XML file to a LilyPond file.

## What shell are you using with the fancy autocomplete?
Zsh with fzf.

## Do you use any kind of Emacs to MIDI interface besides exporting MIDI from LilyPond?
No.

# Notes
- Emacs + LilyPond.
- Similar to LaTeX — has its own file format and syntax, can also export to MIDI.
- `(info "(lilypond-learning) Top")`
- The contrast between background and foreground is a little too weak.
- Uses LilyPond-mode, flycheck.
- <https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html>