新しいものを表示

矩形波を検出してるんだから、矩形波の塊であるアーケード版グラディウスの音だとどうなるんだろう?><と思って、
youtube.com/watch?v=hz9OkKo9rW
これ再生してみたけど、起動時のDC成分以外はクリッピングとしては検出しない><(MAMEで動かして直だと誤検出しちゃうかも?><)

ちなみにテストに使用してる超酷いCDはこれです><(アニソンだけど番組見た事無い><)
amazon.co.jp/dp/B00005GO7X

実際には1パーセント以下でも普通の人がノイズとして十分聞き取れるから1パーセントでもマスタリングしたエンジニアをクビにして欲しい><#

クリッピング検出するやつ、壊れたサンプルの比率を見るようにして、ついでに5パーセント超えたら「クビだ!!!><#」って表示するようにした><
mstdn.nere9.help/media/55qC_c9

めったに無い=たまにある><;

「クリッピング検出するやつ作りたいの><# 」って音楽のプロの人とか同人音楽やってる人(=2人)と議論(?)した時に、「それじゃ電子音楽が」・・・って言われたけど、実際作ってみたら電子音楽は誤検出されない><(=ピコピコした電子音楽でも同じ値が並んでる録音なんてめったに無いっぽい><)

さっきのクリッピング検出のやつ、4サンプル同じ値か見るだけってシンプルな仕組みにしたら、チップチューンな音楽とかは誤検出(?)されずに、本当にマスタリングが壊れてる音楽のクリッピングしてる部分をかなり正確に検出できるようになったかも><

ちなみにスクリーンショットの曲は、オレンジがCD持ってる曲の中で一番クリッピングが酷い楽曲><

さっきのちょっと弄って、前から作ろうとしてたリアルタイムクリッピング検出アプリできた!>< mstdn.nere9.help/media/0oYK0kk
(正確に言うと矩形波検出だけど普通の楽曲なら正確な矩形波=だいたいクリッピング><)

NAudioライブラリ使ったら超簡単にWASAPIループバックウェーブフォームモニタ作れた>< mstdn.nere9.help/media/n9hSOZ2

orange さんがブースト

見つけた
Proposal: 'using' local variable declaration (RAII) · Issue #5881 · dotnet/roslyn github.com/dotnet/roslyn/issue

これC# にも超欲しい><;(Delphiはこれに近い感じの機能があった><)

orange さんがブースト

というわけで古いけど読める方の記事です
リソースの管理: use キーワード (F#) msdn.microsoft.com/ja-jp/libra

orange さんがブースト

MSDNライブラリあるある: まともな翻訳だけど対象バージョンが古いな、新しいやつを見よう→\機械翻訳/

orange さんがブースト

中身は C# の using (x = new Foo()) と同等だろうけど、変数(ではないが)定義と同じように書けるので見た目がよい感じ。普通にブロック、というか関数を渡せるusing関数もある。

!!!>< F# 使ったこと無くて知らなかったけど、「GCとは別にスコープ抜ける時に遅延無しで必ずデストラクタを呼んでくれるのがあったらいいのに!><」って思ってたけどそれもしかしてこれ?><

orange さんがブースト

F#のuse束縛、スコープを抜ける時にDisposeされるのは同じだけど、C#のusing文と違ってスコープの途中でも使えるのはインデント深くならなくていいですねになった

orange さんがブースト

ところでこれは元はF#のコードだった 

open CSCore

let capture () =
use capture = new SoundIn.WasapiLoopbackCapture ()
capture.Initialize()
use stream = File.OpenWrite @"r:\dump.m4a"
use writer = new CSCore.Codecs.AAC.AacEncoder (capture.WaveFormat, stream)
capture.DataAvailable.Add <| fun e ->
writer.Write (e.Data, e.Offset, e.ByteCount)
capture.Start ()
System.Console.ReadLine ()
capture.Stop ()

capture ()

スレッドを表示
orange さんがブースト

WASAPIでのお手軽ループバックキャプチャ、CsCoreでやったことがあった 

using (var capture = new CSCore.SoundIn.WasapiLoopbackCapture())
{
capture.Initialize();

using (var stream = File.OpenWrite(@"r:\dump.m4a"))
using (var encoder = new CSCore.Codecs.AAC.AacEncoder(capture.WaveFormat, stream))
{
capture.DataAvailable += (o, e) => encoder.Write(e.Data, e.Offset, e.ByteCount);
capture.Start();
System.Console.ReadLine();
capture.Stop();
}
}

ていうか解析したいだけなら7行くらいで出来ちゃう?>< アマレココでWASAPIループバック録音できるのってどうやってるんだろう難しそうと思ってたらまさかこんな超簡単に使えるライブラリがあるとは><;

古いものを表示
:realtek:

思考の /dev/null