Building GUI for external screen?

Hi there. I wanted to experiment with making a GUI for an organelle patch that displays on an external monitor. The idea is that eventually maybe I could attach a small touch screen to the organelle and certain patches would launch a GUI on the touchscreen, for extra interactive fun. But I’m starting with just a regular non-touch monitor connected via HDMI.

Here’s how I’m approaching it:

  • launch linux GUI with startx :white_check_mark:
  • install some GUI package :x:
  • build a GUI
  • connect organelle patch to GUI

For the choice of GUI framework, I’m most familiar with the python package kivy, so that’s where I started. After working around several issues installing via pip, I found that the library requires opengl, which is not installed on the organelle.

Before I go further down this rabbit hole…

First question: Is there guidance on installing packages to the organelle? With pip, I was getting read-only system errors, which I got around by saving the python library to the USB stick (pip install --target /usbdrive/python-packages). It seems like to achieve my goal, I will probably have to install some graphics library, whether that’s opengl or something else. How can I get around the read-only errors and install linux packages?

Second question: More broadly, any suggestions for alternative paths to achieve my goal? I sketched out what seemed to be the easiest way for me, but I’m open also to the best way for the organelle, if for instance there are already packages installed that can get me there.

Thanks for your thoughts!

Sounds like a cool project!

To your first question, there is a “scripts” folder (I think under /home, although I will have to start up my Organelle M later and check) that has a bunch of system scripts, including a script to enable -rw mode on the OS filesystem (and another to restore -ro mode). That should allow you to install any package you wish. Fair warning that it also gives you the power to corrupt your system of course so make sure you have a backup of your patches and a copy of the OS handy to restore if necessary. It’s never come to that for me though.

To your second question, I think the most natural and immediate way would be to use PureData itself to make the GUI. Although the “Graphical Structs” API in Pd is seemingly quite bonkers to me and doesn’t seem well documented. I’ve haven’t figured it out, but I’ve admittedly only glanced at it. But it is built-in and can be integrated directly in your patch.

Maybe also consider networking to something like an iPad Mini over MIDI (or OSC?), which would give you better graphics acceleration (you could even develop with high-level tools like Unity.)