Bline

Bline

A parametric acid bassline explorer for Norns.

Bline is a parametric acid-style bassline explorer inspired by the “Topographic Drum Sequencer” concept developed by Mutable Instruments and initially used in their Anushri DIY synthesiser, later forming the basis of their Grids Eurorack-format module.

It takes the form of a Lua script for the Norns Sound Computer platform by Monome, and will run on an original Norns, the DIY Norns Shield or Fates hardware.

Bline creates bassline patterns which can be played by standalone hardware or virtual-instrument Roland TB-303 emulators via MIDI. An internal bass synthesiser SuperCollider engine is also provided for standalone use.

Patterns are created in realtime based on values looked up from a hard-coded dictionary of random values. A number of parameters are provided to shape and transform the resulting patterns.

In developing the script, I was working towards fulfilling the following requirements:

  • Generated patterns should not be random! The same parameter values should always produce the same patterns
  • Small changes to parameters should produce small changes in the resulting pattern, larger parameter changes should produce more extreme changes in output
  • Parameters should be easy to understand, and easily “performable”
  • The most important parameters of the script should be exposed in a simple user interface on the Norns display

Roadmap

  • Improve Softcut delay FX
  • Improve builtin Bline bassline synth
  • Additional output modes
  • Updated Quantiser module
  • Additional assignable functions for K3
  • Momentary pattern-transform FX
  • Grid (+ Toga) support for specific parameters (pattern-lengths, offsets, pattern-transform FX)
  • Arc (+ Toga) support for key params
  • Preset system (instant save/recall)
  • MIDI file export
  • TouchOSC template
  • MIDI controller feedback for eg FaderFox EC4

Requirements

  • Original Norns, Norns Shield or Fates

Recommended

  • MIDI controller with multiple sliders, knobs or encoders for parameter-mapping (optimised for Novation Launch Control XL)
  • Hardware or software TB-303 emulator
  • MIDI interface or USB cable to connect to the above

TB-303 emulator should apply accent to received MIDI notes with a high velocity value (accent threshold adjustable) and slide to overlapping notes (“mono-legato” mode).

Other synths that have a mono-legato mode and allow velocity to modulate note volume and filter envelope modulation amount and/or cutoff may also produce interesting results.

Documentation

Quick Start

  • E1 : Change parameter page
  • E2 : Param 1
  • E3 : Param 2
  • K2 : Toggle parameter group
  • K3 : Currently unassigned

Not all parameters are exposed in the UI display. Mapping Params to MIDI controller recommended!

If you have a Novation Launch Control XL, plug it in, assign it to Norns MIDI device slot 16 and load factory patch 1 on the controller. You’ll find all the key parameters mapped for you.

If you have another MIDI controller, I recommend starting by mapping the following parameters:

  • X
  • Y
  • Accent Density
  • Accent Length
  • Accent Offset
  • Slide Density
  • Slide Length
  • Slide Offset
  • Rest Density
  • Rest Length
  • Rest Offset

See wiki for more information.

Installation

v1.0.0

Install from Maiden

;install https://github.com/toneburst/bline

Restart Norns to enable engine

This is my first script release, so any feedback much appreciated. I’m a hobbyist programmer, so no guarantees everything works as it should, I’m afraid, and I’m sure the code isn’t the cleanest, or most efficient. I’ve been having a lot of fun with it myself, though, and I hope it proves useful for someone else, too!

42 Likes

looks fantastic and just the thing for something new I was going to start this weekend. Perfect timing!

1 Like

Hope it does what you want. Let me know how you get on with it!

1 Like

congrats on your first script! :partying_face: :partying_face: :partying_face:


this makes me want a color norns screen so badly!

10 Likes

Thanks @Justmat. It’s been a long time in Development. The script was actually based on a JavaScript + WebMIDI project I worked on several years ago, so it’s had a very long incubation.

I’ve been thinking for a while that a colour screen would be great!

2 Likes

