Skip to content
Snippets Groups Projects
Select Git revision
  • e541c44e385fc4c299388efe3c3571c808e146a6
  • main default protected
  • fix-buffer
  • feature-individual-lfos
  • feature-individual-volume
  • 1.3.0
  • 1.2.0
  • 1.1.0
  • 1.0.1
  • 1.0.0
10 results

daisyy-looper

David Huss's avatar
David Huss authored
If the volume control is changed the waveform changes as well

Changelog: feature
e541c44e
History
Name Last commit Last update
daisyy-looper
images
.gitignore
README.md
menu.ods
software: daisyy-looper
hardware: daisyy-hardware
language: C++ (Arduino)
version: 1.1.0

daisyy-looper

Photograph of the OLED-Screen on the daisyy

daisy-looper is a software that can be installed on the daisyy hardware developed in the course Synthesizer DIY that took place during winter semester 2023/2024 at HFBK Hamburg.

Overview

The looper allows you to record audio from the input and overdub onto up to 5 different virtual "tapes" called buffers. The recorded sounds stored in each buffer will be displayed as a waveform and can be played back at different speeds (including reverse speed) or no speed at all.

Just like with real tape the pitch of the played back sounds changes when the speed of the playhead changes. This can be used for interesting effects.

Interface

Mockup of the Daisy Looper Interface

Element Description
Loop Start Changes where the loop start position is within the current buffer
Loop Length Changes the length of the loop
Mix Mixes between incoming audio and the output of the looper
All the way to the left only the incoming (»dry«) audio is heard
All the way to the right only the looped (»wet«) audio is heard
Speed Changes the speed of the playhead
With a centered knob the speed is 0%
Input Gain Adjusts the level of the incoming audio before it gets converted to digital
The RGB-LED displays the incoming audio levels (red means it is clipping)
Loop Volume* Adjusts the volume of the Loopers output
Reverb Amount* Mixes in a Reverb that affects both the incoming and the looped signal
LFO Amount* Adjusts the Amount with which the LFO will affect the position of the playhead, this can lead to very mangled and experimental sounds
Rec Menu Pressing and holding this button opens up the REC MENU where settings for the way things are recorded can be changed
Play Menu Pressing and holding this button opens up the PLAY MENU where settings affecting the Playback can be changed
FX Menu Pressing and holding this button opens up the FX MENU where certain aspects of the effects can be changed more in depth (e.g. Reverb Decay time, LFO-Waveform or Speed, etc.)
REC Button Pressing this button records audio, overwriting/erasing sounds that are already there
OVR Button Pressing this button overdubs audio, adding to sounds that are already there
Buffer Menu Pressing and holding this button will let you change the currently active buffer, giving you a new, clean slate to record into

*Depending on the settings in the FX MENU this knob can have different functions

Menus

Rec Menu

Illustration of the Options in the Recording Menu

What Options Description
Button-Mode Momentary / Toggle Whether the REC and OVERDUB buttons act as momentary or toggle:
Momentary: Record only while button is being held (default)
Toggle: Press once to record, press again to stop recording
Recording Source In / Last / Out / Noise Selects the source that is being recorded
In: The signal at the inputs (default)
Last: The signal from the buffer that has been active before this one
Out: The signal present at the output (may introduce feedback)
Noise: A internal noise source
Recording Mode Full / Loop / Shot Selects the recording area and mode
Full: Record into the whole buffer, looping over at the end
Loop: Record only into the loop area, looping over at the end (default)
Shot: Record into the full buffer and stop at the end
Pitch Mode Normal / Unpitched Change how pitch is treated during recording:
Normal: Record at the same speed regardless of the current playhead speed (default)
Unpitched: Record at the same speed as the speed of the playhead
Recording Start Position Start / Loopstart / Playhead Change where the recording should start from:
Start: Start of the buffer
Loopstart: Start of the loop (default)
Playhead: Current position of the playhead

Play Menu

Illustration of the Options in the Play Menu

What Options Description
Play Mode Stop / Loop / Multi / MIDI How the looper plays back audio:
Stop: Don't play at all
Loop: Play a loop with a single playhead (default)
Multi: Play a loop with multiple playheads
MIDI: Play only on incoming MIDI notes
Mix Mode Active / Sum / Ring How the 5 available Buffers are mixed with each other
Active: Only the currently active/visible buffer is heard (default)
Sum: All buffers are heard, even if they are not visible
Ring: All buffers are ring-modulated with the incoming audio (meaning only if both the input and our loop produce sounds we hear something)
Restart - Press to jump the playhead back to the start of the loop
Slow Down - Press and hold to start a vinyl-style slowdown
Reverse - Press and hold to reverse the playback

FX Menu

Illustration of the Options in the FX Menu

