Skip to content

Arduino sketches for Oskitone Scout using Mozzi synthesis library

License

Notifications You must be signed in to change notification settings

todbot/MozziScout

Repository files navigation

MozziScout

Arduino sketches for Oskitone Scout using Mozzi synthesis library!

Mozzi is an audio synthesis library for Arduino that can do multi-oscillator synthesis with filters and modulation on even an Arduino Uno.

Oskitone Scout is an adorable tiny keyboard kit, based on an Arduino Uno and entirely open source.

This repo shows some examples of using Mozzi on Scout, along with the small mod needed to make it work.

Table of contents

Sketches

  • mozziscout - a straight-forward Mozzi version of the 'scout' sketch that comes on Scout

  • mozziscout_monosynth1 - a fat mono synth, made of two detuned oscillators and a single resonant low-pass filter. Also features different startup modes to tune synth paramters. (see sketch for details)

  • mozziscout_drums_bass - a 4-voice drum sample kit (bd,sd,oh,ch) and a single oscillator synth in one!

  • mozziscout_chordorgan - a 5-oscillator synth with built-in chords! Sort of like Music Thing Modular's Chord Organ.

  • mozziscout_poly - a poly synth, sort of. Scout's keyboards doesn't allow true playing of chords, but with a slow release envelope and the playing of arpeggios, you can make chords

  • mozziscout_wash - a five-oscillator stacked chord sound based on the Mozzi example Control_Oscil_Wash

  • mozziscout_thx - an eight-oscillator stacked sound where the oscillators start at a random pitch and slowly converge to a chord. Vagugely based on THX Deep Note

Demos

  • "mozziscout_monosynth1" - Phat two-oscillator monosynth

    mozziscout_monosynth1_720p_nohdr.mp4

  • "mozziscout_poly" - Turn Scout into a polyphonic synth, sort of

    mozziscout_poly_demo1_720p_nohdr.mp4

  • "mozziscout_thx" - Make your Scout do THX Deep Note, sort of

    mozziscout_thx_demo1_720p_nohdr.mp4

How to mod your Scout

MozziScout is just like a normal Scout, but pins 9 & 11 are swapped, so we can use Mozzi. The Mozzi library uses pin 9 for audio, because that's on Timer1, a 16-bit timer. However Scout uses the 8-bit Timer2 on pin 9. It's not easy to swap these two functions in code.

So to make Scout work with Mozzi, swap the functions of pins 9 & 11 physically! Pin 9 is normally hooked up to the keyboard. Pin 11 is normally the audio out. Arduino pins 9 & 11 are ATmega328 pins 15 & 17. (Pin 15 is thebottom-right pin if looking down on it, and Pin 17 is two up from that)

One way two swap this is where the two legs of the ATmega328 chip are lifted, and jumper wires are soldered on and plugged into the socket, as in the photo below.

Using normal Scout code

After this mod, you can still use your Scout like normal, just make sure to swap pins 9 & 11 in the code.

const int SPEAKER_PIN = 9;  // was 11
byte rowPins[ROWS] = {7, 8, 11, 10};  // was {7, 8, 9, 10}

How to install Mozzi

Mozzi is not in the Arduino Library Manager, but installing it is pretty easy anyway. The installation process is the same way you hand-install any Arduino library.

  • Go to https://github.com/sensorium/Mozzi and click on the green "Code" button, then click "Download ZIP".
  • You will get a "Mozzi-master.zip" file. Rename it to "Mozzi.zip"
  • In the Arduino IDE, go to "Sketch" -> "Include Library" -> "Install .ZIP library...", then pick your "Mozzi.zip" file.
  • Once it completes, you will see Mozzi in the list of available libraries and the Mozzi examples in "File" -> "Examples" -> "Mozzi". Many of the examples will work with Scout but not use the keyboard.

Using Mozzi

  • Mozzi is very particular about what is in loop(). Do not put anything else in there. Instead put it in the void updateControl() function. See the sketches for examples.
  • Mozzi output is quieter than standard Scout (which outputs full-width square waves). Use an external amp for best results.

Any questions?

Open up an issue on this repo or contact me on twitter/@todbot!

About

Arduino sketches for Oskitone Scout using Mozzi synthesis library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •