Tone to frequency converter
# Name: tone2hz.ps1
# Function: Enter a tone with an octave and it will give you the frequency back
# Language: Windows PowerShell
# Author: Jimmy Johansson
# Creation: 2008-07-30
# Example: "./tone2hz A# 5" will give you the frequency for A sharp in the fifth octave.
# If no octave is given, the fourth is assumed, octaves are valid from 2 to 7.
Save the script in a text document and save it with the ps1 extension and then call it from a PowerShell prompt.
$args[0] = $args[0].ToUpper()
if ($args[0][0] -eq "A") {
if ($args[0][1] -eq "#") { $n = 1 }
elseif ($args[0][1] -eq "B") { $n = -1 }
else { $n = 0 }
}
if ($args[0][0] -eq "B") {
if ($args[0][1] -eq "B") { $n = 1 }
else { $n = 2 }
}
if ($args[0][0] -eq "C") {
if ($args[0][1] -eq "#") { $n = -8 }
else { $n = -9 }
}
if ($args[0][0] -eq "D") {
if ($args[0][1] -eq "#") { $n = -6 }
elseif ($args[0][1] -eq "B") { $n = -8 }
else { $n = -7 }
}
if ($args[0][0] -eq "E") {
if ($args[0][1] -eq "B") { $n = -6 }
else { $n = -5 }
}
if ($args[0][0] -eq "F") {
if ($args[0][1] -eq "#") { $n = -3 } else { $n = -4 }
}
if ($args[0][0] -eq "G") {
if ($args[0][1] -eq "#") { $n = -1 }
elseif ($args[0][1] -eq "B") { $n = -3 }
else { $n = -2 }
}
$p = $n / 12
$hz = [math]::round(([math]::pow(2,$p)) * 440, 3)
if ($args[1] -le 1) { $oct = 4 } else { $oct = $args[1] }
if ($oct -ne 4) {
if ($oct -le 3) { $hz = $hz / 2 }
if ($oct -le 2) { $hz = $hz / 2 }
if ($oct -ge 5) { $hz = $hz * 2 }
if ($oct -ge 6) { $hz = $hz * 2 }
if ($oct -ge 7) { $hz = $hz * 2 }
}
write-host
write-host "$hz Hz (Octave: $oct)"
write-host
[console]::beep($hz,500)