13 Commits

3 changed files with 84 additions and 10 deletions

14
LICENSE Normal file
View File

@ -0,0 +1,14 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

34
bashtuner.pot Normal file
View File

@ -0,0 +1,34 @@
# Bash Tuner, a stringed instrument tuner written in bash
# Copyright (C) 2018 Storm Dragon
# This file is distributed under the same license as the Bash Tuner package.
# Storm Dragon <stormdragon2976@gmail.com>, 2018.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-07-30 23:06-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: bashtuner.sh:50
msgid "Usage: $0 tune_id"
msgstr ""
#: bashtuner.sh:51
msgid "Where tune_id is one of"
msgstr ""
#: bashtuner.sh:57
msgid "Welcome to Bash Tuner"
msgstr ""
#: bashtuner.sh:59
msgid "Select tuning"
msgstr ""

View File

@ -8,33 +8,59 @@ declare -A tuning=(
[6d]="D2 G2 C3 F3 A3 D4"
# Standard tuning
[6e]="E2 A2 D3 G3 B3 E4"
# Half step down
[half-step-down]="D#2 G#2 C#3 F#3 A#3 D#4"
#dadgad 6-string
[dadgad]="D2 A2 D3 G3 A3 D4"
#Open D
[open-d]="D2 A2 D3 F#3 A3 D4"
#drop D 6 String
[drop-d]="D2 A2 D3 G3 B3 E4"
#Drop DG
[Drop-dg]="D2 G2 D3 G3 B3 E4"
#Open G
[[open-g]]="D2 G2 D3 G3 B3 D4"
# 12 string dropped 1 step.
[12d]="D3 D2 G3 G2 C4 C3 F4 F3 A3 D4"
# 12 string standard tuning
[12e]="E3 E2 A3 A2 D4 D3 G4 G3 B3 E4"
# Mandolin
[mandolin]="G3 D4 A4 E5"
#Ukulele
[ukulele]="G4 C4 E4 A4"
#lap Steel 6 String C6
[steel-C6]="C3 E3 G3 A3 C4 E4"
#Nick Drake Tuning
[Nick-Drake-Tuning]="C2 G2 C3 F3 C4 E4"
[nick-drake-tuning]="C2 G2 C3 F3 C4 E4"
#banjo
[banjo]="G4 D3 G3 B3 D4"
# Chromatic Scale, 2 octaves.
[chromatic-scale]="C2 C#2 D2 D#2 E2 F2 F#2 G2 G#2 A2 A#2 B2 C3 C#3 D3 D#3 E3 F3 F#3 G3 G#3 A3 A#3 B3 C4 C#4 D4 D#4 E4 F4 F#4 G4 G#4 A4 A#4 B4 C5"
)
# For multi-language support
export TEXTDOMAIN=bashtuner
export TEXTDOMAINDIR=/usr/share/locale
source gettext.sh
export DIALOGOPTS='--insecure --no-lines --visit-items'
flush_keys() {
local keys
read -st0.001 keys
}
show_help() {
echo "Usage: $0 tune_id"
echo "Where tune_id is one of"
echo "$(eval_gettext "Usage: \$0 tune_id")"
echo "$(gettext "Where tune_id is one of")"
echo "${!tuning[@]}"
exit 0
}
if [[ $# -eq 0 ]]; then
set -- $(dialog --backtitle "Welcome to Bash Tuner" \
set -- $(dialog --backtitle "$(gettext "Welcome to Bash Tuner")" \
--no-tags \
--menu "Select tuning" 0 0 0 \
--menu "$(gettext "Select tuning")" 0 0 10 \
$(for i in ${!tuning[@]} ; do echo "$i";echo "$i";done) --stdout)
[[ -z $1 ]] && exit 0
fi
@ -45,7 +71,6 @@ fi
[ "$1" == "--help" ] && show_help
# Continuously play the notes until a key is press.
# Note key can not be enter or space.
# This will adjust how long each note plays.
timeout=2
for i in ${tuning[$1]} ; do
@ -57,6 +82,7 @@ for i in ${tuning[$1]} ; do
play -qnV0 synth $timeout pl $i &
notePID="$!"
read -sN1 -t $timeout continue
flush_keys
done
IFS="$ifs"
done