FM7 (Norns)

this is working for me now as I had similar issues.
It’s a fantastic synth and well worth taking the time to explore the many parameters. Here’s an improv i did today


I’ve tried using Librarian and Cyberduck but keep getting the message: error: load fail. I have a feeling it’s a simple fix…I hope. Thoughts?

EDIT: I fixed this using maiden and changed line 14 to : local FM7 = require ‘fm7/lib/fm7’ instead of: local FM7 = require ‘fm7_norns/lib/fm7’

1 Like

the require suggests the name of the FM7 folder should be:


if it’s called anything else it’s not going to work.


Here’s some python code to parse DX7 sysex (and convert to Nord G2 patches)


Very interesting. If I can extract the sysex functions from this, modifying the output format to Norns pmap would be straightforward. It’s also a good way to add all the missing pieces of the engine.


Hello, I had FM7 working and now it does not. This is what transpired: I wanted to use Haven so I loaded it on and it wouldn’t work. I read that there were duplicate engines in the WE section so I deleted WE and loaded Haven and it worked. I added the newer WE back on and now FM7 says FM7 (error: init). Did I delete something that FM7 needs when I removed the original WE folder? I don’t know a thing about GitHub or anything so If there’s something that must be loaded back onto my Norns, please explain how I can do it. Thanks so much. I love FM7!

I did some investigating and found an FM7.lua in the WE folder so I deleted it and the FM7 works now! slowly learning :slight_smile: but now I want to know why it was in WE and what happens when whatever in WE that requires it tries to open. Will it work because it’s on my Norns but just in this FM7 folder? thanks again. Again, not a very computer savvy person so even simple things intimidate me

1 Like

Here’s another quick demo. Because of the tones and timbres you get out of it, I think it would work really well tied to @dan_derks Less Concepts script. FM7 is a fantastic sounding script and much easier to program than my FSR1


I think the 2.0 update changed many things. The engine is also in we…we should sort this out as I want to update the engine. I excluded it from my own repo. @tehn might be able to help. Should we remove from we?

I’ve been doing some improv stuff on my commuter ferry ride and I agree more sequencers and modulators would open new frontiers. I like this engine more than I did when I first made it.

I have some arc + grid ideas…


I haven’t followed the technical side of Norns development/programming but is it possible to pipe MIDI internally in Norns? (E.g. have less concepts sequence fm7)

1 Like

wherever Sun Ra is in the cosmos I hope he has a norns/grid with fm7 loaded up


speaking for less concepts, the MIDI output is just a translation of the data generated by the script’s sequencing maths – so the data is able to be agnostically re-formatted to the syntax a particular sound engine expects :slight_smile:

this happens in the iterate() function which starts on line 175:
if seed_as_binary[v1_bit] == 1 then
engine.noteOn(1,midi_to_hz((notes[coll][scaled])+(48+(v1_octave * 12)+semi)),127)

the engine.noteOn... part is just the formatting Passersby expects (voice,hz,velocity), so it could easily be substituted for the syntax required by FM7.

@lazzarello, seems like FM7's engine.start() command requires a voice ID and a “MIDI” note?


yes ‘we’ should, indeed


I see what you did there. Let me know when that’s a thing. I have a branch to include the engine. It’ll be a breaking change.

I have some changes to the midi code to merge in. Gonna work on it this weekend.


i made a PR:

in general: i think the “best practice” if one wants to ‘take ownership’ of something stuff currently in we, is to fork we and make one’s own PR removing the thing in question.


Clearly I didn’t get to this over the weekend. I mean, San Francisco had a downhill big wheel race how could I miss that?!? I’ll get my Norns code in line soon I promise.


that big wheel race sounds rad! hope you had a blast.

I’m getting this new error.
if anyone an help me troubleshoot I’d be grateful.

script load: /home/we/dust/code/fm7/fm7.lua

cleanup failed

script clear

pset >> write: /home/we/dust/data/system.pset

script run

loading engine: FM7

Engine.register_commands; count: 0

___ engine commands ___

___ polls ___









script init


/home/we/dust/code/fm7/fm7.lua:85: attempt to call a nil value (field ‘amp’)

stack traceback:

/home/we/norns/lua/core/norns.lua:185: in field ‘amp’

/home/we/dust/code/fm7/fm7.lua:85: in function ‘init’

/home/we/norns/lua/core/script.lua:71: in function ‘core/script.init’

[C]: in function ‘xpcall’

/home/we/norns/lua/core/norns.lua:186: in field ‘try’

/home/we/norns/lua/core/engine.lua:83: in function </home/we/norns/lua/core/engine.lua:82>

>> reading PMAP /home/we/dust/data/fm7/fm7.pmap

Getting the same error here, I think we might just need to wait for the next release from @lazzarello

Glad it’s not just me. No worries. There’s plenty to explore. I’m stoked that so many people are sharing such cool things.