寄付窓口はこちら

Swiftにおける音の成形 | try! Swift Tokyo 2019 2-8

シンセサイザーを使ったサウンドデザインは目も当てられないほど複雑というのが一般的ですが、Swiftではそんなことにはなりません。このトークでは、音の合成、デザインの基本、そして基本的な音を、どうやって最高のものに変えることができるかに焦点を当てます。

f:id:niwatako:20190322143130j:plain

まず最初に簡単にお話しますね?音を出します。ボリュームを間違ったらごめんなさい。

だいたいリバースエンジニアリングをしています。オーディオに興味があります。

f:id:niwatako:20190322143407j:plain

アプリケーションのバリデーションをしています。

オーディオがどのように機能するのか

シンセサイザー、何を思い浮かべますか?

f:id:niwatako:20190322143438j:plain

私はシンセサイザーと言うといろいろな幅がある、いろいろな音を出してくれる

f:id:niwatako:20190322143509j:plain

f:id:niwatako:20190322143514j:plain

これはRolandのもの、本当に素晴らしいシンセサイザーですよね

f:id:niwatako:20190322143531j:plain

こちらはもうすこし厳しいもの

f:id:niwatako:20190322143543j:plain

これも非常に有名なシンセサイザーですね

f:id:niwatako:20190322143604j:plain

このおとはきいたことないですかね

f:id:niwatako:20190322143623j:plain

f:id:niwatako:20190322143628j:plain

個の音どうやって

f:id:niwatako:20190322143633j:plain

つくったのでしょう

これだけ

f:id:niwatako:20190322143645j:plain

シンプル

f:id:niwatako:20190322143652j:plain

これが基本で、少し加えると

Sonyシンセサイザーを買えば無料でこの音を作れる

f:id:niwatako:20190322143710j:plain

シンプルな音でかっこいい音にしていきたい

どう機能するかわかりますか

f:id:niwatako:20190322143732j:plain

回路です、波を作る。

増幅器、これはチップ

f:id:niwatako:20190322143756j:plain

パラメータを持った波を作る

どんな大きさ?どんな速さ、かたち(波形)

これを音にしていく

f:id:niwatako:20190322143827j:plain

画像で

f:id:niwatako:20190322143836j:plain

(画面左上、白飛びしていて見えないが波形を変えているデモ)

f:id:niwatako:20190322143925j:plain

Oscillatorは波を作るもの、Voiceは複数の並みでできるもの

いくつかの形がある。

f:id:niwatako:20190322143948j:plain

今日は四角に焦点を当てる。

f:id:niwatako:20190322144011j:plain

f:id:niwatako:20190322144024j:plain

f:id:niwatako:20190322144036j:plain

(柔らかくて丸い音がどんどんエレクトリックピコピコ感になる)

f:id:niwatako:20190322144104j:plain

周波数は同じ。Hz。音を作るにはピッチが必要。いろんな音符が必要になりサイクルが必要になる。

これを計算する方法がある。音符にどんな周波数が提供されているのか。

f:id:niwatako:20190322144137j:plain

キーボードの場合はご覧の数式で得られる。真ん中にあるドは40。261.62Hz。

矩形の波はオンからオフのどちらか

f:id:niwatako:20190322144209j:plain

ということで、この音がどう変わっていくかを説明できる

テクノサウンド

f:id:niwatako:20190322144232j:plain

iOSでこれを有無には?

f:id:niwatako:20190322144241j:plain

AudioServiceはファイルの再生しかしない。

今日は基本に戻って

f:id:niwatako:20190322144308j:plain

Core Audioを使う、シンプルで強力なフレームワーク

f:id:niwatako:20190322144339j:plain

f:id:niwatako:20190322144357j:plain

わからなかったらコピーして?

f:id:niwatako:20190322144402j:plain

難しいですね

f:id:niwatako:20190322144419j:plain

強力だが複雑

f:id:niwatako:20190322144427j:plain

f:id:niwatako:20190322144435j:plain

AudioKitはシンプルOSS

自動でボイラープレートを流してくれます。

f:id:niwatako:20190322144450j:plain

素晴らしいプレイグラウンドが用意されています

これでできる

f:id:niwatako:20190322144515j:plain

全然簡単

パルス幅で音の特性が変わる

f:id:niwatako:20190322144545j:plain

各サイクルに幅を持っている。線をダイナミックに変更することで音が変わる

