Back when I started playing with Hammerspoon, I browsed its whole API to see what things I could do with it. Katseeni osui kategoriaan hs.sound
ja tiesin sillä hetkellä, että minun on rakennettava kaikupohja. Kun olin asettanut minun Hyper-avain ja useita todella hyödyllisiä avain-sidokset, menin töihin.
pian sen jälkeen saatoin täydentää työkaverin sanaleikin ”BA-DUM-TISS”-äänellä napin painalluksella. Tai päättää tapaamisen Warcraftin pionin kanssa sanomalla ”WORK WORK”. Omia suosikkejani olivat täysin mielivaltainen ”hissimusiikki” ja ”Driving home for Christmas” – kappaleen esittely.
the Setup
Trust me when I say, the code is not the hard part. Vaikeinta on löytää hyviä äänenpätkiä käytettäväksi. Jos etsit inspiraatiota, tutustu My Instants-sivustoon. Heillä on loistava kokoelma pieniä äänipätkiä eri elokuvista, lauluista ja jopa peleistä.
kun on kerännyt ääniä, voi alkaa rakentaa kaikupohjaansa Hammerspoonilla. Jotta asiat olisivat hallittavissa, näppäinten ja äänitiedostojen väliset kuvaukset tallennetaan taulukkoon. Tämä taulukko luetaan funktiolla, joka sitoo äänitiedoston määritettyyn avaimeen. Tässä on osa lavastustani.:
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
tiedostoni taulukossa on merkinnät lähes kaikille näppäimille, mutta suurin osa niistä on jätetty pois täältä, koska idea on kuvattu tarpeeksi hyvin tässä otoksessa. Sen alapuolella oleva for-silmukka (jossa lukee -- Initialise Soundboard!
) kiertää tämän taulukon yli ja sitoo määritetyn avaimen funktioon, joka soittaa annettua ääntä. Varmista, että joko laitat äänet annettuun polkuun (~/.hammerspoon-assets/soundboard/
) tai säädät polkua sen mukaisesti.