堕天使の煉獄
2016-04
07
02:28:05
古いんだか新しいんだか
今日もニコニコPG。
QTでMIDIシーケンサ作り再開中。
とりあえず以前のSMFファイル読み込み部分のコードがあまりにもウンココードだったのと、読み込みにwinapiのマルチメディア用関数を使用していたので、環境非依存なコードに変更。
最初はc++の標準関数つかおうと思ったのだけども、QTのバイナリ読み込みのQDataStreamがバイトのエンディアン指定まで出来る事を知って、こりゃ楽だってことでwin依存コードからQT依存コードにw
そこで組み替えながら見直してたときに気づいた事。
レコポンで吐いたSMFって、メタイベントのFF 21の出力ポート指定がっつり入ってるのね。SMFフォーマットの参考サイトでは非標準ってことで、このポート指定イベントは記載すらされてないところが結構あったり。
そもそもこのポート指定って、ほとんどSC88Proとかの32チャンネル対応音源向けに通常は16チャンネルが最大だけど、ポートA、Bでわけて32チャンネル使えるっていう特殊機能向けのもので、SC88Pro以降ではあんまし使われなくなったので、結局非標準とされた……みたいな経緯のあるものなんだけども。
なにげに最近では状況が変わって来て、最近のMIDI機器はMIDIケーブルじゃなくてUSB接続がスタンダードになって、そこで16チャンネルまでっていう転送量上の制限が関係なくなって。そんで最近では64チャンネルまで使える音源が普通になってきてるそうな。
そこでこのポート指定の部分がまた使われ始めてるらしい。
……残念なことに、どこも同じ使い方してるわけではなく
ttps://sites.google.com/site/yyagisite/material/smfspec
と、ばらつきがある感じだとかで。
うーん。めんどくさい。
SMFフォーマットの2もいろいろとフォーマットが違ったりするんだけど、なにげにチャンネル数が増えた所為か、これもまた使われ始めてるらしい。どの使われ方がスタンダードなのかとかさぱーりですが。
まあフォーマット2は用途が限定されそうなので、無視してもよさげですけど。
んでもSMFフォーマットって、パソ通時代からある様な古いフォーマットなんですよね……。ランニングステータスとか、少しでもファイルの容量を減らす工夫とかあったりして。
今となってはただ読み込むのにちまちまバイト単位で読み込んで、特定のビットを調べて、このビットが立ってたら次のバイトとつながってるデータだとか、バイトの並びを変えたりとか、めんどくさいことこの上ないw
んで、SMFはまあ、わりとフォーマットを説明してるサイトとかぽこぽこ出てくるので苦労はないのだけども。
レコポンユーザーとしてはRCPやG36ファイルにも対応したいところ。
……が、この界隈、現在ほぼ絶滅危惧種指定な感じなんですよね。
この辺のソフトとかドキュメントとか、更新日時をみると2000年代ですらない所も多く、ほとんどが化石化してるぽ。
そんでもって、昔はそれなりにあった気がするんだけど、いま改めて検索してみると全然RCPやG36ファイルのフォーマットの情報とか出てこない……。
コンバータとかのソフトはあるんだけどな(んでもどれも古すぎて、win7とかwin10とかでもうごくのかね。MS-DOS用のアプリとかまで出てきたけど……w)
ようやく見つかったのがSTedというレコポンのクローン? のソースコードの中にファイルのフォーマットの情報が載ってたりで。コレならなんとかなりそうぽ。
うーん。
いまだに最新の機器でも使われるMIDIという規格のわりに、その周辺は時がとまってるんだよな。10年以上前に。
新しいんだか古いんだか……。
QTでMIDIシーケンサ作り再開中。
とりあえず以前のSMFファイル読み込み部分のコードがあまりにもウンココードだったのと、読み込みにwinapiのマルチメディア用関数を使用していたので、環境非依存なコードに変更。
最初はc++の標準関数つかおうと思ったのだけども、QTのバイナリ読み込みのQDataStreamがバイトのエンディアン指定まで出来る事を知って、こりゃ楽だってことでwin依存コードからQT依存コードにw
そこで組み替えながら見直してたときに気づいた事。
レコポンで吐いたSMFって、メタイベントのFF 21の出力ポート指定がっつり入ってるのね。SMFフォーマットの参考サイトでは非標準ってことで、このポート指定イベントは記載すらされてないところが結構あったり。
そもそもこのポート指定って、ほとんどSC88Proとかの32チャンネル対応音源向けに通常は16チャンネルが最大だけど、ポートA、Bでわけて32チャンネル使えるっていう特殊機能向けのもので、SC88Pro以降ではあんまし使われなくなったので、結局非標準とされた……みたいな経緯のあるものなんだけども。
なにげに最近では状況が変わって来て、最近のMIDI機器はMIDIケーブルじゃなくてUSB接続がスタンダードになって、そこで16チャンネルまでっていう転送量上の制限が関係なくなって。そんで最近では64チャンネルまで使える音源が普通になってきてるそうな。
そこでこのポート指定の部分がまた使われ始めてるらしい。
……残念なことに、どこも同じ使い方してるわけではなく
ttps://sites.google.com/site/yyagisite/material/smfspec
利用法として、現状以下の3パターンが確認されているが、 どのパターンで作成されているかはデータだけでは識別不能。
1.pp=0~3が、それぞれポート1~4に対応している場合
2.pp=0がミュート、1~4がそれぞれポート1~4に対応している場合
3.pp=0がポート1、pp=1がポート2、pp=2がポート1&2両方、 pp=3がミュート
日本国内(のフリーソフトの類)では基本的に 1. のパターンを想定しておけば問題ないと思われる。
と、ばらつきがある感じだとかで。
うーん。めんどくさい。
SMFフォーマットの2もいろいろとフォーマットが違ったりするんだけど、なにげにチャンネル数が増えた所為か、これもまた使われ始めてるらしい。どの使われ方がスタンダードなのかとかさぱーりですが。
まあフォーマット2は用途が限定されそうなので、無視してもよさげですけど。
んでもSMFフォーマットって、パソ通時代からある様な古いフォーマットなんですよね……。ランニングステータスとか、少しでもファイルの容量を減らす工夫とかあったりして。
今となってはただ読み込むのにちまちまバイト単位で読み込んで、特定のビットを調べて、このビットが立ってたら次のバイトとつながってるデータだとか、バイトの並びを変えたりとか、めんどくさいことこの上ないw
んで、SMFはまあ、わりとフォーマットを説明してるサイトとかぽこぽこ出てくるので苦労はないのだけども。
レコポンユーザーとしてはRCPやG36ファイルにも対応したいところ。
……が、この界隈、現在ほぼ絶滅危惧種指定な感じなんですよね。
この辺のソフトとかドキュメントとか、更新日時をみると2000年代ですらない所も多く、ほとんどが化石化してるぽ。
そんでもって、昔はそれなりにあった気がするんだけど、いま改めて検索してみると全然RCPやG36ファイルのフォーマットの情報とか出てこない……。
コンバータとかのソフトはあるんだけどな(んでもどれも古すぎて、win7とかwin10とかでもうごくのかね。MS-DOS用のアプリとかまで出てきたけど……w)
ようやく見つかったのがSTedというレコポンのクローン? のソースコードの中にファイルのフォーマットの情報が載ってたりで。コレならなんとかなりそうぽ。
うーん。
いまだに最新の機器でも使われるMIDIという規格のわりに、その周辺は時がとまってるんだよな。10年以上前に。
新しいんだか古いんだか……。
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
■
■
あいかわらず中途半端
03
■
■
ぶるぶるぶる・・・
04
05
06
07
■
■
古いんだか新しいんだか
08
09
10
11
12
■
■
思いつきで超脱線
13
14
■
■
とりあえず〆
15
16
■
■
なぜかいつも逆
17
18
19
20
■
■
鼻水だらだら
21
22
23
24
25
■
■
にゅーうぇーぶ
26
27
28
29
[昭和の日]
30
total:2076692 t:204 y:396
■記事タイトル■
■年度別リスト■
2024年
2024年12月(0)2024年11月(0)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年
2023年12月(3)2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年
2022年12月(4)2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年
2021年12月(8)2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年
2020年12月(3)2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年
2019年12月(1)2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年
2018年12月(1)2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年
2017年12月(2)2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年
2016年12月(7)2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年
2015年12月(7)2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年
2014年12月(12)2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年
2013年12月(15)2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)
■レス履歴■
■ファイル抽出■
■ワード検索■
堕天使の煉獄
https://rengoku.sakura.ne.jp
管理人
織田霧さくら(oda-x)
E-mail (■を@に)
oda-x■rengoku.sakura.ne.jp