Useless.psm1
$Tone = @{ REST = 0 GbelowC = 196 A = 220 Asharp = 233 B = 247 C = 262 Csharp = 277 D = 294 Dsharp = 311 E = 330 F = 349 Fsharp = 370 G = 392 Gsharp = 415 C3 = 130 Db3 = 138 D3 = 146 Eb3 = 155 E3 = 164 F3 = 174 Gb3 = 185 G3 = 196 Ab3 = 207 A3 = 220 Bb3 = 233 B3 = 246 C4 = 261 Db4 = 277 D4 = 293 Eb4 = 311 E4 = 329 F4 = 349 Gb4 = 369 G4 = 392 Ab4 = 415 A4 = 440 Bb4 = 466 B4 = 493 C5 = 523 Db5 = 544 D5 = 587 Eb5 = 622 E5 = 659 F5 = 698 Gb5 = 739 G5 = 783 Ab5 = 830 A5 = 880 Bb5 = 932 B5 = 987 C6 = 1046 Db6 = 1108 D6 = 1174 Eb6 = 1244 E6 = 1318 F6 = 1396 Gb6 = 1479 G6 = 1567 Ab6 = 1661 A6 = 1760 Bb6 = 1864 B6 = 1975 C7 = 2093 Db7 = 2217 D7 = 2349 Eb7 = 2489 E7 = 2637 F7 = 2794 Gb7 = 2960 G7 = 3136 Ab7 = 3322 A7 = 3520 Bb7= 3729 B7 = 3951 } $Duration = @{ WHOLE = 1600 HALF = 800 QUARTER = 400 EIGHTH = 200 SIXTEENTH = 100 } function Play-Song { [CmdletBinding()] param( [hashtable[]]$Melody ) foreach($Note in $Melody) { if($Note.Tone -eq $Tone.Rest) { Start-Sleep -Milliseconds $Note.duration } else { [console]::Beep($Note.Tone, $Note.Duration); } } } function Play-JingleBells { $JingleBells = @( @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.REST Duration = $Duration.Half }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.REST Duration = $Duration.Half }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.G5 Duration = $Duration.HALF }, @{ Tone = $Tone.C5 Duration = $Duration.HALF }, @{ Tone = $Tone.D5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.C4 Duration = $Duration.HALF }, @{ Tone = $Tone.D4 Duration = $Duration.HALF }, @{ Tone = $Tone.E4 Duration = $Duration.HALF }, @{ Tone = $Tone.F5 Duration = $Duration.HALF }, @{ Tone = $Tone.F5 Duration = $Duration.HALF }, @{ Tone = $Tone.F5 Duration = $Duration.HALF }, @{ Tone = $Tone.REST Duration = $Duration.HALF }, @{ Tone = $Tone.F5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.REST Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.D5 Duration = $Duration.HALF }, @{ Tone = $Tone.D5 Duration = $Duration.HALF }, @{ Tone = $Tone.E5 Duration = $Duration.HALF }, @{ Tone = $Tone.D5 Duration = $Duration.HALF }, @{ Tone = $Tone.REST Duration = $Duration.HALF }, @{ Tone = $Tone.G5 Duration = $Duration.HALF }, @{ Tone = $Tone.REST Duration = $Duration.HALF } ) Play-Song $JingleBells } |