Category: 音楽

Maxでvstプラグインを書く

どうやら、Max6.1で、Genに(Vstプラグインとかを書くときに使える)Cのコードを吐き出す機能が追加されたようです。

僕の記憶では、確かMaxの4(Max/MSPと呼ばれてた時代)のときには、vstを吐き出す機能があったと思うのだけれど、5,6でなくなっていました。それが復活したと。

なお、この記事は既にC++でvstプラグインを書いたことがある人を対象にしています。あんまりイメージがつかめていないひとは、こことかを読むと良いと思います。

 

手順は、Cycling’74のwikiに乗っている通りですが、解説します。僕はwinユーザーなので、VisualStudioを使ってコンパイルする場合で書きます。

http://cycling74.com/wiki/index.php?title=Gen_Code_Export_VST

 

①Maxを6.1にアップグレードする

上にもかきましたが、Max6.1じゃないとこの機能は使えません。あと当たり前ですが、Genも買ってないとだめ。

 

②コンパイル環境を入手する

vstプラグインを書く人なら大丈夫だとは思いますが、XcodeもしくはVisualStudioの2010以降が必要。(僕はVS2012で試しました。)

 

③SteinbergからVST2.4のSDKを落とす

http://www.steinberg.net/en/company/developer.html

から3rd Party Developer登録をして、SDKを入手します。Genのexportcode機能はVST2.4までしか対応してなくて3.x以降は未対応なので注意。

 

④Max上で,gen~の中にvstプラグインに吐き出したい処理を書く

 

⑤作ったgen~オブジェクトにexportcodeメッセージを送る

この辺はMax上でgen~のヘルプを読んでも良いかもですね。

メッセージを送ると、gen_exported.cppとgen_exported.hというファイルが生成されます。

 

⑥wikiからサンプルコードを落とす

http://cycling74.com/wiki/index.php?title=Gen_Code_Export_VST

からMyVSTPlugin.zipをダウンロードします。

 

⑦落としたサンプルコードのプロジェクトを開く

winの場合はVS2010用のプロジェクトが用意されてますが、VS2012で開いて、それ用にコンバートしてしまっても大丈夫みたいです。

開いたらリソースに、先程落としたVST2.4のSDK内のvstsdk2.4\public.sdk\source\vst2.xの中身を加えます。ここは普通にC++で直接vstプラグインを書く時と同じですね。

さらに、さっきgenでexportした2つのファイルを、サンプルコードのフォルダにある同名ファイルに上書きします。

 

⑧コンパイル

コンパイルします。するとdllが吐き出されます。

動きます。ヽ(‘ω’)ノ三ヽ(‘ω’)ノ

普通にVS2012でvstプラグインを書くときは、プロジェクトの設定とかdll吐き出すときの設定をしないといけないですが、今回はサンプルコードを改造する形で作るのでそのへんは必要ないです。すばらしい└( ‘ω’)┘

 

 

まとめ

音声処理を行う部分を、genで吐き出すことができる感じです。いきなりdllが吐き出されるわけではない。
ただそれでも十分有用なので、max6.1+genを持っているvstプラグイン開発者の人は、使ってみると面白いと思います。

とにかく、Maxでvstプラグイン書けるって、すごいことです。
実際にどんな音がでるのか確かめながらパッチを作っていって、完成したらそれがそのままCのコードになるんだからすごい。

手で書くときは、いちいちコードを書き換えて→コンパイルして→聴いて確かめて→ってことを繰り返さないといけないわけですからめっちゃめんどいわけです。

 

まだこの機能はベータ版らしいですが、十分使えます。僕も折角持っているので、使っていこうと思います。

 

だいぶ雑な感じでしたが、おしまい。

 

※余談ですが、Max6.1の日本語化パッチが出てるっぽいです。
https://www.mi7.co.jp/products/cycling74/downloads/
6.0は日本語から英語にもどすのがファイル操作とかしなくちゃいけなくてちょっと面倒でしたが、6.1では楽になってます。

SIGMUS 2013 と Max Conferanceに行ってきました。

先日、SIGMUS(音楽情報科学研究会)とMax Conferanceに行ってきました。
色々と面白い話が聞けたのでレポート。

