Synth build.

963 views
Skip to first unread message

Will Norton

unread,
Feb 23, 2015, 2:35:58 PM2/23/15
to mozzi...@googlegroups.com
Hello all, I am new to mozzi. I understand the basic sine wave code but do not understand much else. I would like to build an arduino based synth with 3 oscillators with pitch, amp and wave shape controll as well as a LPF, ADSR envelope as well as an lfo. Could you help me with the code? 

I would like to start with a simple oscillator that can produce either a sine, square, triangle or sawtooth wave. The two pots will controll pitch and amp. Thanks for the help. 
IMG_0068.JPG
IMG_0067.JPG

HOFFMAN Raphaël

unread,
Feb 23, 2015, 5:14:41 PM2/23/15
to mozzi...@googlegroups.com
Hello, i'm not an expert but these are my answers:

1. to set waveform of the vco :
 - include table like this:
#include <tables/square_analogue512_int8.h> 
#include <tables/triangle_analogue512_int8.h>
#include <tables/sin512_int8.h> 
#include <tables/saw_analogue512_int8.h>
and of course #include <Oscil.h> 
                                         
 - declare your oscillator:
(here i call it aOscil)
Oscil <512, AUDIO_RATE> aOscil;

- choose the table (so the wave form) for the oscillator:

aOscil.setTable(SIN512_DATA);
//or
aOscil.setTable(TRIANGLE_ANALOGUE512_DATA);
//or
aOscil.setTable(SAW_ANALOGUE512_DATA);
//or
aOscil.setTable(SQUARE_ANALOGUE512_DATA);

-  use updateAudio() to read the sound:

asig = (int8_t)(aOscil.next())
return (int) asig;

2. lpf
look at the fliter Knob mozzi's example. NB: the resonance is very different from those that are used on analog synth.

3.amp
just read values from your knob and change the range if necessary (use automap) attribute it to a variable and mutiply the signal by this variable in updateAudio() 
exemple :
 
 int gain = 0; 

 updateControl()
{
int gain = mozziAnalogRead(4)+1;
gain = kMapF(gain);
}
updateAudio()
{
return (int)asig*gain;
}

4. mixer:

To mix your vco you'll need to use "+" operator in updateAudio.

exemple:
 
(int) asig = (int8_t)(aOscil.next())+ (int8_t)(aOscil2.next());

Of course, all these can be optimized, i hope this help you.

Raphaël

Will Norton

unread,
Feb 23, 2015, 7:06:41 PM2/23/15
to mozzi...@googlegroups.com
thank you, that is very helpful with getting started. but when it comes to having a switch determine the oscillator, is it as simple as a few if or if else statements? 

--
You received this message because you are subscribed to the Google Groups "Mozzi-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozzi-users...@googlegroups.com.
To post to this group, send email to mozzi...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/mozzi-users/86cd9908-53bb-44a8-8042-2a4bc2351f66%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Will Norton

unread,
Feb 23, 2015, 8:51:40 PM2/23/15
to mozzi...@googlegroups.com
UPDATE: i have one of the oscillators working. (code below) it has 4 waveforms to choose from and it has pitch control. I have not configured the amp/intensity yet but am working on it currently. you can test the code and if you have any updates or advice, please post them in them below. thanks.

/*Mozzi Wave Form Oscillator
  -4 different wave shapes
  -adjustable pitch
  -adjustable amp/intensity (in progress)
  -audio output pin 9
  -Pitch pot +5v to 0v wiper to analog pin 0
  -amp/intensity pot +5v to 0v wiper to analog pin 1 (in progress)
*/


#include <MozziGuts.h> 
#include <Oscil.h> 
#include <AutoMap.h>
#include <tables/square_analogue512_int8.h> 
#include <tables/triangle_analogue512_int8.h>
#include <tables/sin512_int8.h> 
#include <tables/saw_analogue512_int8.h>
#define CONTROL_RATE 64

Oscil <512, AUDIO_RATE> aOscil0;
Oscil <512, AUDIO_RATE> aOscil1;
Oscil <512, AUDIO_RATE> aOscil2;
Oscil <512, AUDIO_RATE> aOscil3;

float centre_freq = 440.0;

const int MIN_CARRIER_FREQ = 22;
const int MAX_CARRIER_FREQ = 1000;

const int MIN_INTENSITY = 700;
const int MAX_INTENSITY = 0;

