よもやもダンプ

気が向いた時にアウトプットしておくところ

雑記#25

気が付いたら11月下旬で年末がすぐのところまできた。
これから来年にかけて、また忙しくなっていくのでトラッカー製作も滞りそう。

先月のM3はとっても良かった。
普段そんなに色々な曲を聴く自分にとって、色々試聴してCDを買って今まで知らなかった人の曲を聴けたり出来たのはいい経験になった。
予算は結構とっていたのでお金のことを気にせず買いまくったら15枚くらい買っていた。こんなに買ったの初めて。
Walkmanに入れてぼちぼち聞いていってるけど、何曲かお気に入りを見つけた。

小林研究所さんの『フォーカスレンズ』

tdhrさんの『virtual yukata girl』

次の春のM3は時期的にパスなので、また1年後かな。

雑記#24

トラッカーをmacで動かすために、音声のストリーミング処理をQtから分離した。
これまではQtの音声ライブラリを使っていたけど、どうもGUI処理と音声処理が1つのイベントループで一緒に処理をしているみたいで、macで実行すると音声の遅延が酷くてとても使い物にならなかった。
いくつかあるマルチプラットフォームなライブラリのうち、RtAudioを使って処理を分割することにした。プログラムが少し重くなったけど、作曲ソフトで音声が途切れるのは致命的なので仕方ないか。
GUIの描画でも、macの方が少し遅い気がする。Windowsで動かしたときには気にならなかったGUIの再描画の問題が大量に出てきた。
例えば曲を再生中にウィンドウの最大化をすると、処理が重すぎてフリーズしてしまっていた。
この原因は再描画時に毎度パターンエディタ全体を更新していたことだったので、再生中は1ステップづつパターンの描画位置がずれるだけなのを考えると、現在の表示を1つ上へずらして再利用した方が処理は軽くなる。
また文字の印字に時間がかかるのが分かり、極力文字の再描画を避けるべきなので、描画データを複数のレイヤーで保持しておいて、更新が必要なレイヤーのみ再描画してそれ以外のものは使いまわしてコスト削減を行った。
結果まだまだ改良するところはあるけど、macでも使えるくらいにはなった。

トラッカーも遂にmacに対応したので、今後は描画処理の改良をしつつ、ADPCMの実装に取り掛かりたい。
トラッカーを作る前は正直ドラムとかもFMで作った方がいいじゃないの、と思っていたけど、この前のSSTのcTrixさんのメガドライブの演奏を聴いて、自由度が上がって曲作りの幅も広がるしやっぱり必要だと思った。
ADPCMをどうやって扱うのかはGitHubでもいくつか議論をしてきているので、いろいろ意見を聴きながら開発をしたい。
ただ、これから用事が増えてきて忙しくなるので、実装は来年になると思う。

明日はM3。半年前の春には予定が入って泣く泣く断念していたので、今回は春の分も楽しみたい。
密かに自分も1曲も出していたりする。 もし誰かが気に入ってくれたらうれしいな。

雑記#23

前はSIDで曲を作ったけど、今度はOPNAで曲を作った。
最近はAdlibTrackerでの曲でよく聞く、波形をあまり変調させない柔らかい感じの音が好みで、OPNAでも音色を使えないかと思っていたけど、OPL2、OPL3辺りは基本波形を正弦波以外から設定できるのが分かって、ただパラメータを移すだけじゃ無理で結局自力で再現するしかなさそうなので今回はパスした。
結局いつも自分が使うような音色になったけど、あまり耳にキーンと来るような音は使わないようにしたつもりにはした。
波形をじっくり見ながら音色づくりするのはまた今度。

OPNAはチャンネル数が他のチップチューンに使われる音源よりも多くて自由度が高い。SIDとかだと3音しかならせなくて、チャンネル構成もある程度固まった中でどう曲を作るかってアプローチで曲作りをしていて、まだ作りやすいかなって感じがするけど、OPNAだとチャンネル構成の縛りがないので先に曲のはっきりとしたイメージがないと上手く作れなくて難しい。
曲のイメージも今回はmodの雰囲気の曲を作りたかったけども、自分はもともと昔のPC98とかのゲーム音楽からFM音源を触った口なので、作っている最中からなんだかゲームっぽくなってしまった。
イメージが作っている途中でブレブレだとOPNAみたいなよりどりみどりな音源ではうまく作曲できず、自分の知識とセンスの無さを思い知った。

今回の曲はBambooTrackerを使っているけど、前までのPMDのMMLで作っていた時よりも作曲に対するフラストレーションは減った気がする。
GUIであるから直観的に音符打ち込み、マクロ編集ができるのが大きい。
特にSSGのマクロ編集は、MMLだと細かい指定をひたすらテキストに書いていくのに比べて、GUIだとマウスで変化の軌跡を描画するだけで済む。
やはりティック単位の指定はトラッカーの強みと改めて実感した。
ただ、PMDだとqコマンドにあたるゲートタイム指定がトラッカーだとなくて、ひたすら自力でノートオフを書くのは少し不便かな。
ゲートタイム指定は最初の公開前に一度実装しようとしてコードを書いていたけど、ステップサイズを超えるゲートタイム指定をしたときのノートオフのタイミング検出でテンポチェンジとの兼ね合いが難しくて諦めた。
あったら便利な機能なのでできれば実装したかったな。

