Reaktor でマイシンセ作っちゃう?

前回に引き続き Native Instrument Reaktor 5.5 を使います (既に最新版は 5.6 になっていますが、まだアップグレードできていません)。 今回は Reaktor でマイパッチを作るだけでは飽き足らず、「マイシンセ作っちゃうよ!」という野望をいだいている人向けです。 パッチを作るのとシンセを作るのは次元の違う話なのですが、一応前回に続けて読めるようには書いてみますので、シンセ初心者でも興味のある方は読み進めてみてください。

良く使うボタン等

最初にタブ・ボタンを説明しておきます。 全部説明するとなると大変なのですが、かと言って使うものだけっていうのも中途半端だったりするので、サイドペイン (左画面) のタブとサイドバー (マニュアル読んでも「サイドバー」と呼び方が確定しているか微妙な感じですが) 上方のボタンを一通り説明します。 まずは、サイドペインのタブの一言説明です。 左からの順番で、太字は今回使用するものです。

1. Browser タブ
ファイルブラウザ
2. Snapshot タブ
スナップショット (音色パッチ)
3. Panelsets タブ
パネルセット (表示パネルの選択)
4. Properties タブ
プロパティ

続いて、サイドバー上のボタンの一言説明です。 上からの順番です。

1. Panel ボタン
パネルビュー (シンセ等の操作画面)
2. Structure ボタン
ストラクチャービュー (シンセ等の内部構造画面)
3. Panel Split ボタン
パネルビュー+ストラクチャービュー
4. Structure Split ボタン
2つのストラクチャービュー
5. Split Orientation ボタン
縦分割/横分割切り換え
6. Panel Lock ボタン
パネルの編集可否切り換え
7. MIDI Learn ボタン
Reaktor コントロールに MIDI コントロールチェンジを割り当てるためのボタン

ストラクチャービュー

Reaktor の凄さはストラクチャービューを見るとわかります。 前回の手順で SoundSchool Analog をロード後、Structure ボタンを押してストラクチャービューを表示してみましょう。

ここで「ANALOG」と名前のついた四角形 (オブジェクト) をダブルクリックしてみましょう。

ずいぶん細かくなりました! これが SoundSchool Analog の内部構造です。 何と Reaktor ではこの内部構造をいじることができるのです!

更に「LFO」オブジェクトや「Filt-Env->Osc」オブジェクトをダブルクリックすればそれらの内部構造が表示されます。 上位の階層に戻るには何も無いところでダブルクリックします。 コンテキストメニュー (「Structure」で下位、「Parent」で上位) を使うこともできます。 階層をあっちこっち移動してみるといじりたくなって来ませんか?

Reaktor の階層構造を知ろう

まず Reaktor で使用できるオブジェクトの階層を知っておきましょう。 Reaktor ではアンサンブル (Ensemble) が最上位概念で、通常 OS ファイルへのセーブ/ロードはアンサンブル単位で行うことになります。 インストゥルメント (Instrument) はその下の概念で、Reaktor には最初から 70種類以上の Instruments がついてきます。 これらはシンセ/エフェクター/シーケンサー等です。 先のエントリではそのうちの一つ SoundSchool Analog を使いました。

下の図が示すように、Instrument の下にも様々な階層の部品があります。 全部ひっくるめて「オブジェクト」という言い方もします。


REAKTOR 5.5 – Application Reference p.21

図を見ていると何故 Core Modules 系統とただの Modules (Primary Level Modules と言います) の2系統があるのか不思議な感じがしますが、Core の方が新しいテクノロジーということです。 マニュアルにも以下のように今後は Core 系の方に力を入れると書いてあります。

In the future, Native Instruments will put less emphasis on creating new primary-level modules. Instead, we will use our new Reaktor Core technology and provide them in the form of core cells.
REAKTOR 5.5 – Core Reference – p.17

いずれのオブジェクトもリファレンスマニュアルが用意されています。 とりあえずは Core Modules だ、Primary Level Modules だ、という分類は気にせず、眺めてみて使いたくなった部品を使えば良いと思います。

Ensemble を作る上で知っておいた方が良いこと

簡単に言ってしまえば、ストラクチャービュー上でオブジェクトを配置し、入力ポートと出力ポートの間をドラッグしてワイヤーで結ぶことでシンセ/リズムマシン/エフェクター等を作ることができます。 ただ、やはり基本を知っていないとなかなか辛いものがあるので、その辺をまとめてみます。

オーディオ信号とイベント信号

オブジェクト間のワイヤー上を流れる信号にはオーディオ信号イベント信号があります。

オーディオ信号
サウンドそのもの。 サンプリングレートがクロックとなる。
イベント信号
トリガー信号や エンベロープ/LFO 等のコントロール用信号。 コントロールレートがクロックとなる。

コントロールレートはサンプリングレートに比べて低レートなので、どちらの信号でもできるようなことはイベント信号で対処した方が負荷が小さくなります。

ポートについて

オブジェクトの左側にあるのはインプット (入力) ポート、右側にあるのがアウトプット (出力) ポートとなります。

  • 単一出力ポートから複数入力ポートへの接続は OK
  • 複数出力ポートから単一入力ポートへの接続は NG

オブジェクトに「…」が表示されていれば、Ctrl (Cmd) キー押しながら接続するとポートが増えます。 これはダイナミックポートと呼ばれる機能で、特に複数の出力を受けるモジュールでは良く使われます。

ところで、各オブジェクトのポートを良く見ると色が異なるポートがありますが、これは扱える信号の違いです。

黒いポート
オーディオ信号専用のオーディオポート。
赤いポート
イベント信号専用のイベントポート。
緑 (灰緑)
オーディオ信号もイベント信号も扱えるハイブリッドポート。

