3.音楽アプリ開発

JUCEでVSTプラグイン制作メモ(Window版)

おとわび神楽鈴VST版を作成しました。

作成にあたっては、音楽制作「JUCE」ライブラリを使用、公式サンプルのAUv3Synthを参考にさせていただきました。

開発に取り組む上でひっかかったポイント(Windows版)をメモしておきます。(macでひっかかったところは以前の記事に記載しました。)

VST作ってみようかなーなんて思われた方の参考になれば幸いです。

その1:Visual Studioを持っていない

JUCEを使用した開発では、専用ツールのprojucer.exeと(windowsであればVisual Studio、macであればXcode)を併用して開発を行うようになっています。

Windows用の開発ツールVisual Studio持ってないけど作れるのかな?と思いましたが、無料で利用可能なVisual Studio 2017 Communityエディションで大丈夫でした。
Visual Studioインストール手順のページからダウンロード・インストールできました。

使用したWindowsタブレットが空き容量15GBしかありませんでしたが、必要なツールのみに絞ったら10GBくらいでしたのでどうにか乗り切りました。

タブレットのメモリも2GBしかありませんでしたが、ちゃんと動きました。(ただしとんでもなく鈍足です)

その2:32bitマシンではJUCE(projucer.exe)が起動しない

JUCE公式サイトからダウンロードできるprojucer.exeは64bit版のため、32bit版OSでは起動することができません。

がしかし、JUCEにはソースコードが付属しているため、Visual Studioをインストールしたマシンであればソースコードからコンパイルしてprojuce.exeの32bit版を作成することが可能です。(ソースコードはJUCE/extras/Projucer/Builds内にあります。)

かくして無事にprojuce.exeの32bit版を作成、起動することができるようになりました。

・参考:Is juce available for 32 bit architecture

その3:「C1060 ヒープの領域を使い果たしました」エラー

macでうまくいったソースコードをそのままWindowのほうに持って行ったのですが、Visual Studioでコンパイルすると「C1060 ヒープの領域を使い果たしました」という残念なエラーが発生してしまいました。

wavファイルをリソースファイルとして埋め込んだのですが、このファイルサイズがある程度以上だと上記のエラーが発生してしまうそうです。(今回エラーを吐いたファイルは10MB以上あるものだけでした。)

おとわび神楽鈴Kontakt版では96kHzで録音したファイルを使用していましたが、そのうちの「ロング」音源は上記制限に引っかかったため、ロングについては仕方なく音質を下げたファイルを使用するようにしました。

macでは大丈夫だったのに…

・参考: Compiling “big” files with Visual Studio

スポンサードリンク

JUCEでVST/AUプラグイン制作はじめました

Kontakt用ライブラリとして作成したおとわび神楽鈴とかですが、VSTプラグインとして使えたら便利なんじゃなかろうかとふと思い、macでVSTを作る方法を調べてみたところ、JUCEというライブラリを使用すると、1つのソースコードでVSTだけではなくて、Logicで使えるAU(AudioUnit)プラグインも作れちゃうとのこと。素敵!

ということで、JUCEの日本語解説書を早速購入し、プラグイン制作に取り組んでみました。

・参考:JUCE Frameworkを使ってVST/AudioUnitプラグインを作る Mac編 -HelloWorldの巻-

流れとしては、JUCEでリソースやVST/AUの設定を行い、XCodeでビルドする、という具合になっています。ところどころひっかかったポイントもあったのですが(後述)、小一時間でGUI(といってもKONTAKT版の画像を貼っただけ)付きのプラグインファイルができ、さらに小一時間でMIDIイベントを受け取ってなんか音が鳴る、というところまでたどり着きました!

なんか音は鳴るようになったのですが、オーディオの取り扱いがまだよく分からなくてとりあえずサンプルソースコードを切って貼ってした状態になっているためか、何度か鳴らしているとDAWごと落ちるという珍仕様なので、これからがんばって安定して動かせるようにしたいなと思います。

ひっかかったポイント

開発に取り組む上でひっかかったポイントを記載しておきます。

その1:指定のメニューが見つからない
最新のJUCEのバージョンは5、本&参考サイトのJUCEのバージョンが4だったため、地味にメニューの場所が変わったりアイコンが変わったり文言が変わったりしていて、本と参考サイトに記載されている指定のメニューが見つからず迷子に…。どうにかこうにか「これかな???」というものを探して乗り切りました。