雑記#22

1年ぶりにSIDで曲を作った。
久しぶりに曲を作ったので曲作りの感覚を完全に忘れてた。メロディとかなんとなくコードみたいな響きは頭の中に思い浮かぶんだけど、自分にそれを正確に譜面にアウトプットする能力が欠けているので、Dominoで試し打ちしたあと、あー違うと難度頭を抱えたか。理論とかが全くなくて感覚で作ってるからそういうことに陥りやすいのかな...

これまではSIDの作曲はGoatTrackerで作ってたけど、今回からはSID-Wizardで作っていくつもり。
Twitterで見ていてもモダンなトラッカーではないけどGoatTrackerよりも使いやすいって話を聞いてたし、もともとがC64用のプログラムなので将来自分がC64をゲットした時にもすんなり使えそうだったので切り替えた。
ここしばらくはBambooTracker、0CC-FamiTrackerを触っていたので、GoatTrackerに近いSID-Wizardのキーバインドを思い出すのに時間がかかったけど、赤帯さんの日本語マニュアルのおかげで長く立ち止まることはなかった。
あとは、昔自分が書いたGoatTrackerについての記事(これこれ)が役に立った。

SID-Wizard 1.5 Manual Japanese version | SID Media Lab

C64エミュレータのVICEで動かしてるので、キーボードがUS配列じゃなくて何個かのキーが行方不明になってるけど、基本の打ち込みにそこまで支障をきたさなかったのでそのままで使ってる。
変えれたら一番いいんだけども。

1曲書き終わった後に.sidとか.prgに書き出してみてテストしたりするときに、間違ってからのモジュールで上書きしてしまった。辛い。
たまたま数十秒前にエクスポートしていたので演奏データは残ったのが不幸中の幸い。
前にもGoatTrackerでやらかしたことがあったので、上書き確認が出てこないトラッカーを扱うときはもうちょっと注意しないといけない。

BibTeXのスタイル編集のメモ

論文を書いてるときに参考文献の見た目を変更したくなってBibTeXのスタイルファイル(bst)を修正しようとしたときに、詳しい情報を見つけ辛かったので、使えそうなサイトのリンクをここにメモしておく。

qiita.com

www.med.osaka-u.ac.jp

最初は何もなしの手探り状態でコードを変更してたから、動作がよく分からなかったけど、途中でポーランド記法なのに気が付いてから書けるようになってきた。
ポーランド記法でコード書くの初めてだ。

雑記#21

いよいよ曲を作ることになりそうだ。
最後に自作曲を作ったのが去年の5月のLotusなので、1年以上曲を作っていない。
LotusはBambooTracker用にOPNA版も作ったけど、これはアレンジなのでノーカウントとして、これだけ期間が空いてしまうと作り方ってのを忘れてしまって、本当に曲が作れるのかかなり不安になっている。
しかもここにきて2曲同時に作る感じになりそう。
過去最高は3曲同時だったからまだ何とかなるかもしれないけど、色々感覚を取り戻すのに時間をかけて締め切り直前でキツキツになるのが怖い。

1カ月くらい前に1曲アイディアを閃いたけど、打ち込まずに終わっていたので1つはそれを形にするとして、もう1曲をどうするか。
暫く曲を聴き漁ることもなかったのでもともと少ないアイディアが枯渇していて危険なので、YouTubeTwitterで色々聞きまわった方が良さそう。

Dim. Dreamを打ち込んだ

トラッカーを作ってばっかりで、曲を作ってないなと思い、久しぶりに打ち込みをしてみた。といっても、既存曲をBambooTrackerに打ち込んでいくだけなんだけど。
この前たまたま東方の曲をYouTubeで聞いたので、旧作はOPNAで作ってるし東方の曲を打ち込むことにした。東方は最近の曲は全然追えていないけど、中学の頃に曲を聴きまくっていて、旧作ももちろんその時に聞いていた。
あの頃はFM音源とかいうくくりは知らなかったけど、Maple dreamとか旧作の曲が好みだった。今回は個人的に一番好きだった夢時空のDim. Dreamを作ってみた。

作ってる途中でトラッカーのバグがいっぱい出てきた酷かった。PMDの内蔵SSGドラムはSSGEGを使っているけど、トラッカーでそれを再現した時にエンベロープがリセットされないバグがあった。他にもノートスライドエフェクトの待ちカウントが0の時の処理ができなくてエフェクト実行ルーチンを書き直したり、極めつけはドラムのマスターボリュームエフェクトの読み込み処理を間違って消していた。
あまりに演奏に悪影響が出るのですぐに修正版を出した。質の悪いアプリを出してしまいすみませんでした、反省します...

せっかく作ったし公開するかと思ったときに、東方だったらYouTubeに投稿した方がウケが良さそうな気がしたので動画を投稿してみた。
最後に投稿したのが2年前だったので動画投稿方法が変わっていて少し手こずった。

youtu.be

前にサンプル曲を作ってるときも思ったけど、実際自分がユーザーになって使ってみてバグが分かったり、あれこれが足りないとかが分かったりすることが多々あるので、たまには打ち込みをしよう。