そもそも高BPMの曲だと急に音が大きくなる部分の検出が間に合わないっぽい><
これがある意味逆転の発想><;
"『たぶん偶然にも運良くちょうどBPMの間隔を検出したっぽい!?><;』"って数値のみを使う><
・まずとりあえず120BPM(500ms 間隔)を初期値(=現在のBPM)にする><
・移動平均と見比べて音が急に大きくなる瞬間を検出する><(上昇よりも下降が緩やかな平均にしてる><)
・検出した間隔が1000ms(60BPM相当)以上なら無視><
・検出した間隔が現在のBPMの値(初期は500ms)の70%以下の数値も無視><
・そうじゃない数値は『たぶん偶然にも運良くちょうどBPMの間隔を検出したっぽい!?><;』ので、間隔のリストに追記する
・間隔のリストの真ん中辺のサンプルの平均値を元に現在のBPMとする!><
つまり、『BPM60以下とか、いきなりBPM170以上の曲ってあんまりない気がする・・・><』というかなり酷い解決法><;
ちょっと高めだけど映ってる機材に結構近いBPMが><(うまく行った瞬間マジでちょっと涙出た><;) https://mstdn.nere9.help/media/mTxbfufYdWrPTlQhuTA
あ!!!>< 現在のビートの平均間隔の70パーセント以下の数値を無視するようにしたら出来たっぽい><
ギター弾かないけど単に安い物を選んだ結果ギターエフェクタ&ギターアンプシミュレータをオーディオインタフェースを使ってるけど、そこからDJしないのにDJミキサに乗り換えたらさらにアレだ><;
今使ってるギター向けオーディオインタフェース(というかエフェクタ内蔵ギターアンプシミュレータ)がかなり物理的にぼろぼろになってきたから買い換える時にこれにすれば・・・?><;
ちなみに映ってるやつの下位の機種?でもBPM検出ついてるっぽい><
https://www.soundhouse.co.jp/products/detail/item/156704/
ていうかどうしてBPM表示する物が欲しくなったかと言うと、この動画見ててDJミキサ(?)についてるのを見てPCのデスクトップにも欲しくなった><;
https://www.youtube.com/watch?v=eVSYEUzBo7E
レベルメータ見てBPM判る人ってあんまりいなそうだからレベルメータからするのは無謀な事をしてるのかもしれないけど><;
今こんな感じで、つまりは長い平均から短い平均が飛び出してれば拍だけど、平均の出し方が色々あるのと、そのままだとバスドラム検出マシンになっちゃって意味無い><;
https://mstdn.nere9.help/media/81qpmx16DelVp-jiuvw
BPMの自動(?)検出、よくある譜面自動生成のげむーとかでやってくれるけどあれはBPMを自動検出してるわけではなくて一定の周波数帯におけるピークに配置したりみたいな感じなんだろうか
そういえば、前に耳コピ用にデジタルメトロノームソフトウェアを作った事が数回あるけど、BPMって0.01単位とかまで微調整しないとものすごくずれる・・・><(自動検出ならタイミング補正すればいいからアレだけど><)
あきらめて先人が作ったものを見てみよう><;
適当にぐぐったらでて来た><
http://codes-sources.commentcamarche.net/source/53536-beat-detection
10ccのim not in loveみたいに、トン トトン みたいなパーカッションの曲ってそもそもちゃんとした物でも検出できるのかな?><
beat detectじゃなくてノリの良い音のタイミング検出になっちゃってるけどこれをどうやって拍子だけにするんだろう?><(根本的な問題が全く解決して無い)
単に重みが違う移動平均を比べるだけで検出できるっぽいということは、アナログ回路でもビート検出って結構簡単に出来るのかも?><
コンプかけまくりでピーク張り付きの曲は当然検出不可能だけど、それ以外の曲はこんな単純な仕組みでも結構うまくいくっぽい・・・><
レベルメーターの値を移動平均(加重移動平均?)と見比べて、上回ってる所は拍だ!!!><(馬鹿なりの発想)
PeakValuesって名前の通り平均じゃなく一定区間のピーク値っぽい?><; ということはビート検出は不可能?><;
IAudioMeterInformationのレベルメータの値って前回からの平均値じゃなく瞬間の値が帰ってくるっぽいから、これを高頻度で見てビート検出はかなり無茶なのかな?><;
何がしたいかというと、ゲームの音でもyoutube見る時でも常にbeat detectionしていつでもBPMを知れるソフトウェアが欲しい><(というか作りたい・・・><)
数式の画像を読み込ませるとPascalというかALGOLっぽいサンプルコードに書き直してくれるソフトウェアってあったら数式読めない馬鹿(→><)の救いになるのに無いから救いようが馬鹿のままになっててつらい><;
頭痛なので音楽聴こうモードになって音楽聴いててそういえばbeat detectionってどうやるんだろう?><ってぐぐったら数式が出てきて頭痛が悪化した・・・><
http://mziccard.me/2015/05/28/beats-detection-algorithms-1/
元バージョンの方、リズムトラック(? ドラム・パーカッショントラック?)がこの感じで80's後期ディスコっぽかったらすごく良さそう><
(いい感じだけど、逆にいうとオレンジには上にメロディが乗って無いと物足りない><;)
はてなブログに投稿しました
脳みそ溶かされるぴょんぴょん - ejo090の日記 http://ejo090.hatenadiary.jp/entry/2017/12/12/010000 #はてなブログ
脳みそ溶かされた音楽 Advent Calendar 2017の記事です。
ていうかネットワーク関連の色々、オフラインなソフトウェアを作る時よりもテスト環境とかに維持費とかがかかるっぽいのつらい・・・><
ASUS NovaGOの方、充電が専用ACアダプタ式って書いてる人がいるけどもしそうなら素晴らしい><(T90ChiのUSB充電の不安定さに懲りたのと、充電しながらUSB接続機器を使う時に分岐ケーブル使うとすごく邪魔だから><;) --
ARM版Windows 10が登場。製品はHPとASUSから発売予定 | スラド ハードウェア https://hardware.srad.jp/story/17/12/11/0834247/