さっきのちょっと弄って、前から作ろうとしてたリアルタイムクリッピング検出アプリできた!>< https://mstdn.nere9.help/media/0oYK0kk6uBHbLAeNu1w
(正確に言うと矩形波検出だけど普通の楽曲なら正確な矩形波=だいたいクリッピング><)
見つけた
Proposal: 'using' local variable declaration (RAII) · Issue #5881 · dotnet/roslyn https://github.com/dotnet/roslyn/issues/5881
というわけで古いけど読める方の記事です
リソースの管理: use キーワード (F#) https://msdn.microsoft.com/ja-jp/library/dd233240(v=vs.110).aspx
ところでこれは元は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 ()
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();
}
}
NAudio使ったことなかったけどしゅごい>< WASAPIのループバックレコーディングがサンプルコード30行以下で出来ちゃう><
https://github.com/naudio/NAudio