情弱

情弱のVST作製メモ

音響信号処理言語"Faust"の勉強会に参加してきました

はじめに 先日、こちらの勉強会に参加してきました。 faust-jp.connpass.com "Faust"は関数型音響信号処理言語で、慣れれば爆速でDSPアルゴリズムの試作・検討ができるようです。 しかしながら、日本語による情報はまだまだ少ないのが現状とのことなので、 …

周期波形テーブルとシングルトン

はじめに サイン波テーブルを作成して、シングルトンでそれを使い回します。 例によって素人調べなので、間違いがありましたらご指摘いただければ幸いです。 テーブルルックアップ [1, 2] 周期波形1周期分のデータを用意し、それを使いまわす方法です。ここ…

手軽にフィルタ設計

はじめに SciPyのSignalサブパッケージを用いて、IIRフィルタを設計する際の基礎的なメモです。今回は、バタワース特性を持つローパスフィルタを設計してみます。 素人理解なので、間違いがありましたらご指摘いただければ幸いです。 IIRフィルタの設計[1-3]…

JUCEでソフトシンセをつくる 4 ~ ポリフォニック化

はじめに 前回までで、オシレータとAmpEnvを持つモノシンセができました。 今回は、これをポリフォニックシンセに拡張してやります。 モノからポリへ拡張する際の問題点 まずは、前回までのモノフォニックシンセにおけるMIDIと波形生成の流れをざっくりと図…

JUCEでソフトシンセをつくる 3 ~アンプエンベロープ

前回まで MIDI入力を通してAM・FMオシレータが鳴らせるようになりました。 今回は ADSRエンベロープカーブを持つアンプを実装します。実装するアンプエンベロープの仕様等については、後ほど記載します。 ソースファイルの追加 下の画像のように追加します。…

JUCEでソフトシンセをつくる 2 ~ AM・FMオシレータ

前回は MIDI入力を通して任意音階のSine波が鳴らせるようになりました。 今回は 先のSineOsillatorから、AM・FM Oscillatorを作ります。 AM・FM波の演算式は、それぞれ以下のものとして実装してみます。 ここで、は、それぞれ、キャリアSineOscの周波数、モ…

JUCEでソフトシンセをつくる 1 ~ Hello, SineとMIDI入力

はじめに JUCEを使って、ソフトシンセを作っていきます。 とりあえず、今回はSine波オシレータとMIDI入力を実装してみます。 仕様 以下の機能を実装します。 MIDI入力から音階(周波数)を取り出す 音階に対応したSine波を出力 MIDIがONの間はSine波を出力し…

VST作製~JUCEでShort Delay Pluginを作ったメモ

最初に 本記事は、以下のHaas効果なるステレオ効果を生じさせるVST Pluginを作製した際のメモになります。 偏ったDTM用語辞典 - ハースコウカ ハース効果:Haas Effectとは - DTM / MIDI 用語の意味・解説 | g200kg Music & Software Haas効果を生じさせるに…

Wavetableを使ったオシレータ1

Wavetable Synthesis Wavetable Synthesisとは 偏ったDTM用語辞典 - ウェーブテーブルオンゲン ウェーブテーブル音源:Wave Table Synthesisとは - DTM / MIDI 用語の意味・解説 | g200kg Music & Software だそうです。 今回は、サイン波1周期分をテーブル化…

JUCE-AudioProcessorParameter Classを使ったパラメータ管理あれこれ 1

AudioProcessorParameter Class JUCEには、パラメータを管理するクラスとしてAudioProcessorParameter Classが用意されている。どうやら、利用したいパラメータの数だけこのオブジェクトを用意してやれば、簡単にパラメータの数を追加できるっぽい。 パラメ…

ステップシーケンサー実装メモ1

概要 JUCEでステップシーケンサーを実装します。とりあえず、音階指定は無しで各ステップのノートのON/OFFを切り替えるだけの原始的なやつ 。 機能的には、1) 現在のステップがON状態だったら、holdTime (sec)だけON音信号を出力し、2) sizeStep (sec)経過し…