高度サウンドユニット
プチコン3号がシンセサイザー、エフェクターに!
高度サウンドユニットとは?
有償コンテンツとして、SmileBASICをさらに強化するための専門的な機能を追加いたしました。
第一弾となる「高度サウンドユニット」とは、音声信号の解析・加工に興味のある方向けの高度な拡張命令を提供する追加コンテンツです。
この機能を購入することで、BASIC上でソフトウェアシンセサイザーやエフェクターのような音に特化したプログラム作成が可能になります。
追加される命令・機能
「高度サウンドユニット」機能では、下記の命令を使用できるようになります。
追加命令 | 追加機能 |
---|---|
BIQUAD | BiQuadフィルタ |
BQPARAM | BiQuadパラメータ生成 |
FFT | フーリエ変換 |
IFFT | フーリエ逆変換 |
FFTWFN | FFT窓関数作成 |
PCMSTREAM | PCMストリーム再生 |
PCMPOS | PCMストリーム再生位置取得 |
PCMVOL | PCMストリーム音量設定 |
PCMSTOP | PCMストリーム再生の停止 |
PCMCONT | 停止したPCMストリーム再生の再開 |
ARYOP | 配列間の一括演算 |
RINGCOPY | リングバッファコピー |
ご注意
これらの命令は入力候補として表示されますが、追加機能を購入していない状態で実行した場合は DLC not found(命令名) というエラーが表示されます。
サンプルのダウンロード
「高度サウンドユニット」の3つのサンプルプログラムを、「プチコン3号」へご自由にダウンロードすることができます。
1.エフェクターサンプル
マイクから入力した音声信号をリアルタイムで加工してスピーカーからストリーム出力する、シンプルなエフェクターの例です。メインループの中で、マイク入力位置とストリーム出力の位置を常にチェックして、音が途切れないように入力、加工、出力と音声信号を渡しています。
音声信号の加工処理は、メインループの処理を意識せずにAUDIO_PROCというユーザー命令の中から呼べるようにしています。このサンプルでは、ディレイエフェクターのFX_DELAY、波形表示処理のDRAWWAVE、という2つの処理を呼んでいますが、独自に書いた他のエフェクター命令に変更したり追加したりしやすい構造になっています。
音声信号処理は、ARYOP、RINGCOPYなどのあらたに追加された配列演算命令を使用して高速に処理しています。
公開キー:REJD3H3
SU_SIMPLE(プロジェクト)
プログラムリストを開く2.STOMP
ギタリストが使うような本格的なエフェクターセットです。マイク入力した音声信号にさまざまな加工を加えてスピーカーからストリーム出力します。
STOMPには3種類のエフェクターと、波形表示機能が用意されています。各エフェクターはノブをドラッグすることで好みの音色に調整することができます。エフェクターのON/OFFはスイッチ部分にタッチするか、A、B、Yボタンで切り替えられます。Xボタンでプログラムを終了します。
- (1)ディストーション
- ハイゲインのギターアンプのように音を歪(ひず)ませます。
DRIVE 歪みの深さ
LEVEL 出力音量 - (2)ピッチシフター
- 音の音程を変更して元の音より高くしたり低くしたりします。
自分の声を子供の声や老人のような声にするボイスチェンジャーとしても使えます。
PITCH 音の高さ
LEVEL 出力音量 - (3)ディレイ
- 元の音を遅延させて繰り返し鳴らすことで、やまびこ効果のかかった音にします。
TIME 遅延させる時間
F.BACK 繰り返す回数
公開キー:RK45EHD
SU_STOMP(プロジェクト)
プログラムリストを開く3.FFTサンプル
高速フーリエ変換(FFT)命令を使ったサンプルです。マイクから入力した音声信号を周波数解析してビジュアライズします。表示方法は3種類用意されていて、Aボタンで切り替えられます。BボタンはFFT区間を切り出すときの窓関数を選択することができます。Xボタンでプログラムを終了します。
- (1)スペクトラムアナライザー
- 横軸を周波数帯、縦軸を信号の強さとして棒グラフのように表示します。
オーディオ機器などでよく見かける表示です。 - (2)2Dスペクトログラム
- 横軸を時間、縦軸を周波数帯、信号の強さを色で表示します。
- (3)3Dスペクトログラム
- 周波数帯を横軸、信号の強さを縦軸と色、奥行きを時間として3Dグラフで表示します。
公開キー:4DNE73NV
SU_SPEAN(プロジェクト)
プログラムリストを開く