AutoMap kMapCarrierFreq(0,1023,MIN_CARRIER_FREQ,MAX_CARRIER_FREQ);
AutoMap kMapIntensity(0,1023,MIN_INTENSITY,MAX_INTENSITY);

const int KNOB1_PIN = A0;
const int KNOB2_PIN = A1;

int pin1 = 4;
int pin2 = 5;
int pin3 = 6;
int pin4 = 7;

int pin1State = 0;
int pin2State = 0;
int pin3State = 0;
int pin4State = 0;

void setup() {
  aOscil0.setTable(SIN512_DATA);
  aOscil1.setTable(TRIANGLE_ANALOGUE512_DATA);
  aOscil2.setTable(SAW_ANALOGUE512_DATA);
  aOscil3.setTable(SQUARE_ANALOGUE512_DATA);
  startMozzi(CONTROL_RATE);
  pinMode(pin1, INPUT);
  pinMode(pin2, INPUT);
  pinMode(pin3, INPUT);
  pinMode(pin4, INPUT);
}

void updateControl() {
  int knob1_value = mozziAnalogRead(KNOB1_PIN);
  int carrier_freq = kMapCarrierFreq(knob1_value);
  int knob2_level= mozziAnalogRead(KNOB2_PIN);
  int fm_intensity = kMapIntensity(knob2_level);
  aOscil0.setFreq(carrier_freq); 
  aOscil1.setFreq(carrier_freq); 
  aOscil2.setFreq(carrier_freq); 
  aOscil3.setFreq(carrier_freq); 

  
}

int updateAudio() {
  pin1State = digitalRead(pin1);
  pin2State = digitalRead(pin2);
  pin3State = digitalRead(pin3);
  pin4State = digitalRead(pin4);
 
  if (pin1State == HIGH) {
    return aOscil0.next();
  }
  else if (pin2State == HIGH) {
    return aOscil1.next();
  }
  else if (pin3State == HIGH) {
    return aOscil2.next();
  }
  else if (pin4State == HIGH) {
    return aOscil3.next();
  }
}

void loop() {
  audioHook();
}

HOFFMAN Raphaël

unread,
Feb 24, 2015, 6:10:02 AM2/24/15
to mozzi...@googlegroups.com
Hello, it could be uch better to use only one oscillator and determine wich table this will use in updateControl().
you can also declare and atribute your variable to PIN reading in setup();
This solution is uch better and allow you to use many oscillators without overloading your chip :

Oscil <512, AUDIO_RATE> aOscil0;

in setup():
pin1State = digitalRead(pin1);
  pin2State = digitalRead(pin2);
  pin3State = digitalRead(pin3);
  pin4State = digitalRead(pin4);

 updateControl()
{
if (pin1State == HIGH)
{
 aOscil0.setTable(SIN512_DATA);
}
if (pin2State == HIGH)
{
 aOscil0.setTable(TRIANGLE_ANALOGUE512DATA);
}
...and others if for your different waveform
}

int updateAudio() {
    return aOscil0.next();
 }

have fun.

Raphaël

HOFFMAN Raphaël

unread,
Feb 24, 2015, 6:19:23 AM2/24/15
to mozzi...@googlegroups.com
NB: to mix your differents VCO with there own waveform declare 3vco, in updatecontrol() use conditions to choose the wave form for each oscillator. In updateAudio() add-mix your oscillator with the "+" operator
for exmple : asig = (int8_t)(aOscil.next())+ (int8_t)(aOscil2.next()>>3) ;
                    return (int) asig;

notice that it should be dificult  to control your vco with cv signal like any modular synth with a precise response of 1v/oct. Let me know if you try that.

Raphaël

Le lundi 23 février 2015 20:35:58 UTC+1, Will Norton a écrit :
Hello all, I am new to mozzi. I understand the basic sine wave code but do not understand much else. I would like to build an arduino based synth with 3 oscillators with pitch, amp and wave shape controll as well as a LPF, ADSR envelope as well as an lfo. Could you help me with the code? 

I would like to start with a simple oscillator that can produce either a sine, square, triangle or sawtooth wave. The two pots will controll pitch and amp. Thanks for the help. vco

Will Norton

unread,
Feb 24, 2015, 8:43:11 AM2/24/15
to mozzi...@googlegroups.com
I'm not trying to have it be controllable with anything else. This is simply an emulation of a modular synth. Thanks for the help. I will keep you updated. 
--
You received this message because you are subscribed to the Google Groups "Mozzi-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozzi-users...@googlegroups.com.
To post to this group, send email to mozzi...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/mozzi-users/17e5bd42-fb05-416f-b4be-e3eb5b291c5b%40googlegroups.com.

