TiMidity ++ と サウンドフォント・エディタ Polyphone のソースコードをダウンロードしてみた

DTM  関連ソフトウエアのソースコードを読みたくて・・・

 

サウンドフォント・プレイヤーがどうやって  wav  データを再生しているのかを知りたくて、シンセサイザーの  TiMidity++  とサウンドフォント・エディタ  Polyphone Soundfont Editor  のソースコードをダウンロードした。

ソースコードダウンロードサイト:

Polypone:Polyphone(GitHub)
SourceForge:TiMidity++ 

Polyphone インストーラダウンロードサイト:

POLYPHONE:現在のバージョン 

2018/03/08 訂正:

Polyphone のダウンロード先リンクを訂正した。
以前 SourceForge にあったドキュメントが GitHub に移動している例を見つけたので、もしや・・・と思ってチェックしてみたら心配していたとおりだった。
2月21日の段階でチェックしなかったのは私の手抜かりだった。申し訳ない。

GitHub にあるソース例はほとんどがブラウザ上で読めるようになっている。
上のリンク先では、リスト上の trunk フォルダのサブフォルダ内に cpp ファイル(のリンク)が多数存在している。クリックすれば、とりあえず読むことができる。

2018/02/21 訂正:

TiMidity++ のソースコードダウンロード先リンクを訂正した。
現在はこのリンクで読みたいファイルを直接参照することができる。ダウンロードしたければ、Download Snapshot をクリックすれば良い。

CodeProject  と  SourceForge  の二つの有名サイトを検索して、まず  Polyphone  を  SourceForge  で見つけた。
まさか、サウンドフォント・エディタを作成するプロジェクト――開発者のグループがあるとは思わなかった。これはビックリの感動ものだ。

その後  timidity(以後「TiMidity++」)の実行ファイルも  SourceForge  から入手できることが分かったので、もしやソースコードも・・・と期待して探してみたら、これも見つけることができた。でもかなり古いものらしい。

スポンサーリンク


Polyphone  は実行ファイルもダウンロードできるので試してみたが、使い勝手や性能は  Viena  よりかなり劣っていると思う。
でも  Viena  と同様に、Domino  などの  MIDI  シーケンサから  MIDI  データを流し込むことができるので、これはまぎれもなく(シングルポート/シングルチャンネル)サウンドフォント・プレイヤーでもあるのだ。なのでこのソースコードは私の目的にはピッタリだ。

まず秀丸エディターで  Polyphone  のソースコードを読んでみたが、サッパリらちが明かないので、Qt Creator という統合開発環境(IDE)で実行ファイルをビルドしてみることにした。
もしうまくビルドできれば、デバッグモードで実行ステップを確認できるので、得られるものが――おおげさでなく――飛躍的に増大する。

本当のところ、ここまで書き進めた段階でのビルドはすべて失敗していたが、今(2015/04/17 13:11 頃)ちょっと前にやっとうまく行った。
どうやら  Windows  ではプロジェクトのファイルグループを [ドキュメント] に置く必要があるみたいだ。

最初プロジェクトを任意のディレクトリに置いてうまく行かず、色々なサイトを頼りにプロジェクトファイルをちょこちょこ手直ししてもやっぱりうまく行かない。ld.exe  というリンカが、リンクするファイルを見つけられない、と文句を言ってくるのだ。

それならばということで、プロジェクトを IDE  インストールディレクトリ支配下の  C:\Qt\Qt5.3.0\Examples  に置いてみたが、これもまた失敗・・・という情けない状況だった。

それで  Qt Creator  が参照する環境変数を新たに設定するか、リンクするファイルの名前をフルパスで指定しなきゃ駄目か・・・などと考えていたら、Qt Creator  の「プロジェクトを開く」のデフォルトディレクトリが  [ドキュメント] だったことを思い出した。
じゃ、そこにプロジェクトを配置すれば何か変わるかな?・・・ということでやってみたら「はい、正解です」ときたもんだ。

訂正:(2015/04/22)

上の内容には勘違いがあったので訂正する。
ビルドが失敗したのは  [プロジェクト]  の  [ビルドと実行タブ]  ⇒  [ビルド設定]  の概要がデフォルトの「シャドウビルド」になっていたためだ。
このオプションを外してビルドすると、プロジェクトを任意のディレクトリに置いてもビルドできることを確認した。

※プロジェクト開く時に指定するファイルは、拡張子「pro」のプロジェクトファイル。
※Qt Creator を使ってみたい人は、ここを訪問してからダウンロードすれば間違いないだろう。私も初めて見たが、完成度の高さに驚いた。しかも日本語対応だ。

Polyphone  の中心開発者  Davy Triponney  さんはフランス語圏の人らしく、コメントやメニュー項目名がフランス語で書かれている。
コメントはかなり重要な情報源なので、読めないのはちょっと残念だ。

TiMidity++  も  Qt Creator  で何とかなる可能性があるらしいが、当分は  Polyphone  を勉強することになると思うので、今はソースコードを眺めるだけにしておく。

こちらは  C++  じゃなく  C  で書かれている。
C  だとクラスの階層などを気にしなくても良いので、秀丸でもある程度の所までは読めるんじゃないかと思っている。もちろんかなり時間はかかるだろうけど。

スポンサーリンク

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です