# Tyrell Desktop Synthesizer

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/122/783/medium800/3d_printing_tyrell_desk_synth_beaut2k.jpg?1689779467)

Build your own Tyrell Desktop Synthesizer to fill your life with Neo-noir cyberpunk atmosphere. This audio/visual homage to _ **Blade Runner** _ uses CircuitPython's `synthio `library to slowly evolve a dramatic soundscape of dystopian wub. You can adjust the sounds with eight cap touch pads and enjoy the audio drama like only a replicant can.

The code is an adaptation of Tod Kurt’s excellent&nbsp;**[e](https://github.com/todbot/circuitpython-synthio-tricks/blob/main/examples/eighties_dystopia/code.py)****[ighties\_dystopia](https://github.com/todbot/circuitpython-synthio-tricks/blob/main/examples/eighties_dystopia/code.py)**&nbsp;synth.

https://youtu.be/MXF9zLSvprM

## Parts
### Adafruit QT Py RP2040

[Adafruit QT Py RP2040](https://www.adafruit.com/product/4900)
What a cutie pie! Or is it... a QT Py?&nbsp;This diminutive dev board comes with one of our new favorite chip, the RP2040. It's been made famous in the new [Raspberry Pi Pico](https://www.adafruit.com/pico) _and_ our [Feather...](http://www.adafruit.com/product/4884)

Out of Stock
[Buy Now](https://www.adafruit.com/product/4900)
[Related Guides to the Product](https://learn.adafruit.com/products/4900/guides)
![Video of hand holding a QT Py PCB in their hand. An LED glows rainbow colors.](https://cdn-shop.adafruit.com/product-videos/640x480/4900-06.jpg)

### Adafruit TRRS Jack Breakout Board

[Adafruit TRRS Jack Breakout Board](https://www.adafruit.com/product/5764)
Tip-Ring-Ring-Sleeve style audio cables are often used for situations where you want stereo audio and then an extra contact for a microphone input. [For example, headsets for cell phones](https://www.adafruit.com/product/3959). Also called TRRS jacks for short, they're also...

In Stock
[Buy Now](https://www.adafruit.com/product/5764)
[Related Guides to the Product](https://learn.adafruit.com/products/5764/guides)
![angled shot of TRRS jack breakout board.](https://cdn-shop.adafruit.com/640x480/5764-00.jpg)

### Adafruit Perma-Proto Quarter-sized Breadboard PCB - Single

[Adafruit Perma-Proto Quarter-sized Breadboard PCB - Single](https://www.adafruit.com/product/1608)
Customers have asked us to carry basic perf-board, but we never liked the look of most basic perf: it's always crummy quality, with pads that flake off and no labeling. Then we thought about how people **actually** prototype - usually starting with a solderless breadboard and...

In Stock
[Buy Now](https://www.adafruit.com/product/1608)
[Related Guides to the Product](https://learn.adafruit.com/products/1608/guides)
![Angled Shot of the Adafruit Perma-Proto Quarter-sized Breadboard PCB - Single.](https://cdn-shop.adafruit.com/640x480/1608-03.jpg)

### 0.1uF ceramic capacitors - 10 pack

[0.1uF ceramic capacitors - 10 pack](https://www.adafruit.com/product/753)
As any engineer will tell you, 0.1uF ceramic capacitors are the magic fairy dust of electronics - sprinkle them over your circuit schematics for good luck! But seriously, a 0.1uF capacitor right next to the VCC pin of your chips will improve stability by filtering out power supply spikes and...

In Stock
[Buy Now](https://www.adafruit.com/product/753)
[Related Guides to the Product](https://learn.adafruit.com/products/753/guides)
![10 pack of 0.1uF through hole ceramic capacitors ](https://cdn-shop.adafruit.com/640x480/753-02.jpg)

### Copper Foil Tape with Conductive Adhesive - 6mm x 5 meters long

[Copper Foil Tape with Conductive Adhesive - 6mm x 5 meters long](https://www.adafruit.com/product/3483)
Copper tape can be an interesting addition to your toolbox. The tape itself is made of thin pure copper so it's extremely flexible and can take on nearly any shape. You can solder to it, and the tape itself can carry current just like a wire. On the back is an electrically conductive...

In Stock
[Buy Now](https://www.adafruit.com/product/3483)
[Related Guides to the Product](https://learn.adafruit.com/products/3483/guides)
![Roll of Copper Foil Tape with Conductive Adhesive - 6mm wide](https://cdn-shop.adafruit.com/640x480/3483-00.jpg)

### Woven USB Cable with USB Type A to Right Angle USB Type C

[Woven USB Cable with USB Type A to Right Angle USB Type C](https://www.adafruit.com/product/5031)
Some days we're feeling extra fancy here at the 'fruit warehouse, and we have a big soft spot for woven fabric cables. Like, peep [this fully reversible pink/purple Blinka-inspired cable](https://www.adafruit.com/product/4111)&nbsp;or <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/5031)
[Related Guides to the Product](https://learn.adafruit.com/products/5031/guides)
![Top shot of  right angle USB C to A woven 1m length black](https://cdn-shop.adafruit.com/640x480/5031-07.jpg)

### Part: Premium Female/Female Jumper Wires
quantity: 1
20 x 12" (300mm)
[Premium Female/Female Jumper Wires](https://www.adafruit.com/product/1949)

### Part: Black Nylon Machine Screw and Stand-off Set
quantity: 1
M2.5 Thread
[Black Nylon Machine Screw and Stand-off Set](https://www.adafruit.com/product/3299)

### Part: 36-pin 0.1" Short Female Header
quantity: 1
Pack of 5
[36-pin 0.1" Short Female Header](https://www.adafruit.com/product/3008)

### Part: Male Header 36-pin 0.1" Short Break-away Type
quantity: 1
Pack of 10
[Male Header 36-pin 0.1" Short Break-away Type](https://www.adafruit.com/product/3009)

### 8 x 1MΩ Through-hole Resistors

Any through hole 1MΩ or higher should work great, such as [these](https://www.amazon.com/Projects-25EP1141M00-Ohm-Resistors-Pack/dp/B07Y3ZG1Z1).

> I've seen things you people wouldn't believe... Attack ships on fire off the shoulder of Orion... I watched C-beams glitter in the dark near the Tannhäuser Gate. All those moments will be lost in time, like tears in rain... Time to die.

# Tyrell Desktop Synthesizer

## 3D Print the Tyrell Building

The case was modeled after Syd Mead's iconic [Tyrell Corporation building](https://makezine.com/article/craft/inside-blade-runners-model-shop/) from _ **Blade Runner** _.

![](https://cdn-learn.adafruit.com/assets/assets/000/122/814/medium800/3d_printing_tyrellscreen.jpg?1689787610)

## 3D Printed Parts

Print the two STL files contained in the zip archive linked below (also available on [Printables](https://www.printables.com/model/530383-blade-runner-tyrell-building-case)&nbsp;and&nbsp;[Thingiverse)](https://www.thingiverse.com/thing:6129042). I printed at 0.15mm layer height using PLA with 20% infill.

Use support material for the rim inset at the bottom of the case file only (you can use blockers to avoid printing support up the center).

I also found it helpful to print corner [anti-warping tabs](https://github.com/5axes/TabAntiWarping/wiki/How-to-use-it) as shown here to mitigate curling.

![3d_printing_tyrell-3850.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/697/medium640/3d_printing_tyrell-3850.jpg?1689721823)

![3d_printing_tyrell-3835.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/698/medium640/3d_printing_tyrell-3835.jpg?1689721833)

[Tyrell_Desktop_Synth_v1.0_stls.zip](https://cdn-learn.adafruit.com/assets/assets/000/122/696/original/Tyrell_Desktop_Synth_v1.0_stls.zip?1689721357)
## Customization

Should you want to modify the files in a CAD or NURBs package, the STEP files generated from the original Rhino/Grasshopper source are linked below.

![3d_printing_tyrell_0.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/702/medium640/3d_printing_tyrell_0.jpg?1689722165)

![3d_printing_tyrell_3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/703/medium640/3d_printing_tyrell_3.jpg?1689722184)

![3d_printing_tyrell_4.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/704/medium640/3d_printing_tyrell_4.jpg?1689722201)

![3d_printing_tyrell_1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/705/medium640/3d_printing_tyrell_1.jpg?1689722223)

![3d_printing_tyrell_2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/706/medium640/3d_printing_tyrell_2.jpg?1689722243)

[Tyrell_Desktop_Synth_v1.0_step.zip](https://cdn-learn.adafruit.com/assets/assets/000/122/701/original/Tyrell_Desktop_Synth_v1.0_step.zip?1689721925)
# Tyrell Desktop Synthesizer

## Build the Tyrell Circuit

The circuit does two primary things:

- reads eight cap touch pins (which each run to ground via \>1MΩ resistors)
- sends stereo PWM audio out over the TX and RX pins, via RC (resistor/capacitor) filter circuits

![3d_printing_tyrell_breadboard.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/708/medium640/3d_printing_tyrell_breadboard.jpg?1689725711)

Here you can see the breadboarded version of the circuit with wires running from each cap touch pin:

![](https://cdn-learn.adafruit.com/assets/assets/000/122/682/medium800/3d_printing_tyrell_breadboard_w_captouch.jpg?1689695238)

![](https://cdn-learn.adafruit.com/assets/assets/000/122/684/medium800/3d_printing_tyrell_schematic.jpg?1689695244)

## Perma Proto Version

In order to fit the small space inside the Tyrell building model, you'll build the circuit onto a 1/4 size Perma Proto board.

You'll note the flipped TRRS breakout board used to maximize space. The breakout will be fit onto the board via headers in order to provide vertical clearance of the QT Py.

![3d_printing_tyrell_fritz.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/685/medium640/3d_printing_tyrell_fritz.jpg?1689725806)

## Gather the Components

Prep for soldering by gathering the components. You'll want to snap off two seven-pin lengths of male headers for the QT Py.

![3d_printing_tyrell-3772.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/709/medium640/3d_printing_tyrell-3772.jpg?1689730194)

## TRRS Breakout Headers

Cut of a six-position strip each of the short pin and socket headers. Solder the pin headers under the breakout and the socket to the PermaProto as shown here.

![3d_printing_tyrell-3778.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/714/medium640/3d_printing_tyrell-3778.jpg?1689730486)

![3d_printing_tyrell-3779.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/715/medium640/3d_printing_tyrell-3779.jpg?1689730494)

## Solder the QT Py Headers

Solder the QT Py to the headers and the Perma Proto as shown. Note how the position leaves room for the mounting hole.

![3d_printing_tyrell-3780.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/713/medium640/3d_printing_tyrell-3780.jpg?1689730453)

## Touch Resistors

Solder the eight \>1MΩ resistors from the touch pins to ground. The pins used are A0, A1, A2, A3, SDA, SCL, MISO, MOSI.

![3d_printing_tyrell-3781.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/716/medium640/3d_printing_tyrell-3781.jpg?1689730597)

## Audio Filters

You'll use a pair of resistor-capacitor (RC) filters to smooth out the other-wise harsh PWM audio that will go from pins TX and RX to the TRS jack's left and right channels.

You can also add jumper wires to ground at this point.

![3d_printing_tyrell-3782.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/717/medium640/3d_printing_tyrell-3782.jpg?1689730752)

![3d_printing_tyrell-3786.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/718/medium640/3d_printing_tyrell-3786.jpg?1689731070)

## Cap Touch Headers

Fit the TRRS breakout into the header and then solder in one set of six and another set of two headers facing up from the board to connect the cap touch cables.

![3d_printing_tyrell-3787.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/719/medium640/3d_printing_tyrell-3787.jpg?1689731184)

![3d_printing_tyrell-3788.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/720/medium640/3d_printing_tyrell-3788.jpg?1689731193)

## Base Attachment

Use two M2.5 x 6mm screws and nuts to attach the board to the inside of the Tyrell building case base. You can use nylon screws and file them down for a smooth fit, or get a set of low profile "laptop screws" such as [these](https://www.amazon.com/gp/product/B09PNN19CX/ref=ppx_yo_dt_b_asin_title_o02_s00).

![3d_printing_tyrell-3867.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/721/medium640/3d_printing_tyrell-3867.jpg?1689731361)

![3d_printing_tyrell-3868.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/722/medium640/3d_printing_tyrell-3868.jpg?1689731693)

![3d_printing_tyrell-3870.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/723/medium640/3d_printing_tyrell-3870.jpg?1689731704)

## Touch Cabling

Cut eight of the jumper wires down to about 4" in length, then strip about 1" of insulation from the tips.

Feed the wires through the holes from the inside of the case to the outside.

Cut a length of copper tape and affix to the side, overlapping the stripped wire as shown. These will act as the cap touch sensors.

![3d_printing_tyrell-3873.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/724/medium640/3d_printing_tyrell-3873.jpg?1689731748)

![3d_printing_tyrell-3874.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/725/medium640/3d_printing_tyrell-3874.jpg?1689731855)

![3d_printing_tyrell-3875.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/726/medium640/3d_printing_tyrell-3875.jpg?1689731862)

![3d_printing_tyrell-3876.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/727/medium640/3d_printing_tyrell-3876.jpg?1689731877)

![](https://cdn-learn.adafruit.com/assets/assets/000/122/728/medium800/3d_printing_tyrell-3878.jpg?1689731900)

![](https://cdn-learn.adafruit.com/assets/assets/000/122/732/medium800/3d_printing_tyrell-3879.jpg?1689731924)

## Cable Connections

Wire up the cap touch cables to their respective pins as shown.

Plug in the USB-C cable and TRS 3.5mm stereo audio cable -- you can use right-angled cables to help with the fit if necessary. Some straight cables may fit as well, depending on their design.

Route the USB-C and audio cables out of the "back" side of the case with the cable opening.

![3d_printing_tyrell-3880.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/749/medium640/3d_printing_tyrell-3880.jpg?1689735611)

![3d_printing_tyrell-3881.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/750/medium640/3d_printing_tyrell-3881.jpg?1689735626)

![3d_printing_tyrell-3882.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/751/medium640/3d_printing_tyrell-3882.jpg?1689735750)

![3d_printing_tyrell-3883.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/752/medium640/3d_printing_tyrell-3883.jpg?1689735759)

![](https://cdn-learn.adafruit.com/assets/assets/000/122/753/medium800/3d_printing_tyrell-3884.jpg?1689735810)

## Close the Case

Snap the base into the main part of the case. You can use M2.5 x 10mm screws to secure it in the corners if needed, but the snap fit should be solid enough to hold it in place.

![3d_printing_tyrell-3886.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/758/medium640/3d_printing_tyrell-3886.jpg?1689735874)

![](https://cdn-learn.adafruit.com/assets/assets/000/122/759/medium800/3d_printing_tyrell-3887.jpg?1689776606)

Since I used the very short USB-C to A cable, I use a [USB extension cable](https://www.adafruit.com/product/993) as well, shown here:

![](https://cdn-learn.adafruit.com/assets/assets/000/122/770/medium800/3d_printing_tyrell-3888.jpg?1689776730)

# Tyrell Desktop Synthesizer

## Code the Tyrell Synth

## Text Editor

Adafruit recommends using the&nbsp; **Mu** &nbsp;editor for editing your CircuitPython code. You can get more info in&nbsp;[this guide](https://learn.adafruit.com/welcome-to-circuitpython/installing-mu-editor).

Alternatively, you can use any text editor that saves simple text files.

## Download the Project Bundle

Your project will use a specific set of CircuitPython libraries, and the&nbsp; **code.py** &nbsp;file. To get everything you need, click on the&nbsp; **Download Project Bundle** &nbsp;link below, and uncompress the .zip file.

Drag the contents of the uncompressed bundle directory onto your board's&nbsp; **CIRCUITPY** drive, replacing any existing files or directories with the same names, and adding any new ones that are necessary. The **CIRCUITPY** drive appears when you plug the QT Py into the computer via USB.

![list](https://adafruit.github.io/Adafruit_Learning_System_Guides/Tyrell_Synth.png )

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Tyrell_Synth/code.py

> A swirling ominous wub that evolves over time.
> 
> -Tod Kurt

## How It Works

The code is an adaptation of Tod Kurt's excellent **[e](https://github.com/todbot/circuitpython-synthio-tricks/blob/main/examples/eighties_dystopia/code.py)****[ighties\_dystopia](https://github.com/todbot/circuitpython-synthio-tricks/blob/main/examples/eighties_dystopia/code.py)** synth. Using the synthio library in CircuitPython, it plays a set of five detuned oscillators that are modulated by a low-pass filter, with the root note changing over a certain interval of time.

The version adapted for the Tyrell Desktop Synthesizer adds user input in the form of eight touch pads. These are used as four pairs of controls that decrement/increment four parameters:

- tempo
- root note transposition
- filter rate
- output volume

### Libraries

First, we import the necessary libraries.

```python
import time
import random
import board
import audiopwmio
import audiomixer
import synthio
import ulab.numpy as np
import neopixel
import rainbowio
import touchio
from adafruit_debouncer import Debouncer
```

### Touch Pins

Next, we'll set up the eight touch pins using the debouncer.

```python
touch_pins = (board.A0, board.A1, board.A2, board.A3, board.SDA, board.SCL, board.MISO, board.MOSI)
touchpads = []
for pin in touch_pins:
    tmp_pin = touchio.TouchIn(pin)
    touchpads.append(Debouncer(tmp_pin))
```

### Synth Variables

We'll create variables to use in the synthesizer object to define a list of notes, the initial note duration in seconds, the number of synth voices, the low pass filter (LPF) frequency, and the LPF resonance.

```python
notes = (37, 38, 35, 49)  # MIDI C#, D, B
note_duration = 10   # how long each note plays for
num_voices = 6       # how many voices for each note
lpf_basef = 300      # low pass filter lowest frequency
lpf_resonance = 1.7  # filter q
```

### Audio and Synth

We'll create the stereo PWM audio object with mixer, and the synthio synth object, then set the mixer playing with a volume of 0.5 (of a possible 1.0).

```python
audio = audiopwmio.PWMAudioOut(left_channel=board.TX, right_channel=board.RX)

mixer = audiomixer.Mixer(channel_count=2, sample_rate=28000, buffer_size=2048)
synth = synthio.Synthesizer(channel_count=2, sample_rate=28000)
audio.play(mixer)
mixer.voice[0].play(synth)
mixer_vol = 0.5
mixer.voice[0].level = mixer_vol
```

### Additional Synth Setup

The audio rate oscillator waveform is a saw wave with a soft attack. These are stacked up in the voices[] list. Then, a synthio low frequency oscillator (LFO) object is created that will be used to modulate the left-right stereo panning.

```python
# oscillator waveform, a 512 sample downward saw wave going from +/-30k
wave_saw = np.linspace(30000, -30000, num=512, dtype=np.int16)  # max is +/-32k gives us headroom
amp_env = synthio.Envelope(attack_level=1, sustain_level=1)

# set up the voices (aka "Notes" in synthio-speak) w/ initial values
voices = []
for i in range(num_voices):
    voices.append(synthio.Note(frequency=0, envelope=amp_env, waveform=wave_saw))

lfo_panning = synthio.LFO(rate=0.1, scale=0.75)
```

### set\_note() Function

The set\_note() function will be sued to create the set of multiple voices any time the note changes, including the translation of MIDI note value notation to Hertz frequency and stereo panning to create some movement between channels.

```python
# set all the voices to the "same" frequency (with random detuning)
# zeroth voice is sub-oscillator, one-octave down
def set_notes(n):
    for voice in voices:
        f = synthio.midi_to_hz(n + random.uniform(0, 0.4))
        voice.frequency = f
        voice.panning = lfo_panning
    voices[0].frequency = voices[0].frequency/2  # bass note one octave down
```

### Filter LFO

To automate the modulation of the filter cutoff frequency, another LFO is created and attached to the `synth.blocks `object.

```auto
# the LFO that modulates the filter cutoff
lfo_filtermod = synthio.LFO(rate=0.05, scale=2000, offset=2000)
# we can't attach this directly to a filter input, so stash it in the blocks runner
synth.blocks.append(lfo_filtermod)
```

### Final Setup Steps

State variables are created for the current note, last note time, and last filter modulation time, then the voices are set playing.

```auto
note = notes[0]
last_note_time = time.monotonic()
last_filtermod_time = time.monotonic()

# start the voices playing
set_notes(note)
synth.press(voices)

# user input variables
note_offset = (0, 1, 3, 4, 5, 7)
note_offset_index = 0

lfo_subdivision = 8
```

## Main Loop

In the main loop of the program, first the touch pads are checked to see if any have been pressed. They then increment or decrement their associated parameters.

```python
while True:
    for t in range(len(touchpads)):
        touchpads[t].update()
        if touchpads[t].rose:
            if t == 0:
                note_offset_index = (note_offset_index + 1) % (len(note_offset))
                set_notes(note + note_offset[note_offset_index])
            elif t == 1:
                note_offset_index = (note_offset_index - 1) % (len(note_offset))
                set_notes(note + note_offset[note_offset_index])

            elif t == 2:
                note_duration = note_duration + 1
            elif t == 3:
                note_duration = abs(max((note_duration - 1), 1))

            elif t == 4:
                lfo_subdivision = 20
            elif t == 5:
                lfo_subdivision = 0.2

            elif t == 6:  # volume
                mixer_vol = max(mixer_vol - 0.05, 0.0)
                mixer.voice[0].level = mixer_vol

            elif t == 7:  # volume
                mixer_vol = min(mixer_vol + 0.05, 1.0)
                mixer.voice[0].level = mixer_vol
```

### Filter Sweep

The LFO that modulates the filter cutoff is updated.

```python
# continuosly update filter, no global filter, so update each voice's filter
    for v in voices:
        v.filter = synth.low_pass_filter(lpf_basef + lfo_filtermod.value, lpf_resonance)

    led.fill(rainbowio.colorwheel(lfo_filtermod.value/20))  # show filtermod moving

    if time.monotonic() - last_filtermod_time &gt; 1:
        last_filtermod_time = time.monotonic()
        # randomly modulate the filter frequency ('rate' in synthio) to make more dynamic
        lfo_filtermod.rate = 0.01 + random.random() / lfo_subdivision
```

### Note Change

The melodic line changes to a random index selected from the note list.

```python
# continuosly update filter, no global filter, so update each voice's filter
    for v in voices:
        v.filter = synth.low_pass_filter(lpf_basef + lfo_filtermod.value, lpf_resonance)

    led.fill(rainbowio.colorwheel(lfo_filtermod.value/20))  # show filtermod moving

    if time.monotonic() - last_filtermod_time &gt; 1:
        last_filtermod_time = time.monotonic()
        # randomly modulate the filter frequency ('rate' in synthio) to make more dynamic
        lfo_filtermod.rate = 0.01 + random.random() / lfo_subdivision
```

# Tyrell Desktop Synthesizer

## Play the Tyrell Desktop Synthesizer

https://youtu.be/MXF9zLSvprM

The Tyrell Desktop Synthesizer plays itself! Simply plug it in to USB power and a powered speaker set and it will create wonderful soundscapes.

You can adjust parameters by touching the eight pads as shown in the demo video above.


## Featured Products

### Adafruit QT Py RP2040

[Adafruit QT Py RP2040](https://www.adafruit.com/product/4900)
What a cutie pie! Or is it... a QT Py?&nbsp;This diminutive dev board comes with one of our new favorite chip, the RP2040. It's been made famous in the new [Raspberry Pi Pico](https://www.adafruit.com/pico) _and_ our [Feather...](http://www.adafruit.com/product/4884)

Out of Stock
[Buy Now](https://www.adafruit.com/product/4900)
[Related Guides to the Product](https://learn.adafruit.com/products/4900/guides)
### Adafruit TRRS Jack Breakout Board

[Adafruit TRRS Jack Breakout Board](https://www.adafruit.com/product/5764)
Tip-Ring-Ring-Sleeve style audio cables are often used for situations where you want stereo audio and then an extra contact for a microphone input. [For example, headsets for cell phones](https://www.adafruit.com/product/3959). Also called TRRS jacks for short, they're also...

In Stock
[Buy Now](https://www.adafruit.com/product/5764)
[Related Guides to the Product](https://learn.adafruit.com/products/5764/guides)
### Adafruit Perma-Proto Quarter-sized Breadboard PCB - Single

[Adafruit Perma-Proto Quarter-sized Breadboard PCB - Single](https://www.adafruit.com/product/1608)
Customers have asked us to carry basic perf-board, but we never liked the look of most basic perf: it's always crummy quality, with pads that flake off and no labeling. Then we thought about how people **actually** prototype - usually starting with a solderless breadboard and...

In Stock
[Buy Now](https://www.adafruit.com/product/1608)
[Related Guides to the Product](https://learn.adafruit.com/products/1608/guides)
### 0.1uF ceramic capacitors - 10 pack

[0.1uF ceramic capacitors - 10 pack](https://www.adafruit.com/product/753)
As any engineer will tell you, 0.1uF ceramic capacitors are the magic fairy dust of electronics - sprinkle them over your circuit schematics for good luck! But seriously, a 0.1uF capacitor right next to the VCC pin of your chips will improve stability by filtering out power supply spikes and...

In Stock
[Buy Now](https://www.adafruit.com/product/753)
[Related Guides to the Product](https://learn.adafruit.com/products/753/guides)
### 36-pin 0.1" Short Female Header - Pack of 5

[36-pin 0.1" Short Female Header - Pack of 5](https://www.adafruit.com/product/3008)
In this world nothing can be said to be certain, except we need headers, headers, and more headers!

**Each pack contains five 36-pin short female&nbsp;headers, 0.1" pitch. These headers are very short for fitting into tight spaces with a height of&nbsp;just 5mm instead of...**

In Stock
[Buy Now](https://www.adafruit.com/product/3008)
[Related Guides to the Product](https://learn.adafruit.com/products/3008/guides)
### Male Header 36-pin 0.1" Short Break-away Type - Pack of 10

[Male Header 36-pin 0.1" Short Break-away Type - Pack of 10](https://www.adafruit.com/product/3009)
In this world nothing can be said to be certain, except we need headers, headers, and more headers!

**Each pack contains ten 36-pin short break-away male headers, 0.1" pitch. These headers are very short for [matching with our...](https://www.adafruit.com/products/3008)**

Out of Stock
[Buy Now](https://www.adafruit.com/product/3009)
[Related Guides to the Product](https://learn.adafruit.com/products/3009/guides)
### Woven USB Cable with USB Type A to Right Angle USB Type C

[Woven USB Cable with USB Type A to Right Angle USB Type C](https://www.adafruit.com/product/5031)
Some days we're feeling extra fancy here at the 'fruit warehouse, and we have a big soft spot for woven fabric cables. Like, peep [this fully reversible pink/purple Blinka-inspired cable](https://www.adafruit.com/product/4111)&nbsp;or <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/5031)
[Related Guides to the Product](https://learn.adafruit.com/products/5031/guides)
### Copper Foil Tape with Conductive Adhesive - 6mm x 5 meters long

[Copper Foil Tape with Conductive Adhesive - 6mm x 5 meters long](https://www.adafruit.com/product/3483)
Copper tape can be an interesting addition to your toolbox. The tape itself is made of thin pure copper so it's extremely flexible and can take on nearly any shape. You can solder to it, and the tape itself can carry current just like a wire. On the back is an electrically conductive...

In Stock
[Buy Now](https://www.adafruit.com/product/3483)
[Related Guides to the Product](https://learn.adafruit.com/products/3483/guides)

## Related Guides

- [Adafruit QT Py RP2040](https://learn.adafruit.com/adafruit-qt-py-2040.md)
- [Adafruit TRRS Jack Breakout Board](https://learn.adafruit.com/trrs-jack-breakout.md)
- [Light Up your Costume with Noods](https://learn.adafruit.com/light-up-your-costume-with-noods.md)
- [Pulse Room](https://learn.adafruit.com/pulse-room.md)
- [Feather TFT STEMMA Case](https://learn.adafruit.com/feather-tft-stemma-case.md)
- [MIDI Foot Pedal](https://learn.adafruit.com/midi-foot-pedal.md)
- [Holiday Tree with Feather RP2040 Scorpio](https://learn.adafruit.com/holiday-tree-with-scorpio.md)
- [3D Scans for Low Poly Statues](https://learn.adafruit.com/low-poly-3d-scans-for-3d-printing.md)
- [CircuitPython MIDI to CV Skull](https://learn.adafruit.com/circuitpython-midi-to-cv-skull.md)
- [CRICKIT WobblyBot](https://learn.adafruit.com/crickit-wobblybot.md)
- [LED Matrix Wall Arcade for Pico-8](https://learn.adafruit.com/led-matrix-wall-arcade.md)
- [3D Printed Case for Adafruit Feather](https://learn.adafruit.com/3d-printed-case-for-adafruit-feather.md)
- [RGB LED Matrix Cube with 25,000 LEDs](https://learn.adafruit.com/rgb-led-matrix-cube-for-pi.md)
- [LED Trampoline](https://learn.adafruit.com/led-trampoline.md)
- [BrainCraft Camera Case](https://learn.adafruit.com/braincraft-camera-case.md)
- [LED Emerald with Circuit Playground Bluefruit](https://learn.adafruit.com/led-emerald-with-circuit-playground.md)
- [Ninja Timer: Giant 7-Segment Display](https://learn.adafruit.com/ninja-timer-giant-7-segment-display.md)
