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

Update information about the JGU packages.

parent dfaa33a0
......@@ -5,20 +5,20 @@
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Purr-Data-Intro</title>
<style type="text/css">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<link rel="stylesheet" href="github-pandoc.css">
<link rel="stylesheet" href="github-pandoc.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="meet-the-cat-a-quick-introduction-to-purr-data">Meet the Cat: A Quick Introduction to Purr Data</h1>
<p>Albert Gräf &lt;<a href="mailto:aggraef@gmail.com">aggraef@gmail.com</a>&gt;<br />
<p>Albert Gräf &lt;<a href="mailto:aggraef@gmail.com" class="email">aggraef@gmail.com</a>&gt;<br />
Computer Music Dept., Institute of Art History and Musicology<br />
Johannes Gutenberg University (JGU) Mainz, Germany<br />
March 2018</p>
......@@ -32,9 +32,9 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<p>Ico Bukvic introduced <strong>Pd-l2ork</strong> in 2010 as a fork of Pd-extended to be used by the “Linux Laptop Orchestra” (L2Ork) he founded at the School of Performing Arts at Virginia Tech. Although the original motivation was to create an improved version of Pd-extended to be used by the L2Ork (hence the name) as well as in education, on Linux it quickly became a more up-to-date alternative to Pd-extended offering a fair number of additional bug fixes and GUI improvements. This is mainly due to its more nimble development model which allows bugfixes and improvements to be deployed quickly even if this may have an impact on backwards compatibility. Vanilla Pd, on the other hand, necessarily has a much firmer outlook on backwards compatibility, so that it is still able to run <em>very</em> old patches created with ancient Pd versions.</p>
<p>Despite the many and substantial improvements it offers, Pd-l2ork’s GUI is still based on Tcl/Tk. This is both good and bad. The major advantage is compatibility with vanilla Pd. On the other hand, Tcl/Tk looks and feels outdated in this day and age, even when going to some lengths with theming, as Pd-l2ork does. Tcl is a rather basic programming language, and its libraries have been falling behind, making it hard to integrate the latest advancements in GUI, multimedia and web technologies. Also, Pd-l2ork’s adoption was hampered by the fact that it was essentially tied to Linux, and thus a cross-platform solution was needed.</p>
<p>In 2015 Jonathan Wilkes stepped in and started creating <strong>Purr Data</strong> to address these problems. In a nutshell, Purr Data is Pd-l2ork with the Tcl/Tk GUI part ripped out and replaced with modern web technology. To these ends, it uses an open-source framework called <a href="https://nwjs.io/">nw.js</a> a.k.a. “node-webkit”, which is essentially a stand-alone web browser engine (<a href="http://www.chromium.org/">Chromium</a>) combined with a JavaScript runtime (<a href="http://nodejs.org/">Node.js</a>). While the latter was originally invented for developing server-side web applications, frameworks like nw.js allow the two to be used in concert to create fully-fledged and portable desktop applications. Using nw.js ensures that Purr Data runs on Linux, Mac and Windows, looking the same on all supported platforms, and it paves the way to leverage standard web technologies such as <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>, <a href="https://www.w3.org/TR/html5/">HTML5</a>, <a href="https://www.w3.org/Style/CSS/">CSS3</a> and <a href="https://www.w3.org/TR/SVG/">SVG</a>.</p>
<p>Purr Data’s GUI is written entirely in JavaScript, which is a much more advanced programming language than Tcl with an abundance of libraries and support materials. This makes the further development of Purr Data’s graphical user interface a lot easier now that the initial GUI port is done. Patches are implemented as HTML5 SVG documents which offer better responsiveness and graphical capabilities than Tk windows. They can also be themed using CSS and zoomed like any browser window, improving usability. Purr Data also looks better and is easier on the eyes than Pd-l2ork, let alone vanilla Pd, especially on high-dpi displays (cf. fig. 1).</p>
<p>Purr Data’s GUI is written entirely in JavaScript, which is a much more advanced programming language than Tcl with an abundance of libraries and support materials. This makes the further development of Purr Data’s graphical user interface a lot easier now that the initial GUI port is done. Patches are implemented as HTML5 SVG documents which offer better responsiveness and graphical capabilities than Tk windows. They can also be themed using CSS and zoomed like any browser window, improving usability. Purr Data also looks better and is easier on the eyes than Pd-l2ork, let alone vanilla Pd, especially on high-dpi displays (cf. fig. 1).</p>
<figure>
<img src="purr-data.png" alt="Figure 1: Purr Data running on macOS." id="fig:fig1" /><figcaption>Figure 1: Purr Data running on macOS.</figcaption>
<img src="purr-data.png" id="fig:fig1" alt="" /><figcaption>Figure 1: Purr Data running on macOS.</figcaption>
</figure>
<p>Purr Data’s nw.js GUI also has some disadvantages. First, some of the included externals still rely on Tcl code, so their GUI features will not work in Purr Data until they get ported to the new GUI. Second, the size of the binary package is considerably larger than with Pd-l2ork or Pd-extended since it also includes the full nw.js binary distribution. (This is a valid concern with many of the so-called “portable desktop applications” being offered these days, but in the case of Purr Data it is mitigated by the fact that its Pd-l2ork base is not exactly a slim package either.) Third, the browser engine has a much higher memory footprint than Tcl/Tk which might be an issue on embedded platforms with <em>very</em> tight memory constraints. While none of these issues should normally be a real show-stopper on the supported platforms, it is worth keeping them in mind.</p>
<p>Finally, Purr Data is still comparatively young, but its basis is the tried and proven Pd-l2ork, the present release has been thoroughly tested and many bugs have been ironed out, so it is certainly ready for day-to-day use. It also offers some really compelling advancements over its predecessors. If you have been looking for a modern and actively-maintained successor of Pd-extended, this is it.</p>
......@@ -51,7 +51,7 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<h2 id="where-to-get-it">Where to Get It</h2>
<p>Jonathan Wilkes maintains the Purr Data sources in GitLab at <a href="https://git.purrdata.net/jwilkes/purr-data" class="uri">https://git.purrdata.net/jwilkes/purr-data</a>. There’s also a mirror of this repository at Github which serves as a one-stop shop for the latest source and the available releases, including pre-built packages for Linux, macOS and Windows. You can find this at <a href="https://agraef.github.io/purr-data/" class="uri">https://agraef.github.io/purr-data/</a>. The latest packages for Linux (Debian, Raspbian, Ubuntu), macOS and Windows are available at <a href="https://github.com/agraef/purr-data/releases" class="uri">https://github.com/agraef/purr-data/releases</a>. The Linux packages are in Debian format (.deb files), the Windows package is distributed as an installer executable (.exe file). Normally you can just run the .deb or .exe packages by double-clicking them in your file manager, and walk through the installation procedure. The Mac package is distributed as a disk image (.dmg file); double-clicking the disk image in Finder opens a new Finder window, in which you can drag the application to your Application folder. The Mac and Windows packages should be self-contained, while the .deb packages will pull in a lot of dependencies, which may require some fiddling. (If you’re running Ubuntu or one of its derivatives, and the .deb packages give you trouble, try using the JGU Ubuntu packages instead, see below.)</p>
<p>At JGU we also maintain a collection of Linux packages for Arch Linux (via the <a href="https://aur.archlinux.org/">Arch User Repositories</a> a.k.a. AUR) and recent Ubuntu releases (via <a href="https://launchpad.net/~dr-graef">Launchpad</a>). More information and installation instructions can be found at <a href="https://l2orkaur.bitbucket.io/" class="uri">https://l2orkaur.bitbucket.io/</a> (Arch) and <a href="https://l2orkubuntu.bitbucket.io/" class="uri">https://l2orkubuntu.bitbucket.io/</a> (Ubuntu). Besides Purr Data, these repositories also contain the “classic” Pd-l2ork (at least on older Ubuntu systems where Pd-l2ork 1 still runs), as well as two additional programming extensions for Pd which enable you to run <a href="http://faust.grame.fr/">Faust</a> and <a href="https://agraef.github.io/pure-lang/">Pure</a> externals in Pd-l2ork and Purr Data. The JGU packages also offer the advantage that they let you install both classic Pd-l2ork and Purr Data on the same system.</p>
<p>At JGU we also maintain a collection of Linux packages for Arch Linux (via the <a href="https://aur.archlinux.org/">Arch User Repositories</a> a.k.a. AUR) and recent openSUSE, Debian and Ubuntu releases (via the OBS a.k.a. <a href="https://build.opensuse.org/project/show/home:aggraef">Open Build System</a>). The OBS also offers binary packages for Arch Linux. More information and installation instructions can be found at the <a href="https://github.com/agraef/purr-data/wiki/Installation#linux">Installation</a> wiki page. Besides Purr Data, these repositories also contain the “classic” Pd-l2ork. Moreover, two additional programming extensions for Pd are available which enable you to run <a href="http://faust.grame.fr/">Faust</a> and <a href="https://agraef.github.io/pure-lang/">Pure</a> externals in Pd-l2ork and Purr Data. The JGU packages also offer the advantage that they let you install both classic Pd-l2ork and Purr Data on the same system.</p>
<p>Of course, it is also possible to build Purr Data from source. With the latest additions to the build system, this task has become a lot less daunting than it used to be, and the Purr Data website has some <a href="https://agraef.github.io/purr-data/#building-from-source">instructions</a>. However, because of the large number of included externals, the build process is rather involved, requires a lot of 3rd party dependencies, and takes quite a while even on modern high-end hardware. Therefore, unless your system isn’t officially supported or you have specific requirements forcing you to compile from source, we recommend using the available binaries.</p>
<h2 id="getting-started">Getting Started</h2>
<p>Once you’ve installed Purr Data, you can launch it from the desktop environment as usual. On Linux, you can just run <code>pd-l2ork</code> from the command line, or look in your desktop environment’s program menu or launcher for the <code>Pd-L2Ork</code> entry and click on that. (If you installed Purr Data from one of the JGU packages, use the <code>purr-data</code> command or the <code>Purr-Data</code> desktop icon instead.)</p>
......@@ -70,13 +70,13 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<p>The screenshot in fig. 2 shows how the “Audio” and “MIDI” tabs in this dialog look like on the Mac. For most purposes it should be sufficient to just select the audio and MIDI inputs and outputs that you want to use from the corresponding dropdown lists. Pressing the <code>Apply</code> button applies the settings <em>without</em> closing the dialog or saving the options permanently. If you want to make your changes permanent, you must use the <code>Ok</code> button instead. This also closes the dialog.</p>
<p>You can redo this procedure at any time if needed. Note that it is usually possible to select multiple input and output devices, but this depends on the platform and the selected audio/MIDI back-end or “API”. Also note that on Linux (using the ALSA API), the MIDI tab will only allow you to set the number of ALSA MIDI input/output ports to be created; you then still have to use a MIDI patchbay program such as <a href="https://qjackctl.sourceforge.io/">qjackctl</a> to connect these ports to the hardware devices as needed.</p>
<figure>
<img src="prefs-audio+midi.png" alt="Figure 2: Audio and MIDI setup." id="fig:fig2" /><figcaption>Figure 2: Audio and MIDI setup.</figcaption>
<img src="prefs-audio+midi.png" id="fig:fig2" alt="" /><figcaption>Figure 2: Audio and MIDI setup.</figcaption>
</figure>
<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>
<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. 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>
<img src="prefs-gui+startup.png" alt="Figure 3: GUI and Startup options." id="fig:fig3" /><figcaption>Figure 3: GUI and Startup options.</figcaption>
<img src="prefs-gui+startup.png" id="fig:fig3" alt="" /><figcaption>Figure 3: GUI and Startup options.</figcaption>
</figure>
<p>The final tab in the preferences dialog is the “Startup” tab (fig. 3, right), which lets you edit the lists of library paths and startup libraries, as well as the additional options the program is to be invoked with. By default, Purr Data loads most bundled external libraries at startup and adds the corresponding directories to its library search path. If you don’t need all of these, you can remove individual search paths and/or libraries using the “Search Paths” and “Libraries” lists on the Startup tab. Just click on a search path or library and click the <code>Delete</code> button. It is also possible to select an item and add your own search paths and external libraries with the <code>New</code> button, or change an existing entry with the <code>Edit</code> button.</p>
<p>At the bottom of the Startup tab there is a “startup flags” field which lets you specify which additional options the program should be invoked with. This is commonly used to add options like <code>-legacy</code> (which enforces bug compatibility with vanilla Pd) as well as the <code>-path</code> and <code>-lib</code> options which provide an alternative way to add search paths and external libraries. For instance, to add JGU’s Pure and Faust extensions to the startup libraries, the Startup Flags field may contain something like the following: <code>-lib pure -lib faust/pdfaust</code></p>
......@@ -91,14 +91,14 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<h3 id="the-help-browser">The Help Browser</h3>
<p>Using the Help / Help Browser menu option (shortcut: ctrl + B, or cmd + B on the Mac) fires up Purr Data’s help browser, which looks deceptively simple (see fig. 4) and is actually quite easy to use, but offers a lot of functionality under the hood. You can search for object names or keywords by typing them in the search entry field at the top of the browser, or you can browse the available documentation sections in the browser’s <em>home screen</em>, which is what gets shown initially below the search entry, by just clicking on one of the section titles.</p>
<figure>
<img src="browser.png" alt="Figure 4: Help browser." id="fig:fig4" /><figcaption>Figure 4: Help browser.</figcaption>
<img src="browser.png" id="fig:fig4" alt="" /><figcaption>Figure 4: Help browser.</figcaption>
</figure>
<p>On the right in fig. 4 you can see how the display changes after you entered some search terms like “audio devices” and hit Enter. As indicated, you can enter multiple search terms and they will all be searched for in one go (which amounts to matching any of the given search terms, i.e., all patches will be shown for which at least one of the search terms matches). The found help patches will be shown in the list (with short descriptions of the patches if available). You can then click on one of the patches to open it in a canvas window. Clicking on the “x” symbol in the search entry returns you to the home screen.</p>
<p>Note that to keep things simple and not to overwhelm novice users with too much information, the search function only covers the “official” documentation (the doc/ hierarchy) by default. There are ways to change the scope of the keyword search in the GUI preferences, see <a href="#configuring-the-help-browser">Configuring The Help Browser</a> below. But in any case it is also possible to explore all the other help patches which are available in the extra/ hierarchy (which contains all the 3rd party abstractions and externals), by employing the little folder icon to the right of the search entry. This will open a file browser (initially on the doc/ folder) which can then be used to browse <em>all</em> the available help patches. When looking for help patches in the extra/ hierarchy, which is a sibling of doc/, simply navigate to that directory in the file browser and click on one of its subdirectories containing the various abstractions and externals. Double-clicking on a help patch will open the patch in its own window, and then also show the corresponding directory in the help browser, so that additional help patches from the same folder can be accessed without any further ado.</p>
<p>If you already know the name of a subdirectory with interesting help patches, you can also just type its name in the search entry (including the doc/ or extra/ prefix) to have the corresponding folder displayed in the help browser. For instance, typing “extra/mrpeach” and Enter provides a quick way to access the help patches for the mrpeach externals.</p>
<p>Note that in any case, you can always return to the home screen of the help browser by clicking that tiny “x” symbol in the search entry (or by just hitting Enter in the field if it is empty).</p>
<h3 id="configuring-the-help-browser">Configuring The Help Browser</h3>
<p>The GUI tab in the preferences dialog (cf. <a href="#gui-and-startup-options">GUI and Startup Options</a> and fig. 3, left) offers some options to configure the scope of the keyword search. Note that in order to perform keyword searches, the help browser first needs to construct an index of all the help patches and their keywords. This is either done on the fly, when the help browser is first opened during a Purr Data session (this is the default), or when the application is launched (there’s a checkbox which lets you enable this).</p>
<p>The GUI tab in the preferences dialog (cf. <a href="#gui-and-startup-options">GUI and Startup Options</a> and fig. 3, left) offers some options to configure the scope of the keyword search. Note that in order to perform keyword searches, the help browser first needs to construct an index of all the help patches and their keywords. This is either done on the fly, when the help browser is first opened during a Purr Data session (this is the default), or when the application is launched (there’s a checkbox which lets you enable this).</p>
<p>Once the browser has been launched, it will always come up quickly on subsequent invocations. But depending on how many patches you are indexing, creating the index on first launch may take a while (anywhere from less than a second to several seconds on modern hardware), so changing these options <em>will</em> have an impact on startup times. If Purr Data seems to launch slowly, being stuck in index generation, and you rarely use the help browser, then you want to make sure that the “prepare the help index at application start” option is unchecked (which is the default). On the other hand, if you’re using the help browser very frequently and it seems to come up very slowly on first launch, you may want to check that option so that index creation is already done after launching the program.</p>
<p>There are two options which let you change the scope of indexed patches:</p>
<ul>
......@@ -114,10 +114,10 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<ul>
<li><p>If you select <em>exactly</em> two objects A and B, say, and then connect one of the outlets from A to one of the inlets of B, then starting from the initial outlet-inlet pair the remaining outlets of A will be connected to the corresponding inlets of B.</p></li>
<li><p>If you select two (or more) objects B and C, say, and then connect an outlet of a third, <em>unselected</em> object A to an inlet of B, then the corresponding connection from A to C will be done automatically. Conversely, you can also connect an outlet of B to an inlet of A to have the corresponding C-A connection completed for you.</p></li>
<li><p>If you select <em>three</em> (or more) objects A, B and C, say, where A has two outlets or more, and then connect an outlet of A to an inlet of B, then the <em>next</em> outlet of A will be connected to the corresponding inlet of C. Conversely, you can also connect an outlet of B to an inlet of A, and have the corresponding outlet of C connected to the next inlet of A. This works for an arbitrary number of source or target objects, considering the “other” objects in left-to-right, top-to-bottom order.<a href="#fn1" class="footnote-ref" id="fnref1"><sup>1</sup></a></p></li>
<li><p>If you select <em>three</em> (or more) objects A, B and C, say, where A has two outlets or more, and then connect an outlet of A to an inlet of B, then the <em>next</em> outlet of A will be connected to the corresponding inlet of C. Conversely, you can also connect an outlet of B to an inlet of A, and have the corresponding outlet of C connected to the next inlet of A. This works for an arbitrary number of source or target objects, considering the “other” objects in left-to-right, top-to-bottom order.<a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a></p></li>
<li><p>Finally, pressing the shift key while doing connections will let you do multiple connections from the same outlet in one go.</p></li>
</ul>
<p>It is worth practicing these so that you can amaze your vanilla-running friends with the speed at which you can construct rather complicated patches using these shortcuts. As of version 2.1, Purr Data has a help patch for this incredibly useful facility, which I have also provided with this document in the <a href="intelligent-patching.pd" class="uri">intelligent-patching.pd</a> patch for your amusement. In the comments, the patch also includes detailed explanations of all the different intelligent patching modes for your perusal, and you can find some subpatches with exercises in the margin of the main patch.</p>
<p>It is worth practicing these so that you can amaze your vanilla-running friends with the speed at which you can construct rather complicated patches using these shortcuts. As of version 2.1, Purr Data has a help patch for this incredibly useful facility, which I have also provided with this document in the <a href="intelligent-patching.pd">intelligent-patching.pd</a> patch for your amusement. In the comments, the patch also includes detailed explanations of all the different intelligent patching modes for your perusal, and you can find some subpatches with exercises in the margin of the main patch.</p>
<p>Other features will be more useful for advanced users, like the reflection capabilities (see the <code>pdinfo</code>, <code>canvasinfo</code>, <code>classinfo</code> and <code>objectinfo</code> help patches) and the new SVG elements for data structure visualizations. The latter have been considerably enhanced in Purr Data, see the “Pd-L2Ork Data Structures” section in the help browser. They also make it possible to create your own custom GUI elements in plain Pd, without having to learn a “real” programming language.</p>
<h2 id="purr-data-and-pd-lua">Purr Data and Pd-Lua</h2>
<p>As of version 2.5, Purr Data includes the latest version of Claude Heiland-Allen’s excellent <a href="https://github.com/agraef/pd-lua">Pd-Lua</a> extension for embedding the <a href="http://www.lua.org/">Lua</a> scripting language in Pd. This provides you with an easy means (much easier than Pd’s native C interface) to write your own custom Pd objects if they require the use of a real programming language offering loops, functions and complicated data structures.</p>
......@@ -158,10 +158,10 @@ 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>
<section class="footnotes">
<section class="footnotes" role="doc-endnotes">
<hr />
<ol>
<li id="fn1"><p>This operation works best if the “other” objects only have a single out- or inlet, since that makes the outcome unambiguous. Otherwise Purr Data will often prefer creating outgoing connections, in which case you’ll have to hold down the Ctrl key to enforce incoming connections.<a href="#fnref1" class="footnote-back"></a></p></li>
<li id="fn1" role="doc-endnote"><p>This operation works best if the “other” objects only have a single out- or inlet, since that makes the outcome unambiguous. Otherwise Purr Data will often prefer creating outgoing connections, in which case you’ll have to hold down the Ctrl key to enforce incoming connections.<a href="#fnref1" class="footnote-back" role="doc-backlink"></a></p></li>
</ol>
</section>
</body>
......
......@@ -52,7 +52,7 @@ We also refer to Bukvic's original Pd-l2ork version as Pd-l2ork 1.0 or "classic"
Jonathan Wilkes maintains the Purr Data sources in GitLab at <https://git.purrdata.net/jwilkes/purr-data>. There's also a mirror of this repository at Github which serves as a one-stop shop for the latest source and the available releases, including pre-built packages for Linux, macOS and Windows. You can find this at <https://agraef.github.io/purr-data/>. The latest packages for Linux (Debian, Raspbian, Ubuntu), macOS and Windows are available at <https://github.com/agraef/purr-data/releases>. The Linux packages are in Debian format (.deb files), the Windows package is distributed as an installer executable (.exe file). Normally you can just run the .deb or .exe packages by double-clicking them in your file manager, and walk through the installation procedure. The Mac package is distributed as a disk image (.dmg file); double-clicking the disk image in Finder opens a new Finder window, in which you can drag the application to your Application folder. The Mac and Windows packages should be self-contained, while the .deb packages will pull in a lot of dependencies, which may require some fiddling. (If you're running Ubuntu or one of its derivatives, and the .deb packages give you trouble, try using the JGU Ubuntu packages instead, see below.)
At JGU we also maintain a collection of Linux packages for Arch Linux (via the [Arch User Repositories](https://aur.archlinux.org/) a.k.a. AUR) and recent Ubuntu releases (via [Launchpad](https://launchpad.net/~dr-graef)). More information and installation instructions can be found at <https://l2orkaur.bitbucket.io/> (Arch) and <https://l2orkubuntu.bitbucket.io/> (Ubuntu). Besides Purr Data, these repositories also contain the "classic" Pd-l2ork (at least on older Ubuntu systems where Pd-l2ork 1 still runs), as well as two additional programming extensions for Pd which enable you to run [Faust](http://faust.grame.fr/) and [Pure](https://agraef.github.io/pure-lang/) externals in Pd-l2ork and Purr Data. The JGU packages also offer the advantage that they let you install both classic Pd-l2ork and Purr Data on the same system.
At JGU we also maintain a collection of Linux packages for Arch Linux (via the [Arch User Repositories](https://aur.archlinux.org/) a.k.a. AUR) and recent openSUSE, Debian and Ubuntu releases (via the OBS a.k.a. [Open Build System](https://build.opensuse.org/project/show/home:aggraef)). The OBS also offers binary packages for Arch Linux. More information and installation instructions can be found at the [Installation](https://github.com/agraef/purr-data/wiki/Installation#linux) wiki page. Besides Purr Data, these repositories also contain the "classic" Pd-l2ork. Moreover, two additional programming extensions for Pd are available which enable you to run [Faust](http://faust.grame.fr/) and [Pure](https://agraef.github.io/pure-lang/) externals in Pd-l2ork and Purr Data. The JGU packages also offer the advantage that they let you install both classic Pd-l2ork and Purr Data on the same system.
Of course, it is also possible to build Purr Data from source. With the latest additions to the build system, this task has become a lot less daunting than it used to be, and the Purr Data website has some [instructions](https://agraef.github.io/purr-data/#building-from-source). However, because of the large number of included externals, the build process is rather involved, requires a lot of 3rd party dependencies, and takes quite a while even on modern high-end hardware. Therefore, unless your system isn't officially supported or you have specific requirements forcing you to compile from source, we recommend using the available binaries.
......
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