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 
go to the radio page Live at electro-music.com radio 1 Please visit the chat
poster
 Forum index » DIY Hardware and Software
DIY Polysynth
Post new topic   Reply to topic Moderators: jksuperstar, Scott Stites, Uncle Krunkus
Page 2 of 2 [49 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Goto page: Previous 1, 2
Author Message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Sun Mar 27, 2011 9:42 pm    Post subject: Reply with quote  Mark this post and the followings unread

Year ago (march 2010) I've made new board.

Improvements:
+ LFOs, noise source and their VCAs are now built-in.
+ added third AVR for generating all 15 envelopes Mr. Green
+ some improvements in code - now it is much more stable


Unfortunately, I've made some mistakes during layout, so the board has many wire-jumpers and additional components Sad

Envelope generators maintain full resolution regardless of envelope amount. It is done by wiring one of the S/H outputs as switchable reference voltage for DAC.


23.03.2011 update:
I've added small board with third MAX525 DAC. So now I have 12 12-bit DAC channels, which enables me to individually tune each oscillator. I've added a "semi-autotune" routine - it performs almost like Wink autotune in Prophet-5, the only difference is that CPU doesn't measure frequency - you have to manually tune each oscillator on each octave using knobs on front panel. Then it computes values inbetween (using linear approximation) and stores that tuning table in memory.

If I can find a way of freeing (or switching) one CPU pin - which unfortunately would mean trace-cutting - I'll try to implement full autotune.
Back to top
View user's profile Send private message
reve



Joined: Feb 23, 2008
Posts: 149
Location: USA

PostPosted: Sun Mar 27, 2011 10:29 pm    Post subject: Reply with quote  Mark this post and the followings unread

adamstan wrote:

+ added third AVR for generating all 15 envelopes Mr. Green


Adamstan, I am currently gathering materials to follow you into polysynth-land. I was also thinking about using Wiltshire chips for EGs... but at the same time, I was looking at AVR datasheets knowing I could do what I wanted to do far more effectively with just a couple AVRs.

Would you have any interest in sharing your code here?

Cheers!

_________________
- r. mosquito
SynthDIY Synthpop -> http://www.reverbnation.com/photovoltaik
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Sun Mar 27, 2011 11:14 pm    Post subject: Reply with quote  Mark this post and the followings unread

OK. Currently I'm at work, but when I get back home, I'll post schematics for ADSR part, and code. It's written in Bascom.

It works similarly as Wiltshire's EG. The tricky part is passing parameters - I've used AVR's built-in buffered serial interface for it.

However, if you have space and funds, I'd suggest to use one chip for each envelope group, as generating 15 envelopes is really CPU intensive, and it makes passing parameters difficult, as there is little time left for it, and 15 parameters to pass (A,D,S,R and Level x3).

At 8MHz internal clock, I have envelope sample rate of about 3.5ms
Back to top
View user's profile Send private message
reve



Joined: Feb 23, 2008
Posts: 149
Location: USA

PostPosted: Mon Mar 28, 2011 8:02 am    Post subject: Reply with quote  Mark this post and the followings unread

adamstan wrote:
OK. Currently I'm at work, but when I get back home, I'll post schematics for ADSR part, and code. It's written in Bascom.


Awesome!!! I'm super-excited!

adamstan wrote:

I'd suggest to use one chip for each envelope group


This is exactly what I'd envisioned -- I was planning on groups of 8.

_________________
- r. mosquito
SynthDIY Synthpop -> http://www.reverbnation.com/photovoltaik
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Mon Mar 28, 2011 8:59 pm    Post subject: Reply with quote  Mark this post and the followings unread

reve wrote:
This is exactly what I'd envisioned -- I was planning on groups of 8.


If that's the case, just give me a little more time, and I will redraw this circuit and change the code for such task. Are you going for 8 voices? In that case - when single chip is used as one polyphonic EG - it's possible to have voltage control, which makes interfacing this circuit with the rest of the synth much easier.
Back to top
View user's profile Send private message
reve



Joined: Feb 23, 2008
Posts: 149
Location: USA

PostPosted: Tue Mar 29, 2011 12:14 am    Post subject: Reply with quote  Mark this post and the followings unread

adamstan wrote:
reve wrote:
This is exactly what I'd envisioned -- I was planning on groups of 8.


If that's the case, just give me a little more time, and I will redraw this circuit and change the code for such task. Are you going for 8 voices? In that case - when single chip is used as one polyphonic EG - it's possible to have voltage control, which makes interfacing this circuit with the rest of the synth much easier.


Exactly right, eight voices. I was assuming I'd use voltage control.... let the chip read 0-5v off a pot and use that same reading for all the EGs. So like, eight envelopes but only one attack knob. Would it make more sense to use interrupts or just continuously poll the inputs?

_________________
- r. mosquito
SynthDIY Synthpop -> http://www.reverbnation.com/photovoltaik
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Tue Mar 29, 2011 1:22 am    Post subject: Reply with quote  Mark this post and the followings unread

I poll the inputs continuously and set envelope stages accordingly in main loop, and use timer interrupt to generate envelope values and put them out - just like Wiltshire. The difference is, that I've used external 8-bit dac instead of PWM.
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Wed Mar 30, 2011 12:21 am    Post subject: Reply with quote  Mark this post and the followings unread

Shit, these spambots get smarter and smarter....
Back to top
View user's profile Send private message
blue hell
Site Admin


Joined: Apr 03, 2004
Posts: 24515
Location: The Netherlands, Enschede
Audio files: 298
G2 patch files: 320

PostPosted: Wed Mar 30, 2011 7:19 am    Post subject: Reply with quote  Mark this post and the followings unread

adamstan wrote:
Shit, these spambots get smarter and smarter....


Anything I failed to see?

_________________
Jan
also .. could someone please turn down the thermostat a bit.
Posted Image, might have been reduced in size. Click Image to view fullscreen.
Back to top
View user's profile Send private message Visit poster's website
egasimus



Joined: Feb 11, 2011
Posts: 113
Location: Bulgaria

PostPosted: Thu Mar 31, 2011 10:56 pm    Post subject: Reply with quote  Mark this post and the followings unread

God, that's brilliant. And it's a heck of a gesture just sharing all the schematics with the community like that. A million thanks!

Before I delve into the schematics, however, a superficial question: how is patch storage/retrieval achieved? I mean the part where the microcontroller interfaces with the analog circuits. Does it involve digital potentiometer ICs at some point, or is it somehow entirely achieved with control voltages?
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Fri Apr 01, 2011 1:16 am    Post subject: Reply with quote  Mark this post and the followings unread

egasimus wrote:
Does it involve digital potentiometer ICs at some point, or is it somehow entirely achieved with control voltages?


It's done just like everyone was doing it in 80's. Voltages from pots are read by ADC (built in CPU), and control voltages are put out by DAC.

Regarding the schematics, there are unfortunately some errors in the drawings. If somebody made that synth according EXACTLY to these drawings, it won't work Sad

Also, the patch memory circuitry has major design flaw - the 74LS154 which works as address decoder isn't strobed during transitions, which makes big noise in the ground - even power decoupling doesn't help. I can't fix it 'cause I've ran out of CPU pins Wink

I can post updated version, but I need some time to redraw and sort them - and I don't seem to have too much of it.
Back to top
View user's profile Send private message
egasimus



Joined: Feb 11, 2011
Posts: 113
Location: Bulgaria

PostPosted: Fri Apr 01, 2011 1:29 am    Post subject: Reply with quote  Mark this post and the followings unread

adamstan wrote:
It's done just like everyone was doing it in 80's. Voltages from pots are read by ADC (built in CPU), and control voltages are put out by DAC.


Yeah, I know but how is voltage control achieved for things outside the VCO/VCF frequencies and the like? For example, how do you control a VCF's resonance, or an envelope generator's settings using a voltage? Maybe with OTAs or JFETs?
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Fri Apr 01, 2011 1:51 am    Post subject: Reply with quote  Mark this post and the followings unread

egasimus wrote:
adamstan wrote:
It's done just like everyone was doing it in 80's. Voltages from pots are read by ADC (built in CPU), and control voltages are put out by DAC.


Yeah, I know but how is voltage control achieved for things outside the VCO/VCF frequencies and the like? For example, how do you control a VCF's resonance, or an envelope generator's settings using a voltage? Maybe with OTAs or JFETs?


I use Moog filter, so I adjust resonance by putting VCA (OTA-based, indeed) in filters feedback loop (instead of pot). Envelope generator is digital, and may be controlled with CV. But in current version, when all 15 (5x3) envelopes are generated by single ATMEGA32 chip, it is controlled digitally, using serial interface.

I'll try to post more about these envelopes, as I promised few posts above.
Back to top
View user's profile Send private message
reve



Joined: Feb 23, 2008
Posts: 149
Location: USA

PostPosted: Mon Apr 04, 2011 5:33 pm    Post subject: Reply with quote  Mark this post and the followings unread

[quote="adamstan"
I'll try to post more about these envelopes, as I promised few posts above.[/quote]

Yeah even just the code would be awesome. Smile

_________________
- r. mosquito
SynthDIY Synthpop -> http://www.reverbnation.com/photovoltaik
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Sun Apr 10, 2011 8:05 am    Post subject: Reply with quote  Mark this post and the followings unread

Here is scematic diagram for AVR-based voltage controlled ADSR envelope generator. I don't have the firmware for this version (single 8-channel EG) ready yet, but will upload it as soon as it's done.

WARNING: pin numbers are for SMD (TQFP44) version of ATMEGA32. For another package - consult your datasheet before soldering!


adsr.jpg
 Description:
 Filesize:  175.97 KB
 Viewed:  586 Time(s)
This image has been reduced to fit the page. Click on it to enlarge.

adsr.jpg


Back to top
View user's profile Send private message
reve



Joined: Feb 23, 2008
Posts: 149
Location: USA

PostPosted: Wed Apr 13, 2011 12:21 pm    Post subject: Reply with quote  Mark this post and the followings unread

adamstan wrote:
Here is scematic diagram for AVR-based voltage controlled ADSR envelope generator.


Hey adamstan, thanks for posting this!

The S+H is just a regular opamp, or some special s+h IC?

And maybe I should just wait for the code, but... what does the V9 switchable reference do?

_________________
- r. mosquito
SynthDIY Synthpop -> http://www.reverbnation.com/photovoltaik
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Wed Apr 13, 2011 1:02 pm    Post subject: Reply with quote  Mark this post and the followings unread

reve wrote:
adamstan wrote:
Here is scematic diagram for AVR-based voltage controlled ADSR envelope generator.


Hey adamstan, thanks for posting this!

The S+H is just a regular opamp, or some special s+h IC?

And maybe I should just wait for the code, but... what does the V9 switchable reference do?


1. Yes, S&H uses regular op-amp

2. V9 allows to adjust envelope level while maintaining full 8-bit resolution. It works like this:
1. 5V reference voltage is connected to DAC via U39A
2. Write "level" voltage to V9
3. Disconnect 5V reference
4. Connect V9 as reference
5. Update envelope outputs
6. Repeat Smile


I just realised that with single envelope group, like in the schematics above, it is not needed at all - you can just wire Level CV directly as DAC reference voltage. Remove U39A, U39B and U37B and connect your envelope LevelCV to the R31. I had to use this arrangement with switchable reference because in my case single circuit is responsible for three envelope groups (5 voices each), each group with its own level setting, and EG parameters are controlled digitally.
Back to top
View user's profile Send private message
reve



Joined: Feb 23, 2008
Posts: 149
Location: USA

PostPosted: Thu Apr 14, 2011 9:04 am    Post subject: Reply with quote  Mark this post and the followings unread

adamstan wrote:

2. V9 allows to adjust envelope level while maintaining full 8-bit resolution.


Oh this is clever. That's going to save me a stack of VCAs!

_________________
- r. mosquito
SynthDIY Synthpop -> http://www.reverbnation.com/photovoltaik
Back to top
View user's profile Send private message
Obsoletetechnology



Joined: Feb 22, 2011
Posts: 4
Location: Luxembourg

PostPosted: Fri Apr 29, 2011 6:38 am    Post subject: Reply with quote  Mark this post and the followings unread

hi,
adamstan, this is a fantastic job you did here!

I'm in the middle of developing my own Synth CPU board for polyphonic synthesizers, very similar to what you've done but based on a single PIC uC and a flexible firmware.

I was also going to develop my own voice boards, but before I do so I would like to ask what lessons you've learned from designing your own boards, which changes you would implement and what other considerations you might have. I am also wondering what CV voltage levels you are using on your boards, is everything +-10V control voltages ?

thanks,
Obsoletetechnology
Back to top
View user's profile Send private message Visit poster's website
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Thu May 05, 2011 1:14 am    Post subject: Reply with quote  Mark this post and the followings unread

Hi

I've learned that indeed making interconnections in polysynth is nightmare. If I had more money to spend on PCBs when I was designing this, I'd probably do as somebody said in your topic about voicecards - include local CPU and DAC on each voice and some kind of serial interface - instead of multiwire ribbon cables. It may be more expensive, but is also more reliable and makes it possible to do multitimbrality.


Obsoletetechnology wrote:

I am also wondering what CV voltage levels you are using on your boards, is everything +-10V control voltages ?


My CV levels are in 0-5V range, so I can switch them directly with TTL signals.
Back to top
View user's profile Send private message
robinkle



Joined: Jul 06, 2011
Posts: 8
Location: Norway

PostPosted: Sun Jul 10, 2011 8:06 am    Post subject: Reply with quote  Mark this post and the followings unread

how did you implement MOD Wheels? Are they transmitting midi?
Back to top
View user's profile Send private message
adamstan



Joined: May 23, 2008
Posts: 35
Location: poland

PostPosted: Tue Jul 12, 2011 9:39 pm    Post subject: Reply with quote  Mark this post and the followings unread

robinkle wrote:
how did you implement MOD Wheels? Are they transmitting midi?


Yes. They are implemented just like every other knob - they're read by ADC built into AVR.
Back to top
View user's profile Send private message
YashN



Joined: Jun 27, 2011
Posts: 104
Location: Canada

PostPosted: Mon Aug 01, 2011 9:39 pm    Post subject: Reply with quote  Mark this post and the followings unread

Thoroughly impressive.

I wish I can do that someday too.
Back to top
View user's profile Send private message
patchdub



Joined: Jan 21, 2009
Posts: 56
Location: Taos, NM

PostPosted: Mon Aug 01, 2011 10:06 pm    Post subject: Reply with quote  Mark this post and the followings unread

Shocked

very very inspiring!!

_________________
www.patchdub.com
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: jksuperstar, Scott Stites, Uncle Krunkus
Page 2 of 2 [49 Posts]
View unread posts
View new posts in the last week
Goto page: Previous 1, 2
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software
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