SIGMUS 2013

logo20-s2

ご存知のかたも多いと思いますが、今回のSIGMUSシンポジウムは開催100回目でした。大分オープンな感じだったので、3日目の午後の招待講演からしか行けなかったんですが、遊びに行ってきました。

正直な所、細かい話は下のサイトのレポートのほうが良いので、そちらを読むと良いと思います。

http://slashdot.jp/~aito

僕が聞いてきたのは、企業の方を外部から招いての講演でした。ちょくちょく紹介。

 

Singer Song Writerの話(株式会社インターネット)

Singer Song Writerって、割と歴史あるソフトなんですね(感想はそれだけか。)
既に出ていた他のDAWソフトと差別化を図るために、自動で伴奏とかを作ってくれるところを重視してやってきました、みたいな話。コードを指定するとそれにあわせて伴奏を作ってくれるっぽいです。でもCubase7で同じの実装されてたよね……これからどう戦っていくんでしょうか。

 

ヤマハが開発してきたシンセの話(ヤマハ)

FMシンセの開発の話だとか。エレクトーンも、昔はシンセとして開発されたものだったとか。
出来たばっかりのシンセをStievie Wonderがさっそく使って曲を作った話だとか。
(かの有名なIsn’t She LovelyはYAMAHAが新しくシンセを作ったとききつけて、それで早速作曲した曲だそうな。)
ミクのデザインはDX7をもとにしているだとか。(このへんは割と有名かしら。)

研究とからめての話では、スタンフォード大学が開発したFM音源の理論をヤマハが買い取ってから、実際の製品化に8年くらいかかったみたいな話もありました。製品化には時間がかかるのね。まぁ、逆に言えば今の最先端の研究が10年後、製品化されるっていうことになるのかもしれませんね。

 

MaxとGenの話(Cycling’74)

Cycling’74のCEOが来日して、直々に講演してました。全部英語でした( ˙꒳˙​)◞⁽˙³˙⁾”
Maxで作ったパッチコードを、Genを使うことでCのコードに書き出す話、Panda board用のコードも吐き出せてそれで実際に動かす話とか。

具体的には、gen~オブジェクトにexportcodeメッセージを送ることで、vstプラグインで使えるコード(cppとヘッダファイル)を書き出せるみたいです。最近、C++でvstプラグインを書いたりしていますが、こっちの方法が楽そうだ…
(ということで、やってみた記事はこちら。)

この機能は、6月にリリースされたMax6.1以降で使える機能で、まだベータ版らしいですが、十分有用です。

 

FF14のサウンド周りの話(スクウェア・エニックス)

最近FF14出ましたね。FF14のサウンドプログラマの人の講演で、ゲームの中での音周りのはなし。
組み込みゲームでは、使えるリソース(CPU時間とか)が限られているので、音にはあんまり処理能力を割けない。やっぱり描画優先なので、音はつらい…一世代前は、音の処理(つまりDSPとか)は専用のチップでやっていたけれど、今はソフトでやっている。CPUの処理能力の、5パーセント以下でやれみたいなことを言われているのでとても大変。とかとか。

使えるメモリも限られていて、BGMとかもストリーミングで再生する。でもそれでもつらいので、再生するデータ自体も高圧縮にして節約する。楽曲は128kbps、声とかは96kbps、効果音は36kbpsとかで圧縮しているらしい……高画質でも、低音質なのね、、

処理時間をあまり食わないでやらないといけないので、エフェクトもあまりかけられない。かけるときは、対象を1つにまとめた後にかける。とか。パン振りまわりのはなしとか。

最近ではBGMの再生とかはグラニュラーで多少インタラクティブになっている、らしい。

 

12音解析の話(SONY)

けっこう面白かった。

音楽の体験の仕方が、ちょっと変わっている。Active(演奏者)とPassive(リスナー)の間にいる人達が、増えているのではないか。新音楽体験領域と呼んでいる。semi-active。たとえば、DJさんとかそういう人たち。そこを狙ってアプリなり何なりを作る。

