こんにちは。
まるでHHKBのように軽快な打鍵音を演出するzen-typingというものを作ったのでご紹介します。
つかいかた
- できるだけ高級なイヤフォンを用意します。
- Macにイヤフォンを接続します。
- 上のリポジトリをクローンしましょう。
- ZenTyping.playgroundをXcodeで開きます。
- 数秒待ったら、タイピングしてましょう。
カチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャカチャ
ッターーーーーーーーーーーーーン
いやーーーーーーーー気持ちいい!!!!!
カスタマイズしよう
実はこのプログラム、とても短いので自分でも簡単に作ることができます。
まず、Xcodeでplaygroundを作ります。
ポイントは、platformをOSXにすることです。こうしないとうまく動いてくれません。
プレイグラウンドを開いたら、下のコードを貼り付けます。
たったこれだけでOK。数秒待つと動作します。
//: Playground - noun: a place where people can play
import AVFoundation
var engine = AVAudioEngine()
var input = engine.inputNode
var output = engine.outputNode
var format = input.inputFormatForBus(0)
var error:NSError?
engine.connect(input, to: output, format: format)
while true {
engine.startAndReturnError(&error)
sleep(10000)
}
このプログラム、簡単にサウンドエフェクトなどを追加できます。
たとえば、下のコードを貼り付けると、まるで銭湯でタイピングしているような感覚になります。
//: Playground - noun: a place where people can play
import AVFoundation
var engine = AVAudioEngine()
var input = engine.inputNode
var output = engine.outputNode
var format = input.inputFormatForBus(0)
var error:NSError?
var reverb = AVAudioUnitReverb()
reverb.loadFactoryPreset(.LargeHall2)
reverb.wetDryMix = 50
engine.attachNode(reverb)
engine.connect(input, to: reverb, format: format)
engine.connect(reverb, to: output, format: format)
while true {
engine.startAndReturnError(&error)
sleep(10000)
}
.LargeHall2を別の部屋に変えてみたり、wetDryMixの値を変えてみるといろいろとカスタマイズできます。
AVAudioUnitReverb以外にも、AVAudioUnitDelayなどいろいろ使えます。
みなさんのとっておきの打鍵音を作ったら、ぜひぜひ上のリポジトリにプルリクエストを送ってくださいね。
それでは。enjoy coding!