Veryl registryAkiyukiOkayasu/gndless-oscillator-veryl · gndless_oscillatorSource ↗

Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

gndless_oscillator

Periodic waveform and noise oscillators for Veryl.

Version 0.3.0
Repository https://github.com/AkiyukiOkayasu/gndless-oscillator-veryl
License MIT OR Apache-2.0

Modules

MultiWaveCore マルチ波形生成コアモジュール
MultiWaveOscillator 波形選択式オシレーター
PinkNoise ピンクノイズジェネレーター (Voss-McCartney Algorithm + Xorshift32)
PwmSquareOscillator PWM変調可能な矩形波オシレーター
SawOscillator ノコギリ波オシレーター
SawWaveCore ノコギリ波生成コアモジュール
SineOscillator サイン波オシレーター (LUTのみ)
SineOscillatorLerp サイン波オシレーター (LUT + 線形補間)
SineWaveCore サイン波生成コアモジュール (LUTのみ)
SineWaveLerpCore サイン波生成コアモジュール (LUT + 線形補間)
SquareWaveCore 矩形波生成コアモジュール
TriangleOscillator 三角波オシレーター
TriangleWaveCore 三角波生成コアモジュール
WhiteNoise White Noise Generator (Xorshift32 Algorithm)

Packages

WaveTypes 波形タイプを定義するパッケージ

Modules


MultiWaveCore マルチ波形生成コアモジュール
MultiWaveOscillator 波形選択式オシレーター
PinkNoise ピンクノイズジェネレーター (Voss-McCartney Algorithm + Xorshift32)
PwmSquareOscillator PWM変調可能な矩形波オシレーター
SawOscillator ノコギリ波オシレーター
SawWaveCore ノコギリ波生成コアモジュール
SineOscillator サイン波オシレーター (LUTのみ)
SineOscillatorLerp サイン波オシレーター (LUT + 線形補間)
SineWaveCore サイン波生成コアモジュール (LUTのみ)
SineWaveLerpCore サイン波生成コアモジュール (LUT + 線形補間)
SquareWaveCore 矩形波生成コアモジュール
TriangleOscillator 三角波オシレーター
TriangleWaveCore 三角波生成コアモジュール
WhiteNoise White Noise Generator (Xorshift32 Algorithm)

MultiWaveCore

マルチ波形生成コアモジュール 位相入力から4種類の波形(Sine, Triangle, Saw, Pwm)を生成し、選択出力 Sineは線形補間付きLUT、他は組み合わせ回路 レイテンシ整合のため、全波形を1クロック遅延させて出力 レイテンシー: 1クロック

Ports


clk input clock クロック
phase input gndless_nco Phase phase_t 位相入力 (0 ~ 2^32-1)
wave_type input WaveType 波形タイプ選択
duty_cycle input gndless_nco Phase phase_t PWMデューティ比 (Pwm以外では無視)
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

MultiWaveOscillator

波形選択式オシレーター 4種類の波形(Sine, Triangle, Saw, Pwm)を切り替え可能 Sineは線形補間付きLUT、他は組み合わせ回路 波形切り替え時のレイテンシ整合のため、全波形を1クロック遅延させて出力 レイテンシー: 1クロック

Ports


clk input clock クロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input gndless_nco Phase step_t 1クロックあたりの位相ステップ量
wave_type input WaveType 波形タイプ選択
duty_cycle input gndless_nco Phase phase_t PWMデューティ比 (Pwm以外では無視)
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

PinkNoise

ピンクノイズジェネレーター (Voss-McCartney Algorithm + Xorshift32)

1/f特性を持つピンクノイズを生成する。 単一のXorshift32 RNGがフリーランし、サンプルカウンタの各ビット立ち上がりでラッチされることで1/fスペクトルを形成する。

24段構成: 行kは2^kサンプルごとに更新される 最低更新レート = sample_rate / 2^24 50MHz/200分周(250kHz)前提で約0.015Hz = サブオーディオ帯域まで余裕を持ってカバー

出力スケーリング: 24行のQ1.31和 → ÷8(>>3) → Q8.24変換(>>>7) = 合計>>>10 RMS ≈ √(24/3)/8 ≈ 0.35 (WhiteNoise比 -4.2dB)

Parameters


DIV u16 クロック分周比

Ports


clk input clock クロック
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

PwmSquareOscillator

