nydl

nydl

Live beat-synced looper and slicing sequencer.

(v. basic demo, likely to be replaced with something more polished when I or someone else makes one. I have not put any skill points into “polished demo video”)

Details

nydl (pronounced kind of like a slurred “night owl”) is not your dream looper (It might be mine. Time will tell). It’s a New Years Day looper. It’s a four-channel beat-synced looper and plock (parameter-lock) sequencer for Norns and (recommended) Grid.

As a looper, nydl is distinguished by punching in and out of recording at bar lines, and by automatically muting the monitor (and unmuting the recording, if it was muted) as soon as it’s done recording a loop. As such, it’s perfect for recording sequenced synths with a crow or midi clock out. Find a sequence you like, hit record, and when the next loop point comes around, start performing the loop you want. After however many bars your loop is, nydl will seamlessly switch to playing the loop.

Once you have some sounds you like in the loops, you can sequence jumps around between cuts of the sound, changes in playback rate, fx, etc. You can do this either by editing the sequence in edit mode, or recording some cues you play live in cue mode.

Motivation

So there I was on thou-tube trying not to get too 'fluenced watching this video from mylarmelodies about the utility of a looper in synth stuff, and thinking “norns should be able to do that”. I tried a few different existent norns loopers, but none were quite purpouse-fit. At the same time, I’d had a number of conversations with @zbs about their use of the octatrack and why they like it so much. I’d never heard of a “parameter lock” in a sequencer before, but it seemed brilliant. So those ideas were wiggling around in my head for a while, and here we are. It also includes a lot of stuff from conversations with @nonverbalpoetry and @static about what they desire in loopers.

Requirements

Norns (required), Grid (recommended but it’s still a lovely beat-synced looper w/o).

Documentation

See most up to date docs on github… but you can read about it here too.

Getting Started

Install nydl, restart Norns. Plug in Grid, or not. Start nydl.

Arrange some sound to go into your Norns, ideally one that is synced
to the Norns clock. Now turn down Norns’ own monitor of your
sound. We’re going to be monitoring from within the script.

Teal Deer

When you start nydl, Norns will show each track: The sound is represented by a
graph of its amplitude above, and the sequence is represented below that. The
looped part of the sequence is brighter, and any plocks are yet brighter.

e1 - Track select

e2 - Function select for e3, k3

e3 - Varies. Look at the screen to see what it does.

k1 - Norns menu as usual. Peep the params.

k2 - Manticore. Use to monitor and record for the selected track.

k3 - Varies. Look at the screen to see what it does.

When you start nydl, your grid will look like this:

nydl-hello

To the left, there is the sigil. It contains tools for navigating nydl, and
for editing your sound. The top two buttons of it change between edit and cue
modes. In edit mode you record sounds and select steps or ranges of steps and
apply tools to them. In cue mode you skip around in your sound and apply tools
to the current location of the playhead, and you can record these cues as
plocks.

In the middle there are per-track tools. Each track is represented by
two rows on the Grid. The left of this section has one manticore and
one mute per track, and the four buttons per-track to the right are
section indicators and selectors.

To the right is your sound, with a button lit up to represent your
playhead.

The Manticore

image

In the per-track tools section of the grid, the top left button of the per-track
controls for every track (the one that’s dancing with the beat a little bit) is
the manticore button. On Norns itself, K2 is the manticore button for the
selected track.

Aside from being a mythical creature, this manticore is a
portmanteau of “monitor” and “record”, and that’s what you’ll do with
this button.

Press that manticore for a channel, and you should hear your input
monitored on that channel. Press it once more, and it should begin
flashing quickly. The quick flashing indicates you aren’t recording
quite yet, but you will be at the next loop point.

Soon the next loop point will arrive, and the manticore will start
breathing, indicating it is recording. It’ll do this for one loop, and
then go dark, muting the monitor and replacing it with the recording
you just made. You can always press the manticore again, starting
monitoring for the track again, and pressing it yet again will
overdub.

If you’re monitoring and you want to stop monitoring without
recording, long-press the manticore and you’ll go back to just playing
the loop.

If you change tempo, monitoring after the change will trigger a
resampling phase for that track. You will be prevented from recording
until the resample is complete. You will be prevented from changing
tempo while monitoring or recording.

The Mute

image

The mute button for each track is right under the manticore. It mutes
the recording, but not the monitor. To replace the sound on a track
instead of overdubbing, record to it while the recording is
muted. When the manticore is done recording, along with muting the
monitor, it’ll unmute the track for you so it keeps playing
seamlessly.