Will Norton

unread,
Feb 25, 2015, 9:38:34 PM2/25/15
to mozzi...@googlegroups.com
UPDATE: I have the single VCO working with pitch and filter modulation, however in the updateControll() the wave shape selections do not work. I had them working earlier with 4 seperate oscillators but they all seem to combine into one distorted wave shape. any help here?

here is the revised code:

/*Mozzi Wave Form Oscillator
  -4 different wave shapes (currently not working...)
  -adjustable pitch
  -adjustable amp/intensity
  -audio output pin 9
  -Pitch pot +5v to 0v wiper to analog pin 0
  -amp/intensity pot +5v to 0v wiper to analog pin 1
*/

#include <MozziGuts.h> 
#include <Oscil.h> 
#include <AutoMap.h>
#include <tables/square_analogue512_int8.h> 
#include <tables/triangle_analogue512_int8.h>
#include <tables/sin512_int8.h> 
#include <tables/saw_analogue512_int8.h>
#define CONTROL_RATE 64

const int MIN_CARRIER_FREQ = 22;
const int MAX_CARRIER_FREQ = 440;

const int MIN_INTENSITY = 700;
const int MAX_INTENSITY = 10;

AutoMap kMapCarrierFreq(0,1023,MIN_CARRIER_FREQ,MAX_CARRIER_FREQ);
AutoMap kMapIntensity(0,1023,MIN_INTENSITY,MAX_INTENSITY);

const int PITCH_PIN = 0; // set the input for the knob to analog pin 0
const int INTENSITY_PIN = 1; // set the input for the LDR to analog pin 1

Oscil <512, AUDIO_RATE> aOscil;
Oscil <512, AUDIO_RATE> aModulator;

int mod_ratio = 3; // harmonics
long fm_intensity; // carries control info from updateControl() to updateAudio()

int pin1 = 4;
int pin2 = 5;
int pin3 = 6;
int pin4 = 7;

int pin1State = 0;
int pin2State = 0;
int pin3State = 0;
int pin4State = 0;

void setup(){
  //Serial.begin(9600); // for Teensy 3.0/3.1, beware printout can cause glitches
  Serial.begin(115200); // set up the Serial output so we can look at the piezo values // set up the Serial output for debugging
  startMozzi(); // :))
  pin1State = digitalRead(pin1);
  pin2State = digitalRead(pin2);
  pin3State = digitalRead(pin3);
  pin4State = digitalRead(pin4);
}

void updateControl(){
  // read the knob
  int pitch_value = mozziAnalogRead(PITCH_PIN); // value is 0-1023

  // map the knob to carrier frequency
  int carrier_freq = kMapCarrierFreq(pitch_value);
  
  //calculate the modulation frequency to stay in ratio
  int mod_freq = carrier_freq * mod_ratio;
  
  // set the FM oscillator frequencies to the calculated values
  aOscil.setFreq(carrier_freq); 
  aModulator.setFreq(mod_freq);
  
  // read the light dependent resistor on the Analog input pin
  int intensity_level= mozziAnalogRead(INTENSITY_PIN); // value is 0-1023
  
  // print the value to the Serial monitor for debugging
  Serial.print("intensity_level = "); 
  Serial.print(intensity_level); 
  Serial.print("\t"); // prints a tab
  
  fm_intensity = kMapIntensity(intensity_level);
  
  Serial.print("fm_intensity = ");
  Serial.print(fm_intensity);
  Serial.println(); // print a carraige return for the next line of debugging info

 if (pin1State == HIGH) {
    aOscil.setTable(SIN512_DATA); 
  }
  else if (pin2State == HIGH) {
    aOscil.setTable(TRIANGLE_ANALOGUE512_DATA);
  }
  else if (pin3State == HIGH) {
    aOscil.setTable(SAW_ANALOGUE512_DATA);
  }
  else if (pin4State == HIGH) {
    aOscil.setTable(SQUARE_ANALOGUE512_DATA);
  }

}

int updateAudio(){
  long modulation = fm_intensity * aModulator.next(); 
  return aOscil.phMod(modulation); // phMod does the FM
}


void loop(){
  audioHook();
}

Tim Barrass

unread,
Feb 25, 2015, 11:47:49 PM2/25/15
to mozzi...@googlegroups.com
Hi Will,
do you want to read you pin1State etc. just once in setup() the way you have it now, or rather in updateControl()?
Tim

