France
Offline
Jr. Member
Karma: 0
Posts: 62
digital artist technology-driven
|
 |
« on: February 21, 2011, 03:52:25 pm » |
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
God Member
Karma: 1
Posts: 615
Wusik Dot Com
|
 |
« Reply #1 on: February 21, 2011, 07:12:25 pm » |
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
Jr. Member
Karma: 0
Posts: 62
digital artist technology-driven
|
 |
« Reply #2 on: February 22, 2011, 10:54:16 am » |
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)
Online
Brattain Member
Karma: 272
Posts: 25439
Solder is electric glue
|
 |
« Reply #3 on: February 22, 2011, 03:15:18 pm » |
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
God Member
Karma: 1
Posts: 615
Wusik Dot Com
|
 |
« Reply #4 on: February 22, 2011, 06:41:38 pm » |
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
Jr. Member
Karma: 0
Posts: 62
digital artist technology-driven
|
 |
« Reply #5 on: February 23, 2011, 04:28:12 am » |
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
God Member
Karma: 1
Posts: 615
Wusik Dot Com
|
 |
« Reply #6 on: February 23, 2011, 05:49:09 am » |
I think that the Arduino can do a lot, if you stick to 8-bits, but heck, I'm nuts.  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
Edison Member
Karma: 0
Posts: 1024
wiblocks
|
 |
« Reply #7 on: February 27, 2011, 08:43:30 am » |
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.htmlMy plan is do add more audio modules VCF, VCA, in the future (* jcl *)
|
|
|
|
|
Logged
|
|
|
|
|
Boston, MA
Offline
Edison Member
Karma: 0
Posts: 1024
wiblocks
|
 |
« Reply #8 on: February 27, 2011, 09:54:48 am » |
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.htmlThere 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
Jr. Member
Karma: 0
Posts: 62
digital artist technology-driven
|
 |
« Reply #9 on: February 27, 2011, 11:09:17 am » |
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
Edison Member
Karma: 0
Posts: 1024
wiblocks
|
 |
« Reply #10 on: February 27, 2011, 11:18:30 am » |
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
Jr. Member
Karma: 0
Posts: 62
digital artist technology-driven
|
 |
« Reply #11 on: February 27, 2011, 11:22:53 am » |
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
God Member
Karma: 1
Posts: 615
Wusik Dot Com
|
 |
« Reply #12 on: February 27, 2011, 11:48:16 am » |
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
Jr. Member
Karma: 0
Posts: 62
digital artist technology-driven
|
 |
« Reply #13 on: February 27, 2011, 11:51:50 am » |
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
Newbie
Karma: 0
Posts: 47
Arduino rocks
|
 |
« Reply #14 on: March 13, 2011, 02:44:03 pm » |
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
|
|
|
|
|
|