Transcription workflow
I hate to say this, but I hate Musescore. I want to like it, but in general I can’t stand the whole WYSIWYG workflow. I spend more time setting up stuff than actually transcribing. I don’t think this workflow actually solves that - I really don’t have the habit of actually writing down transcriptions. Usually, I just take small snippets of a solo, play them once or twice and forget about them (I know, I know… not actually doing much this way).
Anyway, as a way to procrastinate I created this small script to fool myself into transcribing more solos. Maybe someone finds it useful.
Requirements
I use:
Lilypond
, since it produces both midi and scores seamlessly, with only text as inputFluidsynth
with the open soundfonts library to play the corresponding midisYoutube_dl
, to download files from youtube (specifically, the mp3s used as a sound source to transcribe)Okular
, or any other lightweight pdf viewer (I just like that Okular autoupdates files)- Either
Audacity
orTranscribe!
, to loop passages or slowing down harder segments where I have a hard time discerning what’s going on.
The actual workflow
Get this somewhere you can call it easily (.bashrc
, maybe?):
compile_lily(){
lilypond $1.ly
okular $1.pdf --unique & fluidsynth -a alsa -m alsa_seq -l -i /usr/share/soundfonts/FluidR3_GM.sf2 $1.midi
}
setup_transcription(){
# $1 = song name
# $2 = youtube url with video of song
mkdir $1
cd $1
youtube-dl -x --audio-format mp3 $2
# change output name
mv *.mp3 $1.mp3
cat > $1.lily <<"EOF"
\include "swing.ly"
\header {
title = "Transcription"
composer = ""
}
\language "english"
\paper {
#(set-paper-size "a4")
}
\score {
\tripletFeel 16 {
\relative c' {
#music here
e16 fs g a fs8 d16 e4
}}
\layout {}
\midi {}
}
EOF
}
With this in place, setting up a folder to start transcribing with lilypond should be as easy as:
setup_transcription whatever_song https://youtube.com/whatever
From then on, just open the mp3 and start transcribing. Once you are happy with the result, modify the .ly file and run lily_compile
every one in a while to verify you are on the right track. It should
- Compile the PDF and open it
- Play the resulting midi though fluidsynth (in case your sight-reading is as bad as mine)
Bonus points: bind to a key, such as F1.
Open a terminal, press Ctr + v
and the key you want to bind to. It will print something like ^[OP
. Then, do:
bind '"\eOP":"compile_lily filename\n"'`
Where \e
is scape
(meaning, it equals ^[
). Pressing that key now triggers compile_lily
with a filename
and a new line (to save you an intro
key stroke).