A really simple FM sine drone synth for norns. 16 independant FM modulated sine waves with configurable carrier - modulator FM index. Control sine amplitudes with norns or a midi controller.

This is very much a personal learning exercise in how to develop for norns. I cobbled together bits and pieces from here and there. Inspired by everyone and everything on this forum, and beyond that, by the music of La Monte Young, Pauline Oliveros, Eliane Radigue, and Mika Vainio. There is no sequencer, no filters. It’s just simple waves playing and beating off each other.


None. Midi controller is optional, and recommended.


Select a root note and scale from the norns parameters menu. 16 frequencies based on the selected scale are applied. You can also tune the sine waves by hand on norns. The last saved preset is loaded on startup. Note values and scale are saved to the preset.


  • [E1] master volume
  • [E2] select sine 1-16
  • [E3] set sine amplitude
  • [K1] exit to norns main menu
  • [K2] + [E2] change note
  • [K2] + [E3] detune
  • [K3] + [E2] change envelope
  • [K3] + [E3] change FM index
  • [K1] + [E2] - change sample rate
  • [K1] + [E3] - change bit depth
  • [K2] + [K3] toggle voice pannning between ‘middle’ and odd numbered voices hard left, even numbered voices hard right.

Install or update

Ensure you are up to date with the latest norns OS. Visit http://norns.local/ in a browser, and install/update sines from the maiden project manager.

Then, SYSTEM => RESET on norns to pick up the new SuperCollider engine. Reboot for good measure.



  • Fix bugs :slight_smile:
  • Squares, Saws, Triangles, Wavetables
  • LFOs, complex envelopes, animation

Anyway! Hopefully useful and fun.

Saws, squares, bandpass noise

You can install 3 variants of the app by pasting the below into Maiden. You will need to remap all controls for each variant. Instead of FM, Squares has a pulsewidth and filter control, Saws has a filter control. Bp_noise has a filter q control. Otherwise broadly similiar to Sines.





Sine wave enthusiast right here. Trying this out tonight!


I’ve wanted to do basically this exact idea for my 16n! I probably never would have gotten around to it so thank you for beating me to it :slightly_smiling_face:

Cant wait to try it out!


yes!! sine enthusiast here too and when I’ve thought about what I would write for my own first script, sines are what I think of first. from all us aspirants, nice work!


This is wonderful! Totally agree that

would be amazing. And possibly some filters per voice.

But it is awfully lovely as is. Great work!


Thanks all! Let me know if you notice any showstopper bugs/crashes. I notice sometimes I need to restart the app, but don’t see any errors in sc/matron. If it’s ok for most folks I guess it’ll be safe enough to add to the library.


Wow. This is basically what I use the er301 (plus parallel samplestuff) for. Will give it a spin for sure this weekend. First I need to fix that damn 16n power header. So not in love with feeble power connectors and this one just broke off from looking at it.


If there is a final norns instrument, I would say it must be this one. Sines forever! Thank you on behalf of all sine aficionados :wavy_dash:


So cool! From my norns to yours :slight_smile:


I’ll be here forever :wavy_dash:

PS. I was listening to Philus’ (alias Mika Vainio, RIP) 1998 Tetra earlier today, how convenient.


Tetra ++++1. So much love for that record.

1 Like

The only record i succeeded in interesting my parents cats in when I was young.


Took it for a short spin. I wonder if it would be possible that the sine amplitudes could also just me midi mapped in the menu, maybe I am missing something but I tried to address cc32-cc47 with a faderfox controller (I doublechecked with midi monitor that it sends on channel 1 and these ccs) but it did not work. Is it hardcoded to 16n?
Also I had some weirdness in stereo field, like a drop out of the left channel after playing around for a bit, first thought my set up would have gone weird but the levels on norns were displayed accordingly as well… Not a meaningful bug report as I did not have maiden open, sorry. Maybe I also did something wrong.
Hope I can get it to work smoothly, as this script is really lovely. <3

1 Like

I had no luck with MIDI either (Korg nanoKontrol Studio, checked MIDI monitor), and when I switched over to another app the sound kept going. Nonetheless it is a great drone app.

1 Like

No that’s valid feedback thanks. Will investigate. Not sure why the stereo field thing isn’t working correctly tbh. Maybe some kind of phase cancellation because sine waves?

Proper midi soon. There is nothing particularly “16n” in there btw, it’s just hardcoded cc numbers.

1 Like

Yes I think there is something fishy on the sc side. The app doesn’t close properly sometimes? I’ve noticed this too.

The stereo issue was more like the left channel suddenly dropping a good few dbs, not phase cancellations which I really enjoy as an effect with hardpanned sines. And yes, the app was also hanging when I switched to something else.
Looking forward to midi mapping!

I think you don’t want the loop at line 61 of the engine source



uuuuh - thank you. Not sure why that loop was there. Seems obvious when you point it out that it shouldn’t be there. fixed!

I also fixed a synth not being freed which was causing sound to continue even after stopping the script.

Update with norns.fetch("") to get the changes.

this is really lovely, @Oootini thank you!

two quick thoughts:

  • I’m finding sometimes lower sines don’t sound… at first i thought it was anything below a certain pitch (say, nothing heard below D3), but it seems to be the first two or three sines, so if i pitch down another sine i hear it fine…
  • i wonder if adding some ramp/slew to the gain would give a smoother transition when a sine enters from nothing… at the moment there’s an audible jump?
1 Like