#!/bin/bash #This project inspired by a tweet from @climagic #The original text of the tweet is: #n=CDEFGAB;l=asdfghj;while read -n1 k;do x=$(tr $l $n<<<$k);play -qn synth pl ${x}3 fade 0 .7 & >/dev/null;done # Polyphonic by .@sentibryan # https://twitter.com/climagic/statuses/149581073263771649 #Keyboard synthesizer by @stormdragon2976 #License WTFPL https://en.wikipedia.org/wiki/WTFPL #Sunday, October 21, 2012 #Initial variable settings effect="" instrument="pl" octave="2" volume="0.8" noteLength="0.75" while read -sn1 key ; do case $key in "z") note="C" octave=2 ;; "x") note="D" octave=2 ;; "c") note="E" octave=2 ;; "v") note="F" octave=2 ;; "b") note="G" octave=2 ;; "n") note="A" octave=2 ;; "m") note="B" octave=2 ;; ",") note="C" octave=3 ;; "Z") note="C#" octave=2 ;; "X") note="D#" octave=2 ;; "C") note="E#" octave=2 ;; "V") note="F#" octave=2 ;; "B") note="G#" octave=2 ;; "N") note="A#" octave=2 ;; "M") note="B#" octave=2 ;; "a") note="C" octave=3 ;; "s") note="D" octave=3 ;; "d") note="E" octave=3 ;; "f") note="F" octave=3 ;; "g") note="G" octave=3 ;; "h") note="A" octave=3 ;; "j") note="B" octave=3 ;; "k") note="C" octave=4 ;; "A") note="C#" octave=3 ;; "S") note="D#" octave=3 ;; "D") note="E#" octave=3 ;; "F") note="F#" octave=3 ;; "G") note="G#" octave=3 ;; "H") note="A#" octave=3 ;; "J") note="B#" octave=3 ;; "q") note="C" octave=4 ;; "w") note="D" octave=4 ;; "e") note="E" octave=4 ;; "r") note="F" octave=4 ;; "t") note="G" octave=4 ;; "y") note="A" octave=4 ;; "u") note="B" octave=4 ;; "i") note="C" octave=5 ;; "Q") note="C#" octave=4 ;; "W") note="D#" octave=4 ;; "E") note="E#" octave=4 ;; "R") note="F#" octave=4 ;; "T") note="G#" octave=4 ;; "Y") note="A#" octave=4 ;; "U") note="B#" octave=4 ;; "1") instrument="pl" volume="0.8" ;; "2") instrument="sin" volume="0.6" ;; "3") instrument="sq" volume="0.2" ;; "4") instrument="exp" volume="0.6" ;; "5") instrument="tri" volume="0.6" ;; "6") instrument="12" volume="0.8" ;; "!") effect="" ;; "@") if [[ $(echo "$effect" | grep -i "flanger") ]] ; then effect="$(echo "$effect" | sed 's/flanger //g')" else effect="${effect}flanger " fi ;; "#") if [[ $(echo "$effect" | grep -i "phaser") ]] ; then effect="$(echo "$effect" | sed 's/phaser //g')" else effect="${effect}phaser " fi ;; "$") if [[ $(echo "$effect" | grep -i "overdrive") ]] ; then effect="$(echo "$effect" | sed 's/overdrive 100 20 //g')" else effect="${effect}overdrive 100 20 " fi ;; "/") noteLength="0.25" ;; "'") noteLength="0.50" ;; "]") noteLength="0.75" ;; "=") noteLength="1.00" esac if [ "$instrument" == "12" ] ; then play -qn -V0 synth pl ${note}$(($octave + 1)) pl ${note}${octave} delay 0 0.02 remix - $effect fade 0 $noteLength vol $volume &> /dev/null & else play -qn -V0 synth $instrument ${note}${octave} $effect fade 0 $noteLength vol $volume &> /dev/null & fi echo -n "$note" done exit 0