This is the descriptions of the control functions from the Electrosmith Daisy Patch SM sample code.
Envelope Example
This example demonstrates using the daisy for an ADSR envelope. This example shows off the ability to output audio rate control voltage signals from the CV output pins of the DAC.
Controls
Pin Name | Pin Location | Function | Comment |
CV 1 | C5 | Attack Time | Range is from instant to 1 second |
CV 2 | C4 | Decay Time | Range is from instant to 1 second |
CV 3 | C3 | Sustain Level | Range is from 0v to 5V for sustain stage |
CV 4 | C2 | Release Time | Range is from instant to 1 second |
Gate In 1 | B10 | ADSR Gate | Input for engaging the envelope |
Button | B7 | ADSR Button | Engages the envelope while pressed |
Hardware Test
Hardware verification test.
This is set up to use the patch.Init() hardware to verify the Patch SM is functioning as expected.
To verify the various functionality:
- USB Serial port is used to print data
- ADC Values for all 12 ADCs are printed (four of these are on the expander bank)
- Gate input values
- B7 and B8 (check actual pin names) values based on toggle/button position
- SDRAM Pass/Fail
- QSPI Pass/Fail
- SDMMC Pass/Fail
- If an SD Card is connected at bootup the it will write, and readback a text file to verify it functions.
- Audio will be passing through. IN_L is connected to IN_R when on the hardware when no jack is plugged into the IN_R jack.
- The LED and CV out will be generating 1Hz ramp waves.
- The Gate Outputs will be outputting Squarewaves at 500mHz (one pulse per two seconds)
Checking the values via USB
THIS SERIAL MONITOR SCRIPT HAS NOT BEEN ADDED YET.
Included is a script that will open a serial monitor.
Running test.sh (or test.bat on windows) with python installed a terminal will open and start printing.
By double-clicking, or running with no arguments, the test will find the first available COM port connected and connect to it. This may not always be the
Daisy.
You can pass in an argument with the name of the COM Port (usually checked in your PCs Device Manager)
This will look something like:
% Windows
test.bat COM17
# Mac/Linux
./test.sh usbmodem12345678
Looper
Author: nbeserge
Description: Simple Looper for Patch SM.
Includes controls for record on / off / clear, Input Volume, and Loop Volume.
The output is a 50/50 mix of the post gain input and loop signals.
If you are using the patch.Init(), the controls are already connected as they should be.
If you are using a bare Patch SM, refer to the 1.x figures in the Patch SM Datasheet.
Controls
Pin Name | Pin Location | Function | Comment |
CV_1 | C5 | Input Level | Connect a potentiometer here. |
CV_2 | C4 | Loop Level | Connect a potentiometer here. |
B7 | B7 | Record Toggle | Connect a tactile switch here. Press to toggle recording, hold to clear. |
OUT_R | B1 | Audio Out R | Connect a jack here. |
OUT_L | B2 | Audio Out L | Connect a jack here. |
IN_R | B3 | Audio In R | Connect a jack here. |
IN_L | B4 | Audio In L | Connect a jack here. |
Pass thru Example
This is a simple example of passing audio input through the Daisy Patch SM.
This is a great starting point for new projects using this board.
To use this project as a template for your own project you can use the following helper.py command:
./helper.py copy MyProjects/MyAwesomeNewProject –source patch_sm/PassthruExample
Controls
None
Random CV Example
This example demonstrates basic usage of the CV Outputs on the Daisy Patch SM.
Both CV outputs will output the same random voltage.
Controls
None
Reverb Example
This example shows how to set up a simple reverb effect.
Controls
Pin Name | Pin Location | Function | Comment |
CV_1 | C5 | Reverb Time | Controls the size of the reverb |
CV_2 | C4 | Reverb Dampening Frequency | Range is from 1kHz to 19kHz |
CV_3 | C3 | Input Level | Controls the amount of dry signal passing through to the output |
CV_4 | C2 | Send amount | Controls the amount of dry signal sent to the reverb |
The _comments.cpp file is identical to the main file, but has detailed comments explaining each piece of the source code.
Simple Oscillator
Basic sine wave oscillator.
This example demonstrates the both the basics of setting up an oscillator as well as using calibrated pitch tracking for accuracy with 1V/Octave signals.
To keep this example on the simpler side, the calibration itself is handled in another program.
See the patch_sm/VoctCalibration example, which will go through the process of calibrating the CV_5 input.
Controls
Pin Name | Pin Location | Function | Comment |
CV_1 | C5 | Coarse Tuning | Sets the pitch of the oscillator |
CV_5 | C6 | 1V/Octave Input | Musical pitch tracking input |
TripleSaw Example
This example shows how to make a complex oscillator voice using three bandlimited sine waves.
Controls
Pin Name | Pin Location | Function | Comment |
CV_1 | C5 | Coarse Tuning | Tunes the base frequency of all three oscillators |
CV_2 | C4 | Fine Tuning | Fine tune adjustment of base freq. for all three oscillators |
CV_3 | C3 | Detune Amount | Adjusts the amount of detuning between all three voices |
CV_5 | C6 | 1V/Octave Input | Musical pitch tracking input |
The _comments.cpp file is identical to the main file with detailed comments of each piece of the source code.