The Idea

The initial idea was to have a looper keeping track of each loop as a new layer, so it could be possible to browse your way through the history of the loop by muting and unmuting layers on the fly. In addition the idea included slicing of the chosen layer. Slicing based on some MIR in the style of the Scientific Computing exam from 2020. The reason would be that the looper then could «listen» to the loop layer and, based on what you played, reorganize the audio in slices giving you, the user, a new musical suggestion. After discussing ideas as a team, and after a week of work, we figured that we would have to aim for a slightly different approach to actually get the instrument working in time. After the first week we had the basic looper function plus nearly done effects to put in. What we wanted to implement was a way to send the loops into the effects and then feedback the effects back into the loop recorder so that it would gradually get more and more effected. An interesting looper approach seen in Mood by Chase Bliss Audio. We figured the best thing would be to simply start by including the effects as FX-return channels receiving send audio from the loops. A simple start. After some thinking it all worked, and we started playing around with the looper and figured this simple functionality was quite good. Considering the time we had left it felt like a better idea to focus on getting this idea to work properly rather than stepping away from it and maybe end up somewhere not so inspiring. So we did.

The DT-20

The result is the DT-20, a 4-track style looper taking inspiration from tape looping in a digital manner. The recording and playback is driven by a «digital motor» which can be controlled by pitch and with wow and flutter. It’s a digital tape degrading audio in a digital way. To avoid sample drops and copies when recording the motor records 44100 samples/sec at double speed, meaning that when driving it at «normal speed» it records 22050 samples /sec. Calling it «normal speed» as you can decide yourself where 1:1 playback speed is by adjusting the speed parameter before starting the first recording. At lowest speed, half time, the sample rate is 10025. And then there is all the in-between values where the digital tape really shines with recorded sample degradation happening, adding charm and love to the recordings. The instrument has a stereo mixer/preamp (with overdrive on high volumes) with FX on sends. The effects will be described in separate parts of this post. The interface has a «semi hardware» approach. Since the instrument is based on old school lo-fi approach towards recording and music making, we felt that this should be reflected in the interface. So everything is computer keyboard controlled inspired by Commodore 64 way of controlling the computer. We used the ascii-numbers for the keys to identify what key is being pressed, and the ascii is reflected in the interface of the instrument which is solely based on ascii as well. It’s an interface that allows you to monitor what you’re doing with the keys. Highly convenient. We slowly managed to use the keyboard without the interface, but it’s a tedious process of confusion and doubts. Especially when debugging other functionalities at the same time. The keyboard actions are mainly based on the position of the left hand around the ‘WASD’-keys. The mixer part is enabled by holding the shift key. We tried a lot of different approaches to this, also managing to make regular keys act as modulator keys, and really wanted this distinctly retro approach to interfacing feel natural in the century of touch screen. We’re not the ones to judge this, so we can only hope that you feel the same as us about this.

Demo of the DT-20 prototype

The Philosophy

Nothing is perfect, but some things may still be considered perfecterer than others. Many of us would argue that digital hi-fi is more perfect, in terms of audio quality, than an old gramophone record. And objectively many of us would kind of agree. But how these different different mediums color and affect the sound complicates the question of perfectness, lifting it to the domain of subjective opinions and musical taste or preferences. So for the DT-20 the approach to this topic is that degraded audio can have a positive and inspiring effect on recorded audio, playing back a slightly different sound quality than the one you put into it. It doesn’t sound like a good idea in writing, but the experience of it is playful and creative. Sometimes perfect isn’t the most interesting thing necessarily, sometimes you just want to go back to easier times - degrading in both time and audio.

An audio demo of the DT-20
Another audio demo

The Effects


This effect is a Csound unit that uses time-based granular synthesis techniques with additional effects. The diagram for the signal flow and parameter modification is shown in the following figure. The implementation details are given below.

This unit is wrapped as an opcode that receives an input signal with the possibility to modify six parameters. The main process is performed by the opcode Partikkel which allows a wide flexibility to manipulate time-based granulation. Most of the input data that this opcode receives is the default and other fixed parameters in which some important ones are: the envelope with its corresponding ratios, random positioning for the source wave, and a mask to distribute grains in three outputs. The user can modify the grain frequency and grain duration for the Partikkel.

After getting the three output signals from the granular processor, each one is scaled in terms of amplitude by considering the overlapping of grains to avoid distortion, an ‘Amplitude factor’ is calculated and applied to the outputs for this purpose. Then, each signal is scaling by pitch randomly between semitones -12, -7, -4, - 3, 0, 3, 4, 7, 12 as well as displaced by the semitone factor given by the user. The results after the pitch process try to mimic a kind of chord that is obtained by the addition of the three signals and the right scaling. The next step in the chain is the application of a low pass filter in which the user can change the cut off frequency and the resonance, after this operation the signal is passing through an expander due that the previous amplitude scaling could be more than necessary because of the envelope, so this is a way to bring to better levels. Finally, a sine LFO is used to produce two signals with a moving stereo effect, which will be the final outputs for this unit.

Milk (AKA meshverb)

Milk, the DT-20s reverb unit, started out as a waveguide based spring reverb emulation. When we realised the potential of the waveguide approach, a multitude of meshes of different shapes, sizes and complexity emerged. The configuration possibilities seemed endless, being able to route audio into and out of any point on the mesh, and being able to use varying delay times to give different nodes of the mesh different physical properies. All this complexity had to be tamed, not least because it was so easy to drive the thing into uncontrolled feedback. So we decided on a preset system, with each preset using a particular shaped mesh and pre-configured input/output locations, delay and feedback times.


Combining grains makes a bread. Initially Anders wanted to work with effects inserted inside the looper, for experimenting with different degrading over time, but as we didn’t get to implement that function, he decided to work with the ‘partikkel’ opcode, and make some time-skewed presets with long grains (breads). So he ended up with five pretty nice presets (IHO at least) where the two of four breads where delayed (one of them fixed at 300 ms, the other one from 5 to 5000 ms), and reverberated, as well as panned. Anders being in love with the EHX DMM, the presets are very audible, but pretty subtle at the same time. You can easily use them without disturbing your original signal, according to him. He describes the five presets:


0.5 grain/sec, long grains with no enveloping/windowing, some grains reverberated and delayed 900 ms. Try plucking instrument.


1.6 grain/sec, slow attack, some grains reverberated and delayed 2750 ms. Try droning.


2 grains/sec, slower attack, some grains heavily reverberated. Try drones and plucking.


5 grains/sec, slowest attack, low reverberation. Try plucking and droning.


15 grains/sec, middle attack, some grains reverberated and delayed 5 sec. Try drones and plucking.