跳到主内容

iPad上的琴弦

前一段时间玩Ukulele. 真不知道人类怎么想的, 用手指头去按又硬又粗的琴弦. 每次练琴都恨不得把手指勒出几个槽来. 实在是不爽, 于是放弃了, 吉他什么的也一并拉黑. 大约从小我就和弦乐或者半弦乐有仇.

不过弄出有意思的声音还是我有兴趣做的事情. 于是就有了在iPad上做一把Ukulele的项目: ipadminiukulele

这把琴是有琴弦的, 琴弦能够给人有触觉反馈, 在乐器演奏是还是很重要的. 琴弦使用的是鱼线, 线绷紧的力度可调. 这样不至于勒手. 仅仅按住琴弦还是不响的, 要在拨弦的时候iPad才会发出声音.

硬件部分

很简单的两个打印件, 可以卡住iPad两端. 手机琴新版 v15

从淘宝几块钱买来一个吉他调弦钮, 安在圆孔里. 把鱼线4个弦槽穿过, 然后绑在吉他调弦钮上, 线要从iPad前后绕过, 这样才能稳定. 线的长度要试试, 大约是iPad长度的7-9倍. 装上的时候可以很松, 然后通过调弦钮逐渐拉紧.

如果喜欢Ukulele/吉他这类半弦乐中横隔的手感, 可以在鱼线上打结, 或者在基本调好线的松紧之后穿入几根牙签.

琴弦应该放在iPad的右侧. 要和相应的app位置匹配.

打印件已经存放在Thingiverse.

软件部分

这部分代码是用的iPad上的Pythonista 3写的, 这大概是唯一能够在ipad上写出可执行python脚本的工具了.

Pythonista自带里有个钢琴的demo, 演示多点触控, Ukulele是一样的, 只是要把按键和拨弦两件事情分开, 按键的时候把音高确定好, 拨弦的时候再调出该弦的声音进行播放.

遗憾的是Pythonista里的sound库只有钢琴的声音, 音域的范围也很有限. 于是做出来的是一把拨弦钢琴了.

代码在此

成品

正面

背面, 调弦钮是带有一个螺丝的, 需要拧上. 另外注意调弦钮是有左右区分的.

当把乐器软件化以后, 还可以有很多玩法, 比如音高不一定是按照顺序排列的啊, 完全可以把按得最顺手的区域放上最常用的和弦. 按电子合成器的玩法, 加入一些鼓声也可以.

等我把kivy熟练一些, 可能再写个android版本的.


press.one签名