Introduction: Duelooper ,a Voltage Controlled Sample Playback Module.

Some years ago I had the chance to play with a Roland S10 sampler. I found that you could vary the sample start point on the fly and could produce some interesting sounds this way.

Fast forward to 2020 and I decided to design a module that would do something similar and more, and so the Duelooper was born.

Essentially the Duelooper is a voltage controlled sample playback module based on an Adruino Due. The Playback time is 8 seconds at 32KHZ with 12 bit resolution. Using control voltages and front panel controls you have realtime control over playback Start, Length and Rate.

16 Bit Wav samples are placed on an SD Card which is read by the software and placed onto a 512K static ram. I wanted to be able to use both forward and reverse playback which was not possible reading from the SD Card directly. Using the static ram allowed all playback functions I had envisaged to be achieved.

8th August 2021: I have updated both the Arduino Sketch and Front panel control diagram to fix a triggering and CV input Bug. All the jack input sockets have now changed to switched types that short the CV and Trigger inputs to ground when no jack is inserted.

Supplies

Parts List
3 X 1K Res
5 X 10K Res
3 X 10K Lin Pot
3 X 100K Lin Pot
100nf Poly Cap
1uf Electrolytic Cap
Arduino Due
SD Card Reader Module
AS6C4008 512K X 8 Bit static ram IC. (Must be 3.3V operation)
Push to Make Switch
4 X Toggle Switch
4 X Mono Switched Jack Sockets (3.5 or 6.35)
Mono Jack Socket (3.5 or 6.35)

Step 1: Circuit

The circuit is pretty simple, Just a RAM IC, a few potentiometers and input protection.
The RAM IC is an AS6C4008 static device, I guess its distinguishing attribute is that it operates at 3.3 volt meaning that I did not need to do any level conversion between the Arduino and the RAM Address, Data and Control pins.

The input protection diodes need to be Schottky types to be effective in clamping any excessive voltages to the supply rails.

I used a full sized SD adaptor as I found it was easier to handle full sized SD Cards when swapping frequently rather than the fiddly Micro SD types.

Some Arduino Dues have a reset problem meaning that they will not reset on startup. If you have one of these, pushing the Load button resets the Due and normal operation begins. There is a simple but fiddly fix that can be carried out explained on this website.

Step 2: Software

Step 3: Using

The WAV file format is used for playback. This needs to be 16 Bit Mono, the Duelooper truncates this to 12 Bit during loading. Centre playback rate is 32KHZ and the user is free to use any sample frequency they wish.

The control voltage inputs will only respond to positive voltage inputs of 0 to 3.3 volts so attenuation controls are provided to reduce the input voltages over this range. All inputs are protected by Schottky diodes to prevent damage to the Due inputs.

Controls:

  • Start Offset Pot, Sets the Start position of playback
  • Length Offset Pot, Sets the length of playback. The playback length is truncated if it exceeds the end point of the sample.
  • Rate Offset Pot, Sets the playback rate. It is centred at 32KHZ.
  • Start Attenuation Pot, reduces the start CV input level.
  • Length Attenuation Pot, reduces the length CV input level.
  • Rate Offset Pot, reduces the rate CV input level.
  • Direction Switch, Selects Forward or Reverse playback
  • Bounce Switch, Alternates between Forward and Reverse playback.
  • Retrig Switch, Enables sample playback to be restarted when a trigger signal is received at the Trigger input.
  • Mode Switch, Selects Loop or One-Shot mode. In One-Shot mode the sample is played once then paused till a trigger signal is received at the trigger input.
  • Load Button, Loads in new Sample from SD Card. (Also acts as Arduino Reset).
  • Trigger Polarity (PCB link), this selects the trigger polarity for playback restart. Link on = Low going trigger input voltage restarts playback, Link off = High going trigger input voltage restarts playback
  • ZXD (PCB link), enables the experimental Zero Crossing detection function that should reduce clicks and pops generated at the start and end points of the sample. This does not work too well and did not warrant a front panel switch. It is included an as on board link as it does work well with regular waveforms and some may find it useful. ZXD link on = Zero Crossing point selection on, ZXD Link off = Zero Crossing point selection off.

How to use:

Place a 16 bit Mono Wave file named “sample.wav” onto a FAT 32 or 16 formatted SD Card.

The Duelooper software ignores the WAV header so and will play any file called “sample.wav” whatever it contains.

Any data within “sample.wav” that exceeds the 512K limit is ignored.

Samples are loaded into the internal Ram on power up or when the Load Button is pressed.

While the sample is being transferred the Load/Error LED will light and extinguish when completed.

This LED also serves as an Error indicator, a slow flash indicates the the SD Card initialisation has failed, a fast flash indicates that Sample.wav is not found or that the filesize is too small (8236 bytes minimum).

Once loaded the sample will begin playing.

SD Cards can be safely removed once a sample has been loaded.

I have PCBs available for this project available for purchase. Please head off onto my Ebay listing to purchase https://www.ebay.co.uk/itm/184995365108

I welcome your comments, please have fun.

Step 4: More Audio Madness

First Time Author Contest

Participated in the
First Time Author Contest