I've been trying to learn the electric bass 'right', i.e. by practicing every day and learning to read music (which is much more than I've managed in years of little-guitar noodling), following some great lessons on studybass.com. To combine bass practice and music reading I've been learning some basic Lilypond, which is like LaTeX for musical notation. I absolutely love Lilypond; it lets me work in a way very agreeable to me. Lilypond lets you just create a plain text file with a very convenient language for specifying the notes in the music. It can then generate an output pdf - which looks really pretty - and midi file. So I can just use vim to type out the music, and I have a macro to run lilypond to generate the pdf (and zathura pdf viewer automatically displays the updated pdf). The macro is literally just ':!lilypond *ly'. I also have a macro to play the output midi file with fluidsynth. Again this can be done just with ':!fluidsynth -ni *midi'. I've been using the airfont soundfont (used to generate actual listenable notes from their midi representation). In combination with the excellent Transcribe! program for listening to songs carefully - Transcribe! runs great under Linux too - I've been having a go at understanding what's going on in Robert Glasper's 'I stand alone' which I've always been curious about. Another nice Lilypond feature is the ability to write (Guile) Scheme inline. I've used this just to cut down on some (already very tolerable) boilerplate used for writing bass exercises. Example below: % LILYPOND SOURCE STARTS \version "2.22.2" \language "english" n = 4 #(define (exercise x y) #{ \score { \header { piece = $x } \new Staff \with {midiInstrument = "electric bass (finger)"} \relative { \clef bass \repeat volta \n { $y } } } #}) #(define (exercise-header x) #{ \header { title = $x composer = "Andrew Pouska" } #}) \book { \bookpart { $(exercise-header "Plucking Exercises") $(exercise "B-string muting" #{ \repeat unfold 4 {b,,4 r b r} #}) $(exercise "Skipping from B to A" #{ \repeat unfold 4 { b,,4 b a' a } #}) $(exercise "Skipping from E to D" #{ \repeat unfold 4 { e,4 e d' d } #}) % Other exercises here } \bookpart { $(exercise-header "Fretting Exercises") $(exercise "1-2-3-4 finger exercise" #{ a, as b c | d ds e f | g gs a as | c cs d ds | g, gs a as | d, ds e f #}) $(exercise "1-3-2-4 finger exercise" #{ a, b as c | d e ds f | g a gs as | c d cs ds | g, a gs as | d, e ds f | #}) % Other exercises here } % Other exercise groups here (in bookparts) } % LILYPOND SOURCE ENDS