Excited to try!

The colour screen image looks like an acid sequencer would in the Speedball 2: Brutal Deluxe universe :slight_smile:

11 Likes

If Norns had a colour screen, I probably wouldn’t choose those colours, to be honest.

1 Like

ditto!
if that were the case it would be cool if it had system color scheme settings like the M8!
:stuck_out_tongue:


so…a few days later and i finally dug into this beast of a script!

@toneburst
holy frack!
i didn’t expect those CRAZY FRACKEN awesome animated graphics at startup!
whoah! :exploding_head: :dizzy_face: :stuck_out_tongue:

i dove into the MIDI control of it with a FaderFox PC12 but i started with your suggestions.
going to add the rest tonight. :smiling_imp:
being able to improv things and evolve the progression is amazing!

would it be possible to have both MIDI and Internal voice?

here is last night’s noiz session with Bline plowing through the noiz.
other noiz warping from Cheat Codes 2.
with other noiz from a dual Wing Pinger rig, Mbase11, two DFAMs, Buchla 208c and an MFOS WP20.

4 Likes

Hi @SPIKE glad you’re enjoying the script! Sounds good! Are you using the internal synth there?

I did consider that a while ago. It wouldn’t be too hard to do, but I’m not too sure how well it would fit with plans I had for additional output modes in the future, specifically a more advanced MIDI output mode with many of the same parameters as the builtin synth.

I’m preparing for a mini gig at the moment, so can’t devote any time for additional Bline features right now, but I’ll look into it as soon as I get a chance.

3 Likes

thanks!
yup!
internal synth for that session!

all cool!
really looking forward to how you evolve this thing! :stuck_out_tongue:

oh…another question…or future request///heh!
would it possible to add LFOs that could be assigned to the controls.
like moving the X and Y around randomly. :stuck_out_tongue:

anyhow…
i added a few more CC controls last night and went for it again for last night’s noiz session HERE.

2 Likes

Totally rad!

What did you do to generate the node patterns?

I’m adding a grids mode to my OMX-27 thingy and it’s got 4 instruments so one could be basslines :slight_smile:

3 Likes

Assignable LFOs are on the roadmap.

There’s already a mechanism for randomising the XY position. Check the “rnd” settings on the Global/Note/Octave/Accent/Slide/Rest UI pages. The Global rnd sets the maximum randomisation amount, and the channel settings scale that amount, so you can randomise some channels more than others.

Check this Wiki page for details of all the controls that are exposed in the UI:

There’s a full list of parameters here:

Thanks! I’ve had a lot of fun writing and jamming with it!

I talk about this on the GitHub Wiki actually. It’s just random values.

Having said that, I did take some steps to try and make sure when you increase the Density param for the trigger channels (Accent/Slide/Rest) you don’t get too many triggers appearing at once.

I wrote a simple JavaScript script to generate the node table.

https://github.com/toneburst/Norns/blob/master/bline/Working_Files/table_generator.html

I might try making an alternative node map by transcribing 25 “classic” 303 patterns at some point in the future, but it’s not on the roadmap at the moment. Unless you want to to lend a hand implementing an SOM to sort them, as Pichenettes did with Anushri/Grids. I don’t have the coding chops for that myself, sadly…

That’s a cool project!

Talking of grids, a Grid UI for editing certain params is on the roadmap. I’m thinking Length and Offset values for each channel makes most sense.

4 Likes

AH!!!
ok…thanks for pointing that out! :crazy_face:
still learning this thing!
just read over all that info on the GitHub!
very thorough!

so RND and JITTER are the same thing?
would it help if Jitter was labelled as random in the parameters area?

should the dot on the 5x5 grid float around with a bunch of RND settings or am i misunderstanding it’s use?

Yes, bit, confusing that. I might update the label text.

The crosshairs on the XY display doesn’t reflect position jitter/rnd at the moment. I’m considering adding that feature, and also having 5 separate crosshairs, so if freeze is enabled for a channel, that’s visualised, too.

