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)