hey, i’m also hacking stuffs on pisound + grid using pymonome (sadly, not so much lately). very curious to see what you’ll release especially the grid spanning thing :slight_smile:

1 Like

making a list for raspi stuff:
also this was crucial for building Norns Matron
sudo apt-get install libavahi-compat-libdnssd-dev
sudo apte-get install lua5.3, lua5.3-dev
libevdev:
https://www.freedesktop.org/software/libevdev/libevdev-1.5.6.tar.xz
nanomsg

nanomsg library
maiden specific:
wget https://storage.googleapis.com/golang/go1.9.linux-armv6l.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-armv6l.tar.gz
export PATH=$PATH:/usr/local/go/bin # put into ~/.profile
cd to the go/src/github.com/monome/maiden
then run glide install
go build

UI:
for node.js
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
then
sudo apt-get install -y nodejs

3 Likes

this is all covered in the readme_setup instructions in the norns repo.

@shreeswifty i appreciate you delving into this. it’d be great to make a readme that step-by-steps the process.

can you stop posting partial progress reports, though? having multiple revisions across various threads only adds confusion. alternatively, it’d be great it you could fork the norns repo, start a new file readme-build-pi.md (or similar) and link to it. so the info is always updated.

also FYI all have you seen https://github.com/monome/norns/blob/master/readme-setup.md

which duplicates many steps above.

edit @TheTechnobear and i were typing concurrently :slight_smile:

2 Likes

sorry i wastrying to get a bunch of simple stuff into a post for a readme. i am out of town away from my machines for tomorrow and the next day.
i did not see that because i have my raspi in a weird studio space and it’s only connected usually to a screen and a speaker for pd. So i apologize

pp

@shreeswifty or @TheTechnobear - either of you willing to put your installation and startup scripts – how ever sketchy and hobbled together from shell history they might be – in a gist?

1 Like

hey
i am making right now on raspi so i can help
$GOPATH is my first pain in the hiney. it’s not clear where it should go at first

no scripts yet really. Ezra promised me a template later when he’s not travelling and i am hoping techobear or someone helps out with the cairo/framebuffer thing.

EDIT: mods, I guess this and the previous posts should be in the rPI/Blokas thread, rather than clogging the development thread… feel free to move :slight_smile:

I pretty much followed the setup instructions, in the norns and maiden repo

the only things i tripped over were:

norns/dust are expected to be in the home directory ie… ~/norns ~/dust,
so if like me you clone ‘development projects’ into a separate area , then you will need to symlink them to home.

go installation - basically you need to put go in /usr/local (as expected) but if you use the glide curl installation that will fail, since its not got permissions, and you cannot sudo it… but it turned out its just a single file, so copy that to go/bin - go path then points to your local go workspace (I think thats detailed in the setup docs)

supercollider - i had issues with, as documented in this thread
basically you need to install 3.9 from source (easy enough) , then make sure you run sclang once, then you can run sc/install.ch , I found i had to change the mkdir to mkdir -p ( to create intermediate directories)

overall, Id say the instructions were ‘spot on’ , just a tiny bit of fiddling here and there.

from there, I had to get it working on my setup

so, I did some small mods to screen.c to update it for the waveshare touchscreen i have,
basically just change the dimensions, check format, and then use cario_scale() to scale from 128x64 to something close to 1024x600 - this was for a ‘temporary test’

this meant I could test that crone/matron started, I get the sparkles, and then it launches one of the monome apps, I see the step sequencer graphics and it plays some sounds - so I know I have sound from SC.

the next step is getting a control service to control things… so that moves me away from the touchscreen to a push, which also has encoders/buttons etc - so thats what im working on.

(if you want to do a touchscreen implementation, then you could do X, but Id probably look at SDL so X is not needed)

Ive built maiden, but not tried to use it… im sure it will be fine, but I didnt want to get overly sidetracked.

however, that could be a another way to start out, rather than worry about a hardware interface.
(Id assume you could create apps to control things like the mixer on things other than norns hardware)

startup, we’ll I didn’t want to change the default startup, as i currently have orac/mec as my default, and thats what i need most of the time.

but when I need to , I will simply use systemctl … I think there might even be some scripts in GitHub.com/monome/nornimage ?
(you might want to just check that repo out for ideas, id didn’t need to as Id already got the PI running for audio apps anyway… so no changes needed)

I guess later once Ive got it working to my liking - I’ll probably do something with MEC that will allow me to switch between orac and norns from the push… (as I want the solution to continue to be headless like the pi3/orac)

