ひろばニュース|2026/03/27~2026/04/02号

今週のニュースです!新着などのお知らせだよ!
みかんの新着おんがく紹介①|『ロストピース』
ループ:◎
用途: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』を使ったロジックについて下にこだわりポイントをまとめました。ぜひ一度読んでみてください。

①で、FFTと呼ばれる『音のデジタル変換』の計算式をオブジェクトから呼び出して、②で時間ごとの音量をメモ、そして③で100%単位に直します。
ことはのソースコード解説②|FFT(高速フーリエ変換)とは?
①離散フーリエ変換 (DFT) の基本式(これが『フーリエ変換』の基本)

| 変換後のデータ。特定の周波数(k)における「音の強さ(エネルギー)」。 | |
| 0 から N-1 までの全ての時間データを集計するという合図。 | |
| マイクや音源から入ってくる、時間ごとの空気の振動(振幅)データ。 | |
| 「特定の周波数を抜き出すための数学的な『ふるい』。サイン波・コサイン波を用いて、複雑な音の中から特定の高さの音だけを抽出。 | |
| 解析に使うデータの個数。 |
②『バタフライ演算』で高速化して計算量を減らそう!
1.分割:N個のデータを「偶数番目」と「奇数番目」のグループに分けます。
2.再帰: さらにそれを半分、また半分…と、データが1個になるまで分け続けます。
3.合体:最小単位から順に、上のバタフライ演算を使って「合体」させていきます。
具体例:データが8個 (N=8)だったら?
| DFT(通常のフーリエ変換) | FFT(バタフライ演算) |
| 全データ同士をひとつひとつ掛け算する。つまり、8×8個すべてを『ふるい』で計算。 | データを半分に分けて、計算結果を使い回す。 |
| 計算回数:64回 | 計算回数:24回(約3分の1!) |

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




