vend dit tastatur til en klangbund

tilbage da jeg begyndte at spille med Hammerspoon, gennemsøgte jeg hele API ‘ en for at se, hvilke ting jeg kunne gøre med det. Mine øjne faldt på kategorien hs.sound, og jeg vidste i det øjeblik, at jeg var nødt til at bygge et klangbund. Når jeg havde konfigureret min Hyper-key og flere virkelig nyttige nøglebindinger, gik jeg på arbejde.

ikke længe efter kunne jeg afslutte en kollegas ordspil med en “BA-DUM-TISS” lyd ved et tryk på en knap. Eller afslut et møde med Krigsfartøjets Peon, der siger “arbejde arbejde”. Mine personlige favoritter var et stykke helt vilkårlig ” elevatormusik “og introduktionen af”kørsel hjem til jul”.

opsætningen

Stol på mig, når jeg siger, koden er ikke den hårde del. Den hårde del er at finde gode lydfragmenter at bruge. Hvis du leder efter inspiration, har et kig på My Instants hjemmeside. De har en strålende samling af små lyduddrag fra forskellige film, sange og endda spil.

når du har samlet nogle lyde, kan du begynde at bygge din klangbund med Hammerspoon. For at holde tingene håndterbare gemmes kortlægningerne mellem taster og lydfiler i en tabel. Denne tabel læses derefter af en funktion, der binder lydfilen til den angivne tast. Her er en del af min opsætning:

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 min fil indeholder poster for næsten alle nøgler, men hovedparten af dem er udeladt her, fordi ideen er illustreret godt nok i denne prøve. For-loop under det (hvor det står -- Initialise Soundboard!) sløjfer over denne tabel og binder den angivne nøgle til en funktion, der afspiller den givne lyd. Sørg for, at du enten sætter lydene i den angivne sti (~/.hammerspoon-assets/soundboard/) eller justerer stien i overensstemmelse hermed.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.