ハイブリッドポートはオーディオポートと結ぶと黒くなります。 接続しているのに灰緑のままのポートはイベント信号用です。 イベント出力ポートをオーディオ入力ポートに結ぶことはできますが、逆をするには「A to E」モジュールを間に挟まなければなりません。

下の図で Peak Detector モジュールの Rel はイベントポート、In と Out はオーディオポートです。 Add (+) モジュールのポートは全てハイブリッドポートですが、Peak Detector の Out と入力ポートを結ぶと全てがオーディオ用となり黒くなります。

ポリフォニック

シンセを使ったことがある人は知っていると思いますが、複数の音を同時発音できるモードをポリフォニックモード、単音のみ発音できるモードをモノフォニックモードと言います。 ポリフォニックモードで動いているときは、ストラクチャービューの一本のワイヤー上で複数の音の信号が並列で流れているイメージです。 大抵のオブジェクトはどちらのモードでも動作可能で、コンテキストメニューやサイドペインの Property タブ Function ページで「Mono」をチェックしておくとモノフォニックモードになります。

そのオブジェクトがポリフォニックモードで動作しているかモノフォニックで動作しているかは右下のランプを見ます。

  • 黄色はポリフォニックモード
  • オレンジはモノフォニックモード
  • グレーはアクティブ化されていない、すなわちきちんと接続されていないため信号のパス上にいないオブジェクト
  • 赤い「M」の表示はミュートされたオブジェクト

ポリフォニックかモノフォニックかで接続に制限がでてきます。 モノフォニックな出力ポートをポリフォニックな入力ポートへ接続することはできますが、逆をするには「Audio Voice Combiner」モジュール (「}」表示のモジュール) を間に挟まなければなりません。 入力ポートが「×」表示になっているのはポリ→モノに接続されていることを意味しており、この状態ではポートはミュートされています。 下の図では LFO がポリフォニックモード (黄)、Add (+) モジュールがモノフォニックモード (橙) のためエラーとなっています。

また、最終的な出力ポートにはモノフォニックモードにして送らなければなりません。 同様にインストゥルメントの入出力もモノフォニックモードとなります。 大抵のシンセインストゥルメントの出力はモノフォニックモードサウンド出力×2のステレオ仕様となっています。

同時発音数とユニゾンの設定

インストゥルメントのプロパティの Function ページにある Voices の設定で何音同時発音かが決まります。 8 にセットすれば「8音ポリ」ということになります。 ちなみにパネルビューからインストゥルメントのプロパティを表示するには、インストゥルメントヘッダのインストゥルメント名をクリックするのが簡単です。

ただし、ユニゾンボイスの設定 (上画面の下の部分) で実際の同時発音数は減ってしまうかも知れません。 ユニゾンボイスは 1つのノートイベントで複数同時発音させ、厚い音を作るための設定です。 いくつ重ねるかの最低値 (Max Voices) と最大値 (Min Voices) を設定できます。 例えば、Voices = 8、Min Voices = 2 であれば実際の最大同時発音数は 4 になります。

Spread でどれだけチューニングをずらすかを指定します。 先の SoundSchool Analog の Unison Det. はこの Spread パラメータそのものです。 Min/Max Voices を 2以上に変更して、Spread を上げてみましょう。 上げ過ぎると気持ち悪くなりますが。

まとめ

とりあえず、ここまで理解すれば「Getting Started」マニュアルを読んで「?」と思うところも少なくなるのではないでしょうか? 初心者がこれだけでインストゥルメントの中身を理解するのは難しいかも知れませんが、これらの基本事項の理解なしでは先に進めないと思います。 経験者ならば、後はリファレンスマニュアルを読みつつ付属のインストゥルメントをいじっていくと何とかなる、かな?

次回ももう少し Reaktor について書きます。

My Tweets (2011/06/13 – 2011/06/18)

シンセサイズ入門実践編: NI Reaktor の巻

この記事は Reaktor に付属する「インストゥルメント」の一つである「SoundSchool Analog」というシンセを使って音作りを学ぼうというものです。 Reaktor 上でシンセを作る方法を知りたい方は「Reaktor でマイシンセ作っちゃう?」をどうぞ。

音作りこと始め - プリセット音からの出発

前回のエントリを読んでシンセサイズの基本を押さえたら、あとは実践あるのみです。 と言ってもいきなり自由にシンセを扱えるようにはならないので、まずはプリセット音を分析することから始めましょう。 一から音色作りができる才能と時間があれば良いのですが、一般人はなかなかそうは行かないのでプリセット音色をスタートポイントにするのが吉なのです。 余分な要素を削ったプリセット音を複数重ねてまとめるだけで十分立派な音作りになります。

プリセット音を分析するには以下のようなことを試し、どの要素がそのサウンドの鍵となっているかを把握します。 そのサウンドの特徴を決めるパラメータはパッチ/プログラムごとに異なっているはずなので、多くのサウンドについてこれを行えばそれだけ様々な発見があると思います。

  • エフェクトを OFF にする。
  • 複数のオシレータで構成されているサウンドは、オシレータ (オペレータ) を一つずつミュートしてみる。
  • LFO の効果を OFF にする。
  • その他にも気になるパラメータを OFF にしてみてどのようにサウンドが変わるか観察する。

このように試して「変化が大きい」と感じたところがそのサウンドの肝なのです。 と言ってもみんな感性が違うので「ここだ!」と思うところは人それぞれかも知れませんが、それで良いのです。

Reaktor で実践だ!