その2:作ってはみたもののVST/AUエフェクト
その1の問題を乗り越えて無事にビルドできたのですが、出来上がったものを見るとVST InstrumentではなくてVSTエフェクトになっていました。私が作りたいのはVSTiなのに!
本はVSTエフェクトのサンプルだったため、ネット検索で少々調べてみましたが、まあ見つかる文献は英語サイトばかり。英語力の弱さもあっていまいちよく分からず、もしかしてこれVSTエフェクトしか作れないのかしらと諦めかけていたところ、JUCEのオプション設定の中に「Is a Synth」のチェックが。こちらをONにすると、無事VSTiとしてビルドされました。よかった!!

---

引き続き、VST/AUが無事に出来上がるよう取り組んでいきたいと思います!!

スポンサードリンク

オンライン作曲アプリ「Web Piano Roll!!」にステップ入力機能がつきました

先月まで忙しかった&また忙しくなりそうなので、今のうちにやってみたかったことをやってみよう月間をどうにかまだ送っております。
ということで、勢いで作ってみたオンライン作曲アプリ「Web Piano Roll!!」β版をバージョンアップしました。

相変わらず、Chrome、Firefoxで主に確認しています。

version 0.2(β版) 主な変更点

・ステップ入力機能
 →メイン画面右上「Step」ボタンより、ステップ入力機能が使用できるようになりました。
・スペースキーによる再生・停止機能
・ピアノロールタテ軸・ヨコ軸の拡大縮小機能
 →ステップ入力しようとしたところ、拡大縮小が欲しくなったのでつけました。
・MIDIエクスポート機能の修正
 →複数トラックの書き出しが正常に行えない場合があった問題を対応しています。

キーボードでステップ入力できるようになったので、入力がだいぶ速く行えるようになりました。
キーボードがないタブレットなど用の機能として、画面上の鍵盤を押しても入力できるようにしています。
その代わり動作が若干重くなった感があります…。
結構無理矢理実装しているところがありますので、ちょこちょこ見直していきたいところです。

ヘルプページを書き直さないとなあ…と思っているところです。

動作が妙なところなどありましたらどうぞお知らせください!!

スポンサードリンク

オンライン作曲アプリ「Web Piano Roll!!」β版を公開しました。

先月まで忙しかった&また忙しくなりそうなので、今のうちにやってみたかったことをやってみよう月間を送っております。
ということで、勢いで作ってみたオンライン作曲アプリ「Web Piano Roll!!」β版を公開しました!

version 0.0(β版) 主な機能

・ピアノロール機能(今のところ4小節)
・Web Audio APIによる再生機能
・データファイルによる保存・読み込み機能
・MIDIエクスポート機能

各ブラウザの対応状況

各ブラウザの対応状況はこんな感じです。

・推奨ブラウザ:PC/mac版Chrome、PC/mac版Firefox
主にmac版ChromeとFirefoxで動作検証しました。
上に記載している「主な機能」が一通り動きますので、よろしければ使ってみてください!!
動きがおかしいところなどありましたらtwitter@fumikomidoriまでお寄せください。

・一部機能制限ありブラウザ(ファイル保存機能以外はだいたい動きます):mac/iOS版Safari
mac/iiPad版Safariで動作検証しました。
データファイルとMIDIファイルの保存機能以外は普通に動作します。
データファイル内のテキストデータを保存しておけば、PC版にテキストデータを送ってMIDIエクスポート…みたいな使用方法が可能です。

・だいたい動きそうなブラウザ:Android版Chrome
だいぶ古いバージョンのAndroid版Chromeで動かしてみました。
あまり細かく確認できていませんが、だいたい動きそうです。

・ほぼほぼまともに動かないブラウザ:IE、edge
画面を開いた時点でsvgファイルに対応していなくて画面がまともに表示されないので、もう諦めました。

今後こんな対応をしたらいいかもしれないと思っていること

いつやるか、とかはまったくの未定です…。
・楽曲の小節数を増減する機能
・ピアノロールの拡大縮小機能
・3拍子対応
・ドラムトラック対応

スポンサードリンク

サイトで使用しているhtml5 audio playerを新しくしました

サイトで使用しているhtml5 audio playerを新しくしました。
もともと使用していたものがpjaxでうまく動かない部分があるので、新しいものに順次置き換えていく予定です。
いろいろ探してみたのですが、結局自作audio playerです。

一応下記の環境で確認しました。
・mac版chrome
・mac版firefox
・mac版safari
・windows版edge
・iOS 9.2(音量調整に対応していないので音量調整非表示です)
・Android 5.1(音量調整に対応していないので音量調整非表示です)

うまく動かない…という環境があればどうぞお知らせください!!

20160403_01.png

スポンサードリンク
1 / 41234

音楽素材お品書き

オンライン作曲アプリ

Web Piano Roll!!

ブログ記事お品書き

スポンサードリンク