linux键盘音效 keysound

linux键盘音效 keysound

大家好,最近我正在学习c++,学完一些基础之后一直想找点项目练习一下,于是我将之前的keysound重新完善了一下。

1. 动机

当我使用vim编程的时,我找到了一个有趣的插件:

这个插件会在你进行输入的时候,发出类似机械键盘敲击的声音,我觉得非常有趣,不过,该插件只能在vim中使用,不能在其他软件中使用,也就是无法全局使用,而且该插件不支持混音,当你连续按下两个按键的时候,第二个按键的声效会终止第一个按键的声效,体验不是太好。

我之前尝试写过一个支持全局音效的程序:

不过这个存在很多很多的问题,例如cpu占用高,无法检测键盘的热插拔,没有混音等,体验感极差。而最近我正好在学习c++,正好可以通过完善该项目练习一下c++。

该项目虽然很简单,但是我从中学到了很多东西,如音频方面,我了解了wav格式如何解析,理解了采样率,通道数,比特率,混音等概念,会计算一段数据的播放时长;系统编程方面,学习了多线程,设备热插拔的监控,命令行参数的解析,信号等等;该项目甚至让我学会了弹钢琴,哈哈哈。

2. 优势

该项目支持全局的按键音效,无论在哪个软件中按下键盘按键,都可以发出声音;支持为每个按键自定义音效;支持混音;支持键盘设备热插拔检测;有多个音频播放后端可以选择。

3. 使用

详细的使用方式请看:

4. 程序运行视频

该程序可以选择不同的配置进行启动,支持后台运行。

5. 使用audio/piano.json这个配置弹奏钢琴曲

哈哈哈,其实我是钢琴小白,但是那天我突然会照着简谱弹奏了,简谱上一共有七个数字,那我大拇指就对应1(dao)食指就对应2(rai)中指就对应3(mi)无名指就对应4(fa)小拇指就对应5(sao)剩下的6(la)7(xi)都用小拇指弹,这样,当我看到简谱上的数字的时候,我直接对应按哪个手指就可以了。

青花瓷

斯卡布罗集市

好久不见

当照着简谱敲完一遍之后,我们就可以照着敲完的字母进行盲打演奏了,请忽略我的手残,我盲打不是太流畅

我还使用audio/piano.json这个配置照着很多歌曲的简谱弹奏过,大家可以尝试按照下面的字母进行盲打:

  1. 像我这样的人
jk;k;kjk jk;k;kjk xcncncxcn jkjkcnj jk;k;kjk jk;kj;k xcncncxcn jjnnjk khh//’k; 
jnnnncnk khh//’.’k; jnnnncn jk;k;kjk jk;k;jk xcncncxcn jjnnjk ‘/h/h’/i 
iuiuiiiuh/ h/h/hui ihh//’/’kl jnnnncn 

2. 丁香花

dkjkjjkk njkcncncc cnncnjj lllnnjk dkjkjjkk dkjkjncc cnncnj 
klllnjkk jnjnjkj nkkjjnncc dnnnncn vvvvvcv  k’k;’’’  
’h’;’;kjk   ckjk’’n  k’’k’..  k’k;’’’ ‘h’;’;kjk ckjkkkcvvvjnvc

3. 追梦人

k’’’/h/’;;’/’k jk j k   ;; ;k jk;’.h/’/;;;’ /’ ’ //hhuuiuippiuh   
ihu/huh/’h/;;’/’

最后放上程序的链接:

编辑于 2020-12-15 11:17