今回は Reaktor 5.5 付属インストゥルメント「SoundSchool Analog」のプリセット音を眺めてみます。 SoundSchool Analog はその名の通り、アナログタイプ (減算方式) の音作り入門用にピッタリなシンセサイザーです。 同じ Native Instruments (NI) 製の Kontakt に比べたら話題にのぼることの少ない Reaktor ですが、実はとても奥深いソフトです。 Reaktor の奥深さの説明は後でするので、今の段階では Reaktor という入れ物があってその中で SoundSchool Analog というシンセを使うというイメージを持って進んでください。

起動して構成を確認しよう

今回は Reaktor をプラグインとしてではなく、スタンドアロンモードで起動して使うことにします。 Reaktor には Native Instruments の他のソフトで見られるような鍵盤 GUI は付いていません。 コンピュータキーボードで弾くこともできますが、できれば MIDI キーボードを使いましょう。 初回起動時はオーディオ/MIDI のセットアップ画面が表示されるので適切に設定します。

起動したら SoundSchool Analog のアンサンブルファイルを読み込みます。 左のブラウザ画面で「FACTORY」を選び「Ensembles」-「Classics」-「Synthesizer」と選んで下に表示されたファイル名より「SoundSchool Analog.ens」をダブルクリックしましょう。
pulse

下の様な画面が表示されますが、これが SoundSchool Analog のエディット画面です。(クリックで拡大)
Panel A

2つのオシレータ、アンプリチュード(ボリューム)用とフィルター用の 2エンベロープ、1LFO を備え、ディレイエフェクトと更には波形を確認できるオシロスコープまでついています。 簡単に言うと 2VCO/1VCF/1VCA/2EG/1LFO ということになります。

インストゥルメントヘッダーの「A」ボタンと「B」ボタンで表示パネルを切り替えることができます。 SoundSchool Analog では「B」を押すとブロックダイアグラム図が表示され、「A」ボタンを押すと元の編集画面に戻ります。
Instrument Header

「B」ボタンを押したときに表示されるブロックダイアグラム図は信号の流れの確認用で、この画面を使って特に何か編集できるわけではありません。 しかし、この画面を理解しておくことは重要です。(クリックで拡大)
Panel B

見てわかる通り、Oscillator 1/2 の出力を Mixer で混ぜて Filter で削り、Amp でボリューム調整して最後に Delay エフェクトがかかるという流れになっています。 また、Filter Envelope (「FILT-ENV -> OSC」モジュール経由) と LFO は様々な対象をモジュレーションできるようになっています。 矢印上の英字ですが、「P」はピッチ、「S」はシンメトリー (後述)、「A」はアンプリチュード (ボリューム) を表します。 LFO は Oscillator 1/2 のアンプリチュードをモジュレートすることはできませんが、その分 Amp、Filter カットオフをモジュレートすることが可能となっています。 オシレータの「A」と Amp のどちらをモジュレートしても音量を変化させることになります。 どこをモジュレートしたらどんな効果があるかは前回の記事を思い出してくださいね。

パラメータを眺めてみよう

さて、編集用パネルに戻りましょう。 前回の記事を理解していれば、半分ぐらいのパラメータについてはその役割が想像つくのではないでしょうか。 ここではわかりづらそうなパラメータのみを取り上げて説明します。 いじって効果を確認してみましょう。

Symm (シンメトリー)

Pulse (矩形波)であればパルス幅比が変化します。

Symm = 0
pulse
Symm = 0.5
pulse

Tri/Saw であれば Triangle (三角波) -> Saw (鋸波) と変化します。

Symm = 0
tri
Symm = 1
saw

Sine でも Saw と同じような変化をして Symm 値が増えると倍音が増えます。 これらの変化はオシロスコープで観察できます。

LFO にも Symm パラメータがありますが、これは LFO の波形のシンメトリーの設定ということになります。

Interval
半音単位のピッチです。
Sync
オシレータシンク (ハードシンク) 機能。
RingMod
リングモジュレータ機能。
FM
FM 合成機能。 これを上げることでオシレータ1 でオシレータ2 を周波数変調できます。 SoundSchool Analog は 2オペレータ分の FM音源として使うことができるのです。
Filter Mode
ローパスフィルター (LPF) だけでなく、バンドパスやハイパスフィルターも用意されています。 タイプの後の数字は大きい方ががっつり削られるフィルターということになります。
Detune/Unison Det.
いずれもピッチをずらすためのパラメータです。 ただし、「Unizon Det.」はユニゾンボイス (= 1つのノートイベントで鳴らすボイス数) が 2以上でないと意味ないのですが、ユニゾンボイスの設定は編集パネルからできないので、とりあえずいじらなくて良いです。 (いじってみたい人はインストゥルメントプロパティで設定します。)
K-Track
弾いた鍵盤の高さによってフィルターのカットオフ周波数を変化させるかどうかです。 0 で変化なし、1 だと鍵盤の高さに従ってカットオフ周波数が変化。

こうして見ると SoundSchool Analog はシンプルではあるものの、シンセの音作りで一般的な機能は一通り持っていることがわかります。 ここで説明しなかったパラメータに関しては製品付属マニュアル「Instrument Reference」の SoundSchool Analog のセクションを読んでみましょう。 日本語版が無いようですが、何とかなるでしょう。

音を鳴らしてみる

ではいくつかのプリセット音 (Reaktor では「スナップショット」と言います) を聴いてみましょう。 スナップショットはインストゥルメントヘッダー (あるいはメインツールバー) のドロップダウンリストから選ぶことができます。 パラメータをいじってどこがそのサウンドのキーポイントなのかも探ってみましょう。
Instrument Header

「1 – OSC Sinus」~「6 – OSC Pulswelle 2」

