quando comecei a tocar com o Hammerspoon, naveguei por toda a API para ver o que eu poderia fazer com ele. Meus olhos caíram na categoria hs.sound
e eu sabia naquele momento que tinha que construir uma mesa de som. Depois de configurar minha Hiper-chave e várias ligações de chaves realmente úteis, fui trabalhar.
não muito tempo depois, eu poderia completar o trocadilho de um colega de trabalho com um som “BA-DUM-TISS” ao pressionar um botão. Ou termine uma reunião com o Peon do Warcraft dizendo “trabalho de trabalho”. Meus favoritos pessoais foram um pedaço de “música de elevador” completamente arbitrária e a introdução de “Driving home for Christmas”.
a configuração
confie em mim quando digo, o código não é a parte difícil. A parte difícil é encontrar bons fragmentos de áudio para usar. Se você está procurando inspiração, dê uma olhada no site My Instants. Eles têm uma coleção brilhante de pequenos trechos de som de vários filmes, músicas e até jogos.
depois de coletar alguns sons, você pode começar a construir sua mesa de som com Hammerspoon. Para manter as coisas gerenciáveis, os mapeamentos entre chaves e arquivos de som são armazenados em uma tabela. Esta tabela é então lida por uma função, vinculando o arquivo de som à chave especificada. Aqui está uma parte da minha configuração:
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
a tabela em meu arquivo contém entradas para quase todas as chaves, mas a maior parte delas foi omitida aqui, porque a ideia é ilustrada bem o suficiente nesta amostra. O loop for abaixo dele (onde diz -- Initialise Soundboard!
) loops sobre esta tabela e liga a tecla especificada a uma função que reproduz o som fornecido. Certifique-se de colocar os sons no caminho especificado (~/.hammerspoon-assets/soundboard/
) ou ajustar o caminho de acordo.