Getting started and documentation feedback


Ok, guys. I’m a musician, not an engineer. I have followed these steps, also tried the process exactly as shown on the startup docs. Nothing worked. I mean, the list commands show all the devices active and in place, but no audio output through the pisound output jack.

After hours of frustrating attempts to read what are clearly engineering documents and not user instructions, I managed to switch the system default sound output and midi to the pisound card rather than base ALSA. That gets me pretty decent sound output when I play an mp3 file through audacious.

But nothing, and I mean NOTHING, I try gets any midi activity. I found documents on the web telling me I have to disable pulseaudio and run jackd (tried, what a nightmare of unintelligible gobbledygook that was) but it still didn’t work. So I’m back to the basic setup.

Pure Data is installed but doesn’t seem to start from the button press. (No, I haven’t played with the button scripts at all. I’m afraid to mess with them.) It does run from the command line or the desktop menu. I’ve tried to get it to generate midi note on and off commands to get sounds, but no results. Nothing happens. I’ve tried several times to make sense of the Pure Data documentation, but it only gives me headaches. I have no idea what half of it is talking about. Every discussion I can find.

I’m not stupid. I’m a long time Linux user, and worked for 20 years as a network manager. I have used midi devices on and off for a long time too. Clearly something is missing here. Every tutorial gets up to the point where it says MIDI…install Pure Data. And seems to think that’s all there is to it.

All I really want is to get this gadget to where I can power it up, (headless, no keyboard or monitor,) and perhaps press the button once or twice to get my desired default setup. Plug in a keyboard device (I have several, both USB and 5 pin connector) and an amp cable, and play.

Can anyone point me to a simple step by step that will get me there? Thanks.

Headless Pi: Start to Finish

id suggest you start with a fresh install, and follow instructions as laid out in the basic docs - these just work in my experience

once you’ve done that, post questions saying
what are you trying to do? what’s not working as you expect?
e.g. are you trying to use pure data? did you configure pure data for the sound card and midi?

being more explicit about problems will lead to solutions faster in my experience.

(bare in mind if you use a more minimal install you will still need to install music software, a desktop install will have these pre-installed… but as you are a long time linux user that should present no issue.)

a raspberry pi is always going to be a bit ‘diy’ thats the nature of the game, and I think blokas do a great job of helping people out here. if you want something that is buy -> turn it on -> play … then perhaps something like the Organelle (or similar) is more suitable, as that is marketed as an instrument, ready to go.


Hey, I think the missing step here is to set up the virtual MIDI connections between the hardware and the software you’re running using aconnectgui or patchage. If you launch a patch via the button or the Pisound app, the scripts attempt to connect all the controllers together, but that happens only once, on starting the patch. We do have an automatic solution coming for this which will also take care of hot plugged MIDI controllers, it will get released soon, but you can try it out already by following the steps outlined in my reply here Script for launching PD patch with MIDI without aconnect and another reply a bit below.

Please create another topic regarding issues using the button to launch patches with a bit more details, as well as any other issues you hit. :slight_smile:


I recently went through this whole tutorial and checked that it still works with the latest Raspian image: 2018-11-13.


OK, I’ll open additional topics, because I have additional issues. I believe I said this once before: the existing documentation for this project is too sparse and assumes far too much knowledge on the part of the reader. (Which often happens when programmers and analysts write the documentation. I know, because I’ve been both a programmer and a documentation writer, as well as a quality control person. The requirements are VERY different.)

In this case, two things are being omitted from the instructions. First, every MIDI implementation I’ve ever used accepted hot plugging of controllers. If Pure Data can’t handle that, it should be stated up front. If it’s the pisound drivers, same thing. The workaround is clear enough, but without knowing that the limitation exists, I can’t be the only one who was fooled.

Second, the installation should provide a default patch that will be loaded on startup, which will of course also trigger a search and connect for midi devices that are already connected to the hardware. What I see in the log is that Pure Data starts up and complains that it can’t find any patches in the default location by which I assume it means that there is nothing ending in .pd found there. What is there are a number of sub-directories, each of which contains one or more .pd files.

These two obstacles imply to me that the hardware and software provided simply is not the turnkey design that is implied by the documentation. If more setup is needed, whether by setting defaults or running aconnect or whatever, the documentation needs to state that.

Thanks for the answer. I think it may have given me the missing clues. Now I just have to figure out the solution based on those clues, since the documentation didn’t provide a complete one.