最初の方の「OSC」がついているスナップショットは各波形の生出力です。 スナップショット名がドイツ語なのでわかりづらいですが、例えば「1 – OSC Sinus」は鍵盤を押すと何の加工もしていないサイン波が出力されます。 Mix の Osc 1 は 0 に設定されているので、Oscillator2 のみが出力されています。 一瞬 Filter Envelope が設定されているように見えますが、Filter モジュールの Env の値が 0 なので実際は全くサウンドの変化はありません。

何はともあれ、まずはフィルターカットオフをいじってみましょう。 カットオフを変化させたときに音色の変化の大きい波形が倍音を多く含む波形ということになります。 どの波形が一番変化が大きいですか?

「32 – Basic PWM」
LFO で Oscillator 1 の Sym を モジュレートしているのですが、そうするとパルス幅の比率が変化するわけです。 単音で弾いて Scope で波形の変化を確認してみましょう (Freeze ボタンは消灯します)。 これはパルスウィズモジュレーション (PWM) という良く使われるテクニックです。
「37 – Basic Brass」
Oscillator 2 の Detune を 0 にして更に「FILTER ENV -> OSCILLATOR」の Pitch ランプを消してみましょう。 ずっと素朴な音になったと思います。 2つのオシレータのピッチが微妙にずれると厚い音になるということです。 音作りでとても重要なところです。
「39 – Basic FM」、「73 – Malletti」
FM の音作りですね。 FM パラメータを上げて Mix の Osc1 を 0 にすると Oscillator 1 は周波数変調だけのための存在 (=モジュレータ) になります。 この状態で Oscillator 1 の FM パラメータをいじるとモジュレータ出力で音がどう変化するかがよくわかります。
「40 – Basic Sync」
オシレータシンク機能を使った音です。 Oscillator 2 のピッチにエンベロープをつけていますが、Oscillator 1 の周波数にシンクされているのでピッチは変わらず音色の変化となります。 Sync をオフにするとどうなるか試してみましょう。
「41 – Basic Ringmod」
リングモジュレータ機能を使った音です。 かなり個性のある音ですが、リングモジュレータを使うとこんな音にしかならないという噂もあります。 Oscillator 1/2 共にサイン波にすると多少おとなしくなりますが、やはりリングモジュレータは飛び道具という感じでしょうか。
「54 – SawStrings」
どこかで聞いたことがある懐かしいシンセストリングス、という感じです。 ストリングス系のエンベロープはアタックを遅くしてリリースもつけるのが基本形となります。

SoundSchool Analog は構成がシンプルなので、こんな感じでいろいろいじってみることだと思います。 SoundSchool Analog のパラメータが一通りわかれば Reaktor で動く他のシンセの構造もきっと理解できるはずです。

Reaktor について

最後に Reaktor について説明します。 Reaktor を簡単に説明すると「複数のシンセサイザーやエフェクト、シーケンサー等を組み合わせてサウンドクリエイトするための環境ソフトウェア」ということになります。 Reaktor には SoundSchool Analog のようなインストゥルメントが 70種類以上パッケージされています。 インストゥルメントはシンセだけでなく、エフェクターやシーケンサーなどさまざまなタイプがあり、これを組み合わせてサウンドを生み出すことができます。

更にやろうと思えば「オシレータ」や「エンベロープ」といった単品レベル (「Module」や「Core Cell」と呼ばれます) を組み合わせて自分でインストゥルメントを作成することができます。 「タンス」と同じことがコンピュータ上で手軽にできるということです。 Native Instruments 社サイトの Reaktor ユーザライブラリには世界中のユーザが作成した何千ものインストゥルメントが公開されています。

KOMPLETE 7 も売れているようなので、既に手元に Reaktor があるけど使っていないという方もそれなりの数になるのではないでしょうか。 シンセの音作りに少しでも興味がある人はこれを機会に使い始めてみましょう。 好きなインストゥルメントを2、3見つけて使いこなすだけでも十分元が取れると思いますよ!

次回からしばらくの間、シンセの基本からは外れますが、Reaktor の使い方を解説していきたいと思います。

My Tweets (2011/06/05 – 2011/06/11)

  • 小二息子との最近のやり取り。 私:「ちゃんと言うこと聞け!」、息子:「耳で聞いてるよ」 ? 私:「ちゃんと宿題やれ!」、息子:「やったよ。終わってないけど」 まあ、まだ反応があるだけよいのかな。
    06/11 (Sat) 23:00:26
  • 小二息子と取っ組み合いの親子喧嘩。 いつかそのうち力負けする日が来るのだろうけど、その頃には年長者を敬う姿勢が出来ているかどうか…。
    06/11 (Sat) 22:55:56
  • 最近子供に怒っている内容は、その昔、親にさんざん言われ続けていたのと同じ内容だったりして苦笑い。 「自分はもう少し素直だった」と思うのもきっと気のせいなんだろうな。
    06/10 (Fri) 23:04:23
  • @nack_sa おおお、プレッシャーw
    06/10 (Fri) 21:48:50
  • @nack_sa あ、ブログ読んでいただけたのかな? 自分の勉強も兼ねてシンセ音作り記事を増やしたいと思ってますので、感じたことがあれば気軽に教えてください。 FM の話はちと先になりそうですが…。
    06/10 (Fri) 21:25:16
  • @nack_sa 学生の頃は結構いじってましたが、最近は音作りはさっぱりです。 楽器屋のシンセ売り場が小さくなっていくのが寂しいのですが、今シンセの音作りする人は少なそうですしねぇ。 おっと、年寄りモードになってしまった…。
    06/10 (Fri) 20:12:10
  • @nack_sa 「Sony のエフェクターなんていつの話だ?」と思っていたら、DX7 もお持ちなんですか? 掲示板ブログ(?)見てしまいました。 私も手元に DX7IID があります!
    06/10 (Fri) 19:57:32
  • Interop は今日までだけど、今年はパスかな。 幕張だと空いた時間にちょっと、というわけにはいかない。
    06/10 (Fri) 03:21:57
  • サッカー日本代表キリンカップの2試合はなんか点が入る気がしなかった。 相手の守備が良かったということか。
    06/07 (Tue) 21:34:30
  • 今月の日経新聞「私の履歴書」は山下洋輔。 きっと、どこぞの経営者の自慢話のようなことにはならないでしょう。 期待!
    06/06 (Mon) 20:56:10
  • どうでも良いけど「ブラ&ショーツセット」で「390円?」というのは逆効果じゃないのか?
    06/06 (Mon) 20:11:15
  • 女性下着広告のターゲットにされている。何故?
    06/06 (Mon) 20:09:53
  • ブログ更新:「DIV 要素を横に並べる、など」 http://t.co/qMPzMkD
    06/05 (Sun) 13:12:09

