Faustで作成したFM音源を4オペ化&アルゴリズムの切替を可能にする

前回の記事でJUCEでFM音源をAudioUnit化してGarageBandで音が出ることを確認しましたが、やっぱり2オペレータじゃそれっぽい音が出ないよなー、ということで、今回は4オペレータにしてアルゴリズムも切り替えられるようにしていきます。

Continue reading “Faustで作成したFM音源を4オペ化&アルゴリズムの切替を可能にする”

Faustで作成したFM音源をJUCE経由でソフトシンセにする

以前の記事でFaustを使って2opのFM音源を作りましたが、周波数をスライダーを手でいじって音程が変わるというのはやっぱりちょっと寂しい…ということで、Audio Unitによるソフトウェア音源として利用できるようにします。MacであればGarageBandとかのDAWで読み込ませれば、鍵盤叩いて音を鳴らせるはず…。

Continue reading “Faustで作成したFM音源をJUCE経由でソフトシンセにする”

KORG opsixというFMシンセが発売されてた

Faustで音色をいじっていると、流石にMIDIキーボードが欲しくなってきたのでネットで調べていたのですが、KORGからopsixという名前のFMシンセが昨年発売されているのを知りました。DTMから遠ざかっているので全く気づかず。これ、調べてみたら面白そうなんです。

Continue reading “KORG opsixというFMシンセが発売されてた”

FaustでFM音源の実装を試す

Faustとは

Faust (Functional Audio Stream)は、サウンド合成とオーディオ処理のための関数型プログラミング言語です(サイトトップページの直訳)。ウェブ上のIDEで気楽に試せるほか、そのコードをC言語などに出力できるようです。

Qiitaのオーディオプログラミング言語Advent Calendar 2020という素晴らしい記事群を拝見し、何かいじってみたいなと思っていたのですが、ビジュアルプログラミング系のものよりはこういった言語の方が性に合ってそうなのと、環境構築せずにすぐにいじれそうなので、試してみることにしました。関数型言語はほとんど触ったことがないのですが。

Continue reading “FaustでFM音源の実装を試す”

S98Player for iPhone 1.2.2で追加された機能について

このブログへの投稿もかなり久しぶりですが、S98Player for iPhone 1.2.2の機能の一つがきちんとした説明が必要のため新記事を起こしました。

S98Player for iPhone 1.2.2含むバージョン1.2の主な新機能は以下のとおりです。

  • PMDファイルの再生に対応 (1.2)
  • iOS 7以降のUIに対応 (1.2)
  • フォルダごとの音量バランスと曲名の設定 (1.2.2)

最下段のフォルダごとの設定に関して、以下で説明します。

Continue reading “S98Player for iPhone 1.2.2で追加された機能について”

S98Player for iPhone 1.0.1 リリースされました

表題の通り、S98Player for iPhone 1.0.1のリリースです。今回は審査にちょっと時間がかかった感じです。

内容は主にバグフィックスです。

  • フェードアウト中に再生を止めて再び再生を開始すると一曲スキップされてしまう問題
  • 一部の曲が再生されずに再生画面のまま固まってしまう問題
  • 一部の曲が曲リストに出てきた瞬間にクラッシュしてしまう問題
  • 再生時間の計算がまれに誤る問題
  • イヤホンが再生中に抜けて自動停止する際に再生ヘッドだけカウントアップし続ける問題

などが修正されています。また、起動直後のスクロールが微妙に早くなっていたりしますが、気づく人はほとんどいないでしょう^^;

上記三番目のバグについては、S98ファイルの途中から再生開始されるように設定しているファイルなどが該当しますので、結構あるかもしれません。

どうぞよろしくお願いします。

S98Player for iPhone 1.0 リリースされました

S98Player for iPhone 1.0がAppStoreからダウンロード出来るようになりました。 ご興味のある方は、こちらのリンクよりAppStoreへどうぞ。

詳細はAppStoreのほうに記載してあります。 また、前回のエントリにもMac版と比べての改善点などが記載されておりますので、よろしければご覧ください。