Every major OS has a different model of how MIDI devices are implemented. If I was designing MIDI integration to computers, I would have done it differently, but at the moment we have to follow the models already in place on our target OS, Linux. :slight_smile: Unfortunately, the design on the system is such that it’s up to the users to set up the MIDI connections between software and hardware MIDI ports. On Mac and Windows, you usually configure which devices should be used by some particular software, from within the software’s settings, which is good for ease of use. Linux way is more complicated to use, but gives more flexibility like chaining multiple software programs to achieve computing feats not possible on other systems.

Anyway, as we ourselves see a gap of ease of use of MIDI on Linux, we will release a neat background utility called amidiauto which will take care of all the simple MIDI interconnection cases for you, and will handle hotplugging events too. It should get released some time next week.

Clicking the button once by default performs start_puredata action, it searches for main.pd in any attached external media, then in /usr/local/puredata-patches/ (Some Pure Data patches consist of many .pd files, while there’s only a single entry point file to the entire patch, our convention is to use ‘main.pd’ name for it). The first main.pd found wins. As there’s no feedback mechanism in headless use other than the MIDI LEDs, we haven’t placed a default main.pd fil to be launched by default, because even if you place your own main.pd file in there, the default one may still come up first in the search and your own patch won’t get started, which is a more frustrating scenario than no patch getting launched. For headless use, it’s best to use a couple of USB storage sticks with a patch in each one.

Also, Pisound App can be used to launch a particular patch and to import patches from USB to /usr/local/puredata-patches.

I agree, it’s a difficult thing to balance, but we accept the criticism and look into ways to improve the documentation. Looks like we should include a section on Linux MIDI interconnections between software and hardware, as well as a quick guide on getting a patch to run via the button click.

Also, the documentation can be edited here: - we’d gladly accept improvements from the community. :slight_smile:


I have moved this discussion from Headless Pi: Start to Finish as it’s more generic discussion on getting started than something specific to the guide.


Update. Sorry it took me a couple of days, but other tasks have higher priority.

I redid the entire install. Same results, and I see now from what you’ve said here that that is intentional. The startup instructions do NOT make this clear. They seem to imply that PD will start on the button press after installation. It will not, because there is no main.pd in those default locations. Quite honestly, I have no idea how to create a main.pd, and after trying to make sense of the documentation for Pure Data itself, and trying to make the sample patches provided do anything at all, that’s fine. Clearly, Pure Data is not for me. It is simply unintelligible.

However, thanks for mentioning aconnectgui and patchage. I had never seen those tools and they do make setting up ALSA connections much, much easier. I have successfully launched QSynth/fluidsynth and connected the virtual keyboard vkeybd to it. That works as expected and produces appropriate sound from the pisound audio output jack.

However, this leads to another gap in the pisound docs. There are a whole stack of ports that become active when pisound launches, even though Pure Data fails. I strongly suggest that these be listed with an explanation of what each does and how it can be used. I see MIDI through (in and out), pisound-ctl (in and out) and pisound MIDI (in and out.) I know what a MIDI through does, though with the ability of ALSA MIDI to chain devices or connect multiples to the same port, I’m not sure why it is needed. I assume the pisound MIDI input and output represent the 5-pin connectors on the device? This really could do with some clarification in the docs.

What I really want the pisound to do is act like a rack mounted synthesizer of the sort that Roland, Alesis, Yamaha and others have sold for MIDI use. Having one that is more configurable and can load samples I provide is the goal, without spending several hundred dollars that I’d rather spend on real acoustic instruments. (Yes, I do play those.)

I have not yet looked into Carla, but will do so sometime soon. First I need to get a hardware keyboard controller connected to QSynth through the pisound. When I’m sure I understand the hardware setup and pisound drivers, then I’ll look at software and fixing the button scripts to launch something other than Pure Data.


Small update. Successfully attached midi controllers through both USB and 5-pin MIDI input jack. Of course, aconnect/aconnectgui/patchage was required to make the connection to Qsynth1. This could be a bit difficult to manage on a headless configuration, I think. Could be done by using an ssh app over wifi or bluetooth, perhaps, but clumsy.

The new version of pisound app for Android was not yet on Google Play store last night, so I haven’t yet seen whether it can make this task simpler. The version I have installed at present does nothing with aconnect, and appears only to speak to Pure Data. That rather limits its usability from my standpoint.


We were not planning to release a Pisound App update, but rather a new background service that will take care of automatic MIDI connections. We’ll make an announcement once it gets released, but you may give it a try by following the manual build steps in this post Script for launching PD patch with MIDI without aconnect and two replies below.

The current Pisound App does connects all MIDI hardware that was connected to RPi at the time the Pure Data patch got started.