NoisyTyper: 戴上耳机, Mac 变身打字机,进入疯狂码字模式,开始一个人的啪啪啪… [已开源] - V2EX
div id="Wrapper">
Aladdin

NoisyTyper: 戴上耳机, Mac 变身打字机,进入疯狂码字模式,开始一个人的啪啪啪… [已开源]

  •  2
     
  •   Aladdin Dec 8, 2015 5776 views
    This topic created in 3819 days ago, the information mentioned may be changed or developed.

    NoisyTyper-Swift
    http://ialaddin.github.io/NoisyTyper-Swift

    很久以前用了一个叫做 NoisyTyper 的小工具,每次敲击键盘的时候,都会打字机的感觉,很 high 。

    那个是使用 C++ 配合一套第三方框架写的开源程序(代码仓库里的 Readme.md 有相关的介绍链接)。当时想改进一些功能,让退出方式更友好一些。它时不时的还卡一下,看了眼代码,觉得实现的太麻烦了,但一直没空去折腾。

    今天抽空用 Swift 重写了一份,核心逻辑都没有改变,但简单,直接很多,顺便增加了我当时希望拥有的调节音量的功能,以及更友好的退出功能。

    代码十分简单,对 Mac 程序感兴趣的朋友可以看看,有空也可以谢谢小工具给大家把玩一下 =D

    推荐初次使用的时候,戴上耳机,将 Mac 音量调整至 1/3 ,再打开惯用的背景音乐,调整 NoisyTyper 的音量。

    所有的调整都将被自动存储,下次会使用之前的配置。

    Enjy !

    30 replies    2018-11-17 12:27:33 +08:00
    KiseXu
        1
    KiseXu  
       Dec 8, 2015
    打开后打字没有任何声音
    KiseXu
        2
    KiseXu  
       Dec 8, 2015
    原来需要开启辅助功能
    Aladdin
        3
    Aladdin  
    OP
       Dec 8, 2015
    @KiseXu 我以为文档写的够清楚了, 23333
    看来还是不够清楚啊~~
    Aladdin
        4
    Aladdin  
    OP
       Dec 8, 2015
    需要开启的设置位于:
    1. 系统偏好设置->安全性与隐私->通用 : 允许从以下位置下载的应用 勾选 [任何位置]
    2. 系统偏好设置->安全性与隐私->隐私:左列表选中『辅助功能』:右侧列表点击 + ,添加 NoisyTyper
    3. 运行应用即可
    KiseXu
        5
    KieXu  
       Dec 8, 2015
    @Aladdin 这应该在应用打开时做提示,然后把用户引导到设置界面去
    Aladdin
        6
    Aladdin  
    OP
       Dec 8, 2015
    @KiseXu 有空看看怎么弹出这个提示 =D
    Aladdin
        7
    Aladdin  
    OP
       Dec 8, 2015
    已更新,加入检测用户授权功能

    谢谢 @KiseXu 建议
    bugcoder
        8
    bugcoder  
       Dec 8, 2015
    以前一直都是在用 F.A.T 的 NoisyTyper , 说实话,这个实现是我见过的最好的实现了。楼主的效果最接近,但是打字声音还不够清脆,删除的声音完全是一个完了再开始另外一个。还有待改进。
    PopeyeLau
        9
    PopeyeLau  
       Dec 8, 2015   1
    Aladdin
        10
    Aladdin  
    OP
       Dec 8, 2015
    @PopeyeLau 也许先看到这个项目就不会写这份代码了=D
    anguslg
        11
    anguslg  
       Dec 8, 2015
    用机械键盘的同学会不会感到声音冲突 2333
    Aladdin
        12
    Aladdin  
    OP
       Dec 8, 2015
    @bugcoder 现在应该都是之前的声音没有播完,就不会理会下一次的敲击。比较明显的 bug 应该会出现在换行上:因为换行的声音比较长。

    改了一下,可以更新尝试下,希望体验有所改善 =D
    Aladdin
        13
    Aladdin  
    OP
       Dec 8, 2015
    @anguslg 戴上耳机还好吧~ 都用机械键盘了,就别拿这个 yy 了~
    我是没用惯机械键盘,用惯了 MBP 的键盘,对原生的键盘的键程,阻尼,都太熟悉了,不想换,才搞这个
    daben1990
        14
    daben1990  
       Dec 8, 2015
    Echoldman
        15
    Echoldman  
       Dec 8, 2015
    任务栏上的图标是模糊的, 在 Retain 屏幕上。其他都很好。
    Aladdin
        16
    Aladdin  
    OP
       Dec 8, 2015 via iPhone
    @Echoldman 这个好改,待会搞一下~
    kiray
        17
    kiray  
       Dec 8, 2015
    http://www.yingdev.com/projects/tickeys 跟这个比有什么优势么?
    kumakiti
        18
    kumakiti  
       Dec 8, 2015
    hhkb 非 type-s 用户表示天天啪啪啪
    exploreexe
        19
    exploreexe  
       Dec 8, 2015
    @PopeyeLau 这个好啊 还有剑气的选项 比打字机听起来还爽 哈哈哈
    exploreexe
        20
    exploreexe  
       Dec 8, 2015
    LZ 这个还是有点问题,打字不同步 还有很大的改进空间的说。
    Aladdin
        21
    Aladdin  
    OP
       Dec 8, 2015
    @kiray 都差不多。

    我看了这个代码,它应该和我是参考的同一个项目,也就是 OF 示例项目 NoisyTyper ,我在我的代码库的 Readme 里有相关的链接(开头处)。有兴趣的话,可以去看看。

    我不喜欢原版设定的退出方式,太 hardcore ,希望交互更直接一些,仅此而已 =D

    @exploreexe 关于不同步的问题,你说的是连按的时候可能存在音效没播放完整就被结束的情况吧?这里也没有想好,如何处理比较舒服。

    目前的做饭是这样的:为了节省内存, 5 种不同键程的核心区按键(也就是字母+数字区域)的各有一个常驻的 player 实例对象。每次敲击的时候,并没有严格的去按照实际的键盘布局进行调用播放,目前只是随机的选择其中一个进行播放,所以存在可能选中的 player 对象正在播放音效且没播完的情况。我会阶段当前播放,进行重新播放该音效。这个是我发现的一个 bug ,算是设计缺陷。

    现在我有几种想法:

    1. 按照实际的键盘布局来指定键程,固定按键与声音的关系。这样就会少了很多的冲突,因为实际上正常击键也很少有快速的连续用一个按键的情况。
    2. 或者现在的随机方法改进,如果随机到播放中的音效,就尝试新的随机过程,但这样也无法避免在 0.1s 内连续击键 5 次以上的冲突情况。
    3. 或者比较费内存的方式,每次击键就生成实例,设置一个生成上限。连续击键的次数在一定范围内,就不断的新建实例进行播放,播放完毕后释放掉就好。但这样的设计本身就存在一定的危险性。

    有好的建议不妨讨论下~
    Aladdin
        22
    Aladdin  
    OP
       Dec 8, 2015
    @Echoldman 适配 retina display 完成,可以重新下载一个试试看
    @exploreexe 尝试修改了不同步的问题
    Aspx
        23
    Aspx  
       Dec 8, 2015
    完全没找到打字的感觉,跟打架一样
    Aladdin
        24
    Aladdin  
    OP
       Dec 8, 2015
    @Aspx 2333 不喜欢的话,可以删掉了~ 谢谢尝试
    Showfom
        25
    Showfom  
    PRO
       Dec 8, 2015
    Aladdin
        26
    Aladdin  
    OP
       Dec 8, 2015
    @Showfom yeah ,看完以后觉得 Rust 还是好复杂,还是 Swift 简单 =D
    Slienc7
        27
    Slienc7  
       Dec 8, 2015
    所以有没有类似的实现鼠标点击音效~~~
    Aladdin
        28
    Aladdin  
    OP
       Dec 8, 2015
    @xgowex 可以加啊,有什么好的音效吗?我可以给你添加上这个功能 =D
    firstinout
        29
    firstinout  
       Dec 9, 2015
    感谢楼主,音效不错,如果可以加入更多音效的选择就更好了(比如机械键盘)
    fbqk2008
        30
    fbqk2008  
       Nov 17, 2018
    打字的音效有什么用吗?这类需求真奇怪啊。
    About     Help     Advertise     Blog     API     FAQ     Solana     3119 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 80ms UTC 03:55 PVG 11:55 LAX 20:55 JFK 23:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86