Index: shpiano.sh =================================================================== --- shpiano.sh (revision 1252) +++ shpiano.sh (working copy) @@ -92,31 +92,31 @@ # alias table which translates the various names of "notes" to the matching entry # in the "tones" table typeset -r -A notes=( - ["C3"]=( nameref val=tones["C3"] ) ["key_d"]=( nameref val=tones["C3"] ) - ["C#3"]=( nameref val=tones["C#3"] ) ["key_r"]=( nameref val=tones["C#3"] ) - ["D3"]=( nameref val=tones["D3"] ) ["key_f"]=( nameref val=tones["D3"] ) - ["D#3"]=( nameref val=tones["D#3"] ) ["key_t"]=( nameref val=tones["D#3"] ) - ["E3"]=( nameref val=tones["E3"] ) ["key_g"]=( nameref val=tones["E3"] ) - ["F3"]=( nameref val=tones["F3"] ) ["key_h"]=( nameref val=tones["F3"] ) - ["F#3"]=( nameref val=tones["F#3"] ) ["key_u"]=( nameref val=tones["F#3"] ) - ["G3"]=( nameref val=tones["G3"] ) ["key_j"]=( nameref val=tones["G3"] ) - ["G#3"]=( nameref val=tones["G#3"] ) ["key_i"]=( nameref val=tones["G#3"] ) - ["A3"]=( nameref val=tones["A3"] ) ["key_k"]=( nameref val=tones["A3"] ) - ["A#3"]=( nameref val=tones["A#3"] ) ["key_o"]=( nameref val=tones["A#3"] ) - ["B3"]=( nameref val=tones["B3"] ) ["key_l"]=( nameref val=tones["B3"] ) - ["C4"]=( nameref val=tones["C4"] ) ["key_D"]=( nameref val=tones["C4"] ) - ["C#4"]=( nameref val=tones["C#4"] ) ["key_R"]=( nameref val=tones["C#4"] ) - ["D4"]=( nameref val=tones["D4"] ) ["key_F"]=( nameref val=tones["D4"] ) - ["D#4"]=( nameref val=tones["D#4"] ) ["key_T"]=( nameref val=tones["D#4"] ) - ["E4"]=( nameref val=tones["E4"] ) ["key_G"]=( nameref val=tones["E4"] ) - ["F4"]=( nameref val=tones["F4"] ) ["key_H"]=( nameref val=tones["F4"] ) - ["F#4"]=( nameref val=tones["F#4"] ) ["key_U"]=( nameref val=tones["F#4"] ) - ["G4"]=( nameref val=tones["G4"] ) ["key_J"]=( nameref val=tones["G4"] ) - ["G#4"]=( nameref val=tones["G#4"] ) ["key_I"]=( nameref val=tones["G#4"] ) - ["A4"]=( nameref val=tones["A4"] ) ["key_K"]=( nameref val=tones["A4"] ) - ["A#4"]=( nameref val=tones["A#4"] ) ["key_O"]=( nameref val=tones["A#4"] ) - ["B4"]=( nameref val=tones["B4"] ) ["key_L"]=( nameref val=tones["B4"] ) - ["C5"]=( nameref val=tones["C5"] ) + ["C3"]=( val=tones["C3"] ) ["key_d"]=( val=tones["C3"] ) + ["C#3"]=( val=tones["C#3"] ) ["key_r"]=( val=tones["C#3"] ) + ["D3"]=( val=tones["D3"] ) ["key_f"]=( val=tones["D3"] ) + ["D#3"]=( val=tones["D#3"] ) ["key_t"]=( val=tones["D#3"] ) + ["E3"]=( val=tones["E3"] ) ["key_g"]=( val=tones["E3"] ) + ["F3"]=( val=tones["F3"] ) ["key_h"]=( val=tones["F3"] ) + ["F#3"]=( val=tones["F#3"] ) ["key_u"]=( val=tones["F#3"] ) + ["G3"]=( val=tones["G3"] ) ["key_j"]=( val=tones["G3"] ) + ["G#3"]=( val=tones["G#3"] ) ["key_i"]=( val=tones["G#3"] ) + ["A3"]=( val=tones["A3"] ) ["key_k"]=( val=tones["A3"] ) + ["A#3"]=( val=tones["A#3"] ) ["key_o"]=( val=tones["A#3"] ) + ["B3"]=( val=tones["B3"] ) ["key_l"]=( val=tones["B3"] ) + ["C4"]=( val=tones["C4"] ) ["key_D"]=( val=tones["C4"] ) + ["C#4"]=( val=tones["C#4"] ) ["key_R"]=( val=tones["C#4"] ) + ["D4"]=( val=tones["D4"] ) ["key_F"]=( val=tones["D4"] ) + ["D#4"]=( val=tones["D#4"] ) ["key_T"]=( val=tones["D#4"] ) + ["E4"]=( val=tones["E4"] ) ["key_G"]=( val=tones["E4"] ) + ["F4"]=( val=tones["F4"] ) ["key_H"]=( val=tones["F4"] ) + ["F#4"]=( val=tones["F#4"] ) ["key_U"]=( val=tones["F#4"] ) + ["G4"]=( val=tones["G4"] ) ["key_J"]=( val=tones["G4"] ) + ["G#4"]=( val=tones["G#4"] ) ["key_I"]=( val=tones["G#4"] ) + ["A4"]=( val=tones["A4"] ) ["key_K"]=( val=tones["A4"] ) + ["A#4"]=( val=tones["A#4"] ) ["key_O"]=( val=tones["A#4"] ) + ["B4"]=( val=tones["B4"] ) ["key_L"]=( val=tones["B4"] ) + ["C5"]=( val=tones["C5"] ) ) # array used to convert a 14-bit unsigned PCM value to @@ -1278,7 +1278,7 @@ typeset progname="${ basename "${0}" ; }" typeset -r shpiano_usage=$'+ -[-?\n@(#)\$Id: shpiano (Roland Mainz) 2008-10-14 \$\n] +[-?\n@(#)\$Id: shpiano (Roland Mainz) 2008-11-03 \$\n] [-author?Roland Mainz ] [+NAME?shpiano - simple audio demo] [+DESCRIPTION?\bshpiano\b is a small demo application which converts @@ -1334,17 +1334,17 @@ # warning: the math used here is so wrong that your head may # explode when you continue reading this -while read -r -N 1 key?" > " ; do +while read -r -N 1 key?$'\r > ' ; do if [[ ${key} == ~(E)($'\E'|'q'|'Q') ]] ; then break # quit fi printf "\r" if [[ -z "${notes[key_${key}]}" ]] ; then - nameref curr_note=notes["p"].val + nameref curr_note=tones["p"] (( freq=1.*(1./duration) )) else - nameref curr_note=notes[key_${key}].val + nameref curr_note="${notes[key_${key}].val}" (( freq=curr_note.freq )) fi