Gate Man Poly

FPGASynth.GateManPoly History

Hide minor edits - Show changes to markup

January 10, 2009, at 02:02 PM by 98.119.118.140 -
Changed lines 52-53 from:
  • This synth design initializes all synth parameters to zero on startup. As such, the synth will make no sound until a patch is configured to allow at least one NCO to sound (all NCO levels are zero at startup).
to:
  • This synth design initializes all synth parameters to zero on startup. As such, the synth will make no sound until a patch is configured to allow at least one NCO to sound (all NCO levels are zero at startup).
  • When sending patch data using the RS232 port, MIDI must not transmit messages otherwise the synth gets confused. This is because the interface for RS232 and MIDI share the same driver code which is very dumb. If the patch messages are sent via MIDI using a sequencer, this will not happen because the sequencer will be smart enough not to disobey the rules for sending system exclusive messages.
December 30, 2008, at 01:22 AM by 98.119.118.140 -
July 14, 2008, at 04:08 PM by 71.189.44.199 -
Changed lines 48-52 from:
  • gatemanpoly_steeldrums.mp3 - Some keyboard diddling using a patch that has steel drum qualities (to my ears). This demo was done using only one FPGA dev board. No effect was used to process the demo.
to:
  • gatemanpoly_steeldrums.mp3 - Some keyboard diddling using a patch that has steel drum qualities (to my ears). This demo was done using only one FPGA dev board. No effect was used to process the demo.

Notes

  • This synth design initializes all synth parameters to zero on startup. As such, the synth will make no sound until a patch is configured to allow at least one NCO to sound (all NCO levels are zero at startup).
July 14, 2008, at 04:06 PM by 71.189.44.199 -
Changed line 47 from:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do. This demo was done using only one FPGA dev board. No effect was used to process the demo.
to:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with heavily lowpass filtered LFSR noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do. This demo was done using only one FPGA dev board. No effect was used to process the demo.
July 09, 2008, at 05:54 PM by 71.189.44.199 -
Changed lines 34-35 from:
to:
Changed line 39 from:
  • ver_m: Had to fall back to 4 clocks per NCO, sinewave output was corrupted because the ROM lookup table needed an extra clock. Sample rate is still 250 KHz.
to:
  • ver_m: Had to fall back to 4 clocks per NCO, sinewave output was corrupted because the ROM lookup table needed an extra clock. Sample rate is still 250 KHz. Fixed PicoBlaze code that handles real note off messages.
July 01, 2008, at 11:12 PM by 71.189.44.199 -
Added line 48:
  • gatemanpoly_steeldrums.mp3 - Some keyboard diddling using a patch that has steel drum qualities (to my ears). This demo was done using only one FPGA dev board. No effect was used to process the demo.
June 05, 2008, at 09:57 PM by 71.118.250.239 -
Changed lines 34-35 from:
to:
Changed line 39 from:
to:
  • ver_m: Had to fall back to 4 clocks per NCO, sinewave output was corrupted because the ROM lookup table needed an extra clock. Sample rate is still 250 KHz.
June 05, 2008, at 06:06 PM by 71.118.250.239 -
Added lines 30-32:

MIDI Input and Audio Output Circuits: http://www.fpga.synth.net/pmwiki/uploads/FPGASynth/FPGA_MIDI_RCVR_and_OUTPUT.gif


June 05, 2008, at 03:27 PM by 71.118.250.239 -
Changed lines 40-41 from:
to:
June 05, 2008, at 03:20 PM by 71.118.250.239 -
Added lines 38-42:

GateManPoly Patch Editor

  • GateManPoly_Patch_Editor.zip - This is a VB project which runs under the FREE VB2008 Express Edition by Microsoft. It has a GUI with sliders and other controls to visually set up a patch. The program communicates through a serial port to the synth.
  • test001.gpf - A test patch file.

Changed line 44 from:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do. This demo was done using only one FPGA dev board. No effect was used to process the demo.
to:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do. This demo was done using only one FPGA dev board. No effect was used to process the demo.
May 30, 2008, at 05:38 PM by 71.118.250.239 -
Changed line 33 from:

Version History:

to:

Version History:

May 30, 2008, at 05:36 PM by 71.118.250.239 -
Changed line 34 from:
  • ver_k: Move divide by 12 from hardware ROM to software in the MCU. Reduce computation of each NCO from 3 4 clocks to 3. Fix noise modulation calculation, add noise signal boost control
to:
  • ver_k: Move divide by 12 from hardware ROM to software in the MCU. Reduce computation of each NCO from 4 clocks to 3. This allows for an additional clock for more features to be added. Fix noise modulation calculation, add noise signal boost control
May 30, 2008, at 05:34 PM by 71.118.250.239 -
Changed lines 34-37 from:
  • ver_k: Move divide by 12 from hardware ROM to software in the MCU.
        Reduce computation of each NCO from 3 4 clocks to 3.
        Fix noise modulation calculation, add noise signal boost control