The pattern graphs on the left of the display do currently update to show randomisation. You’ll notice randomisation only happens once per bar. This is to avoid having to redo potentially expensive random number generation more often than is necessary.

1 Like

got it!

just a suggestion…
if you were to do multiple crosshairs for each channel…
would it be possible to do five different little shapes?
i.e. circle, square, triangle, etc… :stuck_out_tongue:

I’m not sure about that, to be honest. Remember they’ll all be sitting ontop of each other, unless Freeze is enabled for one or more channels. It could end up looking quite messy, given the (very) low resolution of the display.

On a higher-res, colour display, I’d use a different colour for the crosshairs for each channel (matched with the same colours for the channel graphs), but you have to work within the limitations of the hardware…

I do like the idea of the separate crosshairs to visualise channel-freeze though, as the chunky padlock icons are a bit ugly, and too big.

1 Like

Finally got a chance to give this a spin. Wow! The startup sequence is beautiful!
Fed Bline to the matriarch and immediately off to the races! Instant gratification.

This is a keeper for sure! Amazing work

EDIT: Im circling back just to say how awesome it would be to have this and Cyrene in the same script. Basslines and perc all in one go!

These types of generative apps really really hit the spot! Something about the listening and reacting is just great. Causes my brain to focus more on “subtractive sequencing” . If that’s not a term yet it should be lol.
Im getting back into euro soon and apps like Bline Cyrene (grids) are calling my name. In the euro world I plan on grabbing an ADDAC402 Heuristic Rhythm Generator and I see this app playing so so nicely with it.

1 Like

Glad you’re having fun with it! If you record anything using it, post it here! Would love to hear it.

Good to hear it works will with the Matriarch, too. Does that plug directly into Norns, or are you using an external MIDI interface, or MIDI-CV box/module?

2 Likes

@toneburst

As of now im going norns → MIO iconnectivity cable into my Firestudio Mobile–>ableton to Matriarch

In a bit ill try to go iconnectivy straight into the matriarch to see if it plays without the middleman.

I also have a Launch Control XL! im currently using it in ableton for effects mapping but looks like im going to add some Bline params to my master ableton template.
but very soon I hope to be out of the “BoX” So having these mapping is aces!
IF you haven’t invested in black painters/artist tape and a white acrylic pen I highly recommend it for Labeling the Novation! I can never go back lol

3 Likes

Funny you should say that. You’re probably aware that Bline is based on Mutable Instruments Anushri/Grids concepts, like Cyrene. I actually started work on a Grids-style drum sequencer script for Norns some time ago. I got it mostly working, and was pretty pleased with it, then @21echoes released Cyrene, and somewhat took the wind out of my sails, and I never released my version (no discredit to David, it’s just a coincidence that we were both working on the same thing, at the same time).

I’m not planning to roll Cyrene into Bline, and David probably has no plans to incorporate Bline into his script, but I have though it might be fun to add back some of my “Beat Explorer” script into Bline, at some point.

The modular way I’ve written Bline would make it pretty easy to add drum sequencing, based on the MI dataset. It’s a question of how best to do it, from a usability standpoint, I guess, and if there’s enough demand for it. I’ve had some lovely feedback on here (which is really encouraging), but it’s still quite a niche thing, really.

Agreed. I’m not naturally musical, so I like the idea of generating something parametrically, rather than working with notes directly.

“Bassline Sculptor” was one of my early candidate names for Bline, so funny you should say that, too. The way I have the Density controls setup, it’s more of an “Additive Sequencer”, though, so I decided to come up with another name.

Nice! I’d never thought of that. It’s not on my Bline roadmap, but I toyed with the idea of designing some LC XL overlays for Bline, and putting them online as PDFs for users to “cut out and keep”. Another thing I’ve not got round to, along with making a TouchOSC patch for it. If you fancy tackling either, do share :slight_smile:

3 Likes