DIV 要素を横に並べる、など

弱小ブログにとっては貼り付けるのに勇気がいる SNS系ボタン (Twitter、Facebook、はてな等) ですが、とりあえずつけてみました。 今回はそのあたりの話をします。

jQuery.socialbutton プラグイン

jQuery 環境でお手軽に SNS系ボタンを配置できる「jQuery.socialbutton プラグイン」というものが公開されており (ダウンロードページ)、これを利用すれば簡単に SNS系ボタンを用意することができます。 前回のエントリのために jQuery 導入済み (と言ってもインクルードしただけですが) というのも SNS系ボタンの導入を後押ししました。 作者の方に感謝です。

DIV 要素を横に並べる

ところで、サンプルページのソースを見ると以下のように DIV 要素が並んでいます。 socialbutton プラグインを紹介する多くのページでも DIV 要素が使われています。

<div id="hatena"></div>
<div id="twitter"></div>
<div id="facebook_like"></div>

ところが、ブラウザ表示上はボタンが綺麗に横に並んでいます。 「DIV 要素なのになんで横に並ぶんだー!?」と思い、検索すると「float 属性を指定しましょう」とのこと。 でもその場合は以下のようになるはずですが、スタイルを指定している気配はありません。

<div id="hatena" style="float: left;"></div>
<div id="twitter" style="float: left;"></div>
<div id="facebook_like" style="float: left;"></div>

種明かしをすると一つ上位の DIV 要素のクラス名を使って横並びの設定が行われているのでした。

<style>
.block div {
margin-right: 15px;
float: left;
}
</style>
<div class="block">
<div id="hatena"></div>
<div id="twitter"></div>
<div id="facebook_like"></div>
</div>

一つ上位の DIV を「block」クラスとして「block」クラスの子孫 DIV 要素には「float: left;」が適用されるようなスタイルを設定しているのです。 こうすれば個々の DIV に float 属性を設定しないで済みます。 「なるほど!」と思ったテクニックでした。

IE7 で動かない?

「これで横に並べて表示できる!」と喜んだのもつかの間、今度は IE7 で動かないという事象が発生しました。 「エラー: ‘}’がありません。」というエラーが出て、以下のように Twitter ボタンが表示されず、ただのリンクになってしまいます。 Facebook や Hatena は大丈夫です。
SNS ボタン

これも検索して調べたところ、FC2 ブログの文字コードは EUC なので Twitter 用 JS ファイル widgets.js をインクルードする際に「charset="UTF-8"」を設定しなければならないようです。 ところが、socialbutton.js の中で Twitter の widgets.js を読み込むところにこれを付けたり、socialbutton.js を読み込むところにも付けたりしてみましたが、改善されません。 結局どうしたかというと IE7 以下では socialbutton.js を読み込む前に widgets.js を読むようにしました。 具体的には以下のようにしました。

<!--[if lt IE 8]>
<script type="text/javascript" charset="utf-8" src="http://platform.twitter.com/widgets.js"></script>
<![endif]-->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="/oldimages/socialbutton.js"></script>

widgets.js を2度読むことになりそうなのですが、それでもきちんと動いたので良しとします。

あんまりハマりたくないけれど

JavaScript やら CSS やらをいじるのは何となく ad hoc な感じがしてあんまりハマりたくないのですが、最近の動向を考えるとそうも言っていられない状況です。 なので、昨年ぐらいに参考書として買った「現場のプロから学ぶXHTML+CSS」を読み返しながらブログテンプレートをいじったりしています。

ちょっと紹介するとこの本は「昔は HTML をいじっていたけど今はさっぱり」という私のような人にちょうど良い本です。 結局よく見返すのは1章の XHTML と2章の CSS だったりしますし、最新情報というには出てから間が空いていて、構成も初心者にはどうかという感じですが、この分野はなかなか「最新動向まで加味して体系だてた決定版!」というのが出にくい分野だと思いますので何かしら一冊手元に置いてやっていくのが良いように思います。

前からブログのデザインリニューアルをしたいとは思っているのですがなかなかできず、ちょっとした手直しを続けるようなことになりそうです。 socialbutton のカウンターについては気にし過ぎない、ということで。

My Tweets (2011/05/31 – 2011/06/04)

  • やはり JavaScript やら CSS やらいじり始めるといろいろなことが起こる。
    06/04 (Sat) 21:39:31
  • ブログ更新:「ソフトシンセ時代のシンセサイズ入門 (基本編)」 https://hetarena.com/archives/499
    06/04 (Sat) 09:57:22
  • やっと新オフィスのそばで「龍角散ののど飴 EX」を売っているコンビニを見つけることができた!
    06/02 (Thu) 08:51:14
  • 小学校で出された課題のために子供が切り抜いた「こども百科」をテープで修復なう。 その昔「重いから」という理由で教科書を分解して持ち歩いていた妻も「百科事典切り取るのはありえない」とのこと。 親が親なら、と思ってしまったけれど…。
    06/02 (Thu) 03:40:53
  • 正誤表は印刷しやすい形で公開して欲しいものだ。
    06/02 (Thu) 03:19:38
  • さすがにもう Cubase VST 5 (Cubase 5 ではない) のマニュアルは捨てて良いよなあ。と言っても 1年ちょっと前までは使っていたんだっけ。
    05/31 (Tue) 20:47:24
  • スラップベースのサムアップを練習しているけど、いつになったら安定して弾けるようになるのか見当がつかない。
    05/31 (Tue) 20:35:02

