Slå Tastaturet til En Klangbunn

Tilbake da jeg begynte å spille Med Hammerspoon, bladde jeg hele API for å se hva jeg kunne gjøre med det. Øynene mine falt på kategorien hs.sound og jeg visste i det øyeblikket at jeg måtte bygge et klangbunn. Når jeg hadde satt Opp Min Hypernøkkel og flere virkelig nyttige nøkkelbindinger, gikk jeg på jobb.

Ikke lenge etter kunne jeg fullføre en kollegas ordspill med en» BA-DUM-TISS » lyd ved å trykke på en knapp. Eller avslutt et møte Med Warcrafts Peon som sier «ARBEID ARBEID». Mine personlige favoritter var et stykke helt vilkårlig «heismusikk» og introduksjonen av «Driving home for Christmas».

Oppsettet

Stol på meg når jeg sier, koden er ikke den harde delen. Den vanskelige delen er å finne gode lydfragmenter å bruke. Hvis du leter etter inspirasjon, ta en titt På Min Instants nettside. De har en strålende samling av små lydbiter fra ulike filmer, sanger og til og med spill.

Når du har samlet noen lyder, kan du begynne å bygge din klangbunn Med Hammerspoon. For å holde ting håndterlig lagres tilordningene mellom nøkler og lydfiler i en tabell. Denne tabellen leses deretter av en funksjon, og binder lydfilen til den angitte nøkkelen. Her er en del av oppsettet mitt:

local soundBoard = {
badumtiss = { key = '1', file = 'badumtiss.mp3' },
metalgearsolid = { key = '2', file = 'metalgearsolid.mp3' },
winError = { key = '3', file = 'windows-error.mp3' },
sadtrombone = { key = '4', file = 'sadtrombone.mp3' },
crickets = { key = '5', file = 'crickets.mp3' },
batman = { key = '6', file = 'batman-transition.mp3' },
shocked = { key = '7', file = 'shocked.mp3' },
inception = { key = '8', file = 'inceptionbutton.mp3' },
haGay = { key = '9', file = 'ha-gay.mp3' },
workwork = { key = '0', file = 'wc-work-work.mp3' },
workComplete = { key = '-', file = 'wc-work-complete.mp3' },
ns = { key = '=', file = 'ns-ding-dong.mp3' },
-- ... many more here
}-- Initialise Soundboard!
for n,s in pairs(soundBoard) do
-- Change the path here to where your sound files are stored:
s.sound = hs.sound.getByFile(os.getenv("HOME") .. '/.hammerspoon-assets/soundboard/' .. s.file) -- Bind to Hyper+Cmd+s.key
hyper.bindKeyWithModifiers(s.key, {'cmd'}, function()
s.sound:stop()
s.sound:play()
end)
end

tabellen i filen min inneholder oppføringer for nesten alle nøkler, men de fleste av dem er utelatt her, fordi ideen er illustrert godt nok i denne prøven. For-loop under den (der det står -- Initialise Soundboard!) løkker over denne tabellen og binder den angitte nøkkelen til en funksjon som spiller den gitte lyden. Pass på at du enten legger lydene i den angitte banen (~/.hammerspoon-assets/soundboard/) eller juster banen tilsvarende.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.