当初のAppStoreでのレビュー期間を知る、という目標は達成です(笑 結果としては、

  • 8/25未明にバイナリをアップロード
  • 8/28未明にステータスがIn Reviewに
  • 9/1未明にステータスがProcessing for App Store、Ready for Saleに

といった感じでした。

レビューにはS98ファイルが必要と思い、いくつかサーバに上げておいたのですが、レビュアーさんからとおぼしきファイルアクセスがあってから3分後にはステータスがProcessing for App Storeに変わっていました(笑

AppStoreに申請に出す前にそこそこ長い期間プライベートで使っていたのでそこまでバグはでないと思っていましたが、審査中にすでにいくつか見つけてしまいました…。

  • ヘッドホンで視聴中にヘッドホンを(誤って)抜いた場合に音声が停止するが、画面内の再生時間がカウントアップし続けてしまう。
  • ホームボタン二回押し+左画面にスワイプでiPod controlが現れるが、何かの拍子にそのcontrolが見えなくなる(標準のiPod用になってしまう)ことがある。
  • OPM用のS98ファイルに再生できないものがある(のだけど、OPMの仕様など分からないためなんとも…)

あとは、一番最初に立ち上げる時に、スプラッシュスクリーンで止まってしまうことがあるそうです(自分は未確認)。しばらく待っても立ち上がらないときには、一度アプリを終了させてから再度立ち上げてみてください。

最近はS98ファイルも巷で見なくなっていますので、再生できないファイルがあってもうまく対応できないことがあるかもしれません。差し支えない場合にはそのファイルをお渡し頂ければ原因がわかるかもしれません。どうぞよろしくお願いします。

もう少し様子を見てから(その他のバグと、そしてダウンロード数と^^;)、バグフィックス版をリリースしようと思います。

S98Player for iPhoneを申請してみた

S98Playerのダウンロード数から見ても明らかに需要があるとは思えないiPhone版のS98Playerですが、思うところあってAppStoreへ申請しました。

現在ステータスがWaiting for Reviewの段階です。 上のスクリーンショットでは21日に申請となっていますが、その後バグが見つかって自分で再投稿したりしていることもあり、まだ審査は始まっていません。

Mac版と比べて、

  • ファイルリストに曲名や演奏時間などが出る
  • イコライザが使える
  • ループ再生が終了する際にきちんとフェードアウトする
  • OPMも対応している
  • 複数音源を使うデータにも対応している(パン振りは対応してない)

などの点から高機能です(誰も使わないだろうけど)。バックグラウンド再生にも当然ですが対応しています。

また、内部の構造を見なおして無駄をだいぶ省いたので、使用するメモリ量も減りました。

まぁS98ファイルなんて既に巷には出回っていませんから、「S98ナニソレ?」な人には今のところ全く恩恵はないと思います。 ただ、時間に余裕ができたら(来年あたり…?)iPad向けにFM音源用のシーケンサを作ろうと思っています。その保存データをS98ファイルに書き出せれば、S98Playerも多少日の目をみることもあるかな、と。

せっかくciscさんのfmgenがiPhoneでも動くのだから、活用していろいろやってみたいところです。

S98Player Ver. 0.2を作った

4年ほど前にFM音源のサウンドログを再生するアプリを作ったのですが,最近FM音源づいていてちょっとだけコードを修正したので公開します.機能は全く変わっておらず,使い勝手も悪いままですが.

…そして誰も使わないとは思いますが.

修正点は以下の通り.

  • サンプリング周波数を44100Hzから55466Hzに変更.原音に近くなりました.
  • S98v3のヘッダをもう少しきちんと読むように.UTF8,SJIS両方読めます.
  • しかし基本的にOPNAのみの対応….
  • 10.5SDK上でコンパイルしたので10.5以降でしか動かないかも.

OPNへの対応は,サウンドログファイルをもってないのでチェックできないんですよね.ま,基本的に自分用アプリなので問題ないんですけどね(無駄にiPhone向けに移植して一人楽しんでます).