ソフトシンセ時代のシンセサイズ入門 (基本編)

Cubase のような DAW ソフトを買えばおまけ (?) としてプラグインシンセがついてきますし、KOMPLETE 7 のようなバンドルパッケージを買うと一挙に複数のシンセ (しかもそれぞれが結構複雑!) が手に入ってしまいます。 いい時代になったものです!

とは言ったものの、実際にはシンセの音作りが良くわからないのでプリセットを選ぶだけで終わっている人が多いのではないかと推測します。 シンセのプリセットはクセの多い音が多く、そのままだと作成中の楽曲に当て嵌めにくかったりするので、気づいたらシンセを全く触らなくなっていた、というような人も結構いるのではないでしょうか。 この記事はそのような方々のためにシンセの音作りの基本を説明します。

本格的な音作りはしなくても、シンセサイザーのサウンドメイキングの基本を知っておくことは役に立ちます。 シンセの音作りを知れば、欲しい音を具体的にイメージしやすくなるので音選びに役に立つでしょうし、プリセットを素材としてそれを調整し納得の行くよう自分の楽曲に合わせることができるようになります。 確かに現代のシンセはパラメータが膨大になっていますが、音作りの基礎を覚えておけばそれらの意味を理解することも容易くなるでしょう。

今回は基本編として、シンセサウンドを構成する基本要素を説明します。 サンプルを聴きながらそれらの要素の働き・効果を理解できるようにしています。 読みやすい分量にまとめているので説明を端折っている部分もありますが、まずは「そんなものか」というのを掴んでいただければあとは実践で何とかなると思います。

本エントリは、当初は jPlayer を使っていましたが、2012年11月からは SoundCloud を用いてサウンドを提供するようにしました。

シンセサイズの基本要素

オシレータの波形選択

シンセの基本原理はオシレータ (発振器) で出力した波形を加工して音に仕上げることです。 原波形がわからないほど過激な加工をすることもできなくはないですが、基本は選んだ波形の特徴を生かす音作りとなります。 ですので波形の選択はとても重要です。

オシレータの波形としては、シンセ黎明期から使われている鋸波等のシンプルな波形の他に実際に存在する音 (主に楽器のサウンド) をサンプリングした波形も用いられます。 中には手書きで波形を書いてしまえるようなシンセも存在します。 自分の気に入ったプリセット音はどの波形が使われているかを確認してみましょう。 最もよく使われる代表的なシンセ波形を以下に3つ挙げておきます。

鋸波 (SAW)

矩形波 (SQUARE, PULSE)

サイン波 (SINE)

加算処理 (ミックス)

多くのシンセサイザーは複数のオシレータを持っています。 波形をミックスすることでより厚い音や複雑な音をつくることができます。 オルガンのドローバーを引き出して音を変えるように、多数の倍音を加算して音作りするようなシンセも世の中には存在します。

例えばサンプリング系でもノイズと弦そのものの音を別のサンプルで用意してミックスみたいな話はありますね。 ここでは、一例として鋸波と1オクターブ上の矩形波をミックスした音を聴いてみましょう。

鋸波->矩形波->ミックス

実際の音作りではオシレータレベルだけでなく様々なレベルでミックスが行われます。 複数の異なるシンセパッチを重ねて一つのサウンドを作ることも普通に行われています。

減算処理 (フィルター)

フィルターで音を削ることを減算処理と呼びます。 通常シンセで使うフィルターは LPF (ローパスフィルター) で、主要パラメータはカットオフ (どの程度開くか) とレゾナンス (どれだけクセをつけるか) です。 これらのパラメータはよく演奏中にリアルタイムコントロールされます。

ここではフィルターのカットオフ (開き具合) を変えることでどのように音が変わるか聞いてみましょう。

フィルター[開]->[閉]->[開]

FM 合成 (周波数変調)

いわゆる「ヤマハ DX シリーズ」の音作りの方法です。 オシレータの出力波形を別のオシレータで周波数変調 (FM) すると元の波形にない倍音を作り出すことができます。

FM シンセの世界を楽しむために覚えておいた方が良い、いくつかの用語を説明しておきます。 元のオシレータを「キャリア」、変調する別のオシレータを「モジュレーター」といいます。 モジュレーターの出力を上げればにぎやかな音になるし、下げればシンプルな音になります。

また、FM シンセの世界ではオシレータの代わりに「オペレーター」という言葉も使います。 「6オペレーターシンセ」と言えば、キャリアやモジュレーターとして使えるオペレーターを 6つ搭載しているということです。 最近の FM シンセ (FM8 等) はどれをキャリアにしてどれをモジュレーターとするかを完全に自由に組み合わせることができますが、DX シリーズではいくつかのプリセットパターンから選んでいました。この組み合わせパターンを「アルゴリズム」と呼びます。

難しい理論の話をしてもきりがないので、ここではこれらの用語を覚えて実際の音を聴くところまでにしておきましょう。 モジュレーターの出力を変えた時の音の変化を確認してください。 (キャリア+モジュレーターの 2オペレータ、[キャリア周波数]:[モジュレーター周波数]= 1:1)

モジュレーター出力[小]->[大]->[小]

