aboutsummaryrefslogtreecommitdiff

norns etc

Three scripts useful for local development on norns (i.e., outside of the maiden web interface):

  • norns_shell: Get a lua shell or supercollider shell on a norns from the command-line, similar to the shell in the maiden interface. This connects to the same websocket interface that maiden does.

    # get a lua shell
    ./norns_shell
    ./norns_shell ws://norns.local:5555
    # get a supercollider shell
    ./norns_shell ws://norns.local:5556
    
  • norns_upload: Upload a file to norns over http, just like how maiden does it.
  • norns_load: Activate a norns script already on the device with norns.script.load(...) on the lua interface.

norns_shell requires nanomsg. norns_upload requires jq and curl. Install everything with sudo make install.

There's an example in example/ of a project with a Makefile that uploads and loads when M-x compile'd in emacs. This piece of emacs lisp may be helpful if you'd like to C-c C-c instead.

(defun recursive-upwards-compile ()
  (interactive)
  (if (string-prefix-p "make" compile-command)
      (let ((directory (locate-dominating-file default-directory "Makefile")))
	(when directory
	  (cd directory)
	  (compile compile-command)
	  (message directory)))
    (compile compile-command)))

(add-hook 'lua-mode-hook
	  (lambda ()
	    (local-set-key (kbd "C-c C-c") 'recursive-upwards-compile)))