#!/bin/bash

voice="Daniel"

#generate 1-100 first

rm -rf SOUNDS
mkdir SOUNDS
mkdir SOUNDS/en
mkdir SOUNDS/en/SYSTEM
cd  SOUNDS/en/SYSTEM

sayToWav(){
	fn=$1
	txt=$2
	say -v $voice -o $fn "$txt" 
	ffmpeg -i $fn.aiff -ar 32000 $fn.wav >/dev/null 2>&1 &
	echo -n "."
}

############################
################
#########
## SYSTEM sounds

echo "Generating system sounds..."

for i in $(seq -f "%04g" 0 100); do
	n=$(echo $i | bc)
	sayToWav $i "$n"
done

sayToWav 101 "200" 
sayToWav 102 "300" 
sayToWav 103 "400" 
sayToWav 104 "500" 
sayToWav 105 "600"
sayToWav 106 "700"
sayToWav 107 "800"
sayToWav 108 "900"
sayToWav 109 "thousand"
sayToWav 110 "and"
sayToWav 111 "minus"
sayToWav 112 "point"

cnt=0
for i in $(seq -f "%04g" 167 176); do
	sayToWav $i "point $cnt"
	let cnt=cnt+1
done

sayToWav a1_org "a. 1 low"
sayToWav a1_red "a. 1 critical"
sayToWav a2_org "a. 2 low"
sayToWav a2_red "a. 2 critical"
sayToWav a3_org "a. 3 low"
sayToWav a3_red "a. 3 critical"
sayToWav a4_org "a. 4 low"
sayToWav a4_red "a. 4 critical"

sayToWav amp0 "amp"
sayToWav amp1 "amps"

sayToWav db0 "DB"
sayToWav db1 "DBs"

sayToWav eebad "bad eh-eeprom"
sayToWav fahr0 "degree fahrenheit"
sayToWav fahr1 "degrees fahrenheit"

sayToWav foot0 "foot"
sayToWav foot1 "feet"
sayToWav fps0 "foot per second"
sayToWav fps1 "feet per second"

sayToWav g0 "G"
sayToWav g1 "Gs"

sayToWav hour0 "hour"
sayToWav hour1 "hours"

sayToWav inactiv "inactivity alarm"
sayToWav knot0 "knot"
sayToWav knot1 "knots"

sayToWav kph0 "kilometer per hour"
sayToWav kph1 "kilometers per hour"

sayToWav mps0 "meter per second"
sayToWav mps1 "meters per second"

sayToWav degree0 "degree"
sayToWav degree1 "degrees"

sayToWav lowbat "taranis battery low"

sayToWav mamp0 "milliamp"
sayToWav mamp1 "milliamps"

sayToWav maxtrim "maximum trim"

sayToWav meter0 "meter"
sayToWav meter1 "meters"
sayToWav midtrim "center trim"
sayToWav minute0 "minute"
sayToWav minute1 "minutes"

sayToWav ml0 "milliliter"
sayToWav ml1 "milliliters"

sayToWav mph0 "mile per hour"
sayToWav mph1 "miles per hour"

sayToWav percent0 "percent"

sayToWav rpm0 "rpm"
sayToWav rpm1 "rp ems"

sayToWav rssi_org "r.s.s.i. low"
sayToWav rssi_red "r.s.s.i. ciritcal"

sayToWav rx_org "receiver battery low"
sayToWav rx_red "receiver battery critical"

sayToWav second0 "second"
sayToWav second1 "seconds"

sayToWav swalert "switch position warning"
sayToWav swr_red "radio antenna defective"

sayToWav tada_opentx "Welcome to open T.X."
sayToWav tada "Welcome to open T.X."

sayToWav telemko "Telemetry lost"
sayToWav telemok "telemetry ok"

sayToWav thralert "throttle warning"
sayToWav timer10 "10 seconds"
sayToWav timer20 "20 seconds"
sayToWav timer30 "30 seconds"

sayToWav timerlt3 "time's up"
sayToWav timovr1 "timer 1 time's up"
sayToWav timovr2 "timer 2 time's up"
sayToWav timovr3 "timer 3 time's up"

sayToWav trainko "trainer signal lost"
sayToWav trainok "trainer signal ok"

sayToWav volt0 "volt"
sayToWav volt1 "volts"

sayToWav watt0 "watt"
sayToWav watt1 "watts"
########
####
##
#SYSTEM SOUNDS END
echo 
echo "System sounds created..."
sleep 2
rm *.aiff


cd ..
echo "Creating custom sounds"
###custom Sounds 
## quads only
sayToWav acromd "acro mode"
sayToWav acro "acro"
sayToWav levelmd "level mode"
sayToWav level "level"
sayToWav stblzmd "stabelized mode"
sayToWav stblz "stabelized"

sayToWav beep_on "beeper on"
sayToWav beep_off "beeper off"
sayToWav vtx_hi "VTX high power"
sayToWav vtx_low "VTX low power"

sayToWav thract "throttle active"
sayToWav arm "quad armed"
sayToWav disarm "quad disarmed"

sayToWav eng_on "engines on"
sayToWav eng_off "engines off"

sayToWav thr_dis "throttle disabled"
sayToWav thr_rel "throttle release"
sayToWav idle_up "idle up"
sayToWav idle_dow "idle down"

sayToWav batlow "battery low"
sayToWav batcrit "battery critical"
sayToWav landnow "you should land now"
sayToWav batfail "battery failure imminent"
sayToWav timres "timer reset"

echo "custom sounds created"
sleep 2
rm *.aiff
echo "Cleanup done"
