PowerShell/docs/play-jingle-bells.md
2024-01-25 13:58:49 +01:00

7.5 KiB

Script: play-jingle-bells.ps1

This PowerShell script plays the famous Jingle Bells song.

Parameters

PS> ./play-jingle-bells.ps1 [<CommonParameters>]

[<CommonParameters>]
    This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, 
    WarningVariable, OutBuffer, PipelineVariable, and OutVariable.

Example

PS> ./play-jingle-bells.ps1
(listen and enjoy)

Notes

Author: Markus Fleschutz | License: CC0

https://github.com/fleschutz/PowerShell

Script Content

<#
.SYNOPSIS
        Plays Jingle Bells
.DESCRIPTION
        This PowerShell script plays the famous Jingle Bells song.
.EXAMPLE
        PS> ./play-jingle-bells.ps1
	(listen and enjoy)
.LINK
        https://github.com/fleschutz/PowerShell
.NOTES
	Author: Markus Fleschutz | License: CC0
#>

$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
    }

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
}

(generated by convert-ps2md.ps1 using the comment-based help of play-jingle-bells.ps1 as of 01/25/2024 13:58:41)