Shruthi-Synthesizer and my "WAVE 1"


Hi pichenettes. Shortcut buttons for important pages is a good idea :slight_smile: We’ll think it over…

‘SUB’ button is for SubMenu in pages
’LOAD’ button will be very much used to load samples and more.
‘RND’ button is for random values in different pages
’Rectangle and arrow’ button for play and stop function from sequencer
’W/S’ button selected samples ore waveforms in the osc page

Duplicate ‘W/S’ button is not correct. It should be ‘Cancel’ button


The existing buttons don’t necessarily have to be removed. Buttons are cheap, and adding a few for shortcuts to the osc, env, lfo, amp pages certainly won’t hurt.


You can make a cardboard or wooden prototype for testing user interfaces, button placement etc. Takes some imagination of course :slight_smile:

Blu-tac some buttons to card or wood and pretend you’re using it.

Some people make prototypes from polystyrene by cutting it with a saw to get a feel for size and shape.


Hi all,

this this at first a early preview how the DE-Generator can look. An i agree with you , page buttons are usefull , because there are a lot of Pages . Actual Rolf and me discuss Loop modulation by Mod Matrix and also Wavetable synthesis … Actual all User Waves - Waveforms- not samples- can change easy
by copy it on the SD card… I mean the OSC waves AND the LFO waves.

The Waves ars 256 Bit long- mono- and in RAW format .
Simply use a free Editor like Wavosaur to generate your own Waves in Raw format and copy it in the Degenerator as new LFO waves- for Example .

The OSC waves are organized in 256 bit but 64 in chain. So all waves together have a 32 Kbyte file. But you can also use a normal Sample as a complete waveform with 32kByte . This is split into Waves in 256 Byte …
We have made the OSC/LFO section very flexible.

All firmwars - samples and Waveforms are on the SD card . This means - if you cange the SD card it can be a new instrument The Degenerator can play now Samples up to 18…20 seconds .
18…20 seconds in one shot - or with loop . Loop in sustain- release. With loop no time limitations.
Resampling - Filter out to Audio In is also possible. The new Waveform you can store direct to the SD card and use it imdiately for your sounds.
And much more …
The memory DS is organise for example in 100 Banks with 128 Sounds .
Each Sound stores its own Sample in a preset ! But there is also a Main Preset Bank !
If you change the Sample or delete one main Sample -a copy is keep save in the Preset .
So you can’t loose the sounds - Thanks Rolf .

Timeline …
I think i start with the PCB’s now in january ,. Rolf draws actual the schematics and i have made the first - look and feel - GUI design.
Next i update my website with new infos/Pictures about the DE-Generator.

So hopefully this year we got it.


hufescharr (sorry, this is german)


Hä ? i am the greatest english speaker of the world …
But i hope you understand… haha


I am not good in waiting …


What should i say, i wait three jears …


You tell me…


Case Designe Beta4


From a prakical perspective, I would keep the midi and power/gate leds closer to the display, like in beta 3, to avoid having a too large UI-pcb or loose Midibox-style wiring.

The volume knob… I would prefer the buttons at the bottom and the volume knob at the top. Most synths put the volume knob at the top. You don’t operate it very often and touching it by accident can be problematic, especially live. With the knob on the top, its less likely to happen.

The shortcut buttons are a good addition! They could be color coded (e.g. grey)

I tried to edit your image to reflect my ideas. I would prefer the volume at the top right (from a usability and construction perspective) but the it looks too crammed on the right side…


The Volume Knob is direct above the power supply – HUM …


I was assuming it would be a “soft knob”. Well, then its better to put it to the top right.


Hey …
I’ve changed the external audio input in the DE-GENERATOR. Now has the possibility to sample the stereo input signal at the sum signal. Further, the input signal is also switched to the filter inputs. For the mini scope function of the stereo output is switched to the same ADC input. This saves components and board space.

Pic: extern Stereo Input from DE-GENERATOR


Hello everybody…

For better sample recording, I have connected the ADC input in Xmega processor as a differential input. The ADC is sampling in Xmega processor with 12bit and a sampling rate of 44.1KHz. Internally, the 12-bit value is reduced to 8bit and written into 1MByte large sample RAM. The OpAmp IC 15c + 15d makes a fifferential audio signal for the ADC input.

Pic: Filter and Sample input in DE:GENERATOR

