@tehn It’s a Norns. I wasn’t aware of the latest update. Yes it was plugged in on boot. I just performed the 200106 update and everything seems to be working now. I’ll keep you guys posted if any odd behavior happens.

1 Like

What is the best practice when it comes to redrawing the norns screen within a lua script?
I’m finding that if I simply redraw the screen with script-specific content, it causes problems while in the script’s params page. It seems the params page redrawing and my script redrawing overlap. Is there a way to check for that in my script?

I think you need to make sure all your screen redraws happen within the main redraw function. If you draw to the screen outside of that it can cause the funky behavior you describe.

2 Likes

What I’m trying to do is update/redraw the screen on user input (for example grid or norns key press or encoder movement) or periodically in a metro. Since some things change and I want to refresh the screen to reflect that. But calling redraw in the key press callback for example causes issue when in the params/system menu pages. Is there a way to get around this?

I encountered this the other day. I wasn’t sure what was causing it at the time, but your description sounds very similar. I was seeing the “shimmer” effect from pools superimposed on the norns menu screen. I ended up removing all my redraw() calls and setting a redraw metro, and it went away.

edit: I was def doing the correct way mentioned below. :arrow_heading_down:

1 Like

It’s hard to say without seeing your code, but here’s an example of what I mean:

-- bad, because screen updates should happen inside redraw

function key(n, z)
  screen.text('hello world')
  screen.update()
end
-- correct way
function key(n, z)
  redraw()
end

function redraw()
  screen.text('hello world')
  screen.update()
end

If you’re already doing this, then maybe it’s a bug I’m not sure.

1 Like

Thank you, that fixed it. I was calling a helper function my_redraw() that does the drawing both from redraw() and from key(), which obscured the problem. When calling redraw() directly from key(), it behaves as expected.

3 Likes

the way the norns system works is to dynamically reassign the redraw() function when entering the menu mode.

no screen functions should ever be outside the redraw function, and also no reason to do so. (there’s always a solution— so if something is confusing, just ask!)

we should clarify this in the documentation, but it’s going to remain a gotcha without some deeper plumbing (which may be backend overkill).

3 Likes

Oh, I’ve always had a question about redraw() organization. In my scripts, I often break up all of my screen functions into groups for legibility, along these lines:

function drawMenu()
 screen stuff
end

function drawHelp()
 screen stuff
end

function redraw()
 drawMenu()
 drawHelp()
end

I never call screen functions with keys or encoders, nor have I ever encountered any issues, but now I’m worried my implementation is a little dangerous.

I think that approach is safe as long as your draw functions are never called outside of your scripts main redraw function. Conversely, the redraw function should not be used for any sound / timing events that need to be “realtime” or they will be suspended on accessing menus, etc.

In layman’s terms, when norn’s needs to render a menu (or a listselect or other modal input) it will replace the redraw function with a function that does nothing, and then proceeds to draw the screen itself. Once you exit the core menu or modal then the original redraw (saved at script start?) is reinstated and you script regains control of the screen.

3 Likes

One subtle behavior worth mentioning is that maiden will only show matron and sc output/errors which occur while it is open. There is currently no recording of past output from the norns software stack for maiden to display when it starts up.

1 Like

Can the full norns software stack be run on a desktop computer at this time?

I’ve not been able to find a specific reference to this. If so - linux only? Mac? Instructions/tips/hints would be appreciated.

@zebra?

generally no. there’s no desktop virtualizer for knobs/encoders, and nobody has done the framebuffer management to “window” the output.

that said, parts of it can be useful. ie, crone works, if you control it via OSC.

1 Like

Hi there!

I bought a USB to MIDI DIN cable to connect Norns to my Elektron machines. But now when it arrived, I realize that it will automatically try to install a driver, and that it’s compatible with Windows, Mac only. Do I dare to try to connect anyway, or should I just send it back and look for another one? And if so, could anyone recommend a cable that works; all I find seems to require Widows/Mac OS.

This is the one I bought: https://www.ebay.co.uk/itm/USB-Midi-Cable-Lead-Adaptor-for-Musical-Keyboard-to-PC-Laptop-XP-Vista-Mac/254200924623?hash=item3b2f8e49cf:g:-f4AAOSwgW9ctMxC

Thanks!

Most of those devices should show up as a class compliant midi device.

Plug it in and try. Should work just fine. I have 2 similar ones and they work ok on Raspberry Pi (DIY norns)

1 Like

As okyeron said, should work fine.
Note that these adapters have issues (They don’t buffer?) sending long sysex messages, ie Volca FM and Dx patches.

1 Like

Is there a way to read the console in Maiden elsewhere? Like in my terminal window?

yes. SSH in.

systemctl stop norns-matron
cd norns
build/matron/matron

now you’re running matron directly, and you can type commands and see the output.

note, there’s no up-arrow or niceties.

@zebra started on a ncurses command line maiden ahead of @ngwese’s web browser maiden… i dug up the old code which was removed. it could be updated back to working order if someone gets ambitious: https://github.com/monome/norns/issues/978

1 Like

help! deep @andrew hooked up a norns shield for me. fully assembled and beautiful.
all working and updated… *except theres an important issue im having! welp!
my grid is non-responsive : / need a bit of guidance if someone could provide. .

issue: grid is plugged-in and lighting up appropriately for mlr (mlr best grid script example), except its not responding to any button pushes. . . any help would be most appreciated!

*tried all usb ports
*tried multiple usb cables
*updated norns . . .
*tried other grid scripts., same issue., grid starts-up appropriately - just no response to any button pushing. .

gratefully
-MD

1 Like

*update~ fixed. all we needed was a little mushrooms.

MD

8 Likes