The mute buttons can also be used like a “tool”: Muting and unmuting the track
is recorded as mute plocks in cue mode, and if you hit the mute button for a
track in edit mode while holding down a range of steps it’ll mute those steps
in the sequence.

Edit vs. Cue

The first row of the sigil selects the mode for the grid. The meaning
of “recording” and “monitoring” are different in each mode. The two
modes have independent monitoring status, and you can’t switch modes
while recording.

Edit mode The top left button selects edit mode.

In edit mode, monitoring monitors the input sound.

In edit mode, recording records the input sound.

In edit mode, the right half of the grid represents steps in a sequence, each
of which may contain a parameter lock; lockable parameters include a buffer
position to jump to, a rate to play at, a rate to stutter the loop at, or
effect application. You have 64 steps in your sequence, available 16 steps at
a time on 4 pages. The pages are accessed in the middle section of the
grid. In edit mode you can select one or more steps by pressing a range of
buttons on a track, and then press the button for a tool on the sigil,
applying that tool to that range of steps. It also works to press a page
button or a range of page buttons; this will apply the tool to the whole page.

Cue mode The button on the other side of the sigil from the edit
mode button is the cue mode button.

In cue mode, monitoring determines which tracks your tools from the sigil will
be applied to, and which tracks are available for cueing. Cue mode does very
little until you push a manticore.

In cue mode, recording records your series of cues into the sequence,
quantized to the step size.

In cue mode, the right half of the grid represents your sound. If you have a
sequence with jumps, you’ll see the playhead jump to follow the sequence. You
can cue specific slices (on a track you’re monitoring) by pressing buttons or
ranges of buttons. Pressing sigil buttons cues their effects wherever the
playhead currently is. When you release all buttons, nydl resumes playing your
regularly scheduled sequence.

The Sigil

The sigil is full of tools, and it looks slightly different between edit and cue
modes. Here’s a rundown.

Stall

Brings the playhead rate to zero, but slowly. Has a kind of record-scratch feel
to it. In edit mode the time it takes to reach stillness is the selected number
of steps; in cue mode it’s chosen by the bottom three buttons of the sigil.

Fx

Three different effects:

  • Bitcrushing
  • Filter (check parameters to pick bandpass/lowpass/highpass)
  • Delay send

Rate

Change the rate of the playhead. Left is slow; right is fast.

Stutter

Replace the selected time with the first part of it, repeated:

  • 2x
  • 3x
  • 4x

The “selected time” in cue mode is chosen by the buttons at the bottom of the
sigil.

Reverse

Reverses the selected time (edit mode) or the playhead for as long as its held
down (cue mode).

Cut, Copy, Paste

Only in edit mode. Manipulates the sequence, and also a clipboard like it’s a
real computer. Note that “cut” doesn’t remove sound, it removes plocks from the
sequence. It’s extra valuable that way - it’s your only way of removing plocks
from the sequence.

Select

Edit mode only. Makes your selection “sticky” so you can apply and un-apply tools to the same
section of the tracks easily. Press it again without any steps held to clear a
sticky selection.

Loop

Edit mode only. Loops the selected section of the sequence.

Jump to normal

Only in cue mode. Jump to the position in the sound corresponding to the current
step in the sequence, and set the playback rate to normal speed. Prevents the
plocks from the sequence from taking effect, though other manual cues will still
work.

Time for effects

Sets the time-base for stall and stutter:

  • 4 steps
  • 2 steps
  • 1 step

Tips.

  • Use the parameter menu to load a file into a track, or save your whole project
    to a pset (and some files with sequences and sounds on the side).

  • You can also access longer recording times from the parameters menu, though
    your sequence is always 64 steps long. You can record as much as 16 bars, with
    quarter-note steps.

  • Record different things to each of the four sections of a track. Use the loop
    tool to jump between them.

  • Mute a track in cue mode, but activate its monitor. Playing slices of it will
    “break through” the mute, allowing for finger-drumming styles.

Roadmap

Planned features:

  • Currently, only fx on/off is stored in plocks. Soon it’ll store fx parameter values too, as soon as I work out the exact interface for that.
  • The ability to automatically/generatively choose ways to mess with your loops in a musically pleasant way.
  • More fx, and pluggable per-track
  • Frippertronics always-recording-with-decay-of-existing-material mode
  • Reording a mixdown of script output to a track

Download

From Maiden,

;install https://github.com/sixolet/nydl

Github: GitHub - sixolet/nydl: not your dream looper

Many many many thanks to @zbs, @nonverbalpoetry, @Dewb, and @static for alpha-testing.

72 Likes

