I did some digging today and came to the same conclusion. I can handle it in my script if you want but it would be nicer to have it in the library. That function works great except buffer has 3 f’s on the ‘reset buffer info’ line :slight_smile:

1 Like

minor update v0.2.0

  • added :reset() function.@tomw, if it doesn’t work, feel free to make changes and send me a pr and i’ll merge your fix in.

new instruments:

  • dictaphone (thanks @Ukasz for the find!)
  • discord choir (thanks @Ukasz for the find!)
  • harmonium (thanks @cfd90 for the find!)
  • kawai felt

(note: i tried to add some of the others suggested but for various reasons wasn’t able to. some pianobook samples don’t have individual audio files, some don’t have stereo recordings, some require a lot of tlc, etc., etc. but please let me know if there are others that are interesting to you that could be added!)


Thank you so much. Hope I haven’t been too demand’y. I’ve merged in support for mx.samples in the spirals script (posted to the latest tracks thread is anyone is interested to hear it)


Thanks for the update! New instruments sound great. I’m editing the dictaphone one (which is right up my street sonically!), has a bit too much tape hiss silence at the start for my liking :slight_smile:

Hello! Thank you for this wonderful script. Can someone talk me through the process of how to edit the Awake script to do this? I’d love to try out the tatak piano. I’ve tried adding:


-- play an instrument
skeys:on({name="ghost piano",midi=60,velocity=120})
skeys:on({name="box violin",midi=42,velocity=120})

-- turn them off
skeys:off({name="ghost piano",midi=60})
skeys:off({name="box violin",midi=42})

given in the guide to the Awake script and the script wouldn’t open at all. I’m sure this is obvious to some but I’m not really sure what I’m doing (if that wasn’t completely obvious :upside_down_face: )

Here’s a quick version - awake/awake.lua at 68112eb66a689ae5eeb85a26e3a5c6ecb461fd07 · tomwaters/awake · GitHub

You can see the changes here. I changed the engine to mx.samples, then changed the step/note on code to do skeys:on and all notes off to do skeys:off. I needed to remove a bunch of parameters that were related to the default engine which might be what tripped you up. I’ve left in the ‘sound’ UI options but they won’t have any effect

Let me know if you have questions!

just noticed that note off wouldn’t work if the output was audio only. It needs a change to the note on code to remember the active note like this:

    if params:get("output") == 1 or params:get("output") == 3 then
      if params:get("output") == 1 then
        table.insert(active_notes, note_num)

I’ve updated my github version

another update
I’ve put together a more complete version here - GitHub - tomwaters/awake-mx.samples


Amazing, thank you. It works beautifully.

I’m not too familiar with coding so this was definitely out of my capabilities. About to embark on the lua studies and broaden my horizons!


Thank you for this. I tried copying the whole code you posted, overwriting the code that was there already, which did seem to update the script to show MX.samples options in Params, but I’m now getting no sound at all. :grimacing:

Do I need to activate Mx.Samples somewhere? I have downloaded taktak piano and it works with a midi keyboard plugged in.

1 Like

That’s strange, you shouldn’t need to do anything else. I would suggest restarting to get mx.samples to load but if it works standalone then it should be fine. Any errors in maiden?

1 Like

It just came alive without any further editing on like the third restart. Thank you for your help!

On another note i feel like I’m restarting my Norns a lot because of audio issues. Wonder if i need to do a full reflash?

1 Like

@danbond what power supply are you using? I’ve noticed issues with sc when I’m using a wall wart or even a usb cable that just doesn’t feed enough amperage at startup.

1 Like

It’s usually from a laptop USB port or from a rechargable battery which gives 3a i think? I’ll double check - thank you.

1 Like

Is there a way to use the grids as a midi controller for mx.samples? I think its a great sound source for recording inside norns then using it in cheat codes when you are away from home but that would mean bringing another device just for playing it :slight_smile:


haha you are getting ahead of me…i am working on a grid interface for playing stuff.


20 characters of


introducing Plonky


Awesome! I’m going to check it. Thanks for everything, your scripts are inspiring!

1 Like

Been playing with this all evening. Thank you so much… wonderful stuff.

1 Like

Hey, I just realised these packs are around 20 mb! And read now that the samples are loaded dynamically :open_mouth: That’s awesome because for example Dictaphone pack weights 700mb on cpu. So Plonky works only when I’m online right?


plonky works offline - all the sounds work offline. the instrument packs are downloaded in full when you “get” them. when i say “loaded dynamically” i mean that during playback, it will only load a sample if you play a key that needs that sample. so even if you have hundreds of samples, if you only play a few keys it will only load those few samples.

the reason this is useful is that RAM is not infinite - there is only ~300 MB free RAM (which is where the samples are “loaded” into). dynamic loading means you use very little RAM. however your hard disk is being used by the samples. i think in total it will be ~a gigabyte of hard disk space if you download all of them.