Haze - four track live granular looper


Haze is a four track live granular looper for Norns, optimised for Midi Fighter Twister, but also usable without it.

The SuperCollider engine is based on Mangl, which itself is based on angl and glut.

Incoming audio is recorded into an 8 second loop (with configurable feedback), and granular engine samples from this loop.

Each row represents a single track, and there are three banks of parameters, the UI shows currently active bank together with the parameter names and values.


Haze can be used without Midi Fighter Twister through “params” section on Norns, all parameters are MIDI mappable.

To use Haze with Midi Fighter Twister, add it as a first Midi device, and start Haze - no Midi mappings are needed. Midi Fighter Twister should be configured with “Midi Fighter Utility” where each encoder has no detent, has black colour, and is 3FH/41H ENC:

Here’s the config file that I use for MFT:

Haze.mfs (2.2 KB)


When used with Midi Fighter Twister:

  • to start recording switch to first bank (with first side button) and click on encoder in first row - click again to stop recording
  • to start playing click on last encoder in the row (all the other encoders don’t have any “click” functionality)
  • switch pages with side buttons

When used with Norns only - the UI does nothing (other than display current values), the only way to interact with Haze is through the params menu. The options there should be pretty well described.


From maiden:

;install https://github.com/szymonkaliski/haze

Can’t wait to try this!

Will the forum let you upload your Twister config file?


this sounds awesome! looking forward to trying it out :partying_face:

1 Like

I don’t know how to export the Twister config! :frowning:

But, the “banks” I’m doing are all done on Norns with Midi, so the only thing you need to configure is remove the detents and change color to black on “Bank 1” in Midifghter Utility. Let me know if you have any issues!

It’s right at the top menu in the utility:


No worries if not. :upside_down_face:

Haha I feel so dumb now :smiley:

Here you go:
Haze.mfs (2.2 KB)


Cheers polish fella! :slight_smile: Checking the script :v: So impressed by your work (I checked your website). Greetings from Zielona Góra :v:

1 Like

Finally, live granular…:slight_smile: Thank you!


clouds simulation in pedalboard is also live if you want to check it out :slight_smile:


Oh wow can’t wait to try this out. Love the Norns/MFT combo.


So, dreams DO come true! :heart:

1 Like

Thank you for making my evening plans for me.


Hi Szymon,

wow, thanks. My first practical encounter with granualization. Tried with my guitar and got really nice sounds.

Any idea how I can midi map the page switching to a Faderfox? I was not able to find this out yet.


Hm, you can’t do that right now, can you tell me bit more on why you need this?
Do I understand correctly that you midi mapped this through params and using it with some other controller (faderfox) and not mft, and you still would like to use the original ui with the pages?

Maybe I am mistaken: From the video I was under the impression that the Haze pages will provide a view on the parameter settings per page (resp. track or voice). Maybe this is wrong. Right now Faderfox will give me feedback on the current values but I guess I would prefer the norns screen for an additional quick overview.

So each page shows (up to) 16 values, which are 4 parameters for 4 tracks (tracks are rows, parameters are columns). This maps directly to mft, so value on 2nd row and 3rd column corresponds to 3rd knob in 2nd row.

I can add a mappable parameter to switch the ui pages, or maybe map it to one of the encoders on norns - would that help?


Yes, thanks! I’d be very grateful (and maybe others without mft also).


Thanks for this really cool script. I agree about the mappable parameter. Do you think it is possible to map all the controls to a Korg nanokontrol 2 as I don’t have a mft?

1 Like

Well nanokontrol 2 has less knobs that required so you won’t be able to map all the Haze params to nanokontrol, but you can map a subset of them through the params menu. Hope that helps :slight_smile:

This looks amazing! I assume it will work with a faderbank. So looking forward to digging in

1 Like