Will Norton

unread,
Feb 26, 2015, 1:03:27 AM2/26/15
to mozzi...@googlegroups.com
Hi tim, thanks for the correction. It helped a little bit. i can hear slight differences between the wave shapes but not like i was when I had the 4 separate oscillators (see above). there still seems to be a lot of feedback and a lot of noise in the sound and im still not sure what is causing it. 

Here are the changes I made:

/*Mozzi Wave Form Oscillator
  -4 different wave shapes (currently not working...)
  -adjustable pitch
  -adjustable amp/intensity
  -audio output pin 9
  -Pitch pot +5v to 0v wiper to analog pin 0
  -amp/intensity pot +5v to 0v wiper to analog pin 1
*/

#include <MozziGuts.h> 
#include <Oscil.h> 
#include <AutoMap.h>
#include <tables/square_analogue512_int8.h> 
#include <tables/triangle_analogue512_int8.h>
#include <tables/sin512_int8.h> 
#include <tables/saw_analogue512_int8.h>
#define CONTROL_RATE 64

const int MIN_CARRIER_FREQ = 10;
const int MAX_CARRIER_FREQ = 1000;

const int MIN_INTENSITY = 1000;
const int MAX_INTENSITY = 10;

AutoMap kMapCarrierFreq(0,1023,MIN_CARRIER_FREQ,MAX_CARRIER_FREQ);
AutoMap kMapIntensity(0,1023,MIN_INTENSITY,MAX_INTENSITY);

const int PITCH_PIN = 0; // set the input for the knob to analog pin 0
const int INTENSITY_PIN = 1; // set the input for the LDR to analog pin 1

Oscil <512, AUDIO_RATE> aOscil;
Oscil <512, AUDIO_RATE> aModulator;

int mod_ratio = 3; // harmonics
long fm_intensity; // carries control info from updateControl() to updateAudio()

int pin1 = 4;
int pin2 = 5;
int pin3 = 6;
int pin4 = 7;

int pin1State = LOW;
int pin2State = LOW;
int pin3State = LOW;
int pin4State = LOW;

 
  

void setup(){
  //Serial.begin(9600); // for Teensy 3.0/3.1, beware printout can cause glitches
  Serial.begin(115200); // set up the Serial output so we can look at the piezo values // set up the Serial output for debugging
  startMozzi(); // :))

}

HOFFMAN Raphaël

unread,
Feb 26, 2015, 3:29:14 AM2/26/15
to mozzi...@googlegroups.com
This is the code i use to select waveforms in a synth project and it work perfectly (on a arduino uno):


in a function called from updateControl()
// wave number come from a knob value (with a range adapted with automap)
if (waveNumber == 0)
       {
        aOscil.setTable(SIN512_DATA);
        aOscil2.setTable(SIN512_DATA);
       }
        if (waveNumber == 1)
       {
        aOscil.setTable(TRIANGLE_ANALOGUE512_DATA);
        aOscil2.setTable(TRIANGLE_ANALOGUE512_DATA);
       }
       if (waveNumber == 2)
       {
        aOscil.setTable(SAW_ANALOGUE512_DATA);
        aOscil2.setTable(SAW_ANALOGUE512_DATA);
       }
       if (waveNumber == 3)
       {
        aOscil.setTable(SQUARE_ANALOGUE512_DATA);
        aOscil2.setTable(SQUARE_ANALOGUE512_DATA);
       }
       if (waveNumber == 4)
       {  
       aOscil.setTable(WAVESHAPE1_SOFTCLIP_DATA);
       aOscil2.setTable(WAVESHAPE1_SOFTCLIP_DATA);
       }