SONYの12音解析技術の紹介。けっこう精度が高くて驚いた。
テンポ、曲のキー、コードを自動判別。ここからさらに、コードからサビとかA,Bを判別、全体的なムード(明るいか、暗いか、とか色々)を判別、まとめてメタデータとして保持する。既存の曲に対してこうやって全部解析を行って、蓄積された膨大な量のメタデータを使っていろんなソフトウェアを作りました、という話。

処理には結構なマシンパワーが必要だけど、端末側でやるんではなく、クラウドに投げてしまえば大丈夫。

将来的に、自分の曲とかもSONYのサーバーに投げて、メタデータ返してくれるようになったら面白い。

 

ざっとですが、なかなか興味深かったです。二日目も行ければよかったんだけど、まぁ仕方ない;

 

Max Conferance

max_conference

行ってきましたよ。昭和音大でやっていました。新百合ヶ丘なので、ちと遠かったですが。
こちらは講演というよりは、実演メインでした。細かく紹介するのは冗長なので、まとめると、

 

*Maxはプロトタイピングに適している

KORGのカオシレーターとかの商品開発/企画をした人の講演がありました。自分の考えた製品のデモ/プレゼンをするために、Maxでプロトタイプを作ったそうです。言葉での説明は難しいが、作ってみて見せると、あ、いいじゃん となる。
実際に製品の案がでて、どれがよいか比較検討するときにもMaxを使っているらしいです。

Genとかもでて、益々こういう側面は強くなっていきそう。

 

*MaxとJavascriptを組み合わせられる

書きやすい方で書いて組み合わせられるので便利。ランタイムで動かせるので、実務にも使えるよーみたいな話。

 

*MIRAの話

タブレットとMax6を連携させることのできるツール、MIRAの紹介。obj-Cでコード書く必要がないので、楽ちんですね

 

*Maxでもいい音出せるよ

めちゃくちゃこだわると、いい音が出せるよという実演がありました。Katsuhiro Chibaさんの講演。
デモ演奏はとても良い音楽を生成してました。いいねー

 

 

こんなかんじでした。次の記事でMaxを使ってvstを吐くのをやってみたのを書いているので、そちらもどうぞ。

【C84】夏コミ情報

だいたい、夏コミの情報が揃ってきたようなので。今回は僕の個人サークル(Prhyzmica)は落選ですが、それ以外で3つくらい出てます。

全部三日目です。

 

1.Music Mix Organization(三日目あ-37b)

いつもどおり。今年、MMOは壁なんですよ! すごい! だからといって別にいきなり壁クォリティになったりはしませんが()、楽しんで作ったので是非✌(‘ω’)
今回はジャンル自由だったので、プログレと、MMOではおそらく誰も作らないであろうSmooth Jazzで1曲ずつ作りました。
特設まだっぽいですが、とりあえずクロスフェードはこちら

https://soundcloud.com/mono_k4/one_crossfadesample

 

2.Lost Garden(三日目S-15b)

「Everlasting Wonderland」 会場頒布価格:1000円
http://lost-garden.info/discography/everlasting-wonderland.php

いつもお世話になっているLost Gardenさんでゲストさせて頂けることになり、最後の1曲をお手伝いしました。
クラブ・ミュージックなアルバムです。プログレ/ハウス寄り。

特設サイトにクロスフェードあるので、きいてみてください!

 

3.Neetpia(三日目U-20a)

「東方蟒酒宴~Age of Ethanols~Plus & とうほう☆ストラテジー~LotusCraft~SecondSeason!」 会場頒布価格:500円

僕が全曲BGMを担当した、東方二次創作RTS 「東方蟒酒宴」と「とうほう☆ストラテジー」のアペンドディスクが出るようです。蟒酒宴のユニット拡張とか、とーすとのBGM全集もついてくるようです。(詳しく知らない)
http://neetpia.sakura.ne.jp/works/BoushuenToustAppend/index.html

 

僕が作った東方アレンジ16曲が500円で聴けます!!!!!!!!!!お得です!!!!!!!!!!!!

って宣伝した割に蟒酒宴のサウンドトラック(20曲入り500円)はマジで売れなかったんですが、きっとサントラっていうのがあかんかったんだよ。今回はアペンドだからきっとだいじょうぶなんだよ。

