I think I’ve had more fun with my Monome in the last few days than I have in a while.
I’m playing with a sequencer based on the monome grid-studies sequencer tutorial, upgraded to use a sample-based clock using [cyclone/edge~] and a [phasor~] via pd-extended. Just goofing around, sending MIDI to a Moog Minitaur. I stress-test the clock towards the end of the video. The sequencer is polyphonic but the Moog is mono so it only plays a single note in the row. Also, you may notice the pitch is inverted on the sequencer the way I have it oriented.
The knobs are:
Tempo
Note Step (1/1 to 1/128)
Swing (WIP)
Gate
It’s great to be able to use the Organelle’s keys to program the notes of the arpeggiator!
Awesome work here. One of the many reasons the organelle originally piqued my interest was the possibility of being able to use it as a host for my monome. Your work saves me a bunch of time breaking things.
I’ve followed your footsteps and have it almost working. I keep seeing “udpsend: not connected” errors on keypress (when in the GUI pd patcher), and no LEDs illuminate, but when running the monome polysynth patch, notes are indeed being played on keypress (with the same errors and non LED illumination). Any thoughts to point me in the right direction with this problem?
When you say keys, do you mean organelle keys or monome buttons?
I realized I didn’t explicitly say to copy everything in scripts/ to /root/scripts on the Organelle, I’ve updated that as well – so perhaps serialosc isn’t connected if you’re getting udp errors. I’ve also updated the serialosc.pd patch in the Patches folder which may aid debugging.
To confirm if the Monome LED’s are working, you could send osc directly to serialosc by opening a terminal and running
/root/scripts/start-serialosc-server.sh
For me, it returns:
serialosc [m128-489]: connected, server running on port 10145
Making a note of the port, try turning all the LED’s on or off with:
oscsend localhost 10145 /monome/grid/led/all i 1 # all on
oscsend localhost 10145 /monome/grid/led/all i 0 # all off
When I was saying keys yesterday, I was referring to the actual monome buttons. Thats why it seemed so peculiar.
I did end up assuming to copy the scripts over, so that wasn’t a problem, but its good that the readme now explicitly says that.
I was initially connecting without starting the gui (or terminal) just to test those scripts and all worked fine. I did not know I could send osc directly that way though. I tried your test commands, and all LEDs are indeed working (progress!). Part of me is thinking is a port inconsistency thing… since its when the scripts get called from pd that things aren’t working right.
I’m going to download and try your new serialosc.pd patch. (UPDATE: no luck with that new patch, but i’m going to tinker with it. the fact that i can see it all work in a terminal window give me hope.)
ANOTHER UPDATE: I manually ran the connect script in the terminal, and took the port that it gave me and changed the port in the serialosc.pd patch to that. All worked that way. The script being run by pd must have been setting up a connection on a different port than we were trying to send data on.
You may want to try setting PD to log all errors in the main window, and then open /usbdrive/Patches/Monome/main.pd directly from the GUI. Do any other errors show up besides the UDP ones, like missing externals or packages?
Oh excellent! I’m sure there’s a way to query the port from serialosc with PD as to avoid hardcoding it like that. That would be a nice addition.
This shell-script method with serialosc-device was a way to get up and running and proof of concept, but it isn’t necessarily the best way. I just couldn’t get serialoscd (the daemon) running correctly, which is designed to automatically starts/stop when a Monome is plugged in. It would seg fault for me when launching.
Did you get WifI setup and are you able to connect to the network from your organelle? If you got that far, you can find your ip for wlan0 with ipconfig, and then SSH into it from your computer and copy scripts that way.
I’m going to see if I can streamline it a bit – perhaps by including everything in the Patch so you don’t have to install anything.
Copy the over the patches to Patches/ folder on the USB, and put the include folder outside of Patches/ so it looks like this:
Patches/
include/
Let me know if this works. I am curious if the serialosc binaries run without needing to be installed on your system and the port is the same (it’s hardcoded at 10405). You may have to manually adjust the port if it’s different, like @halvves had to do.
[quote=“quilime, post:29, topic:233”]
Did you get WifI setup and are you able to connect to the network from your organelle?
[/quote]i think so (script ran w/o errors and i was able to check the ip address)
just not sure how to verify it’s working correctly cause i’ve not done anything like this before
i don’t mind the adventure and most of your instructions are clear…i just have no background working in terminal to move files around
[quote=“quilime, post:30, topic:233”]
Try this bundled version. I’m working out a way to distribute patches without any command line work.
Verify the includes folder is on the root of the USB, not inside the patches folder. The folder structure on the Organelle’s USB should look like this:
usbdrive/
include/
monome/
Patches/
…
Monome/
Monome Basic Poly/
…
I assume you have a “vanilla” organelle without anything special installed on it, so this is a good test. I’m hoping you don’t need wifi installed or running with this method. No special setup should be needed.
I am testing with a 128 Grayscale. What monome do you have?
Can you open a terminal and run the following? Could you copy and paste the output? (or take a picture)
/usbdrive/include/monome/start-serialosc.sh
Edit: I’ve confirmed on a formatted Organelle that the serialosc port can be different every time, meaning it doesn’t work to hard-code the PD patch. If serialosc-device runs properly, and you do see a port number, you can edit the serialosc.pd patch manually.
In the meantime, I’m working out a way to dynamically get/set the serialosc-device port from PD.
Ah ok, looks like serialosc may not be installed correctly. So the “bundle” idea may not work since it needs those shared libraries installed a specific location. Thanks for trying that out.
Yes, you need to make sure you can connect to the internet over WiFi – but only for installation. Getting WIFI set up was the trickiest part for me… Little things like making sure my wifi hotspot was 2.5ghz (rather than 5Ghz), for example.
I ended up reformatting my Organelle with a bare OS on an extra SD card so I could make sure the installation steps worked, and compiled it all into an installation script. It should be much easier to install now. I’ve also made some updates to my patches, the serialosc.pd patch now knows the correct port. Once you can confirm you can connect to the internet from your Organelle, try the new installation procedure. Here’s a the zip download for convenience.
Ok, I think I figured it out a solution with the bundle again. Could you try it one more time? If this works, no WiFi needed.
I now include the precompiled binaries in the bundle, and tell the OS to look at the usbdrive as a library location with symlinks. Kind of a hack, but worth a shot, as it gets around having to install WiFi.
Download this bundle bundle.zip, and follow these instructions. Let me know how it fares.