Commit b8fe162b authored by Albert Gräf's avatar Albert Gräf
Browse files

Add a section about device connection to the Tips and Tricks section, and also...

Add a section about device connection to the Tips and Tricks section, and also add some information about RTP-MIDI.
parent 81521152
......@@ -74,8 +74,7 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<figure>
<img src="prefs-audio+midi.png" id="fig:fig2" alt="Figure 2: Audio and MIDI setup." /><figcaption aria-hidden="true">Figure 2: Audio and MIDI setup.</figcaption>
</figure>
<p>The setup on Windows works in a similar fashion. More information for Linux users can be found in the <a href="https://github.com/agraef/purr-data/wiki/Installation#linux-users">wiki</a>.</p>
<p>One pitfall of the Pd engine is that it does not rescan the devices if you connect new external audio or MIDI gear while Purr Data is already running. Thus you need to relaunch the program to make the new devices show up in the preferences. In the case of MIDI, it is easy to work around this limitation by employing virtual MIDI devices, which ALSA MIDI does by default. On the Mac you’d use the <a href="https://sites.google.com/site/mfalab/mac-stuff/how-to-use-the-iac-driver">IAC</a> devices, on Windows a MIDI loopback driver such as <a href="http://www.tobias-erichsen.de/software/loopmidi.html">loopMIDI</a> for that purpose. You then wire these up to the MIDI hardware using a separate patchbay program. A similar approach is possible with audio loopback software such as <a href="http://www.jackaudio.org/">Jack</a>.</p>
<p>The setup on Windows works in a similar fashion. More information for Linux users can be found in the <a href="https://github.com/agraef/purr-data/wiki/Installation#linux-users">wiki</a>. One minor annoyance of the Pd engine is that it does <em>not</em> rescan the devices if you connect new external audio or MIDI gear while Purr Data is already running. It’s often possible to work around this, however, please check <a href="#device-connections">Device connections</a> in the <a href="#tips-and-tricks">Tips and Tricks</a> section below.</p>
<h3 id="gui-and-startup-options">GUI and Startup Options</h3>
<p>The GUI theme can be selected on the “GUI” tab (see fig. 3, left). The changes will be applied immediately. Purr Data provides various different GUI themes out of the box. Note that the GUI themes are in fact just CSS files in Purr Data’s library directory, so if you’re familiar with HTML5 and CSS then you can easily change them or create your own. In Purr Data version 2.14.1 and later, the “grid background in edit mode mode” option enables the edit mode grid, which helps positioning objects and lets you see at a glance when edit mode is active. (As of Purr Data version 2.16.0, this option has been replaced with the “snap to grid” option which actually places objects on grid points.) Another useful option on the GUI tab is “save/load zoom level with patch”. Purr Data can zoom any patch window to 16 different levels, and this option, when enabled, allows you to store the current zoom level when a patch is saved, and then later restore the zoom level when the patch gets reloaded. The remaining options on the GUI tab are related to the help browser, we’ll discuss these in section <a href="#configuring-the-help-browser">Configuring The Help Browser</a> below.</p>
<figure>
......@@ -183,6 +182,12 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<p>Every so often you may run into warnings about “legacy Tcl commands” in Purr Data’s console window which typically look like this:</p>
<pre><code>legacy tcl command at 201 of ../shared/hammer/file.c: hammereditor_close .86439b0 0</code></pre>
<p>In most cases these should be harmless, but they may indicate a missing piece of GUI functionality due to Tcl code which has not been ported to Purr Data’s new nw.js GUI yet. In any case, feel free to report such messages at Purr Data’s <a href="https://git.purrdata.net/jwilkes/purr-data/issues">issue tracker</a>, so that hopefully someone from the development team can look into them. A proper bug report should at least include the message itself and the Pd object it relates to. If some special steps are needed to reproduce the message, you should report these as well. Also, please do make sure <em>first</em> that the specific message you’re seeing has not been reported in the issue tracker already.</p>
<h3 id="device-connections">Device connections</h3>
<p>One pitfall of the Pd engine is that it does not rescan the devices if you connect new external audio or MIDI gear via USB while Purr Data is already running. In such cases you’ll have to relaunch the program so that Purr Data rescans the device lists and the new devices become available in the preferences.</p>
<p>While you probably won’t have to change audio gear mid-flight all that often, this issue becomes more annoying with MIDI devices which are a dime a dozen these days. This isn’t actually a problem with MIDI devices connected using DIN MIDI cables via an existing USB MIDI interface, but nowadays many MIDI devices only come with USB connectors. One solution are USB MIDI interfaces such as the ones from <a href="https://www.iconnectivity.com/midi-interfaces-1">iConnectivity</a> which offer USB host sockets, so that you can quickly plug in a new device and use it by selecting the right host port in Purr Data’s MIDI preferences.</p>
<p>MIDI USB devices with host connectors aren’t exactly cheap, however. Fortunately, there’s also a software-based solution which doesn’t cost any money, namely <em>virtual MIDI devices</em>, also known as MIDI <em>loopbacks</em>. On Linux, these are readily available in ALSA, so you only need a little patchbay utility such as <a href="https://qjackctl.sourceforge.io/">qjackctl</a> which lets you quickly set up the connections on the fly as needed. On the Mac you can use the built-in <a href="https://sites.google.com/site/mfalab/mac-stuff/how-to-use-the-iac-driver">IAC</a> devices along with a MIDI patchbay utility such as notahat’s <a href="https://github.com/notahat/midi_patchbay">midi_patchbay</a> program for the same purpose. On Windows, you’ll have to do a little bit more work since Windows doesn’t have MIDI loopbacks out of the box. But there’s Tobias Erichsen’s excellent <a href="http://www.tobias-erichsen.de/software/loopmidi.html">loopMIDI</a> driver, which can be used along with the venerable <a href="http://www.midiox.com/">MIDI-OX</a>; these two aren’t open-source, but free for personal use, and they both work on modern Windows systems.</p>
<p>Another possibility is <a href="https://en.wikipedia.org/wiki/RTP-MIDI"><em>RTP MIDI</em></a>, which is a way to transfer MIDI data over your local network. This is probably the most expensive avenue, but it’s often used by professionals and does away with all the limitations that MIDI has regarding cable lengths. You’ll generally need some RTP-capable MIDI gear such as the mioXM from iConnectivity into which you can plug your MIDI devices, and you’ll have to set up an RTP MIDI session on the computer running Purr Data. This functionality is built into the Mac (look for the Network icon in the MIDI/Audio Configuration tool), but similar software is available on Windows (once again, Tobias Erichsen comes to the rescue with his <a href="https://www.tobias-erichsen.de/software/rtpmidi.html">rtpMIDI</a> which is very similar to Apple’s implementation) and Linux (using either David Moreno’s open-source command line utility <a href="https://github.com/davidmoreno/rtpmidid">rtpmidid</a>, or, if you prefer a graphical application, McLaren Labs’ commercial <a href="https://mclarenlabs.com/rtpmidi/">rtpmidi</a> program). Once the RTP MIDI session has been set up, it will show up as a MIDI device on the host computer to which you can connect in Purr Data, and then any MIDI device connected to the network can be added to the existing session (or removed from it) on a whim.</p>
<p>Regarding audio devices, a similar approach (including networked connections) is possible with audio loopback software such as <a href="http://www.jackaudio.org/">Jack</a>. But note that Jack doesn’t really allow you to change horses mid-race either, so you’ll have to turn off Jack audio in Purr Data before you can relaunch Jack with the changed device and then enable Jack audio in Purr Data again.</p>
<section class="footnotes" role="doc-endnotes">
<hr />
<ol>
......
......@@ -90,9 +90,7 @@ You can redo this procedure at any time if needed. Note that it is usually possi
![Audio and MIDI setup.](prefs-audio+midi.png){#fig:fig2}
The setup on Windows works in a similar fashion. More information for Linux users can be found in the [wiki](https://github.com/agraef/purr-data/wiki/Installation#linux-users).
One pitfall of the Pd engine is that it does not rescan the devices if you connect new external audio or MIDI gear while Purr Data is already running. Thus you need to relaunch the program to make the new devices show up in the preferences. In the case of MIDI, it is easy to work around this limitation by employing virtual MIDI devices, which ALSA MIDI does by default. On the Mac you'd use the [IAC](https://sites.google.com/site/mfalab/mac-stuff/how-to-use-the-iac-driver) devices, on Windows a MIDI loopback driver such as [loopMIDI](http://www.tobias-erichsen.de/software/loopmidi.html) for that purpose. You then wire these up to the MIDI hardware using a separate patchbay program. A similar approach is possible with audio loopback software such as [Jack](http://www.jackaudio.org/).
The setup on Windows works in a similar fashion. More information for Linux users can be found in the [wiki](https://github.com/agraef/purr-data/wiki/Installation#linux-users). One minor annoyance of the Pd engine is that it does *not* rescan the devices if you connect new external audio or MIDI gear while Purr Data is already running. It's often possible to work around this, however, please check [Device connections] in the [Tips and Tricks] section below.
### GUI and Startup Options
......@@ -275,3 +273,15 @@ legacy tcl command at 201 of ../shared/hammer/file.c: hammereditor_close .86439b
~~~
In most cases these should be harmless, but they may indicate a missing piece of GUI functionality due to Tcl code which has not been ported to Purr Data's new nw.js GUI yet. In any case, feel free to report such messages at Purr Data's [issue tracker](https://git.purrdata.net/jwilkes/purr-data/issues), so that hopefully someone from the development team can look into them. A proper bug report should at least include the message itself and the Pd object it relates to. If some special steps are needed to reproduce the message, you should report these as well. Also, please do make sure *first* that the specific message you're seeing has not been reported in the issue tracker already.
### Device connections
One pitfall of the Pd engine is that it does not rescan the devices if you connect new external audio or MIDI gear via USB while Purr Data is already running. In such cases you'll have to relaunch the program so that Purr Data rescans the device lists and the new devices become available in the preferences.
While you probably won't have to change audio gear mid-flight all that often, this issue becomes more annoying with MIDI devices which are a dime a dozen these days. This isn't actually a problem with MIDI devices connected using DIN MIDI cables via an existing USB MIDI interface, but nowadays many MIDI devices only come with USB connectors. One solution are USB MIDI interfaces such as the ones from [iConnectivity](https://www.iconnectivity.com/midi-interfaces-1) which offer USB host sockets, so that you can quickly plug in a new device and use it by selecting the right host port in Purr Data's MIDI preferences.
MIDI USB devices with host connectors aren't exactly cheap, however. Fortunately, there's also a software-based solution which doesn't cost any money, namely *virtual MIDI devices*, also known as MIDI *loopbacks*. On Linux, these are readily available in ALSA, so you only need a little patchbay utility such as [qjackctl](https://qjackctl.sourceforge.io/) which lets you quickly set up the connections on the fly as needed. On the Mac you can use the built-in [IAC](https://sites.google.com/site/mfalab/mac-stuff/how-to-use-the-iac-driver) devices along with a MIDI patchbay utility such as notahat's [midi_patchbay](https://github.com/notahat/midi_patchbay) program for the same purpose. On Windows, you'll have to do a little bit more work since Windows doesn't have MIDI loopbacks out of the box. But there's Tobias Erichsen's excellent [loopMIDI](http://www.tobias-erichsen.de/software/loopmidi.html) driver, which can be used along with the venerable [MIDI-OX](http://www.midiox.com/); these two aren't open-source, but free for personal use, and they both work on modern Windows systems.
Another possibility is [*RTP MIDI*](https://en.wikipedia.org/wiki/RTP-MIDI), which is a way to transfer MIDI data over your local network. This is probably the most expensive avenue, but it's often used by professionals and does away with all the limitations that MIDI has regarding cable lengths. You'll generally need some RTP-capable MIDI gear such as the mioXM from iConnectivity into which you can plug your MIDI devices, and you'll have to set up an RTP MIDI session on the computer running Purr Data. This functionality is built into the Mac (look for the Network icon in the MIDI/Audio Configuration tool), but similar software is available on Windows (once again, Tobias Erichsen comes to the rescue with his [rtpMIDI](https://www.tobias-erichsen.de/software/rtpmidi.html) which is very similar to Apple's implementation) and Linux (using either David Moreno's open-source command line utility [rtpmidid](https://github.com/davidmoreno/rtpmidid), or, if you prefer a graphical application, McLaren Labs' commercial [rtpmidi](https://mclarenlabs.com/rtpmidi/) program). Once the RTP MIDI session has been set up, it will show up as a MIDI device on the host computer to which you can connect in Purr Data, and then any MIDI device connected to the network can be added to the existing session (or removed from it) on a whim.
Regarding audio devices, a similar approach (including networked connections) is possible with audio loopback software such as [Jack](http://www.jackaudio.org/). But note that Jack doesn't really allow you to change horses mid-race either, so you'll have to turn off Jack audio in Purr Data before you can relaunch Jack with the changed device and then enable Jack audio in Purr Data again.
No preview for this file type
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment