Component: Waveform Generator (DSP Inputs): Difference between revisions
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 111: | Line 111: | ||
===Generate=== | ===Generate=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Generate''' | ||
|- | |- | ||
| colspan="2" | Assigns a single value to the specified buffer from the selected waveform data. Each call will read the next value from the waveform and will wrap correctly at the end of the data period. | | colspan="2" | Assigns a single value to the specified buffer from the selected waveform data. Each call will read the next value from the waveform and will wrap correctly at the end of the data period. | ||
| Line 125: | Line 125: | ||
===GenerateArray=== | ===GenerateArray=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GenerateArray''' | ||
|- | |- | ||
| colspan="2" | Fills the output buffer with the selected waveform data. If the buffer is smaller or larger then the waveform data period then the data passed will follow on correctly for subsequent cycles. | | colspan="2" | Fills the output buffer with the selected waveform data. If the buffer is smaller or larger then the waveform data period then the data passed will follow on correctly for subsequent cycles. | ||
| Line 139: | Line 139: | ||
===GetOffset=== | ===GetOffset=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetOffset''' | ||
|- | |- | ||
| colspan="2" | Gets the current phase of the wave as an index from 0 to Num Samples. | | colspan="2" | Gets the current phase of the wave as an index from 0 to Num Samples. | ||
| Line 153: | Line 153: | ||
===ModifyFrequency=== | ===ModifyFrequency=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ModifyFrequency''' | ||
|- | |- | ||
| colspan="2" | Sets the frequency output rate by altering the period offset to a new value. | | colspan="2" | Sets the frequency output rate by altering the period offset to a new value. | ||
| Line 172: | Line 172: | ||
===ModifyPhaseOffset=== | ===ModifyPhaseOffset=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ModifyPhaseOffset''' | ||
|- | |- | ||
| colspan="2" | Shifts the output phase by the specified absolute angle in degrees. | | colspan="2" | Shifts the output phase by the specified absolute angle in degrees. | ||
| Line 196: | Line 196: | ||
===SetOffset=== | ===SetOffset=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetOffset''' | ||
|- | |- | ||
| colspan="2" | Sets the current phase of the wave as an index from 0 to Num Samples. | | colspan="2" | Sets the current phase of the wave as an index from 0 to Num Samples. | ||
| Line 216: | Line 216: | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| Line 232: | Line 232: | ||
| colspan="2" | Sets the buffer data type. | | colspan="2" | Sets the buffer data type. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Waveform | ||
|- | |- | ||
|- | |- | ||
| Line 281: | Line 281: | ||
| colspan="2" | Degrees per default sample offset period | | colspan="2" | Degrees per default sample offset period | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Frequency Calculation - Reference Only | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix Ltd |
| Version | 1.2 |
| Category | DSP Inputs |
Waveform Generator component
A waveform generator component designed to plug into the DSP system component and allow several discreet waveforms to be generated. Functions available include: Sine, Cosine, Square, Pulse, Triangle, Sawtooth, Noise, Custom
Component Source Code
Please click here to download the component source project: FC_Comp_Source_DSP_Wave_Gen.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_DSP_Wave_Gen.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Basic Sine Wave Generator
FreqGen
The frequency is controlled by adjusting the potentiometer on the panel.
The frequency generator period is controlled using the Period Offset property and/or the SetOffset component macro. The Offset value is the LUT index multiplier so a offset of 3.0 will only read every 3 values of the waveform to provide 1/3 of the period and generate 3 x the frequency. As the waveform period is being reduced there is potential for the signal to start to become less defined and more stepped.
Multi Wave Signal Generator
Switch-able mode frequency generator example file generating different waveforms depending on the value on pins RB0 and RB1.
0 = Sine, 1 = Square, 2 = Triangle, 3 = SawTooth
The frequency is controlled by adjusting the potentiometer on the panel, the waveform is controlled by adjusting the switches on the panel.
Macro reference
Generate
GenerateArray
GetOffset
| GetOffset | |
| Gets the current phase of the wave as an index from 0 to Num Samples. | |
| Return | |
ModifyFrequency
| ModifyFrequency | |
| Sets the frequency output rate by altering the period offset to a new value. | |
| OffsetRate | |
| 0.2=F/5 0.5=F/2 1.0=F 1.5=F*1.5 2.0=F*2 | |
| Return | |
ModifyPhaseOffset
SetOffset
| SetOffset | |
| Sets the current phase of the wave as an index from 0 to Num Samples. | |
| Offset | |
| Offset Index: 0 to Num Samples -1 | |
| Return | |