in update audio (i use also a lpf and a sub vco for the project that's why there is to set the waveforms of two vco) 

int updateAudio(){
  int8_t asig;
  if (sub == true)
  {
    asig = (int8_t)(aOscil.next())+ (int8_t)(aOscil2.next()>>3) ;
  }
  else
  {
    asig = (int8_t)(aOscil.next()) ;
  }
// int8_t asig = (int8_t)(aOscil.next());
   unsigned int asigfiltered = lpf.next(asig>>1);
 //asigfiltered >>8;
   
  
   return (int) asigfiltered;
   
}

I don't understand why it doesn't work with your code.





Le lundi 23 février 2015 20:35:58 UTC+1, Will Norton a écrit :

HOFFMAN Raphaël

unread,
Feb 26, 2015, 3:31:33 AM2/26/15
to mozzi...@googlegroups.com
the only différence i see is that i use a knob to select the waveforms


Le lundi 23 février 2015 20:35:58 UTC+1, Will Norton a écrit :

Tim Barrass

unread,
Feb 26, 2015, 8:16:39 AM2/26/15
to mozzi...@googlegroups.com
Hi Will,
I won't be able to test your code for a week or so, but you could try commenting out the print statements, there are a lot and they can bog down the processor....


--
You received this message because you are subscribed to the Google Groups "Mozzi-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozzi-users...@googlegroups.com.
To post to this group, send email to mozzi...@googlegroups.com.

Jean-Luc Deladrière

unread,
Mar 3, 2015, 1:51:59 AM3/3/15
to mozzi...@googlegroups.com
Hi Norton
I am working on a modular synth using Mozzi. The idea is to have Mozzi playing different roles in various copy of the same hardware. This would allow to build a synth using Mozzi like Lego bricks. One module would be an LFO another a VCO , a filter, etc
I have built a few modules  (see picture) and I am collecting some code here http://elek101.blogspot.be/2015/01/mozmo-brilliant-arduino-mozzi-synth-in.html
Maybe we could collaborate in developing these code. Are you planning to develop some hardware too ?
IMG_2334.jpg

HOFFMAN Raphaël

unread,
Mar 3, 2015, 3:45:07 AM3/3/15
to mozzi...@googlegroups.com
Hi Jean Luc, 

Very funny, i had this idea of a many in one module. Finally I'm developping a machine that will be many instruments in one (by loading differents arduino sketches).
For the moment a made a drum machine on a arduino mega with a tr707 similar interface and a synth sequenced by an integrated 16 steps sequencer (this will be usable on a arduino uno so I will develop a design with a atmega328 chip). 

I'm interrsted by collaboration with you and since Jean Luc Ladrière seems to be a french name I suppose that maybe you speak french like me (I'm from Belgium). 
This could help us to comunicate easily about the project. 

I'm building one of my "machine" projects, I just received my PCB from "PCBPool" but have to solder my components on this.
I'm working on a smaller design that will use atmega328 chip. 
I also would like to know if you have CV input for your modules. If not I beleive that this can be made using a voltage to frequency converter (like KA331) and maybe a clock divider (like CD4017) to get a usable frequency for the control rate of mozzi.

here is a video with test of the drum machine (the current get 3 instruments (with pitch and level konbs), an accent track, 24 sync input, 4 trigger output, an analog bass drum sound, random mode , random pitch mode...)


 


Le lundi 23 février 2015 20:35:58 UTC+1, Will Norton a écrit :

Will Norton

unread,
Mar 3, 2015, 8:41:18 AM3/3/15
to mozzi...@googlegroups.com
So far I am in the very beginning stages. I have gotten a vco working but that's about it. But I would like to work with you. I'm afraid I'd be of little help however. Thanks for the offer. 


On Tuesday, March 3, 2015, HOFFMAN Raphaël <sextee...@gmail.com> wrote:
Hi Jean Luc, 

Very funny, i had this idea of a many in one module. Finally I'm developping a machine that will be many instruments in one (by loading differents arduino sketches).
For the moment a made a drum machine on a arduino mega with a tr707 similar interface and a synth sequenced by an integrated 16 steps sequencer (this will be usable on a arduino uno so I will develop a design with a atmega328 chip). 

I'm interrsted by collaboration with you and since Jean Luc Ladrière seems to be a french name I suppose that maybe you speak french like me (I'm from Belgium). 
This could help us to comunicate easily about the project. 

I'm building one of my "machine" projects, I just received my PCB from "PCBPool" but have to solder my components on this.
I'm working on a smaller design that will use atmega328 chip. 
I also would like to know if you have CV input for your modules. If not I beleive that this can be made using a voltage to frequency converter (like KA331) and maybe a clock divider (like CD4017) to get a usable frequency for the control rate of mozzi.

here is a video with test of the drum machine (the current get 3 instruments (with pitch and level konbs), an accent track, 24 sync input, 4 trigger output, an analog bass drum sound, random mode , random pitch mode...)


 


Le lundi 23 février 2015 20:35:58 UTC+1, Will Norton a écrit :
Hello all, I am new to mozzi. I understand the basic sine wave code but do not understand much else. I would like to build an arduino based synth with 3 oscillators with pitch, amp and wave shape controll as well as a LPF, ADSR envelope as well as an lfo. Could you help me with the code? 