to:
  • ver_k: Move divide by 12 from hardware ROM to software in the MCU. Reduce computation of each NCO from 3 4 clocks to 3. Fix noise modulation calculation, add noise signal boost control
May 30, 2008, at 05:33 PM by 71.118.250.239 -
Changed lines 31-32 from:
to:

Version History:

  • ver_k: Move divide by 12 from hardware ROM to software in the MCU.
        Reduce computation of each NCO from 3 4 clocks to 3.
        Fix noise modulation calculation, add noise signal boost control
  • ver_l: Add better gain adjustment windowing for both DAC and noise
May 20, 2008, at 04:35 PM by 71.118.250.239 -
Changed line 35 from:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do. This demo was done using only one FPGA dev board.
to:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do. This demo was done using only one FPGA dev board. No effect was used to process the demo.
May 20, 2008, at 03:52 PM by 71.118.250.239 -
Changed line 35 from:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do.
to:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do. This demo was done using only one FPGA dev board.
May 20, 2008, at 03:50 PM by 71.118.250.239 -
Changed line 35 from:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally.
to:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally. The patch is 3 NCOs set to saw, 2 an octave up. The 4th NCO is set to triangle and is 19 semitones up (octave+fifth). SVF Q is 8.1. All NCOs are pitch modulated with low frequency band limited noise. This creates the unpredictable timbre behavior noticable especially in the drone. This is only one patch and sound type this synthesizer can do.
May 20, 2008, at 03:47 PM by 71.118.250.239 -
Added line 35:
  • GateManPoly_demo_01.mp3 - One key is held as a drone while other keys are used to play a melody. The ADSRs have a long release time, so the polyphony comes into play to sustain those notes until they die out naturally.
May 20, 2008, at 04:15 AM by 71.118.250.239 -
Changed lines 17-18 from:

As can be seen in the diagram above, each of the 8 voices uses 4 NCOs for a total of 32 NCOs. Each NCO can produce one of 4 waveforms. Pitch can be band limited noise modulated (FM).

to:

As can be seen in the diagram above, each of the 8 voices uses 4 NCOs for a total of 32 NCOs. Each NCO can produce one of 4 waveforms. Pitch can be band limited noise modulated (FM). NCOs use 33 bit phase accumulators for high pitch resolution.

Changed lines 27-28 from:

This synthesizer contains 32 NCOs, 16 ADSRs, 32 noise generators, 32 single stage IIR noise filters, 8 NCAs and 8 SVFs.

to:

This synthesizer contains 32 NCOs, 16 ADSRs, 32 noise generators, 32 single stage IIR noise filters, 8 NCAs and 8 state variable filters.

May 20, 2008, at 04:10 AM by 71.118.250.239 -
Changed lines 27-28 from:

This synthesizer contains 32 NCOs, 16 ADSRs, 32 noise generators, 32 noise filters, 8 NCAs and 8 SVFs.

to:

This synthesizer contains 32 NCOs, 16 ADSRs, 32 noise generators, 32 single stage IIR noise filters, 8 NCAs and 8 SVFs.

May 20, 2008, at 04:07 AM by 71.118.250.239 -
Changed lines 21-22 from:

The design runs at 50 MHz with a sample rate of 250 KHz.

to:

The design uses a 50 MHz system clock and a sample rate of 250 KHz.

May 20, 2008, at 04:01 AM by 71.118.250.239 -
Changed lines 31-32 from:
to:
May 20, 2008, at 04:00 AM by 71.118.250.239 -
Changed lines 31-32 from:
to:
May 20, 2008, at 03:57 AM by 71.118.250.239 -
Changed lines 19-20 from:

This is a basic design that I am sure will morph and change over time. The design currently uses about 35% of the FPGA's slice resources. 14 block RAMs or dedicated multipliers remain free.

to:

This is a basic design that I am sure will morph and change over time. The design currently uses about 35% of the FPGA's slice resources. 14 block RAMs or dedicated multipliers remain free. The design uses 4 dedicated multipliers and 2 block RAMs.

May 20, 2008, at 03:40 AM by 71.118.250.239 -
Changed lines 9-10 from:

This project is an 8 voice linear arithmetic with FM polysynth. It is controlled with an embedded MIDI controller using PicoBlaze.

to:

This project is an 8 voice linear arithmetic with FM polysynth. It is controlled with an embedded PicoBlaze MIDI controller.

May 20, 2008, at 03:06 AM by 71.118.250.239 -
Added lines 10-11:

The structure of each voice is based on the GateMan monosynth.

May 20, 2008, at 02:40 AM by 71.118.250.239 -
Added lines 30-32:

GateManPoly Sounds

May 20, 2008, at 02:38 AM by 71.118.250.239 -
Changed lines 25-26 from:

This synthesizer contains 32 NCOs, 16 ADSRs, 32 noise generators, 8 NCAs and 8 SVFs.

to:

This synthesizer contains 32 NCOs, 16 ADSRs, 32 noise generators, 32 noise filters, 8 NCAs and 8 SVFs.

May 20, 2008, at 02:35 AM by 71.118.250.239 -
Added lines 25-26:

This synthesizer contains 32 NCOs, 16 ADSRs, 32 noise generators, 8 NCAs and 8 SVFs.

May 20, 2008, at 02:31 AM by 71.118.250.239 -
Changed lines 15-16 from:

As can be seen in the diagram above, each of the 8 voices uses 4 NCOs for a total of 32 NCOs. Each NCO can produce one of 4 waveforms. Pitch can be noise modulated (FM).

to:

As can be seen in the diagram above, each of the 8 voices uses 4 NCOs for a total of 32 NCOs. Each NCO can produce one of 4 waveforms. Pitch can be band limited noise modulated (FM).

May 20, 2008, at 02:29 AM by 71.118.250.239 -
Deleted line 24:

<<<<<<<

Deleted lines 26-29:

=======

GateManPoly Source Code >>>>>>>

May 20, 2008, at 02:27 AM by 71.118.250.239 -
Changed lines 25-29 from:
to:

<<<<<<<


GateManPoly Source Code =======

Added line 31:

>>>>>>>

May 20, 2008, at 02:27 AM by 71.118.250.239 -
Changed line 26 from:

GateManPoly Source Code

to:

GateManPoly Source Code

May 20, 2008, at 02:26 AM by 71.118.250.239 -
Added lines 24-27:

GateManPoly Source Code

May 20, 2008, at 02:23 AM by 71.118.250.239 -
Changed lines 5-6 from:

LA/FM 8 Voice Polysynth

to:

8 Voice LA/FM Polysynth

May 20, 2008, at 02:23 AM by 71.118.250.239 -
Changed lines 5-6 from:

LA/FM Polysynth

to:

LA/FM 8 Voice Polysynth

May 20, 2008, at 02:13 AM by 71.118.250.239 -
Changed lines 17-18 from:

This is a basic design that I am sure will morph and change over time. The design currently uses about 35% of the FPGA's slice resources. 14 RAMs or multipliers remain free.

to:

This is a basic design that I am sure will morph and change over time. The design currently uses about 35% of the FPGA's slice resources. 14 block RAMs or dedicated multipliers remain free.

Changed line 23 from:

The sample rate allows for a useful range of f and Q parameters

to:

The sample rate allows for a useful range of f and Q parameters for the state variable filter. Maximum Q is about 10.

May 20, 2008, at 02:12 AM by 71.118.250.239 -
Changed line 23 from:

The sample rate allows for a useful range of [b]f[/b] and Q parameters

to:

The sample rate allows for a useful range of f and Q parameters

May 20, 2008, at 02:10 AM by 71.118.250.239 -
Changed lines 15-23 from:

As can be seen in the diagram above, each of the 8 voices uses 4 NCOs. Each NCO can produce one of 4 waveforms. Pitch can be noise modulated (FM).

to:

As can be seen in the diagram above, each of the 8 voices uses 4 NCOs for a total of 32 NCOs. Each NCO can produce one of 4 waveforms. Pitch can be noise modulated (FM).

This is a basic design that I am sure will morph and change over time. The design currently uses about 35% of the FPGA's slice resources. 14 RAMs or multipliers remain free.

The design runs at 50 MHz with a sample rate of 250 KHz.

Synth parameters can be updated either by MIDI system exclusive messages or via a serial port connection.

The sample rate allows for a useful range of [b]f[/b] and Q parameters

May 20, 2008, at 02:01 AM by 71.118.250.239 -
Added lines 14-15:

As can be seen in the diagram above, each of the 8 voices uses 4 NCOs. Each NCO can produce one of 4 waveforms. Pitch can be noise modulated (FM).

May 20, 2008, at 01:58 AM by 71.118.250.239 -
Changed lines 9-13 from:

This project is an 8 voice linear arithmetic with FM polysynth. It is controlled with an embedded MIDI controller using PicoBlaze.

to:

This project is an 8 voice linear arithmetic with FM polysynth. It is controlled with an embedded MIDI controller using PicoBlaze.


Block Diagram http://www.fpga.synth.net/pmwiki/uploads/FPGASynth/GateManPoly_Block_Diag.gif


May 20, 2008, at 01:57 AM by 71.118.250.239 -
Changed lines 1-9 from:

x

to:

Author: Scott Gravenhorst

Verilog, designed for Spartan-3E SK, certainly adaptable for others.

LA/FM Polysynth

Description:

This project is an 8 voice linear arithmetic with FM polysynth. It is controlled with an embedded MIDI controller using PicoBlaze.

May 20, 2008, at 01:54 AM by 71.118.250.239 -
Added line 1:

x