Author |
Message |
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Mon Aug 15, 2011 3:36 pm Post subject:
Random Timbre Synthesizer Subject description: FPGA Synth |
|
|
I've mostly completed a new FPGA MIDI synth project: A Random Timbre Monosynth.
Here is what that means for this synth:
Random waveshapes are generated using a 2 wavetable structure.
While one wavetable plays, the other is filled with a new waveform.
At MIDI clock (or a divide down of it) the synth will respond by generating a new random waveform in the "non playing" wavetable.
Variable time crossfade effect is implemented.
Crossfade time can be as slow as several seconds down to 1 millisecond.
The design also includes a lowpass filter to help limit buzziness if that is not desired. There are other controls that add or subtract from buzziness.
The system used was a Spartan-3E Starter Kit.
The synth also responds to MIDI note number and velocity, but that is not demonstrated in the samples. Portamento is implemented. Sample rate is 100 kHz with a 12 bit DAC.
Some example sound clips are below...
Description: |
Random Timbre Synth Sample: Fast crossfade time with a rythmic change in timbre |
|
Download |
Filename: |
rts_rythmic_1ms.mp3 |
Filesize: |
337.99 KB |
Downloaded: |
1208 Time(s) |
Description: |
Random Timbre Synth Sample: Slow crossfade time with a rythmic change in timbre |
|
Download |
Filename: |
rts_slow_xfade.mp3 |
Filesize: |
656.35 KB |
Downloaded: |
1168 Time(s) |
_________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
Back to top
|
|
|
JLS
Joined: Nov 05, 2005 Posts: 490 Location: Czech
Audio files: 30
G2 patch files: 316
|
|
Back to top
|
|
|
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Wed Aug 17, 2011 2:47 pm Post subject:
|
|
|
I will make the source available - when I get it finished. Right now, the synth itself works. I found I had 14 K of 18 bit wide block RAM left over, so I'm writing a delay effect into the design. It will go up to 143.36 mSec of delay (100 kHz sample rate), which will be looped. The output will be a wet/dry pan. pretty standard basic stuff, but it sounds nice and the RAM is just sitting there.
It needs a divider for the MIDI clock, right now it switches waveforms on every F8. That's easy, but I have to do it. And there's more testing to do, but I think the heavy lifting is finally over. The state machine has about 80 states in it, so it was "interesting" to debug.
Anyway, when I get that all working, I'll post a link to the source. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
Back to top
|
|
|
JLS
Joined: Nov 05, 2005 Posts: 490 Location: Czech
Audio files: 30
G2 patch files: 316
|
|
Back to top
|
|
|
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Thu Aug 18, 2011 3:59 pm Post subject:
|
|
|
I got delay and the MIDI clock divider working, the sample contains some notes using a MIDI clock source from the sequencer playing the notes.
Description: |
Random Timbre Synth sequence with delay effect |
|
Download |
Filename: |
rts_sample_with_delay.mp3 |
Filesize: |
251.86 KB |
Downloaded: |
1262 Time(s) |
Description: |
Another sample, this one has a approx 120 mSec crossover time, same sequence. MIDI clock was divided more too. |
|
Download |
Filename: |
rts_sample_with_delay_2.mp3 |
Filesize: |
235.54 KB |
Downloaded: |
1239 Time(s) |
_________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
Back to top
|
|
|
JLS
Joined: Nov 05, 2005 Posts: 490 Location: Czech
Audio files: 30
G2 patch files: 316
|
|
Back to top
|
|
|
PHOBoS
Joined: Jan 14, 2010 Posts: 5591 Location: Moon Base
Audio files: 705
|
|
Back to top
|
|
|
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
|
Back to top
|
|
|
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
|
Back to top
|
|
|
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Sat Aug 20, 2011 1:21 pm Post subject:
|
|
|
Source code.
The zip contains the Verilog source code for a Spartan-3E Starter Kit and VB.NET source code for the patch editor. Once expanded, you'll see a directory under "pub" called "Patch_Editor". There you will find the VB.NET source code for the patch editor. It works at least in Visual Studio 2008 VB.NET Express Edition (free). A cable is required to connect the DCE port of the FPGA board to the PC's COM port.
NOTE: The patch editor is a work in progress and was produced by modifying another similar program. The LOAD and SAVE buttons do not work. I believe there is no help file as well, so the Help button may give an error page. The portamento screen values are nonsense, but the slider does what it's supposed to do. Clicking the green SEND button will send the current patch to the synth. Make sure not to send patch data via the COM port while sending MIDI data through the MIDI port.
Source is here:
http://jovianpyx.dyndns.org:8080/public/FPGA_synth/Random_Timbre_Synth_ver_n_Source.zip _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
Back to top
|
|
|
BobTheDog
Joined: Feb 28, 2005 Posts: 4044 Location: England
Audio files: 32
G2 patch files: 15
|
Posted: Sun Aug 21, 2011 2:55 pm Post subject:
|
|
|
Hi Scott,
Those Spartan-3E Starter Kits look good value now, do you get all software required to program them with the kit? Is the software crippled in any way?
Cheers
Andy |
|
Back to top
|
|
|
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
Posted: Sun Aug 21, 2011 3:44 pm Post subject:
|
|
|
I use the WebPACK ISE which is free. I am told that the pay-for-it version can get a few more percent of slice usage out of a given FPGA. But I've not had problems with "hitting the wall" that way. All of my synth projects were "compiled" with the free WebPACK ISE. The software is a big download. You have to register to get it. Also the embedded soft microcontroller I use is free as well - PicoBlaze. It's a 25 MIPS 8 bit RISC. The only cash I have invested in this is for the boards themselves. I had to build a tiny electrical interface to go from DAC to "audio out" and also a MIDI receiver. Those schematics are in the docs subdirectory of this project.
I actually like the DAC on the Starter Kit, it goes to 1.0 MHz sample rate. It's only 12 bits, but it actually sounds quite nice IMO, especially driven at high sample rates. The Starter Kit also has DDR DRAM which I've not yet used, but I must. Some 64 megabytes I think. ADCs too, but I've not used those either. 12 bit I think. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat? corruptio optimi pessima
|
|
Back to top
|
|
|
BobTheDog
Joined: Feb 28, 2005 Posts: 4044 Location: England
Audio files: 32
G2 patch files: 15
|
Posted: Sun Aug 21, 2011 10:45 pm Post subject:
|
|
|
Hi Scott,
Thanks for the info, I will download your project and have a look.
Cheers
Andy |
|
Back to top
|
|
|
JLS
Joined: Nov 05, 2005 Posts: 490 Location: Czech
Audio files: 30
G2 patch files: 316
|
|
Back to top
|
|
|
JovianPyx
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 224
|
|
Back to top
|
|
|
|