フィルターの変化と似ているかも知れませんが、フィルターは倍音を削る処理、FM 合成は倍音を増やす処理です。 つまりフィルターは原波形をおとなしくして FM 合成はにぎやかにするという逆方向の処理になっています。 なので、フィルターで音作りする場合は倍音を多く含む鋸波や矩形波がよく使われ、逆に倍音を作り出す FM 合成のモジュレーターとしてはシンプルなサイン波がよく使われます。

モジュレーション (エンベロープ、LFO等)

ここまでシンセ音色を決める要素を見て来ましたが、いくらこれらのパラメータを工夫したところで時間的変化を与えなければつまらない持続音にしか聞こえません。 音に時間的変化を与えることを一般的に「モジュレーション」と言います。 モジュレーションという言葉は場面によっていろいろな使われ方をしますが、ここでは広義の「音に時間的変化を与える」すなわち「シンセの構成パラメータを変化させる」という意味で使います。

パラメータを変化させるときのソースとして使える代表的なものは以下の3つです。

  • エンベロープ
  • LFO
  • コントローラー

また、変化させる対象としては主に以下のものがあります。

  • オシレーター出力レベル (Amplitude)
  • フィルター
  • ピッチ

それぞれ見ていきましょう。

鍵盤を押してからの変化をプログラム:エンベロープ

鍵盤を押してからの経過時間や出力レベルを設定してそれに従った変化を起こす仕組みをエンベロープと言います。 エンベロープの基本形は ADSR (Attack – Decay – Sustain – Release の 4パラメータで設定する) 方式のものですが、より多くのレベルとタイムを設定できたり、ループ設定が可能だったりするシンセも存在します。 オシレーター出力レベルにエンベロープを設定することで単純な持続音が減衰音に変わります。

ENV オシレーター出力レベル

ただし、同じオシレーターの仲間でも、FM シンセのモジュレーターの出力レベルを変化させた場合は、音色の変化になります。 これは先ほどの FM 合成サンプル音で聞いた通りです。

その他のモジュレーション対象についてエンベロープをかけた場合はどうなるかも確認してみましょう。 エンベロープをフィルターカットオフに対してかけるとフィルターの開き具合が変化し、音色と音量の変化になります。

ENV フィルター

エンベロープをピッチにかけると音程が変わります。

ENV ピッチ

このようにエンベロープと一口に言っても何をモジュレートするかで効果が変わります。 どこをモジュレートすればどのような効果が得られるのか理解することが大切です。

周期的な変化:LFO

LFO は低周波オシレータ (Low Frequency Oscillator)、つまり周期の長い波形をつくる発振器で、周期的な変化を作り出すことができます。 LFO の基本パラメータは波形、周期、深さです。 ここでは LFO の波形の違いがどのような効果をもたらすかを確認してみましょう。 いずれもピッチに対して LFO をかけ、LFO 波形を変えています。

LFO サイン波

LFO 鋸波

LFO 矩形波

LFO ランダム (S/H)

今回はピッチをモジュレートしていますが、エンベロープと同様、オシレータ出力レベルやフィルターをモジュレートすることもできます。

手動で変化:コントローラー

もう一つ、重要なモジュレーションソースとしてはコントローラーがあります。 リアルタイム演奏では、パラメータが割り当てられたモジュレーションホイールやスライダー/ノブ等を操作し、音を変化させることがよく行われます。 真っ先に思いつくのは、フィルターカットオフを割り当てて、フィルターを閉じたり開いたりすることです。 DAW 環境でも様々なパラメータをオートメーション機能で変化させることができます。

コントローラーにエフェクトパラメータを割り当てることも良くあります。 ディレイやリバーブのパラメータを変えて、ここぞというときに深い効果を狙ったりします。

ここまでモジュレーションソースと対象を個々に見て来ましたが、実際の音作りではこれらは組み合わせて用いられ複雑な時間変化を構成することになります。

シンセの分類

ここまでが理解できれば、次にすべきは自分のシンセにどのようなパラメータが存在して何ができるかを知ることです。 基本編の最後として世間一般のシンセ分類を簡単に説明します。

アナログ (タイプ) シンセ
主に減算で音を作り出すシンセサイザー。 使用できる波形は鋸波中心の単純な波形のみ。 波形のクセとフィルターの特性がそのままそのシンセのキャラクターとなる。 アナログはデジタルと比べると合成処理がいい加減で波形が歪んだりしているが、逆にそこが良さになる。 なので、ソフトシンセではわざわざ歪みを含んだ波形を用意していたりする。
FM 音源
主にFM合成で音を作り出すシンセサイザー。 金属っぽい響きをつくるのが得意。
PCM 音源/サンプラー
主に実際に存在する音を録音 (サンプリング) した波形を使用して音作りを行うシンセサイザー。 波形の量と質が重要となる。
倍音加算方式
多数のサイン波を加算処理して複雑な音を作るシンセサイザー。
物理モデリング
ここまでで説明したような処理ではなく、楽器が発音する物理法則に基づいた演算処理で音作りを行うシンセサイザー。 音作りにはモデルの理解が必要。 例えば、「弓を動かす速さ」とか「弓を弦にあてる強さ」のようなパラメータを調整して音作りする。

最近のシンセはハイブリッド型になっていて、単純にどのタイプと言い辛くなっていますが、ここまでの説明をきちんと理解してそれらの要素の組み合せと捉えれば何とかなると思います。 これで、あなたもシンセシストの仲間入りです! と言っても、本当に基本を理解しただけなので、いきなりシンセを自由に操るのは厳しいでしょう。 また、この記事では触れませんでしたが、各種エフェクトも音作りの大きな割合を占めます。 というわけで、次は KOMPLETE 7 にバンドルされているシンセを使った実践編をやります。


