# Live recording into tidal - getting audio input working

**URL:** <https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695>\
**Category:** TidalCycles\
**Tags:** questions\
**Created:** [2 January 2021 20:33 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695 "2021-01-02T20:33:04Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![lucyjp786](https://uzu.lurk.org/user_avatar/uzu.lurk.org/lucyjp786/32/337_2.png) [@lucyjp786](https://uzu.lurk.org/u/lucyjp786)\
**Post date:** [2 January 2021 20:33 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/1 "2021-01-02T20:33:04Z")

</div>

Hi there. Does anyone know how would I record live sound from a microphone into tidal? In non computing language if possible, please (layman here). Thank you!

---

<div class="post-metadata">

**Author:** ![mrreason](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mrreason/32/3203_2.png) [@mrreason](https://uzu.lurk.org/u/mrreason)\
**Post date:** [2 January 2021 21:22 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/2 "2021-01-02T21:22:58Z")

</div>

If I understand you correctly, you are looking for this [GitHub - thgrund/tidal-looper: Different looper variants for SuperDirt to provide live sampling in TidalCycles.](https://github.com/thgrund/tidal-looper) 🙂  
And is discussed here: [Sampling within Tidal - #35 by mrreason](https://club.tidalcycles.org/t/sampling-within-tidal/508/35)

And feel free to ask if you have any problems with it.

---

<div class="post-metadata">

**Author:** ![lucyjp786](https://uzu.lurk.org/user_avatar/uzu.lurk.org/lucyjp786/32/337_2.png) [@lucyjp786](https://uzu.lurk.org/u/lucyjp786)\
**Post date:** [3 January 2021 19:36 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/3 "2021-01-03T19:36:38Z")

</div>

hey, thanks. looks like what I need. how do I actually get the sound into the computer though?

---

<div class="post-metadata">

**Author:** ![mncmncmnc](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mncmncmnc/32/85_2.png) [@mncmncmnc](https://uzu.lurk.org/u/mncmncmnc)\
**Post date:** [3 January 2021 20:05 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/4 "2021-01-03T20:05:19Z")

</div>

Hi!  
One of the main ways is to use something called an "audio interface", which is typically a little box you plug into your computer that allows you to plug microphones and instruments directly in. There are lots of them at various price ranges and capabilities depending on what you need/budget.

There are also USB microphones, and even the little microphone within most computers, both of which are capable of recording (and I suspect the build-in mic would be the default microphone with the Tidal Looper)

I hope that is helpful!

---

<div class="post-metadata">

**Author:** ![mrreason](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mrreason/32/3203_2.png) [@mrreason](https://uzu.lurk.org/u/mrreason)\
**Post date:** [3 January 2021 22:25 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/5 "2021-01-03T22:25:28Z")

</div>

What @mncmncmnc says is absolutely correct. There is even a thread about audio interfaces here in the forum [https://club.tidalcycles.org/t/gear-talk-usb-audio-interface/1477](https://club.tidalcycles.org/t/gear-talk-usb-audio-interface/1477)

But whether you use an USB microphone, a webcam, an onboard microphone or an audio interface, the audio device must be available in SuperCollider. I also believe (hope) that the default device is used without further configuration. You can check this as follows:

1. Open SuperCollider
2. Start the server
3. Open under `Server -> Show Server Meter` a window with the inputs and outputs

Now you can speak into your microphone and should be able to see an audio level (in green) like this:

![Bildschirmfoto 2021-01-03 um 23.16.29](https://club.tidalcycles.org/uploads/default/original/2X/6/61a8225dcbe742526e26ab708391adc7e0ff7d3f.png)

In the above example I have an input signal on port `1` and need to specify the input number in TidalCycles like

```haskell
d1 $ s "looper" # linput "1"

```

---

<div class="post-metadata">

**Author:** ![lucyjp786](https://uzu.lurk.org/user_avatar/uzu.lurk.org/lucyjp786/32/337_2.png) [@lucyjp786](https://uzu.lurk.org/u/lucyjp786)\
**Post date:** [4 January 2021 18:22 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/6 "2021-01-04T18:22:29Z")

</div>

That's it, thank you so much! Do you have any good recommendations for cheap but decent interfaces? As in max £50..... Want to avoid buying a crappy one if poss. Thanks again

---

<div class="post-metadata">

**Author:** ![lucyjp786](https://uzu.lurk.org/user_avatar/uzu.lurk.org/lucyjp786/32/337_2.png) [@lucyjp786](https://uzu.lurk.org/u/lucyjp786)\
**Post date:** [4 January 2021 18:30 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/7 "2021-01-04T18:30:40Z")

</div>

Thanks for the info. Think I'm missing something. Have tried running

```haskell
linput = pI "linput"
lname = pS "lname"

```

then running this as you said -

```haskell
d1 $ s "looper" # linput "1"

```

then -

```haskell
once $ s "looper" 

```

- which as it says "writes one cycle to the loop buffer and uses the input port 0 and the sample number 0" on documentation - which I assume it is recording when I run that?

then I ran -

```haskell
d1 $ slow 5 $ s "loop"

```

- which I assume stops the recording and starts playback (although nothing for me)? and I slowed it down by 5 to make sure I was getting the full recording in (just using my laptop mic by the way).

Is this how it should work?

Only other thing I can think of maybe the 'tidal-looper-master' folder isn't in the right place, where should that be?

Apologies if this is unclear, and for my slowness. Thanks again

---

<div class="post-metadata">

**Author:** ![mrreason](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mrreason/32/3203_2.png) [@mrreason](https://uzu.lurk.org/u/mrreason)\
**Post date:** [4 January 2021 20:39 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/8 "2021-01-04T20:39:47Z")

</div>

Hmmm this is not how it will work. I'll try to illustrate a procedure that should work.

First things first: Did you execute the SuperCollider code in `Looper.scd` ([https://github.com/thgrund/tidal-looper/blob/master/Looper.scd](https://github.com/thgrund/tidal-looper/blob/master/Looper.scd))?

Then you should try the following code and see if the recording works and keep it running:

```haskell
d1 $ stack [
    s "looper" # n "<0 1 2 3>",
    s "loop" # n "[0,1,2,3]",
    s "808 cp!3"
]

```

Now I try to explain what's happened with your code.

Basically you control the recording with the pattern with `s "looper"`. This will record a sample under the name `loop`.

This records a buffer with a length of one cycle:

```haskell
d1 $ s "looper"

```

And this records a buffer with a length of four cycle:

```haskell
d1 $ slow 4 $ s "looper"

```

When the pattern starts from the beginning, the previous recording is overwritten.

The function `once` just plays one cycle of a pattern ([https://tidalcycles.org/once](https://tidalcycles.org/once)). This will immediately starts a recording and stops it automatically after one cycle:

```haskell
once $ s "looper"

```

And you determine everything via pattern therefore the following is equivalent to `once $ s "looper"` because `0` is the default input port:

```haskell
once $ s "looper" # linput "0"

```

So much for the recording. Playback is separated from this and a recorded sample works just like any other sample.

This means that the recording starts from the beginning after each cycle with this pattern:

```haskell
d1 $ s "loop"

```

And this starts the sample after four cycles:

```haskell
d1 $ slow 4 $ s "loop"

```

So if you record a recording of the length of one cycle, then a playback pattern of the length one is sufficient to hear a result.

I hope I could help 🙂

---

<div class="post-metadata">

**Author:** ![lucyjp786](https://uzu.lurk.org/user_avatar/uzu.lurk.org/lucyjp786/32/337_2.png) [@lucyjp786](https://uzu.lurk.org/u/lucyjp786)\
**Post date:** [5 January 2021 14:56 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/9 "2021-01-05T14:56:27Z")

</div>

Thanks so much for this I'm slowly getting it. something is definitely happening. If I run -

```haskell
d1 $ slow 4 $ s "looper" # linput "0"

```

then clap 4 times and try to listen to it back using -

```haskell
d1 $ slow 4 $ s "loop" # gain 2.5

```

I seem to only hear the first clap?

---

<div class="post-metadata">

**Author:** ![mrreason](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mrreason/32/3203_2.png) [@mrreason](https://uzu.lurk.org/u/mrreason)\
**Post date:** [5 January 2021 18:57 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/10 "2021-01-05T18:57:47Z")

</div>

> [@lucyjp786](#):
>
> I seem to only hear the first clap?

Or you may hear the end of the last clap. I also think that is what is happening here.

With this you overwrite your old buffer after 4 cycles:

```haskell
d1 $ slow 4 $ s "looper" # linput "0"

```

But what you can try with pleasure is this

```haskell
d1 $ slow 4 $ s "olooper" # linput "0"

```

With this you start the looper in overdub mode and the buffer is never overwritten. This way you don't have to struggle with the buffer being recreated.

---

<div class="post-metadata">

**Author:** ![yaxu](https://uzu.lurk.org/user_avatar/uzu.lurk.org/yaxu/32/2_2.png) [@yaxu](https://uzu.lurk.org/u/yaxu)\
**Post date:** [6 January 2021 12:05 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/11 "2021-01-06T12:05:35Z")

</div>

For a decent audio interface for £50 or under I think the only real option is Behringer.. E.g. Behringer U-Phoria UM2, or Behringer XENYX 302 USB.

---

<div class="post-metadata">

**Author:** ![lucyjp786](https://uzu.lurk.org/user_avatar/uzu.lurk.org/lucyjp786/32/337_2.png) [@lucyjp786](https://uzu.lurk.org/u/lucyjp786)\
**Post date:** [11 January 2021 19:56 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/12 "2021-01-11T19:56:55Z")

</div>

Hi thanks so much. I have bought an interface (Behringer U-PHORIA UMC404HD). I have no idea how to use it with supercollider. I've plugged in a microphone to "input 1" on the interface. Shouldn't this just automatically play in supercollider as input 1? It seems to still be the computer microphone picking up the sound.

---

<div class="post-metadata">

**Author:** ![yaxu](https://uzu.lurk.org/user_avatar/uzu.lurk.org/yaxu/32/2_2.png) [@yaxu](https://uzu.lurk.org/u/yaxu)\
**Post date:** [11 January 2021 21:10 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/13 "2021-01-11T21:10:32Z")

</div>

What operating system are you using? E.g. on a Mac you could just set it as default in system preferences, and then restart supercollider and it should pick it up. Under linux you could select it with qjackctl. I'm unsure about windows.

---

<div class="post-metadata">

**Author:** ![sellanraa](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sellanraa/32/1725_2.png) [@sellanraa](https://uzu.lurk.org/u/sellanraa)\
**Post date:** [11 February 2021 18:26 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/14 "2021-02-11T18:26:33Z")

</div>

Directed here from @mrreason but not seeing info that addresses my question. I have an audio interface, a MOTU Ultralite AVB, that I can get running through SuperCollider but I have no idea how to set up its inputs to record my synths for live sampling.

Any wisdom would be appreciated.

---

<div class="post-metadata">

**Author:** ![mrreason](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mrreason/32/3203_2.png) [@mrreason](https://uzu.lurk.org/u/mrreason)\
**Post date:** [11 February 2021 18:31 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/15 "2021-02-11T18:31:09Z")

</div>

I just thought something like this could be helpful for you:

> [@yaxu](#):
>
> What operating system are you using? E.g. on a Mac you could just set it as default in system preferences, and then restart supercollider and it should pick it up. Under linux you could select it with qjackctl. I'm unsure about windows.

I think we need your operating system for helping you first.

And I mentioned something like this

> [@mrreason](#):
>
> But whether you use an USB microphone, a webcam, an onboard microphone or an audio interface, the audio device must be available in SuperCollider. I also believe (hope) that the default device is used without further configuration. You can check this as follows:
> 
> 1. Open SuperCollider
> 2. Start the server
> 3. Open under `Server -> Show Server Meter` a window with the inputs and outputs

---

<div class="post-metadata">

**Author:** ![sellanraa](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sellanraa/32/1725_2.png) [@sellanraa](https://uzu.lurk.org/u/sellanraa)\
**Post date:** [11 February 2021 18:34 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/16 "2021-02-11T18:34:30Z")

</div>

Ah, I'm on a Mac - Catalina OS. The MOTU is recognized by SC, but not on the server meter side of things. My Tidal output is coming out of it immediately though.

EDIT: Sorry, I'm not super familiar with SC or TidalCycles really - so maybe punching above my weight here. 🙂

---

<div class="post-metadata">

**Author:** ![mrreason](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mrreason/32/3203_2.png) [@mrreason](https://uzu.lurk.org/u/mrreason)\
**Post date:** [11 February 2021 18:38 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/17 "2021-02-11T18:38:56Z")

</div>

Absolutely no problem 🙂 But I think it's always worth to solve such issues. And other can learn from it too maybe!

One possible issue could be, that your interface is not set as the default device for recording. You could check this under "Audio-MIDI-Setup" (something like this).

For me this option looks like this:

 ![Bildschirmfoto 2021-02-11 um 19.36.17](https://club.tidalcycles.org/uploads/default/original/2X/2/29eff978e1241d5556ddfc831a0e2cefbc9532f8.jpeg)

---

<div class="post-metadata">

**Author:** ![sellanraa](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sellanraa/32/1725_2.png) [@sellanraa](https://uzu.lurk.org/u/sellanraa)\
**Post date:** [11 February 2021 18:40 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/18 "2021-02-11T18:40:51Z")

</div>

Ah, thank you!

So that's one step further than I was - it wasn't set up to be my default input. So the next step is how I set which of the 8 inputs for the live sampling?

---

<div class="post-metadata">

**Author:** ![mrreason](https://uzu.lurk.org/user_avatar/uzu.lurk.org/mrreason/32/3203_2.png) [@mrreason](https://uzu.lurk.org/u/mrreason)\
**Post date:** [11 February 2021 18:47 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/19 "2021-02-11T18:47:02Z")

</div>

This is the moment when the server meter comes into the game. You can check the input port number with you current input signal there.

If you applied the looper code in SuperCollider and you executed `linput = pI "linput"` in TidalCycles, then you can determine the input port in the code like:

```haskell
d1 $ s "oloop" # linput "5"

```

Or even so:

```haskell
d1 $ s "oloop" # linput "<0 5 7 4>"

```

---

<div class="post-metadata">

**Author:** ![sellanraa](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sellanraa/32/1725_2.png) [@sellanraa](https://uzu.lurk.org/u/sellanraa)\
**Post date:** [11 February 2021 18:57 UTC](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695/20 "2021-02-11T18:57:28Z")

</div>

Unfortunately my Digitone is being picked up by the Ultralite, but the server meter doesn't reveal anything differently.

 ![Screen Shot 2021-02-11 at 1.56.40 PM](https://club.tidalcycles.org/uploads/default/original/2X/5/5a2a58b6c2befecebf5e52a9dba648808e197ec5.jpeg)

[Next page](https://uzu.lurk.org/t/live-recording-into-tidal-getting-audio-input-working/2695.md?page=2)
