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

Quick update for version 2.16.0.

parent aeda0e13
...@@ -35,7 +35,7 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri"> ...@@ -35,7 +35,7 @@ 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>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>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>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> <figure>
<img src="purr-data.png" id="fig:fig1" alt="Figure 1: Purr Data running on macOS." /><figcaption aria-hidden="true">Figure 1: Purr Data running on macOS.</figcaption> <img src="purr-data.png" id="fig:fig1" alt="Figure 1: Purr Data running on macOS." /><figcaption aria-hidden="true">Figure 1: Purr Data running on macOS.</figcaption>
</figure> </figure>
...@@ -77,7 +77,7 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri"> ...@@ -77,7 +77,7 @@ Permanent link: <a href="https://agraef.github.io/purr-data-intro/" class="uri">
<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>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>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> <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. 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> <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> <figure>
<img src="prefs-gui+startup.png" id="fig:fig3" alt="Figure 3: GUI and Startup options." /><figcaption aria-hidden="true">Figure 3: GUI and Startup options.</figcaption> <img src="prefs-gui+startup.png" id="fig:fig3" alt="Figure 3: GUI and Startup options." /><figcaption aria-hidden="true">Figure 3: GUI and Startup options.</figcaption>
</figure> </figure>
......
...@@ -96,7 +96,7 @@ One pitfall of the Pd engine is that it does not rescan the devices if you conne ...@@ -96,7 +96,7 @@ One pitfall of the Pd engine is that it does not rescan the devices if you conne
### GUI and Startup Options ### GUI and Startup Options
The GUI theme can be selected on the "GUI" tab (see [@fig:fig3], 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. 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 [Configuring The Help Browser] below. The GUI theme can be selected on the "GUI" tab (see [@fig:fig3], 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 [Configuring The Help Browser] below.
![GUI and Startup options.](prefs-gui+startup.png){#fig:fig3} ![GUI and Startup options.](prefs-gui+startup.png){#fig:fig3}
......
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