2012.11.28 追記 SoundCloud を用いてサウンドを提供するようにしました。

My Tweets (2011/05/22 – 2011/05/29)

  • rc.local 終了の画面で止まってるけど、これでアップグレード完了? 一応コンソール切替ができるのでシステムは生きているようだけど何故ここで止まる?もう放置して寝る…。
    05/29 (Sun) 02:09:43
  • Fedora アップグレード中。
    05/29 (Sun) 00:53:53
  • そうか。同じ PC でも IE と Firefox で入っている Flash Player のバージョンは異なるのね。
    05/26 (Thu) 22:28:12
  • 今も残る煙草臭い場所と言えば、練習スタジオ…。
    05/26 (Thu) 00:48:25
  • 「名前をなくした女神」ずっと続いている暗い感じが結構好き。 最後は不景気パパ達がダイナとメビウスに変身して、実はかっこいいパパだったということになって、良くわかんないけど正義は勝つ、みたいな展開にならないかな。 (なるわけない)
    05/26 (Thu) 00:46:10
  • perl expect モジュールってあるんだな。だったら tcl ベースの expect よりは perl の方が嬉しいな。
    05/25 (Wed) 08:34:40
  • というわけでベース弦張り替えなう。 明日のスタジオ練習に向けて、と言えばかっこいいけど 1年ぶりぐらいの張り替えだったりする…。
    05/24 (Tue) 21:17:35
  • オフィス移転後は帰り道に楽器屋の前を通るようになったので、気軽に弦を買ったりできる。 下手に寄り道して余計な機材を買わないように気をつけよう。
    05/24 (Tue) 21:13:25
  • 音楽関連の流れで「FL」と出てくるとついフェアライトを思い浮かべてしまう。当時は手の届かない憧れのシンセサイザーの代名詞だった。最近は復刻版が出たり iPhone アプリになったりしているらしいけど。
    05/24 (Tue) 07:27:37
  • jPlayer (jQuery の Audio/Video player) が何故かうまく動かない。手持ちの環境では IE8 だけ動いた。ハマったな、これは…。
    05/22 (Sun) 22:30:29
  • 何だかんだ言って結構いろんな知り合いが Facebook を使っている。 問題は自分の Twitter アカウントやブログを紹介するかどうか。 別に見られて困るようなことは書いていないけれど、知っている人はほとんどいないという気安さはある。
    05/22 (Sun) 10:23:32

My Tweets (2011/05/17 – 2011/05/22)

  • ブログ更新:「Fedora 14 に Oracle Database 10g Express Edition をインストール」 https://hetarena.com/archives/496 もっと前にとっとと書きあげれば良かった
    05/22 (Sun) 00:21:46
  • ブログ更新:「Apache のポート番号を変えると Permission Denied でエラーとなる件」 https://hetarena.com/archives/495
    05/22 (Sun) 00:20:02
  • 通勤で電車に乗る時間が片道 10分強に減ったのだけど、これだけしかないと車内の時間の使い方が難しい。
    05/21 (Sat) 22:43:23
  • やっぱり Cubase の仕上げミックスは「実時間で書き出す」のが正しいみたい。 VSTi によってはオートメーションの再生が怪しくなる。
    05/21 (Sat) 22:35:36
  • シューゲイザーとシュタゲが自分の中でごっちゃ。
    05/21 (Sat) 10:05:12
  • そう言えば、タモリ倶楽部のマイクの回を録画してあるのだけれど、まだ見ていなかった。
    05/21 (Sat) 07:37:01
  • 息子の受験を経験したということもあって「名前をなくした女神」をつい見てしまう。 りょう、年を重ねた今の方が素敵。 ちなみに私の周囲では仲良くなった親同士はファーストネームで呼んでいて名前はなくさない。
    05/17 (Tue) 23:00:40
  • 個人的経験から言うと退職すると決めた人を説得するのは無駄だと思う。 優秀な人の決心は引っ繰り返らないし、逆にそこで引っ繰り返る程度の決意しかできていないならばその程度の人材。 「引き留められなかった」と気にする人もいるかも知れないけど、認められているからこそということもある。
    05/17 (Tue) 21:19:29
  • 変な時間に起きてしまった。 言うことをきかない子供たちを寝かしつける前に自分が寝ていたようだ。
    05/17 (Tue) 02:57:26

Fedora 14 に Oracle Database 10g Express Edition をインストール

Fedora 15 のリリースが目前ですし、11g Express Edition のベータも提供され始めているので、賞味期限切れとなる前に書いておきます。

インストールガイドに従って (といってもダウンロードして rpm を実行するだけですが) Fedora 14 に Oracle 10g Express Edition をインストールすると以下のようにエラーとなります。

# rpm -ihv oracle-xe-univ-10.2.0.1-1.0.i386.rpm
Preparing...                ########################################### [100%]
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
error: %pre(oracle-xe-univ-10.2.0.1-1.0.i386) scriptlet failed, exit status 255
error:   install: %pre scriptlet failed (2), skipping oracle-xe-univ-10.2.0.1-1.0

ここでメゲずに再度実行すると無事インストールが完了します。 これは sysctl コマンドの挙動が以前と変わったためのようで、初回実行時に /etc/sysctl.conf が書き換えられ、2度めは以下の様に成功するのです。 こちらのやりとりの後半でこの情報を得ました。

# rpm -ihv oracle-xe-univ-10.2.0.1-1.0.i386.rpm
Preparing...                ########################################### [100%]
1:oracle-xe-univ         ########################################### [100%]
Executing Post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to
configure the database.

上の出力にもあるように、以下のコマンドを続けて実行すれば準備オッケーです。

# /etc/init.d/oracle-xe configure