好き勝手に作ってどれも面白い出来に仕上がってるので、ゲームに興味がなくても(!)ぜひ∩(>◡<*)∩

IK MultimediaのTotal Workstation XLを買ってしまった

安かったので、つい。

島村楽器で14kだったのでつい買ってしまいました。

http://store.shimamura.co.jp/shop/g/g8025813429031/

誕生日が近くて、久しぶりに自分のほしい物リストを見ていたら、5kくらい値下がりしてたのでつい。Amazonはこういうところ巧いなぁと本当に思います・・・くやしい・・・(。ŏ﹏ŏ)

ちょっとトラブルもありました。すぐに届いたことは届いたんですが、あけてみたら入っているはずのインストールCDが一枚足りず、代わりに同じディスクが2枚、、、
一応すぐにメールを打って足りないディスクを手配してもらえたので、現在は解決してます。

島村楽器さん、対応がはやくてメール打った翌日の朝に届きました。さすが。まぁ、そもそも不良品じゃないのが一番良いんですが;

実はTotal Workstationを買うのは2回目です。前に購入したときは中古(=すでにシリアル使用済み)が当たってしまって、泣く泣く返品したのでした。その時よりは安く買えたので、まぁ得したのかなぁ。

さて、中身についてですが、まぁ普通です。

IKの音源は単体で聞くとチープなのだけど、特徴を捉えていて、飽和したミックスのなかでも目立って聞こえてくれるので役に立ちます。全部IKので作ると全体的に残念な感じになるけど。。
クラブ系の曲を作るときの生音パートとして活躍します。チープさが逆にいいというか。電子楽器で固めた中にEWのホーン・セクションとか突っ込んだらリアルすぎて浮いてしまうので、こういうのも必要なのです。いや、そもそも浮く以前に埋もれて表に出てきてくれないか。
(ちなみに、昔はやってました。)

 

そういえば、例大祭

そういえば、今回の例大祭で頒布される「ぱちぇコンウォーズ」というゲームのBGMをちょっとお手伝いしてるのですが、そのBGMはIKの音源をメインに使って作っています。
ぱちぇコンウォーズの元ネタであるファミコンウォーズがNDSのゲームなのですが、SampletankとかSampleTronとかあのへんの音源の中にけっこうNDSの音源と似たものがあったので。特にSampletronはとてもそれっぽいです。

柄になく、レトロ感を重視して作ってみたので、気になる方はどうぞ。特設サイトの方には体験版も置いてあるみたいです。→http://icyas.sakura.ne.jp/pcw/game/

 

あ、例大祭、今回はMMOの方で出ます。新譜はありませんがよかったら遊びに来て下さいヾ(๑╹◡╹)ノ"

スペースは D-50b "Music Mix Organization"です。

ではではー。

Vocaloid Editor for Cubase 買いました(更新済み)

(2013.04.08 書き換えました。やっぱりヘルプは読まんとあかんですね(;゙゚’ω゚’):)

ボカキュー買ったので簡単にレビューします。

前提として、僕はVOCALOID 3のエディタをすでに持っていて、Cubaseは7.03を使ってます。

 

ボカキューのいいところ

・別にエディターを起動する必要がない。
・テンポトラックや転調トラックの影響を受ける。
・作った後に一箇所だけ音を変える、みたいなことがやりやすい。あとは、ちょっとだけ喋らせたいときにも便利そう。
・エフェクトをすぐかけられる
・ピッチシフト等のエクスプレッションをCubaseのMIDIエディターの方で書ける。(ただし、録音しながらかけると遅延する)

ボカキューの悪いところ

・ボカキューのトラックがあると、再生が遅延する。(理由は後ろに書きます)
・Vocaloid Editorとボカキューは別物なので、設定は引き継がれない
・midiトラックをVocaloid用に変換すると、本当に(Ctrl+Zでは)元に戻せない。プロジェクト再読み込みか、うっかりセーブしてしまったらMIDIとして書きだして再読み込み…

 

まとめ。

