新しいものを表示

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

「クリッピング検出するやつ作りたいの><# 」って音楽のプロの人とか同人音楽やってる人(=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ループバック録音できるのってどうやってるんだろう難しそうと思ってたらまさかこんな超簡単に使えるライブラリがあるとは><;

これならちゃんとした既存のアルゴリズムでBPM測定が><

NAudio使ったことなかったけどしゅごい>< WASAPIのループバックレコーディングがサンプルコード30行以下で出来ちゃう><
github.com/naudio/NAudio

あと、GUIのアプリを簡単に作れないと
「大学でプログラミングちょっとやった時に文字は出せたんだけどさ あれがどうやったら普通のWindowsのアプリになるの?」
みたいになっちゃう><(これを何人に言われたことか><(3人くらい?><;))

型がゆるふわでは無い言語で学べば1時間で学べる(教えられる自信がある)事が、ゆるふわな言語で学んじゃうと何年も理解出来ない(人が実際に居た)し、遠回りになっちゃうような環境を教材にして教えるのってかわいそう><

古いものを表示
:realtek:

思考の /dev/null