ひろばニュース|2026/03/27~2026/4/2号

みかん

今週のニュースです!新着などのお知らせだよ!

みかんの新着おんがく紹介①|『ロストピース』

ループ:◎
用途:Youtube動画向け、ゲーム・アプリ向け
時間:1分20秒
BPM:143
キー:C#m
ジャンル:あかるい、みらい
楽器:ギター、ピアノ、シンセサイザー

みかん

今週は木曜日に1曲だけ投稿しました!ギターの生演奏が入ったBGMで、バトルもの系です!やっぱりギターとベースってかっこいい!

みかんの新着おんがく紹介②|『30秒BGM』コーナー誕生!
みかん

今週はじめに、『15秒BGM』シリーズに続く第2弾、『30秒BGM』シリーズを開始しました!15秒シリーズに比べると更新は少しゆっくりだけど、気長に待っててね!

いろはの新着セットリスト|『テラリウム』×『キラキラ』
いろは

今週のセットリスト案のテーマは『洗練された輝き』です。この『テラリウム』が流れてから2~3秒したときに小さめの『キラキラ』を流すことで動画がさらに華やかな印象になりますわね。

ことはのソースコード解説①|『みかんのオーディオビジュアライザー』FFT部分解説
//① 解析用のノードを作成
analyser = audioCtx.createAnalyser();//★analyserが実体(箱)とした関数呼び出し。

// 2の累乗で指定(大きいほど周波数の解像度が上がります)
analyser.fftSize = 512; //2^9の数値

// 解析結果()を格納するための空の配列(Uint8Array)を用意
dataArray = new Uint8Array(analyser.frequencyBinCount);

//②現在の瞬間の周波数データ(音の高さごとの強さ)を dataArray に格納。
analyser.getByteFrequencyData(dataArray);//★瞬間のデータを配列にコピー。

//③dataArrayで録った0~255の音の大きさを0~100(百分率の割合)に変換!
// 配列から特定の周波数の強さを取り出す
const vol = (dataArray[i % dataArray.length] || 0) / 255;

// 例:棒グラフの「高さ」として計算
// vol(0.0〜1.0) × 設定された高さ × 感度
const barHeight = vol * h * sens;
ことは

『ひろば』ページにて展開されているオーディオビジュアライザー『みかんのオーディオビジュアライザー』で、音をデジタルデータに変換している『FFT』を使ったロジックについて下にこだわりポイントをまとめました。ぜひ一度読んでみてください。

①『analyser』を実体(箱)として、『audioCtx』というオーディオ管理のオブジェクトの中の『createAnalyser()』というFFT(高速フーリエ変換)の計算式の関数を呼び出し。
②『getByteFrequencyData()』で①の箱 (analyser) が計算してくれた用意したメモ帳(dataArray)に書き写し。
③メモ帳から取り出した数字(0〜255)を、扱いやすいように 0.0〜1.0(0%〜100%)の割合に変換。

ことは

①で、FFTと呼ばれる『音のデジタル変換』の計算式をオブジェクトから呼び出して、②で時間ごとの音量をメモ、そして③で100%単位に直します。

ことはのソースコード解説②|FFT(高速フーリエ変換)とは?
①離散フーリエ変換 (DFT) の基本式(これが『フーリエ変換』の基本)
XkX_k変換後のデータ。特定の周波数(k)における「音の強さ(エネルギー)」。
n=0N1\sum_{n=0}^{N-1}0 から N-1 までの全ての時間データを集計するという合図。
xnx_nマイクや音源から入ってくる、時間ごとの空気の振動(振幅)データ。
ei2πNkne^{-i \frac{2\pi}{N} kn}「特定の周波数を抜き出すための数学的な『ふるい』。サイン波・コサイン波を用いて、複雑な音の中から特定の高さの音だけを抽出
NN解析に使うデータの個数。

このN個のデータを全部、特定の音の高さを抜き出す『ふるい』の計算式にかけるのがDFT(フーリエ変換)です!

②『バタフライ演算』で高速化して計算量を減らそう!

1.分割:N個のデータを「偶数番目」と「奇数番目」のグループに分けます。
2.再帰: さらにそれを半分、また半分…と、データが1個になるまで分け続けます。
3.合体:最小単位から順に、上のバタフライ演算を使って「合体」させていきます。

8→4→2→1…と3回に分けているので、計算式では「log」を使います!もっと詳しく学びたい場合は高校数学で「対数」などで検索してみてください!

具体例:データが8個 (N=8)だったら?
DFT(通常のフーリエ変換)FFT(バタフライ演算)
8×8=648 \times 8 = 648×log28=248 \times \log_2 8 = 24
全データ同士をひとつひとつ掛け算する。つまり、8×8個すべてを『ふるい』で計算。データを半分に分けて、計算結果を使い回す。
計算回数:64回計算回数:24回(約3分の1!)

データが8個(N=8)なら3倍差、データが1024個(N=1024)になると、DFTは約100万回、FFTは約1万回となり、100倍もの差が生まれます!データ数が増えるほど差が開くので、現代テクノロジーのフーリエ変換にはFFTが必須!

ことは

先ほどの『createAnalyser()』という式、高速フーリエ変換(FFT)とは、いろいろな音が混ざった音波を、『ド・レ・ミ…』のような音の高さごとの成分に分解する計算、DFTの『高速バージョン』のことです。補足も上のアコーディオンブロックの中に書いたので、詳しく学びたい場合は一読してみてください。

タイトルとURLをコピーしました