僕の場合、結構再生を多用するユーザーなので、ラグがあるのは結構ストレスになりました。ボカキューは本当に声をリアルタイムで合成しているらしく、そのための時間が必要ということのようです。
ただし、このラグの長さはボカキュー側の設定である程度短くすることは可能だし、頻繁にフリーズしていく感じで使えば解決は一応出来ます。
また、VocaloidエディターのUIをなるべく使わずにミクの調整をできるようになったというのも嬉しい点。嬉しいというか、ボカロエディタがそもそもクソすぎるだけなので最初からこうあって欲しいけど
あと、元々の記事でvsqの書き出しが出来ない!とか騒いでいましたが、vsqxの書き出しは普通に書き出しメニューから行えるようです…。(もちろん読み込みも。)
これがわかったので、ボカキューはCubaseユーザーにとっては普通のVocaloid Editorの上位互換だと思って良いです。Cubaseユーザーならこちらを買うと良いと思います。

なお、Cubaseを最近買った人やVocaloid Editor 3をすでに持っている人はちょっとだけ安く買える模様。でももっと安くていいと思う(。ŏ﹏ŏ)

 

おしまい。

Cubase7 同時に選択されるバグ解決しました

この前の記事(http://blog.prhyzmica.com/?p=44)で紹介したバグが解決しました。

そもそもどんなバグだったか

MIDIイベントを選択するとき、他のトラックにも同じ長さのMIDIイベントが存在すると、そのイベントも同時に選択されてしまうバグ。
一旦同じ長さにしてしまうと、それ以降個別に操作を行えなくなります。
運が良ければ、片方の横に空のイベントを作り、のりツールで結合して長さをかえてやってうまくいくこともありますが、かなりしんどい。

 

原因/解決方法

結論としては、Cubase 7.02に更新したあと、設定ファイルの初期化をしていなかったのが原因っぽいです。ただし、初期化しても既存のプロジェクトを開いたときは同じ症状が出るので注意。

前のバージョンで作ったプロジェクトを使うときは、

①古いプロジェクトを開き、すべてのイベントを選択
②新しくプロジェクトを作成し、そこにペースト
③セーブ

とかやるとうまくいきました。ただし、MIDIイベント以外はほとんどの設定が引き継がれません。ミックス済みのプロジェクトに関しては、多分諦めたほうが良いです・・・

 

初期設定ファイルのリセットの方法は、Steinbergの公式に載ってます。 http://www.distribution-steinberg.jp/support/faq/jp/ja/article/11/12/14/14/1047/
ただしこれをやると、
・キーコマンド(ショートカット/マクロ)
・色設定
・リモートデバイスのアサイン設定
・追加のインストゥルメント参照場所
・サンプルのライブラリのリスト

とか、根こそぎ吹っ飛ぶので頑張ってください。

 

僕はこの辺結構細かく設定して最適化していたので、設定しなおしは気が重い……アップデートした時に設定ファイルの初期化をしてなかったのもこれが原因なのですよね。

まぁ、とりあえずバグは治ったので、引き続き頑張ります。 ただし今度はUIが重くなって選択の時にラグが出るようになりました。

 

またアップデートが来るのか・・・・・・・・・・・・・・・

 

 

泣きそう(´;ω;`)

Cubase7で既存のプロジェクトを読み込んだ時、一部のMIDIイベントを選択すると他のMIDIイベントが同時に選択されてしまうバグ

グループ化しているわけでもないのに一緒に選択されてしまう。そのままだと別々にいじることもできず激しく不便。
Cubase7.02は出たものの、相変わらずバグは多いです…。

 

一時的な解決方法

①MIDI ⇛ パートを分解 でチャンネルを分割

新しくMIDIトラックが生成されて不便だけど分割はできる。

 

②Altを使ったMIDIイベントのコピー

コピーされたイベントは分割されている。

 

そもそもこのバグ、altキーを使ったコピー方法でコピーしたMIDIイベントに対して発生しているように思える。
MIDIイベントの名前がイベントごとではなくてトラックの名前に依存するようになったのにもなにか関係していそう。
何にせよ早く何とかなってほしいものです。

 

※2013.03.19 追記

コピーしたイベントだけに適用されるわけではないようだ。バグの本質はクリック時にあり、

「MIDIイベントを選択するとき、他のトラックにある同じ長さの他のMIDIイベントが同時に選択される」

というバグのようだ。内部じゃなくてUIのバグか・・・まぁどっちにしろ詰んでる。

Cubase7にアップデートすべきでない5つの理由

まずはじめに結論を言うと、僕はCubase7 64bitをWin7 64bitでつかっているのだけど、Cubase6.5から比べて格段に安定性が低下しているので、特に物好きの人でなければアップデートするべきではないです。

 

1. バグが多すぎる。

しょっちゅうハングする。主にGUIでのバグが多い。MixConsoleが小さくなりすぎていて元に戻せなかったり、メニューを開いたまま別の場所を選択するとマウスクリックを受け付けなくなったり。。。
普通に使っていてすぐに遭遇するバグなので、圧倒的に動作テストが足りていない模様。

 

2. 機能追加があんまりたいしたことない。

コードトラックは魅力的で面白い機能なのだけど、今日まで一度も使ったことがない。Cubase6→6.5で追加されたシンセや昨日は面白いものが多くて即戦力になったけれど、7ではそういうものがない。
MixConsoleはサイズを変えられるようになったのは評価できるが、それ以外の部分が残念・・・
そんなことよりバグの多さが目立つ。

 

3. インターフェースは格好良くなったが、使いにくくなった。

どこでも耳にタコができるほど聞く「悪いデザイン」の王道。EQのビジュアライザーが追加されたけど、そのせいで処理落ち・・・

 

4. バグが多い

 

5.  バグが多い。

 

信号処理や過負荷で落ちるのはスペックとかの問題もあるし、DAWの宿命だと思うから仕方ないとは思う。でも、GUIのバグは勘弁して欲しい。こういうバグって実に初歩的だと思うの…
僕はCubase4からのユーザーで、ずっと出てすぐアップデートをしてきた敬虔なSteinberg信者だけど、今回はさすがに擁護できない。

優秀な開発者がStudioOneの開発とかに行っちゃったのも関係在るのかしら。

とりあえず、1月上旬のバグフィックスもいまだ来ていないし、Cubaseユーザーの方は、とりあえず7.5とかになるまで待ったほうが良いです。

6.5はとても安定していて良いソフトだよ。

 

おしまい。

 

あともう一つ納得いかないのが、Vocalod3 for Cubaseが7でないと動かない点。まだ買ってませんが;

Jack を使ってサウンドのルーティングをする

最近、MaxとProcessingを使ってVJソフトを作っているのだけど(このソフトについては追々)、Maxが見るオーディオソースに、Traktorのオーディオアウトを指定したい、みたいなことが起きた。

Macであれば、サウンドルーティングはかなり簡単で、Soundflowerを使えばいいのだけど、Windowsで同じようなソフトウェアがなかなか見つからない。ステレオミックスが目的であればニコ生配信とかの需要があって色々でてくるんだけど、オーディオアウトをインに繋ぎたいみたいなことまでできるのが少ない…。

まぁ、結論として「JACK (jack audio connection kit)」っていうので同じようなことができるっぽいです。

http://jackaudio.org/

jack_connectionjack_panel

ちなみにいま作っている奴のMax側はこんな感じデス

vekei_sender

Unix系OSでAsio対応のオーディオ・インターフェースを使いたい時にJACKを使うとうまくいく、みたいな話は前に聞いたことがあって、てっきりUnix系OS専用かと思っていたけどどうやらWindowsでも動くようです。Winで動かすときはちょっと弄る必要があるんだけど、僕のWindows7 64bitで普通に動きました。
ショートカットアイコンを作って、パラメータで

-R -S -d portaudio -d “ASIO::ASIO4ALL v2”

とか指定すればおk.

http://jackaudio.org/jack_on_windows

オーディオドライバではなくて、オーディオサーバーデーモン、つまりソフトウェアなので何らかのオーディオドライバを使います。外付けか、それがなければAsio4ALLを使えばいいね。

あと、色々試していたんだけど、foobarとの相性はよろしくないようです。音が出ないでタイムアウトする…、今のところ解決策はないみたい。

おわり

——
新譜はとらのあなで委託予定なのでまったりお待ちください