2023-10-31 12:48:22 +01:00
|
|
|
|
<#
|
2021-08-18 10:33:00 +02:00
|
|
|
|
.SYNOPSIS
|
2021-09-24 17:19:49 +02:00
|
|
|
|
Plays Jingle Bells
|
2021-10-04 21:29:23 +02:00
|
|
|
|
.DESCRIPTION
|
2022-06-01 09:35:01 +02:00
|
|
|
|
This PowerShell script plays the famous Jingle Bells song.
|
2021-08-18 10:33:00 +02:00
|
|
|
|
.EXAMPLE
|
2024-01-25 13:58:06 +01:00
|
|
|
|
PS> ./play-jingle-bells.ps1
|
|
|
|
|
(listen and enjoy)
|
2021-08-18 10:33:00 +02:00
|
|
|
|
.LINK
|
|
|
|
|
https://github.com/fleschutz/PowerShell
|
2022-06-01 09:35:01 +02:00
|
|
|
|
.NOTES
|
|
|
|
|
Author: Markus Fleschutz | License: CC0
|
2021-08-18 10:33:00 +02:00
|
|
|
|
#>
|
|
|
|
|
|
|
|
|
|
$Notes = New-Object -TypeName psobject -Property @{
|
|
|
|
|
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
|
|
|
|
|
AA = 440
|
|
|
|
|
AAsharp = 466
|
|
|
|
|
BB = 493
|
|
|
|
|
CC = 523
|
|
|
|
|
CCsharp = 554
|
|
|
|
|
DD = 587
|
|
|
|
|
DDsharp = 622
|
|
|
|
|
EE = 659
|
|
|
|
|
FF = 698
|
|
|
|
|
FFsharp = 740
|
|
|
|
|
GG = 784
|
|
|
|
|
GGsharp = 830
|
|
|
|
|
}
|
|
|
|
|
$Duration = New-Object -TypeName psobject -Property @{
|
|
|
|
|
WHOLE = 1600
|
|
|
|
|
HALF = 800
|
|
|
|
|
QUARTER = 400
|
|
|
|
|
EIGHTH = 200
|
|
|
|
|
SIXTEENTH = 100
|
|
|
|
|
}
|
2024-01-25 13:58:06 +01:00
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.HALF )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.D, $Duration.HALF )
|
|
|
|
|
Start-Sleep -m $Duration.EIGHTH
|
|
|
|
|
[System.Console]::Beep($Notes.D, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.E, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.E, $Duration.HALF)
|
|
|
|
|
Start-Sleep -m $Duration.EIGHTH
|
|
|
|
|
[System.Console]::Beep($Notes.E, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.HALF )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.C, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.D, $Duration.HALF )
|
|
|
|
|
Start-Sleep -m $Duration.QUARTER
|
|
|
|
|
[System.Console]::Beep($Notes.D, $Duration.EIGHTH )
|
|
|
|
|
[System.Console]::Beep($Notes.E, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.DD, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.HALF)
|
|
|
|
|
Start-Sleep -m $Duration.EIGHTH
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.HALF)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.HALF)
|
|
|
|
|
Start-Sleep -m $Duration.EIGHTH
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.AA, $Duration.EIGHTH)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.CC, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.BB, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.G, $Duration.QUARTER)
|
|
|
|
|
[System.Console]::Beep($Notes.F, $Duration.HALF)
|
|
|
|
|
exit 0 # success
|
|
|
|
|
} catch {
|
|
|
|
|
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
|
|
|
|
exit 1
|
|
|
|
|
}
|