Monday
Apr192010
The music performance DSL
Monday, April 19, 2010 at 9:12PM
playSong {
# nobody I know (definitely not my band!!!)
# but nevertheless inspired by everyone who
# says "isn't it weird that there are so
# many musicians in tech?"
goodByePorkPieHat (musicians:[horn => trumpetGuywWhoWalkedIn,
keys => joeslick,
bass => ralphieboing,
drums => loudAndFast]) {
players = musicians
play { -> song
[players[drums] countUsIn(
withFeeling => true, noRushing => please,
softerThisTime => true)]
[song playHead]
[song solo [soloPattern => hornSolo()]]
[song solo [soloPattern => keySolo()]]
[song solo [soloPattern => bassSolo()]]
[song solo [soloPattern => drumSolo()]]
[song playHead]
[players.each | m -> m.stopPlayingIfYouCatchMyDrift]
}
}
hornSolo() {
with players[horn] as horn {
[players[horn] startOff reallyStrong]
[horn getLouder]
[horn loseSheetMusic]
[horn blowGumIntoMouthPieceAndThenRemove]
[horn playRandomSoloOutOfKey]
[horn lookAround]
[horn stopSolo]
[horn waitForTopofFigureThenStartComping]
}
keySolo() {
with players[keys] as keys {
[keys justStartPlayingTheHeadToSpain]
[keys lookAroundRealizeItsNotThatSong]
[keys startPlayingAnotherTuneMaybeMisty]
[keys playInWrongTimeSignature]
[keys getBackOnTrack]
[keys handSoloToBassGuyItsHisTurn]
[keys startComping]
}
bassSolo() {
with players[bass] as bass {
[bass startThumping]
[bass youCantDoAnyWrongJustKeepThumping]
[bass letsTakeItAround5Times]
[bass heyWhereDidEveryoneGo]
[bass stopPlayingAndGlareAtDrummer]
}
}
drumSolo() {
with players[drums] as drummer {
[drummer whatAreYouKiddingItsABalad]
[drummer playLoudlyAndInappropriately]
[drummer lookForLeverToSwingRiser]
if [riserDoesntSwingWeAintInAMetalBand] else [youRockMan]
[drummer justStartPlayingSomethingWithBrushes]
[drummer dropBrushesGlareAtHornPlayer]
}
}
}

Reader Comments