so yeah just follow the setup docs, they are really done well…

2 Likes

a simple Pi hat with 3 encoders and 3 keys would do the trick for control, with cairo mapped to a connected monitor. that’d be a super easy wire-up with a hat protoboard.

or does the pisound not allow stacking? (sorry, i haven’t been paying attention to that)

but i also know ezra has had this all working with a usb soundcard as well.

again, if you all make progress on certain bits please document them somewhere so we can eventually have a nice centralized howto for people to follow steps— information gets lost on the forum instantly. it’s good for conversation, it’s not good at being a database or a wiki.

6 Likes

does this work for the framebuffer issue @zebra mentioned?

1 Like

sorry, not sure which issue you’re referring to?

when i run scalng & ./matron on raspi the menu system opens to a framebuffer and i am wondering how to pipe that to a X_window

no, this is for making a serial connection into the device (screen is a tty command)

cairo to xwindow requires some low level code, not some linux piping. you’ll have to wait until someone volunteers time to do this, or start reading up on cairo. also, keep an eye here: https://github.com/monome/norns/issues/391 and i might suggest posting further questions there regarding this issue

it has a few spare pins on the headers, but not many
https://blokas.io/pisound/docs/Specs/#raspberry-pi-pins-used-by-pisound

but you could easily use an arduino or something to attach encoders/buttons, and then transfer the data either via uart or usb.

this is pretty easy to do as a conditional compilation (as detailed in 391), it only changes the init and deinit code, the actually drawing functions remain the same.
if its still open when im done on the push, I’ll take a look…

i built maiden and was trying to use it because i foudn it interesting and i think everything builds properly but when i copy a script “awake” into the maiden web interface from tehns directory i get

TypeError: Cannot read property ‘map’ of undefined

i already built all the stuff for my main machine and i am a little emotional today because i have a VERY old cat and he’s not doing well so he’s on a pillow next to me and usually this machine is just a test box for bugs in pd so i di dnot mean to confuse stuff just wanted to take a quick pass then wasnt sure if i should just make a few notes etc…

This was mainly for @shreeswifty but others might be interested… I’ve added additional details to the READMEs for both the maiden backend and the web app regard which versions of dependencies need to be installed. There is also some additional detail about how to run things to get a tight development loop (regardless of whether one is desktop only or working with a norns/rpi).

1 Like

thanks so much!
i did the production build and got rid of my last errors and i thank everyone for being understanding
i like to do a build from scratch to see what gotchas or new stuff i learn because there is a bunch that i just have not encountered before: Go/Glide, and now a little react
After all the building and running is there some way i am missing in the doc about connecting maiden to SC or matron IF it’s running like on the raspi and NOT the device?

I have sclang and ./matron running
i also have [and wondering if thsi is my problem] i have SC3 running and i am getting sound on the linux box

When i run maiden i get the folders but it is not connected to sc or matron – now should i be?
ddi i miss a connect flag or something?

should we start a separate thread on discussing the approach on abstracting devices? (to make it clear, i just want to discuss how it could be approached in norns, not necessarily suggesting it should be changed). there are some posts here and in the development thread but it’s confusing to have it in different threads and i don’t want to push either thread offtopic.

2 Likes

i was hoping this thread could be about getting the stuff working specifically on the Blokas piSound version of Raspi. But if you mean deifferent distros or Pushs/Midi devices, Maybe? I don’t know. I think i got a little ahead of myself but just because i had some time this morning and thought i should log some gotchas etc… But i in no means own the thread but if it’s "How do i get my Push2 or organelle running Norns. I would be grateful if you did? :slight_smile:

sure, close enough

ok sure.

to me the problem seems a little simpler: you just need

  • three encoders and three buttons attached to the rpi on GPIO,
  • a screen that’s at least 128x64 pixels (if its bigger you’ll want to rescale to maintain legibility.)

that is the minimum. then push2 just acts as a midi controller and you can jump right into helping us figure out how to make apps more hw-agnostic or whatever. (maybe that means abstracting “gridlike” things between weaver and the matron device management stuff, maybe in lua - the latter seems more sensible to me but that’s just an opinion.)

if you want to use the tiny screens on the push, well, we don’t have any stuff that looks like that so it is divergent on several levels and certainly needs its own “driver” - more problematically, it also suggests particular UI design decisions that are different from the decisions one would make with a single screen instead.

ah, heck, ok just actually looked at the push2 specs. so its a big screen. great, that makes it easier. it’s still sort of a clunky fit - UI for norns hw will not be optimal there - but enough to work with.

5 Likes