サイクルは頂点と底で成り立つ。パルス幅は一定の期間変わる反復的なものです。

f:id:niwatako:20190322144622j:plain

変化させて聞いてみるDEMO

おわかりの通り音が鼻にかかったような音に変わりました。

パルス幅を設定するとサイクルがどのくらいの長さ、幅に成るのかを変えていきます。0-1の間で動かすので簡単。

矩形波は変調なしだと0.5

f:id:niwatako:20190322144709j:plain

f:id:niwatako:20190322144712j:plain

envelope

Aはアタック、立ち上がり。最大音量に達するまでの時間

D

S 少し音が落ち着いて保持される

R、余韻、鍵盤から指を離した後

f:id:niwatako:20190322144820j:plain

f:id:niwatako:20190322144822j:plain

0から始まり1まで上がる、Attack

0.8ぐらいまで落ちてしばらく同じレベルで保持されて、0までフェードアウト

フェードアウトするところをいろいろ変えられる。見ただけでは面白くないかもしれないが、ADSRをもって音がどうかわるかシンプルな設定で見ていただきたいと思います

ADSRがオフの状態

f:id:niwatako:20190322144914j:plain

(一定の単調な音)

弦をつまんだり鍵盤を叩いたようなおと

f:id:niwatako:20190322144932j:plain

最後にフェイドアウェイしていく

リリース時間を長くすると

f:id:niwatako:20190322144954j:plain

音を長持ちさせられます。サウンド自体がゆっくりと立ち上がり消えていく。そして次の音につながっていく

(ハーモニカっぽい)

ここで別の例を見ていただきたいと思います。ADSRを変えてどれだけドラスティックか。

f:id:niwatako:20190322145050j:plain

f:id:niwatako:20190322145105j:plain

全部オリジナルの音、音の変化だけを変えた。

次にエフェクトを変えていく、音自体を変えていきます。

いくつかエフェクトを使ってみたいと思います。

f:id:niwatako:20190322145131j:plain

エフェクトに寄ってオリジナルの音が変わります。

エフェクトをイニシャライズするときに音源を指定する

f:id:niwatako:20190322145201j:plain

LowPassFilterは低音域を聞こえなくする

HighPassFilterは高温域を聞こえなくする?

ノッチフィルター

f:id:niwatako:20190322145248j:plain

のっちをカットするもの、

f:id:niwatako:20190322145305j:plain

音のノッチを切ってしまう。

f:id:niwatako:20190322145312j:plain

音の中間音だけを残す

上と下を切ってしまう

f:id:niwatako:20190322145353j:plain

一部の音域しか聞こえない

フィルターは作る人によって違います。どうフィルターが作られたかで決まる。同じように音をカットするが

f:id:niwatako:20190322145407j:plain

シンセサイザーの新しいものと古いもので音が違うのはフィルターがちがうから

f:id:niwatako:20190322145441j:plain

レゾナンスはカットオフポイントのおとを協調する

f:id:niwatako:20190322145452j:plain

f:id:niwatako:20190322145456j:plain

LFOを使ってADSRとの組み合わせで見てみましょう。

f:id:niwatako:20190322145536j:plain

f:id:niwatako:20190322145542j:plain

f:id:niwatako:20190322145547j:plain

オープンとクローズとても早かったですよね

f:id:niwatako:20190322145615j:plain

幅を持って聞こえさせる

f:id:niwatako:20190322145630j:plain

ステレオでエコーが生まれる。

f:id:niwatako:20190322145648j:plain

f:id:niwatako:20190322145658j:plain

f:id:niwatako:20190322145741j:plain

Reverb

f:id:niwatako:20190322145749j:plain

残響、別の部屋から音が聞こえるような

あまりうまく音を出せないが小さいスタジオではおもしろいです

10行ぐらいでシンセサイザーが出来ます

f:id:niwatako:20190322145812j:plain

f:id:niwatako:20190322145826j:plain

インスピレーションを生む

ピアノで演奏された音を、たとえば

f:id:niwatako:20190322145848j:plain

(ピコピコとかビヨンビヨンとか)

f:id:niwatako:20190322145909j:plain

何度も繰り返しながら作りたいものを作り上げていく

アプリケーションも同じ

最高のものを作って欲しいと思います

f:id:niwatako:20190322145940j:plain

人と共鳴できるようなものを作っていただければと思います

f:id:niwatako:20190322145955j:plain