PWM変調可能な矩形波オシレーター 全て組み合わせ回路で実装しているため遅延ゼロ

Ports


clk input clock クロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input gndless_nco Phase step_t 1クロックあたりの位相ステップ量: step = (ターゲット周波数 * 2^48) / システムクロック周波数
duty_cycle input gndless_nco Phase phase_t デューティ比 位相のどこまで High にするか (0 ~ 2^32-1)
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 波形出力 (Q4.23形式)

SawOscillator

ノコギリ波オシレーター 全て組み合わせ回路で実装しているため遅延ゼロ

Ports


clk input clock クロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input gndless_nco Phase step_t 1クロックあたりの位相ステップ量: step = (ターゲット周波数 * 2^48) / システムクロック周波数
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

SawWaveCore

ノコギリ波生成コアモジュール 位相入力から波形を生成する純粋な変換モジュール 全て組み合わせ回路で実装しているため遅延ゼロ

Ports


phase input gndless_nco Phase phase_t 位相入力
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

SineOscillator

サイン波オシレーター (LUTのみ) テーブル引きのサイン波 第一象限(0~90度)の波形データ10bit分をROMに持っているので、実質的な分解能は12bit相当 レイテンシー: 1クロック (BRAM読み出し分)

Ports


clk input clock クロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input gndless_nco Phase step_t 1クロックあたりの位相ステップ量: step = (ターゲット周波数 * 2^48) / システムクロック周波数
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

SineOscillatorLerp

サイン波オシレーター (LUT + 線形補間) 実質12bit相当のテーブル引きに線形補間を追加することで、高精細なサイン波を生成 レイテンシー: 1クロック (BRAM読み出し分)

Ports


clk input clock クロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input gndless_nco Phase step_t 1クロックあたりの位相ステップ量: step = (ターゲット周波数 * 2^48) / システムクロック周波数
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

SineWaveCore

サイン波生成コアモジュール (LUTのみ) 位相入力から波形を生成する純粋な変換モジュール 第一象限(0~90度)の波形データ10bit分をROMに持っているので、実質的な分解能は12bit相当 レイテンシー: 1クロック (BRAM読み出し分)

Ports


clk input clock クロック
phase input gndless_nco Phase phase_t 位相入力 (0 ~ 2^32-1)
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

SineWaveLerpCore

サイン波生成コアモジュール (LUT + 線形補間) 位相入力から波形を生成する純粋な変換モジュール 実質12bit相当のテーブル引きに線形補間を追加することで、高精細なサイン波を生成 レイテンシー: 1クロック (BRAM読み出し分)

Ports


clk input clock クロック
phase input gndless_nco Phase phase_t 位相入力 (0 ~ 2^32-1)
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

SquareWaveCore

矩形波生成コアモジュール 位相入力から波形を生成する純粋な変換モジュール 全て組み合わせ回路で実装しているため遅延ゼロ

Ports


phase input gndless_nco Phase phase_t 位相入力 (0 ~ 2^32-1)
duty_cycle input gndless_nco Phase phase_t デューティ比 位相のどこまで High にするか (0 ~ 2^32-1)
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

TriangleOscillator

三角波オシレーター 全て組み合わせ回路で実装しているため遅延ゼロ

Ports


clk input clock クロック
phase_rst input bbool 位相ゼロリセット (同期)
phase_step input gndless_nco Phase step_t 1クロックあたりの位相ステップ量: step = (ターゲット周波数 * 2^48) / システムクロック周波数
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

TriangleWaveCore

三角波生成コアモジュール 位相入力から波形を生成する純粋な変換モジュール 全て組み合わせ回路で実装しているため遅延ゼロ

Ports


phase input gndless_nco Phase phase_t 位相入力 (0 ~ 2^32-1)
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

WhiteNoise

White Noise Generator (Xorshift32 Algorithm)

Generates high-quality pseudo-random numbers suitable for audio noise. No reset signal required. Initializes with a non-zero seed on power-up.

Parameters


DIV u16 クロック分周比

Ports


clk input clock クロック
audio modport gndless_fixedpoint __FixedPointValue__gndless_fixedpoint_Q4_23 output_port 出力波形 (Q4.23形式)

Module Prototypes


Interfaces


Packages


WaveTypes 波形タイプを定義するパッケージ

WaveTypes

波形タイプを定義するパッケージ