electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
 Forum index » DIY Hardware and Software » Microcontrollers and Programmable Logic
Random Timbre Synthesizer
Post new topic   Reply to topic Moderators: State Machine
Page 1 of 1 [15 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Mon Aug 15, 2011 3:36 pm    Post subject: Random Timbre Synthesizer
Subject description: FPGA Synth
Reply with quote  Mark this post and the followings unread

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...


rts_rythmic_1ms.mp3
 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)


rts_slow_xfade.mp3
 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
View user's profile Send private message Visit poster's website
JLS



Joined: Nov 05, 2005
Posts: 490
Location: Czech
Audio files: 30
G2 patch files: 316

PostPosted: Wed Aug 17, 2011 6:40 am    Post subject: Reply with quote  Mark this post and the followings unread

Nice sound example and nice synth idea - thanks

P.S. is possible post source code ?

THANKS

_________________
Sorry my bad English Smile
https://soundcloud.com/1jls
https://soundcloud.com/user-819966312-266044932
https://github.com/jlswbs
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Wed Aug 17, 2011 2:47 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
JLS



Joined: Nov 05, 2005
Posts: 490
Location: Czech
Audio files: 30
G2 patch files: 316

PostPosted: Thu Aug 18, 2011 2:06 am    Post subject: Reply with quote  Mark this post and the followings unread

Thanks info and great work Smile
_________________
Sorry my bad English Smile
https://soundcloud.com/1jls
https://soundcloud.com/user-819966312-266044932
https://github.com/jlswbs
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Thu Aug 18, 2011 3:59 pm    Post subject: Reply with quote  Mark this post and the followings unread

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.


rts_sample_with_delay.mp3
 Description:
Random Timbre Synth sequence with delay effect

Download
 Filename:  rts_sample_with_delay.mp3
 Filesize:  251.86 KB
 Downloaded:  1262 Time(s)


rts_sample_with_delay_2.mp3
 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
View user's profile Send private message Visit poster's website
JLS



Joined: Nov 05, 2005
Posts: 490
Location: Czech
Audio files: 30
G2 patch files: 316

PostPosted: Fri Aug 19, 2011 2:01 am    Post subject: Reply with quote  Mark this post and the followings unread

Nice sound example delay is very usefull !

Thanks

P.S. modulation delay will be great Smile

_________________
Sorry my bad English Smile
https://soundcloud.com/1jls
https://soundcloud.com/user-819966312-266044932
https://github.com/jlswbs
Back to top
View user's profile Send private message Visit poster's website
PHOBoS



Joined: Jan 14, 2010
Posts: 5591
Location: Moon Base
Audio files: 705

PostPosted: Fri Aug 19, 2011 3:56 am    Post subject: Reply with quote  Mark this post and the followings unread

sounds great scott!! Very Happy
_________________
"My perf, it's full of holes!"
http://phobos.000space.com/
SoundCloud BandCamp MixCloud Stickney Synthyards Captain Collider Twitch YouTube
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Fri Aug 19, 2011 1:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

I don't know why I didn't do it in the first place, but I added response to "MIDI start" (0xFA) to synchronize the synth to the sequencer driving it. The MIDI start message resets the MIDI clock divider counter to zero. In the short sample below, you can clearly hear that the waveform changes are synched to the beat. The sequencer was run at 100 BPM. Except for the last note, all the notes are half notes and 4/4 time. The synth's MIDI clock divider was set to 6.


rts_sample_rythmic_using_MIDI_start.mp3
 Description:
Sample demonstrates synth's response to MIDI start message.

Download
 Filename:  rts_sample_rythmic_using_MIDI_start.mp3
 Filesize:  185.33 KB
 Downloaded:  1132 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

Last edited by JovianPyx on Sat Aug 20, 2011 12:21 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Fri Aug 19, 2011 5:44 pm    Post subject: Reply with quote  Mark this post and the followings unread

This is a one minute drone I did.


rts_short_drone.mp3
 Description:
A one minute drone.

Download
 Filename:  rts_short_drone.mp3
 Filesize:  1.02 MB
 Downloaded:  1276 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
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Sat Aug 20, 2011 1:21 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
BobTheDog



Joined: Feb 28, 2005
Posts: 4044
Location: England
Audio files: 32
G2 patch files: 15

PostPosted: Sun Aug 21, 2011 2:55 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Sun Aug 21, 2011 3:44 pm    Post subject: Reply with quote  Mark this post and the followings unread

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
View user's profile Send private message Visit poster's website
BobTheDog



Joined: Feb 28, 2005
Posts: 4044
Location: England
Audio files: 32
G2 patch files: 15

PostPosted: Sun Aug 21, 2011 10:45 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hi Scott,

Thanks for the info, I will download your project and have a look.

Cheers

Andy
Back to top
View user's profile Send private message
JLS



Joined: Nov 05, 2005
Posts: 490
Location: Czech
Audio files: 30
G2 patch files: 316

PostPosted: Tue Aug 23, 2011 11:45 pm    Post subject: Reply with quote  Mark this post and the followings unread

Many thanks source code Smile

This is great work !

THANKS

_________________
Sorry my bad English Smile
https://soundcloud.com/1jls
https://soundcloud.com/user-819966312-266044932
https://github.com/jlswbs
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1988
Location: West Red Spot, Jupiter
Audio files: 224

PostPosted: Thu Nov 03, 2011 3:03 pm    Post subject: Reply with quote  Mark this post and the followings unread

I've made an improvement to the Random Timbre Synth. I've included an interface to the DDR SDRAM on the Spartan-3E Starter Kit that I use to implement a looped delay effect a bit over 20 seconds long.

A "snapshot" of the soundscape while using the synth is in the attached .flac file.

It's called One Note Samba because I put a weight on the sustain pedal and hit a low C. Delay time setting was something between 1 and 2 seconds, feedback was over 90%.


Random_Timbre_Synth_Drone_with_Delay.flac
 Description:
Random Timbre Synth - Drone with Delay

Download
 Filename:  Random_Timbre_Synth_Drone_with_Delay.flac
 Filesize:  6.72 MB
 Downloaded:  977 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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic Moderators: State Machine
Page 1 of 1 [15 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software » Microcontrollers and Programmable Logic
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use