Skip to content

SKKbySSK/KSynthesizer

Repository files navigation

KSynthesizer

4Eのデザイン実験で用いるシンセサイザーライブラリ

実行方法(TestTool)

SDKのインストール(初回のみ)

  • .Net Core 3.1 SDKをダウンロード
    • Windowsの場合はSDK Installer->x64で基本的にOK

TestTool.Windowsを使う場合

  • build-windows.batをダブルクリック
  • Release/TestTool.Windows.exeを実行

TestTool.Platform Raspberry Pi向けのセットアップ

(1) ビルド済みバイナリ

  • libsoundo/Linux-Release/にlibsoundio.a, libsoundio.so, libsoundio.so.2があります

(2) 手動ビルド

  • 任意の場所で
sudo apt-get install cmake libasound2-dev
git clone https://github.com/andrewrk/libsoundio.git
cd libsoundio/
mkdir build && cd build && cmake ..
make
  • libsoundio.a, libsoundio.so, libsoundio.so.2ができているはず

TestTool.Platformのインストール手順

Windows上で

  • bash等でsh publish-linux-arm.sh
  • build/linux-arm/にlibsoundio.a, libsoundio.so, libsoundio.so.2をコピー
  • sh publish-and-sync.sh
  • ラズパイの/home/pi/TestTool.Platformにlinux-arm以下がすべてコピーされる

次に、Raspberry Pi上で

  • ラズパイのターミナル上で/home/pi/TestTool.Platformへ移動
  • chmod 755 TestTool.Platform
  • ./TestTool.Platform
  • 440Hzの音が出れば成功

カスタムビルドをする場合

  • Visual Studioをインストール
  • Synthesizer.slnを開く

構成

  • KSynthesizer
    • シンセサイザーのコアライブラリ
    • クロスプラットフォーム対応
    • .Net Standard 2.1, .Net Core 3.1
  • TestTool.Windows
    • Windows向けのデバッグツール
    • 波形表示やオシレータの調整が可能

FFTについて

画面上でFFTを確認できますが、周波数分解能が86Hzくらいなのでごく低周波では大して使えないです。 原因としては、FFTする際に最大でも512サンプルしか渡してないので、44100Hz/512=86Hzとなるからです。 必要ならWAVファイルをエクスポートして、古いですがこちらのツール等で解析するといいかと。 WaveSpectra

実装

  • Sin波
  • 矩形波
  • ノコギリ波
  • 三角波
  • ミキサー
  • LPF
  • HPF
  • リバーブ
  • 全体用のADSR(時間変化に大して音量を変化させる e.g. 減衰していく振動など)
  • フィルタ用のADSR(時間変化に対してフィルタのカットオフを変化させる)

準備ができ次第実装

  • キーボードからの入力
  • PWM出力

追々実装

  • BPF
  • コーラス
  • ディレイ

参考

音階と周波数

LPF

実波形とフーリエ変換

ADSR Envelope

BiQuadFilter

Cookbook formulae for audio equalizer biquad filter coefficients

About

Synthesizer for GNCT Design Experiment

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages