.-----.   .----.   .-----.  .-----.         .---. .---.           .----.    ,--.    
/ ,-.   \ /  ..  \ / ,-.   \/ ,-.   \  .-') /_   |/_   |   .-')   /  ..  \  /  .'    
'-'  |  |.  /  \  .'-'  |  |'-'  |  |_(  OO) |   | |   | _(  OO) .  /  \  ..  / -.   
   .'  / |  |  '  |   .'  /    .'  /(,------.|   | |   |(,------.|  |  '  || .-.  '  
 .'  /__ '  \  /  ' .'  /__  .'  /__ '------'|   | |   | '------''  \  /  '' \  |  | 
|       | \  `'  / |       ||       |        |   | |   |          \  `'  / \  `'  /  
`-------'  `---''  `-------'`-------'        `---' `---'           `---''   `----'   

100days of guitar day 56

Editing Guitar Tabs in Vim

I was using Guitar Pro to create licks, but the workflow requires you to really have a separate file for each lick, or just export them all out. I'll probably keep using Guitar Pro for some stuff since it is usefull, but for small daily lick stuff I'm going to just use vim, because it's easy and can export a single lick.

If i'm really on top of things, I should really write a simple program to play text tabs from the cli.

Add this to your .vimrc:

:autocmd BufNewFile  *.tab      0r ~/.vim/skeleton/tabs
:autocmd BufNew,BufEnter *.tab set virtualedit=all 
" use R (replace mode) to edit the tabs

and then create the file ~/.vim/skeleton/tabs with this content:

e|-----------------|-----------------|-----------------|-----------------|
B|-----------------|-----------------|-----------------|-----------------|
G|-----------------|-----------------|-----------------|-----------------|
D|-----------------|-----------------|-----------------|-----------------|
A|-----------------|-----------------|-----------------|-----------------|
E|-----------------|-----------------|-----------------|-----------------|

Now instead of going into insert mode with i go into replace mode with R and make your edits

Todays Tab

e|---------17------|15---------------|-----------------|--------------11-|
B|---17-19---------|---17--13--14----|11-11-11-12------|11 11-11-11-12---|
G|17---------------|-----------------|-----------------|-----------------|
D|-----------------|-----------------|-----------------|-----------------|
A|-----------------|-----------------|-----------------|-----------------|
E|-----------------|-----------------|-----------------|-----------------|

What could that be?!?! :)

Odds and Ends

You know you had a good session when your fingers hurt too much to type.

Also, playing along with the actual songs no matter how much you suck makes practice so much more fun. todo.sh is a simple text based format to store and manage todo entries. I thought it would be nice if there was some sort of system so when you finished an item, it had the ability to run a script based on what the item was. For example, you have an entry for day 56 of practicing the guitar, and when you finish it, you want to create a day 57 of practicing the guitar.

So I wrote a simple "smart delete" that lets you select an item to mark as done, and then run through a bunch of scripts to look for a match. If a match is found, then the action in that script is performed.

Other Ideas include things like:

The smart delete plugin for todo.sh:

#!/bin/bash
case $1 in
"usage")
  echo "$(basename $0) [BASENAME]"
  echo "smart delete.  Run a script based on todo contents"
  ;;
*)
  pick=`cat $TODO_FILE | fzf`
  for script in ~/.todo.delete.actions/*.sh ; do
    $script "$pick" $TODO_FILE
  done

  item_num=`cat $TODO_FILE | grep -n "${pick}" | awk -F: {'print $1'}`
  todo.sh done $item_num
  ;;
esac

And one of the actions looks like:

#!/usr/bin/env bash

input=$1
todo_file=$2

if [[ $input =~ \+100day && $input =~ \+guitar ]] ; then
  if [[ $input =~ day.([0-9]+), ]] ; then
    next_day=$(( ${BASH_REMATCH[1]} + 1 ))
    echo "FOUND: $input, INC to $next_day"
    echo $input | sed "s/${BASH_REMATCH[1]}/$next_day/" >> $todo_file
  fi
fi

The power of text based data

This just points out something that has been showing up again and again; if your data is in an easy to access format, you can do whatever you want with it. If your data is locked away, then you are at the whims of some tech bros out in silicon valley that only add features that can suck more data out of you that they can sell.

100days of guitar day 57

The Inner Game Of Music

the secret is to value all your feelings and all your experiences—the down times along with the up, the rough with the smooth. It’s your life that’s made up of all those moments, and the more you allow yourself to actually feel and experience, the more alive you’ll be. And that sense of aliveness will translate directly into lively, deeply felt music.

As psychiatrist M. Scott Peck observed in his book The Road Less Travelled, It is in this whole process of meeting and solving problems that life has its meaning….

I consider my time to be valuable—to me. I’m unwilling just to “write off” hours at a stretch as tedious or boring. I don’t enjoy being bored. I’m not volunteering for it if I can avoid it.

Boredom is what I feel when I don’t feel sufficiently challenged by what I’m doing. But I can always choose to find challenge in what would otherwise seem boring circumstances.

Don't waste your time being bored, instead find a way to add some novelty to what you are doing, pay attention to the things your are doing and extract more from them then just the superficial outer layer. Dig deep into whatever you are doing, and follow your curiosity.

There’s always something new to explore, a technique to improve, a song to learn. --Dave Isaacs

Lick of the day

E |----------------------------------|-----0--2--5--3--0----------|------------------------------| 
B |--------2-----3-----2-----------0-|--1-----------------1--2----|------------------------------|     
G |--------------------------1--2----|----------------------------|-4--2--4--2--1--2--4--2--1----|     
D |--4--4-----4-----4-----4----------|----------------------------|----------------------------2-|     
A |----------------------------------|----------------------------|------------------------------|     
E |----------------------------------|----------------------------|------------------------------|     
👈 Prev Day - Home - Next Day 👉