This is the init code for the adc in the xmega128a1 prozessor:

// 12Bit / differencial mode / ext.VRef 2.5V PortA0 / Prescaler 64 / positive Input PortA3 / negative Input PortA1

ADCA.CTRLA = ADC_ENABLE_bm; // ADC enabled

Greetings from germany. Rolf


Hey …

In the DE:GENERATOR I have implemented a Noise Shaper function for better sample recording. The ADC input works with a resolution of 12 bits. For internal sample calculations I have downsampling from 12 to 8 bits (4 * right shifting). But recordung quit audio signals it has loud noise . The Noise Shaper moves this noise in a higher frequency range, so you hear the noise not so loud.

program code
// Test noise-sharping 12Bit 44.1KHz

int16_t quant_error = 0;

ISR TCC0_OVF_vect {

int16_t sample_x = ADCA_CH0RES;
int16_t sample_16 = sample_x * 12;
sample_16 += quant_error;
if (sample_16 < -32768){sample_16 = 32768;}
else if (sample_16 > 32767){sample_16 = 32767;}
int8_t sample_8 = sample_16 >> 8;
quant_error = sample_16 - ((int16_t)(sample_8) << 8);

/* convert 12Bit into 8Bit
uint16_t sample_16 = ADCA_CH0RES;
uint8_t sample_8 = sample_16 >> 4;

// DAC out
DACA.CH0DATAH = sample_8;
DACB.CH0DATAH = sample_8;

To demonstrate this I have added some sound samples. Respectively without and with the noise shaper function. Most clearly we hear it in sound 3 +4. The piano sounds are very quiet and you can here a loud noise floor from 8Bit resolution.

Sound 1 without NS
Sound 2 with NS
Sound 3 without NS
Sound 4 with NS
Sound 5 without NS
Sound 6 with NS

Greetings from Wuppertal in germany. Rolf


What kind of improvement do you get by using the differential input?

There’s one thing that puzzles me in your schematics: since the input is AC coupled, it seems to me that the voltages at IC15c’s and IC15d’s outputs swing below GND. How does the AVR handle that? The ADC input pin won’t be happy to receive the negative voltage.

I might be wrong about this because I just had a look at your schematics for 2 mins, but I suspect that currently, ADC_In- only sees the positive half of the signal, and ADC_In+ only sees the negative half of the signal - because these signals swing below 0. Which explains why you have to use differential mode to make it work. But even then, the performance won’t be good because of the clamping - the two “halves” of the signal won’t exactly sum up to the original signal.

Have you tried the simpler solution which consists in adding 1.25V to the signal so it wiggles between 0V and 2.5V (for example by feeding -2.5V through a 20k resistor to IC15c ; or 2.5V through a 20k resistor to IC15d). It might save you an ADC channel!


Hallo Pichenettes

Thanks for your interest and the great tips :slight_smile:

“What kind of improvement do you get by using the differential input?”

The factory quality of the ADC in old Xmega128a1 CPU is not good.The ADC has up to ±2 LSB inaccuracy and more. Therefore i make the differential input improves the better sample quality (lower SNR).

“There’s one thing that puzzles me in your schematics: since the input is AC coupled, it seems to me that the voltages at IC15c’s and IC15d’s outputs swing below GND. How does the AVR handle that?”

The internal schematic from xmega adc is an serial resistor with little capacitor (Pic 1). So I think
you can save a capacitor at the adc input.

"The ADC input pin won’t be happy to receive the negative voltage."
The ADC in the Xmega CPU has an input protection. I think i can save an extern protection circuit with diode ?


So does it mean that both inputs are AC-coupled in differential mode?

That would be strange.

Could you post oscilloscope traces of the signal hitting both ADC_input+ and ADC_input-

It seems to me that you’re sampling only the positive half of the signal on one side, and the negative half of the signal on the other side. Once you take the difference you get the full signal of course, but you’re probably getting crossover distortion if your circuit works this way.

My suggestion is to add a DC offset of 1.25V to the signal before it hits the ADC.


I’ve tried single adc input with dc offset on the xmega cpu (see above the penultimate circuit) and it was a bad NSR result. I have made a monitor function for reording in the DE:GENERATOR and you can here an sample directly. The differecial mode is the best sample result :slight_smile:

Pic 1: normal signal from adc input
Pic 2: overkill signal from adc input

yello signal is -input. blue is +input