I would like to start with a simple oscillator that can produce either a sine, square, triangle or sawtooth wave. The two pots will controll pitch and amp. Thanks for the help. 

--
You received this message because you are subscribed to the Google Groups "Mozzi-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozzi-users...@googlegroups.com.
To post to this group, send email to mozzi...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/mozzi-users/75072d4a-4692-477a-9b6e-0ab8b9273784%40googlegroups.com.

Jean-Luc Deladrière

unread,
Mar 4, 2015, 4:34:27 AM3/4/15
to mozzi...@googlegroups.com
@Raphaël : je suis Belge francophone de la région de Namur et toi ?
Well done Raphaël ! is this drum machine using Mozzi too ? If yes I could re-use your sample (^_^) to have my module plays drums too (mapping the voltage level to trigger the appropriate sounds)
As for the voltage input is just use the AnalogRead from the Arduino with a basic voltage protection (see the schematic here : https://github.com/deladriere/euro-modules/blob/master/Mozmo/Img/schematic.png)
Of course if I would needs to play exact note from CV if would have to calibrate it. 

@Norton
 Would you like  to work with me on the software or are you also building your own hardware ?

@Anyone into modular synth 
I have still a few modules left to give away to get help me collecting some code. I am working on an LFO, SLFO, drum, Sampler, Arpeggiator, Filter ...

On Tuesday, March 3, 2015 at 2:41:18 PM UTC+1, Will Norton wrote:
So far I am in the very beginning stages. I have gotten a vco working but that's about it. But I would like to work with you. I'm afraid I'd be of little help however. Thanks for the offer. 

On Tuesday, March 3, 2015, HOFFMAN Raphaël <sextee...@gmail.com> wrote:
Hi Jean Luc, 

Very funny, i had this idea of a many in one module. Finally I'm developping a machine that will be many instruments in one (by loading differents arduino sketches).
For the moment a made a drum machine on a arduino mega with a tr707 similar interface and a synth sequenced by an integrated 16 steps sequencer (this will be usable on a arduino uno so I will develop a design with a atmega328 chip). 

I'm interrsted by collaboration with you and since Jean Luc Ladrière seems to be a french name I suppose that maybe you speak french like me (I'm from Belgium). 
This could help us to comunicate easily about the project. 

I'm building one of my "machine" projects, I just received my PCB from "PCBPool" but have to solder my components on this.
I'm working on a smaller design that will use atmega328 chip. 
I also would like to know if you have CV input for your modules. If not I beleive that this can be made using a voltage to frequency converter (like KA331) and maybe a clock divider (like CD4017) to get a usable frequency for the control rate of mozzi.

here is a video with test of the drum machine (the current get 3 instruments (with pitch and level konbs), an accent track, 24 sync input, 4 trigger output, an analog bass drum sound, random mode , random pitch mode...)


 


Le lundi 23 février 2015 20:35:58 UTC+1, Will Norton a écrit :
Hello all, I am new to mozzi. I understand the basic sine wave code but do not understand much else. I would like to build an arduino based synth with 3 oscillators with pitch, amp and wave shape controll as well as a LPF, ADSR envelope as well as an lfo. Could you help me with the code? 

I would like to start with a simple oscillator that can produce either a sine, square, triangle or sawtooth wave. The two pots will controll pitch and amp. Thanks for the help. 

--
You received this message because you are subscribed to the Google Groups "Mozzi-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozzi-users+unsubscribe@googlegroups.com.

Jean-Luc Deladrière

unread,
Mar 4, 2015, 4:35:43 AM3/4/15
to mozzi...@googlegroups.com
AnalogRead via mozziAnalogRead() of course (^_^)

Will Norton

unread,
Mar 4, 2015, 8:47:20 AM3/4/15
to mozzi...@googlegroups.com
@jean-luc,I do not have any hardware, I was trying to build a non modular synth but I think your modular synth would work better. I would love to work with your hardware. 
To unsubscribe from this group and stop receiving emails from it, send an email to mozzi-users...@googlegroups.com.

To post to this group, send email to mozzi...@googlegroups.com.
Message has been deleted

szymon lol

unread,
Mar 23, 2015, 5:12:52 AM3/23/15
to mozzi...@googlegroups.com
just got back to this thread.. i have been struggling with getting the lfo working with oscillators that programmed in mozzi... did you have any idea how it should be done ?
+ i'll show my code when i get on the other pc ;d
Reply all
Reply to author
Forward
0 new messages