@sixolet this is really truly extraordinary. the UI and parameter locks are ingenius. the SC code is so impressive too - I have no clue how you did half the things you’ve done here, but I’m reading your SC code (which is written so well) to learn all about them.

12 Likes

Thanks and congratulations!

Oh wow it seems a really, really nice script, looking forward to play with it tomorrow, I was hoping to see something like that!

3 Likes

amazing script, and you just busted it out. dang, excited to get it installed.

1 Like

Wow, looks so cool and useful. Looking forward to checking it out!

1 Like

Wow. Wow wow wow. So excited to try this—just might be my dream script.

Edit: Just had a really sweet techno workout with a ‘takt and Easel. This script is the business, and I’m not even sure I totally understand it yet.

2 Likes

So much well deserved wow in the comments, what an amazing script. Thanks for sharing.

1 Like

I’d be happy to answer any questions and improve the docs.

I’m still working through to see what is unclear because I’m not paying close enough attention… I’ll definitely ask questions once I can formulate them clearly

2 Likes

This script is a rad combination of my favorite gestures from a set of sources one might think would be incompatible: the Kaoss Pad, mlr, DSI Tempest, and Elektron p-lock sequencing. The first time I tried it out I fed it total unthinking garbage and I still ended up with some stuff I plan to incorporate into a track. I had to look up how to favorite scripts again (it’s E3) and I think I can cross two separate script ideas I had off my todo list, because this is better. Fantastic stuff @sixolet!

my personal tips:

  • map the filter and delay params to 16n sliders (or your favorite controller)
  • in edit mode, hold the section1+section4 buttons then slow to drop an entire track an octave
  • sync norns and DAW with Link for easy jam recording

hax:

  • use s.sendMsg(\b_read, ...) in the sclang console for unauthorized destructive buffer manipulation and collage
7 Likes

This looks incredible @sixolet! Excited to give it a go!

1 Like

In preparation for Flash Crash, I just pushed a change including:

  • Bug fixes
  • Teletype control, if you have a norns hooked up to a crow hooked up to a teletype.

The latter is kind of fun. There’s now a Norns param as a toggle for teletype control. All it does is send over to crow a little script that overrides self.ii.call3 and self.ii.call4 to send a message to Norns.

In nydl, switch to cue mode and monitor the tracks you want teletype to be able to control (teletype control is the equivalent of pressing buttons in cue mode).

Now from Teletype, you can use CROW.C3 [track] [first] [last] to mimic pressing the step buttons — CROW.C3 1 5 7 loops steps 5 through 7 of track 1, for example. CROW.C3 1 0 0 un-presses, and returns you to your regularly scheduled sequence.

CROW.C4 [track] [tool] [z] [currently-unused] applies a tool from the sigil (or a mute) to the track (again, only if it’s monitored in cue mode). The tool selection is as follows:

  1. “normal”
  2. reverse
  3. stutter 2
  4. stutter 3
  5. stutter 4
  6. slow
  7. fast
  8. fx1
  9. fx2
  10. fx3
  11. stall
  12. mute

Use z=1 to “press” the tool, and z=0 to “release” it. The [currently-unused] argument I might use later to allow you to assign effect parameters or rates from tt, but I haven’t implemented that yet — right now the reason it’s call4 is that you can’t have two different call3s.

Happy nydl-teletyping!

10 Likes

Anyone else finding that using the “stall” function freezes the grid and makes it unresponsive? Graphically it shows everything happening etc. but pressing buttons does nothing

Oh no, which mode — cue or edit?

Edit. I have to restart to get audio back…

The grid lights all seem to function normally, just, silence

tested with single button or selecting a range

1 Like

Willd. Reliably when you hit stall? If you can reproduce this with maiden connected and dm me anything the supercollider tab says when it happens I’d be grateful. It smells like a supercollider crash.

(And I’ll do some testing and trying to reproduce it myself tonight)

Same here, Norns shield. Audio goes silent and I must restart Norns to get it back

When you hit stall?

I don’t suppose you can ssh in and find the output of

journalctl -u norns-jack -u norns-sclang -u norns-crone

… when it happens?

The relevant part should be right at the bottom; you can use iirc a > to go to the bottom.

I fear that something is crashing the jack server.

(Actually solving this might have to wait until I get my shield back from the shop)

1 Like

Had my first nydl session recently and loved it. There were one or two items I was confused by, but rereading the documentation helped a lot. The biggest piece I couldn’t figure out was how to clear plocks, but I saw it in the doc today and am curious to try again tonight. Thanks so much for this very well thought out script!

4 Likes