Pages: [1]   Go Down
Author Topic: Designing an open-source synth and looking for the best architecture  (Read 2460 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
digital artist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hello,
all is almost in the title.

I'm currently designing an open-source synth and looking for the best architecture.
Before beginning to design the pcbs etc, I'd like to have a global view of all my project.

It will be an open source hardware DIY project ; but I probably sell the kits (already soldered pcb etc)

Some on avrfreaks advices me the  AT32UC regarding the features I'd need!
But, naturally, I'm thinking about using directly arduino modules + shields ; I mean, arduino + some hardware peripherals.

Briefly, I can quote those features I need. There are "high level", I mean, I consciously don't evoke how I would make that.

- digital synthesis (basic DCO, DCF, LFO linkable to several parameters)
- (lofi) sample uploading to make a kind of wavetable synthesis
- midi in (on USB probably)
- little sequencer (where I could save around 16 patterns into a memory and dump/restore it on a computer)
- some potentiometers
- some leds
- some buttons (switches)
- possible save/restore of some presets on a computer (through max/msp software which basically can talk ... any protocols I'd need)

I'm interested by any informations about the first right choices which will drive my next days.
After that, I coul begin to code stuff and prototype things.

all the best,
gluontronic
Logged


Brazil
Offline Offline
God Member
*****
Karma: 3
Posts: 616
Wusik Dot Com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The Arduino ATmega328 is a 8-bit 16Mhz chip, and can do only so much, so you won't be able to get a lot of those things from those chips. Unless you do a shield with some extra stuff outside the Arduino main chip.

For instance, I managed to get 6 voices from Timer1, and it would be possible to get another 4 voices from Timer0 and Timer2, but they are all 8-bits. Filters? I haven't tested, but, since you can get multiple PWM outputs, you could filter each output with an external analog filter.

Or you could make the whole thing monophonic, and have more options on board.

Still, so far I only managed to get like 32khz good sound from it, anything above makes a lot of noise. Or you could try a DAC, but, again, the ATmega328 can only do so much. ;-)

Wk
Logged


France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
digital artist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hello WilliamK,
thanks a lot for your answer.

I planned to make a shield, bigger than arduino itself, where I'll put every other components (filter, DAC, buffers, pots, muxer/demuxer etc)
What would be the platform you'd advice me ?

some people adviced me to build my own.
I could.
But really, I love the idea of modularity and I'd prefer to use the arduino as-it-is.

any advices?
Logged


Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 596
Posts: 33290
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Take a look at the propeller controller. That has 8 processors built into one chip and will allow you to do the time intensive task of synthesising a few waveforms. It also has 32k of RAM to give you space for buffers. It will also run up to 80MHz so is quite nippy. Best of all it is quite cheap, especially if you make it yourself.
Logged

Brazil
Offline Offline
God Member
*****
Karma: 3
Posts: 616
Wusik Dot Com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Netduino or any .NET stuff is TERRIBLE for audio, don't go that route, really.

The Arduino can do a lot, if programmed correctly, but its still 8-bits and limited.

Wk
Logged


France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
digital artist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hello all,
and I have firstly to thank you a lot for this debate which is very interesting and instructive for me.
I'm at the very beginning of the project, and I cand choose the right route before prototyping anything else.

8 bits wouldn't be a problem for me
I won't make an hifi hardware
It would be consiously cheap & raw.
I love the arduino idea because it is a module I could have for cheap price.
I can also rebuild it on an only one PCB (I have those skills) but I'm not sure it will be the right ratio between time spent / cheapness / reliability (soldering smd is difficult for me) etc.


I'll look at the propeller right now!

About memory, I planned to add memory to this system.


So if I consider 8bits is ok, memory is added, the "only" problem would be the speed.
At the maximum consumption of job time for the processor, there would be:
- MIDI listening (notes come from the computer, the keayboard)
- one waveform playing (monophonic)
- one LFO modulating 1 or 2 parameters
- distorsion fx (hardware probably I guess!)
- delay fx (hardware too ; but it is an option and not sure yet about that)

The sequencer could be only an array read for playing notes... I guess it wouldn't be cpu killing.

Do you think arduino could process that?
The next step would be prototyping it on my ... arduino. I have one.But no DACs, no buffers yet.
Logged


Brazil
Offline Offline
God Member
*****
Karma: 3
Posts: 616
Wusik Dot Com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I think that the Arduino can do a lot, if you stick to 8-bits, but heck, I'm nuts.  smiley-yell I already managed to get near 10 voices of 8-bit sounds at 20khz out of a single ATmega328 using the Arduino IDE. So its possible to do a lot of sound based stuff, you just have to be creative. ;-)

Wk
Logged


Boston, MA
Offline Offline
Edison Member
*
Karma: 0
Posts: 1024
wiblocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I did a numerically-controlled oscillator with my NB1A board
(ATmega328 + Quad 8-bit DAC). The code and documentation
is at
http://wiblocks.luciani.org/docs/app-notes/nb1a-nco.html

My plan is do add more audio modules VCF, VCA, in the future

(* jcl *)

Logged


Boston, MA
Offline Offline
Edison Member
*
Karma: 0
Posts: 1024
wiblocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I forgot to mention this Georgia Tech link --

Some students at Georgia Tech used the code as a DDS example
for a synth project --
http://www.ece.gatech.edu/academic/courses/ece4007/10fall/ECE4007L01/dk4/index.html

There is a Synth class at Georgia Tech and IIRC one of the requirements
is to post the project documentation. You could try searching through the past projects.

(* jcl *)
Logged


France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
digital artist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hello,
thanks a lot
it is very inspiring & interesting.
I almost decided to use a 32bit processor, finally.
If anyone is interested, I'll post everything on designthemedia.com/blog
Logged


Boston, MA
Offline Offline
Edison Member
*
Karma: 0
Posts: 1024
wiblocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You could end up needing a 32-bit processor, a DSP chip or an FPGA.
Using an 8-bit uC that you probably already have is a quick way
to get started.

Have fun.

(* jcl *)
Logged


France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
digital artist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

yes
I totally agree.
I intend to build/sell that under a CC license as an open-source hardware.

But, really, it will break the line and make the buzz.
Logged


Brazil
Offline Offline
God Member
*****
Karma: 3
Posts: 616
Wusik Dot Com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Just, please, don't go the .NET route, it sucks for audio, I tried. ;-)

Also, check the XMOS chips, they are great and inexpensive for what they do. (400mhz is a lot) But I found to be a pain to program, as its all event based. :-o

Wk
Logged


France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
digital artist
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hi william,
I'll consider your advices as precious ones!!!

arm9 samsung s3c2440 seems to be a nice & powerful beast.

c++ and lightest libs will be used.
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 47
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The AVR32 UC3 series chips with DSP and an audio DAC may be a better fit.
50 Mhz, fixed point DSP math.

This is a low cost DSP chip compared to many others.

This chip is not Arduino compatible, thus the Arduino IDE will not work.
Logged

Pages: [1]   Go Up
Jump to: