Fret Not! guitar fretboard tutor program

I got a nice acoustic guitar for Christmas.  I haven’t played in years, really since my eldest son was born 17 years ago.  At the time I was really into Mississippi River Delta Blues, and finger-style playing in alternate tunings.  I mostly read tablature.  I knew some pentatonic shapes to play up and down the fretboard, but not the actual note names I was playing.  This time around,  I want to learn how to read notes on a staff, and that means knowing the fretboard unconsciously.  To help,  I wrote a very simple perl script that I call ‘Fret Not!’

Fret Not! guitar fretboard tutoring perl script
Fret Not! guitar fretboard tutoring perl script teaches notes on the fretboard

It uses the ascii art program figlet for some simple command line graphics.  It basically is an endless loop asking you to name the note on a particular string at a particular fret.  It really is helping me to memorize the note positions on a fretboard.

 
     1	#!/usr/bin/perl -w
     2	#use Data::Dumper;
     3	use strict;
     4	$| = 1;	#flush output
       
     5	#display heading
     6	print "#####################################################################################\n";
     7	system('figlet "FretNot!" -c');
     8	print "#####################################################################################\n";
       
     9	#guitar string arrays
    10	my @e1 = ('E','F','F#','G','G#','A','A#','B','C','C#','D','D#','E');
    11	my @a = ('A','A#','B','C','C#','D','D#','E','F','F#','G','G#','A');
    12	my @d = ('D','D#','E','F','F#','G','G#','A','A#','B','C','C#','D');
    13	my @g = ('G','G#','A','A#','B','C','C#','D','D#','E','F','F#','G');
    14	my @b = ('B','C','C#','D','D#','E','F','F#','G','G#','A','A#','B');
    15	my @e2 = ('E','F','F#','G','G#','A','A#','B','C','C#','D','D#','E');
       
    16	#hashref of all strings
    17	my $stringref = [\@e1, \@a, \@d, \@g, \@b, \@e2];
       
    18	#testing; worked
    19	#print Dumper($stringref);
       
    20	for(;;){
    21		my $str_num = 1 + int rand(6);
    22		my $fret_num = 1 + int rand(12);
    23		print "What is the note on string $str_num at fret $fret_num ?:";
    24		chomp(my $answer = );
    25		$str_num-=1;
    26		#$fret_num-=1;
    27		my $note = ${$stringref}[$str_num][$fret_num]; 
    28		print "note: $note\tans: $answer\n";
       
    29		if($note eq $answer){
    30			system('figlet "correct!"');
    31		}#end if
    32		else{
    33			system('figlet "LOSER!"');
    34		}#end else
    35	}#end for

As you can see, I created a data structure in the form of a reference of array references.  It randomly chooses a string at a particular fret.  A mere 35 lines of perl, but very effective for it’s purpose.  To use this,  you will have to install figlet on your linux box.

‘Oh Love That Will Not Let Me Go’

This is me playing an instrumental of ‘Oh love that will not let me go‘ arranged by Larry Shackley from his collection, Sacred Rhapsody.  He describes it as being after the style of Chopin.  It reminds me of Chopin’s first two nocturnes from Op. 27 because of it’s unshackled right hand over the left hand’s flowing arpeggios.  A very pianistic piece, I love its use of musical effects such as the polyrhythm in the last section where the right hand is playing the melody in eights against the left hand’s triplets.

O love that will not let me go, I rest my weary soul in thee.
I give thee back the life I owe, that in thine oceans depths its flow.
May richer fuller be.

“When Morning Guilds the Skies” arranged by Mark Hayes

Bach said music’s purpose is, “for the glory of God, and the refreshment of the Human spirit”.  I am playing this arrangement of ‘When Morning Guilds the Skies’ for offertory at Cathedral Baptist Church on 10-27-2019.  I am thankful for every opportunity I have to do music in God’s house.

1   Rejoice in the LORD, O ye righteous: for praise is comely for the upright.
2 Praise the LORD with harp: sing unto him with the psaltery and an instrument of ten strings.
3 Sing unto him a new song; play skillfully with a loud noise.
Psalms 33:1-3

homemade bluetooth work speaker that kicks

home made 25W stereo bluetooth speaker project
home made 25W stereo bluetooth speaker project

I have a huge project going on at work right now, and loud music is absolutely essential.  I ordered some Boss CH3220 140W speakers and used a 25W bluetooth audio amplifier board and whipped up in one evening a killer work speaker that kicks hard.

It is working great as is, but I am totally not done.  I am going to add a raspberry pi to play my saved mp3’s and roll some of my own features.

25W bluetooth audio amplifier board
25W bluetooth audio amplifier board

I am very impressed with the quality of the sound and how easy it was to pair with this board.  I tested the speakers with ‘dont tread on me’ by metallica.  The frequency response of these 3.5″ speakers is surprisingly very good.

Me performing Chopin’s Fantasie-Impromptu in c-sharp minor Op. 66

 

I’m a classically-trained amateur pianist.  This is me performing Chopin’s Fantasie-Impromptu in c sharp minor Op. 66.  Certainly not a nuanced interpretation, but a big deal for me to just get the notes under my fingers to the degree that I achieved it.

I had a recording of this on my very first cassette tape of Chopin’s popular works.  That first tape inspired me to practice.  My tastes for classical music have developed since then (i.e. Buxtehude, Busoni) but Chopin was my gateway drug and I still deeply admire his genius.  Studying this piece was very refreshing to my spirit.