Have finally cracked getting my own samples into Mozzi. The sound clips need to be VERY short (around 0.5 seconds) or they are too big for the Nano. I also tried mono to see if that saved space, but then there was no sound at all. I really raised the volume of this sample and the clipping isn’t too noticeable compared to the previously-encoded version , as it clips because of the processing anyway.
Here’s the code:
/* Example of playing a sampled sound, using Mozzi sonification library. Demonstrates one-shot samples scheduled with EventDelay. Circuit: Audio output on digital pin 9 on a Uno or similar, or DAC/A14 on Teensy 3.1, or check the README or http://sensorium.github.com/Mozzi/ Mozzi help/discussion/announcements: https://groups.google.com/forum/#!forum/mozzi-users Tim Barrass 2012, CC by-nc-sa. */ #include <MozziGuts.h> #include <Sample.h> // Sample template #include <samples/alienwave.h> #include <EventDelay.h> #define CONTROL_RATE 64 // use: Sample <table_size, update_rate> SampleName (wavetable) Sample <alienwave_NUM_CELLS, AUDIO_RATE> aSample(alienwave_DATA); // for scheduling sample start EventDelay kTriggerDelay; void setup(){ startMozzi(CONTROL_RATE); aSample.setFreq((float) alienwave_SAMPLERATE / (float) alienwave_NUM_CELLS); // play at the speed it was recorded kTriggerDelay.set(1500); // 1500 msec countdown, within resolution of CONTROL_RATE } void updateControl(){ if(kTriggerDelay.ready()){ aSample.start(); kTriggerDelay.start(); } } int updateAudio(){ return (int) aSample.next(); } void loop(){ audioHook(); }
With thanks to Tim Barass and his very helpful forum for help getting this working.