Ha! Well that is just a quirk of history and special attention given by @ppqq - he and @jlmitch5 pitched in early so I had started to tag stuff in advance of onboarding additional folks.

2 Likes

@bobbcorr
thanks for taking a look, that is great advice. messines of norns issue list is basically on me - the dangers of spending a long time without collaborators; brian and i used it as an unstructured to-do list for too long and it is now neither well-organized, well-documented or comprehensive.

as @ngwese and @ppqq have pointed out, we need both a guide to usage for the issue page, and better use of meta-issues and milestones.

i will try and spend a little more time with a… “lead-dev?” hat on as well, making things more useful, now that the thing is public.

@scztt
thanks, that is a great tip and makes perfect sense. will clean it up. PRs also always welcome

1 Like

I’ve got a norns coming in batch 2 - I’ll probably need a solution to this in order to integrate my own synths at that point anyway, so I’d be happy to push a more generalized solution back to Crone if it hasn’t already been addressed by then.

norns events clarification.

encoder n = 1…3
delta , is this just -1 or 1, or is a larger range supported?
(I can see processing later which seems to calculate velocity/sensitivity, so im assuming digital encoders with just -1/1)

keys n = 1…3
data = 0 or 1 (for key up/ key down respectively)

as far as i can see there is no data thinning etc, prior to it hitting the lua layer.

do the keys have any debouce, i.e. are you ignoring key events if they are under a certain time threshold?

im trying to tune the feel on the push2, which is working but feeling… the encoders currently are too fast, and the button too sluggish :slight_smile:

really only if you know or have any thoughts, otherwise im fine reading the code
(im pretty familiar with the low level matron stuff now :wink: )

see lua/encoders.lua for acceleration on the lua side

keys are debounced in hardware (standard RC) and i’m not sure the kernel module is doing any soft debounce. no lua debounce.

are you attaching the push2 controls via osc?

trying to get norns building in WSL (windows subsystem for linux). was able to successfully build libmonome and nanomsg. now when i run ./waf configure from norns i get the following:

Summary
scanner-darkly@scannerdarkly:/mnt/d/Projects/monome/github/norns$ ./waf configure
Setting top to                           : /mnt/d/Projects/monome/github/norns
Setting out to                           : /mnt/d/Projects/monome/github/norns/build
Checking for 'gcc' (C compiler)          : /usr/bin/gcc
Checking for 'g++' (C++ compiler)        : /usr/bin/g++
Traceback (most recent call last):
  File "/mnt/d/Projects/monome/github/norns/.waf-2.0.6-593191f496fe8c66231dfd5df26167ae/waflib/Scripting.py", line 118, in waf_entry_point
    run_commands()
  File "/mnt/d/Projects/monome/github/norns/.waf-2.0.6-593191f496fe8c66231dfd5df26167ae/waflib/Scripting.py", line 178, in run_commands
    ctx=run_command(cmd_name)
  File "/mnt/d/Projects/monome/github/norns/.waf-2.0.6-593191f496fe8c66231dfd5df26167ae/waflib/Scripting.py", line 169, in run_command
    ctx.execute()
  File "/mnt/d/Projects/monome/github/norns/.waf-2.0.6-593191f496fe8c66231dfd5df26167ae/waflib/Configure.py", line 85, in execute
    super(ConfigurationContext,self).execute()
  File "/mnt/d/Projects/monome/github/norns/.waf-2.0.6-593191f496fe8c66231dfd5df26167ae/waflib/Context.py", line 84, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "/mnt/d/Projects/monome/github/norns/.waf-2.0.6-593191f496fe8c66231dfd5df26167ae/waflib/Context.py", line 125, in recurse
    user_function(self)
  File "/mnt/d/Projects/monome/github/norns/wscript", line 22, in configure
    conf.define('VERSION_HASH', get_version_hash())
  File "/mnt/d/Projects/monome/github/norns/wscript", line 8, in get_version_hash
    'git', 'rev-parse', '--verify', '--short', 'HEAD'
  File "/usr/lib/python2.7/subprocess.py", line 567, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

how should i fix this?

Have you got git installed inside your WSL environment?

thought i did, but let me check…

after installing git and running .waf configure i now get:

Checking for 'sndfile'
['/usr/bin/pkg-config', '--cflags', '--libs', 'sndfile']
err: Package sndfile was not found in the pkg-config search path.
Perhaps you should add the directory containing `sndfile.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sndfile' found

not found
from /mnt/d/Projects/monome/github/norns: The configuration failed

Try the following:

sudo apt install libmonome-dev libnanomsg-dev supercollider-language supercollider-server supercollider-dev liblua5.3-dev libudev-dev libevdev-dev liblo-dev libcairo2-dev liblua5.3-dev libavahi-compat-libdnssd-dev libasound2-dev dnsmasq hostapd
sudo apt install sc3-plugins ladspalist

(source)

Sounds like you’re missing a bunch of packages.

Once you’ve figured out which ones you’re missing add them to the appropriate read me.

when i run sudo apt install libmonome-dev libnanomsg-dev supercollider-language supercollider-server supercollider-dev liblua5.3-dev libudev-dev libevdev-dev liblo-dev libcairo2-dev liblua5.3-dev libavahi-compat-libdnssd-dev libasound2-dev dnsmasq hostapd

i get E: Unable to locate package libmonome-dev

i did build libmonome as described in https://github.com/monome/libmonome
do i need to add a path or something?

also, https://github.com/monome/norns/blob/master/readme-setup.md says you need to run the above before building libmonome - should it be the other way around?

Did you install the Supercollider packages in: https://github.com/monome/norns-image/blob/master/build-dev-image.md

sudo apt install supercollider-language supercollider-server supercollider-dev

It tells you to install them, but doesn’t explicitly give you the command, so you might have missed it.

thanks @sam! after doing that it looks like norns builds successfully now. i did miss that step since it’s not clear from the instructions (it’s listed under “for desktop” so i wasn’t sure that was something i needed to do).

it still says Unable to locate package libmonome-dev if i run sudo apt install libmonome-dev but i can probably ignore it?

also, what’s the difference between norns and norns-image? basically, what i’m trying to do is being able to make changes to norns (matron specifically) and build it.

yeah, id been looking at the encoders.lua, but was still to fast :wink:
Ive realised I need to ‘thin’ the data stream from the push for the encoders, its now fine.
(Im guessing your polling the gpio slower, than the push sends out encoder updates)

buttons were a bug in my midi parser… so fixed too.


push 2 - osc, no :slight_smile:

Ive written a ‘matron’ driver, encoders/keys/pads all send/received via midi , and writes to the screen via usb (using libusb)

as of now…
its working pretty much perfectly (looks/feels great, and so Ive been having fun with a few apps)

currently, its in a mode I’ve called ‘cuckoo’ :wink:
which basically means it highjacks the hardware screen, and also sends out button and encoder events like the N hardware.

next steps:

  • cuckoo ‘monome grid’ , mostly done, just got a few things to sort out
  • midi controller mode , so switch between grid and note mode on pads

that’ll be cuckoo mode ‘complete’

I guess at that point, if anyone is interested, then we can discuss what was needed to add these.
(and of course they can browse my GitHub fork)

after that, I’ll probably just play with it for a bit , get a feel , and start looking at maiden.

once Ive a better feeling for apps and how they tick,
then I’ll start looking at adding a ‘native push2’ mode, which supports colour, and all the other various features push2 has - thats probably much simpler than cuckoo mode on the matron side, but raises some interesting questions on the lua side.

2 Likes

sorry, confused by multiple instructions. how do i make a new norns build that i can upload to the device?

is it this? https://github.com/monome/norns/blob/master/readme-update.md#preparation-of-an-update

in this line: md5sum TTMMDD.tgz > YYMMDD.md5 what does TT stand for?

do i need to do any other steps before doing that, other than building norns as described here: https://github.com/monome/norns/blob/master/readme-setup.md#building-norns?

looks like a typo to me, guessing it should be md5sum YYMMDD.tgz > YYMMDD.md5

thanks! - that’s what i assumed, but most of linux stuff is black magic to me…

On linux 64 Ubuntu 16LTS I have everything working well if I run Scide I can also hear the awake lua patch edit it and restart matron to hear changes.

Is there a way for maiden to connect to matron/Sc without the physical device connected?
I think that is my last hurdle before parallelism

you mean have maiden (the server) running on one machine, and matron/sclang on another?

in theory, i think that’s possible - the wrapper is websockets. in practice i think you’ll have to dig into the golang to see how the WS urls are set.

i dunno if having maiden running would really improve yr dev experience though; its essentially a file browser, editor and REPL. you already have all those things on the terminal / in scide.

True. I was just considering it for lua learnings but I see your point