What Options Description
ALL (default) This Option is the default. The three right-bottom knobs have the following functions:
Volume: Controls the volume of the Loop
Reverb: Controls the amount of Reverb added to the signal
LFO: Controls the amount with which the LFO modulates the position of the playhead
REVERB - With this option selected, the three right-bottom knobs have the following functions:
Reverb Decay: How long the Reverb decays out
Reverb Mix: How much of the Reverb is heard
Reverb Tone: How dull or bright the Reverb sounds
LFO - With this option selected, the three right-bottom knobs have the following functions:
LFO Speed: How fast the modulation happens
LFO Amount: By how much should the LFO modulate the Playhead
LFO Kind: Which LFO-style to use (Triangle, Square, Random, Jump)
GRAIN - With this option selected, the three right-bottom knobs have the following functions (Switch on Playback Mode > MULTI first):
Grain Spread: How far apart the multiple playheads should be spread out in terms of speed difference
Grain Variation: How much variation to add to the speed of individual playheads
Grain Count: How many playheads to use
- - currently unused

Buffer Menu

Illustration of the Options in the Buffer Menu

What Options Description
A (default) This Option is the default. Select the Buffer A for playback and recording
B - Select the Buffer B for playback and recording
C - Select the Buffer C for playback and recording
D - Select the Buffer D for playback and recording
E - Select the Buffer E for playback and recording

Installation

Option 1: Daisy Web Programmer

The fastest way to install this software on your daisyy is to use the Daisy Web Programmer, as this does not require you to install anything on your computer:

  1. Download the daisyy-looper.bin in this projects Releases page
  2. Connect your daisyy to your computer using a USB-micro B cable (make sure to use a cable that has a data connection)
  3. Put your daisy-seed into the DFU-mode to prepare it for uploading:
    1. Press and hold the BOOT button on the back of the daisy-seed board (take of the bottom of the case to get there)
    2. Press and release the RESET button right next to the other button
    3. Now release the BOOT button you pressed two steps before
    4. If everything went right and your RGB-LED has been soldered correctly that RGB-LED should now light up in a bright green, indicating that the daisy seed is ready for uploading
  4. Open the Daisy Web Programmer in a Web-MIDI-capable Browser (as of 2024-02-16 only Chromium/Google Chrome seems to work)
  5. Click on the yellow Connect button to connect to the daisy seed. If this does not work check if you are really in DFU-Mode (see steps above)
  6. Click on the Choose File button and select the daisyy-looper.bin file you downloaded in Step 1
  7. Click on the Program button on the bottom to upload the code
  8. If everything worked right there should be a text saying (among other things) Done! – your daisyy should restart and the looper should now run

Option 2: Arduino

Arduino IDE Setup

If you like you can follow Electrosmith's Video Instructions on how to setup the ardino IDE to work with daisy. The short list version is:

  1. Install Arduino IDE from arduino.cc
  2. Follow the instructions at sm32duino:
    1. In Arduino under Preferences > Additional Board Manager URLs add the following text: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json (Note: If you already have other URLs there, you need to seperate them with a comma)
    2. Open the Board Manager in Arduino (one of the icons on the left) and install the board STM32 MCU based boards by STMicroelectronics
    3. Follow the extra step, download and install the STM32CubeProgrammer Software from here Mac: You will have to use the workaround described in the video Linux: Make sure the stm32cube binaries can be found in the PATH by the Arduino IDE

Install DaisyDuino Library

  1. Click on the Library Manager icon in the left bar
  2. Search for DaisyDuino
  3. Click INSTALL

Arduino IDE Settings

NOTE: It can happen that these settings get lost if you update the STM32 board files

Change the following settings in the Tool menu on the top:

Name Setting
Board Generic STM32H7 Series
Board part number Daisy Seed
USB support CDC (generic 'Serial' supersede U(S)ART)
U(S)ART support Enabled (Generic 'Serial')
USB speed (if available) Low/Full Speed
Upload method STM32CubeProgrammer (DFU)

Uploading the Code

  1. Download the Code on this page by clicking on the Code button on top and selecting .zip
  2. Unpack the zip file somewhere on your computer
  3. Connect your Daisy Seed to your computer via USB. The red power LED should now glow
  4. Set the daisy to DFU/Programming mode by pressing the buttons in the following order:
  5. Press and HOLD the BOOT button
  6. Click the RESET button`
  7. Release the BOOT button
  8. Open the daisyy-looper.ino file in the unzipped project folder using the Arduino-IDE
  9. Ensure on top next to the round buttons the board Generic STM32H7 Series is shown (if not follow the steps outlined above in the section Arduino IDE Settings)
  10. Click on the round Upload button (an arrow pointing to the right)
  11. After uploading the daisyy should restart and the looper should now work – any errors during the upload should be displayed