<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pure Data Party Publisher</title>
    <description>Publish your Pure Data patches on Android with enhanced GUI and Jamming features.</description>
    <link>http://b2renger.github.io/PdDroidPublisher/</link>
    <atom:link href="http://b2renger.github.io/PdDroidPublisher/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sun, 02 Apr 2017 22:01:39 +0000</pubDate>
    <lastBuildDate>Sun, 02 Apr 2017 22:01:39 +0000</lastBuildDate>
    <generator>Jekyll v3.4.3</generator>
    
      <item>
        <title>Pd best practices</title>
        <description>&lt;p&gt;To fully benefit of all the features of the project you will want to use some custom made abstractions, available to all users. Those abstractions are the core of our system to developp apps, you will find stuff to deal with the beat sharing clock, saving presets, and specific abstractions to interact with a touchscreen or display a list of symbols.&lt;/p&gt;

&lt;p&gt;They are all located in the &lt;em&gt;/puredata&lt;/em&gt; release folder, and each one has a help patch.&lt;/p&gt;

&lt;p&gt;But first let’s talk a bit how to workflow to interface pd with the code hierarchy of the eclipse project.&lt;/p&gt;

&lt;p&gt;First you should prefer to work in a project folder, that is to say in the &lt;strong&gt;assets&lt;/strong&gt; folder of a new project in folder named after you app name.&lt;/p&gt;

&lt;p&gt;We advise you to create a pd &lt;strong&gt;‘launcher’ patch&lt;/strong&gt; at the base of your project, to simulate the way it works on android when working on your desktop computer. In the AcidBass example project it is called &lt;em&gt;AcidBass_launcher_desktop.pd&lt;/em&gt;, and it looks like this :&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/PdDroidPublisher/img/pd_desktop_launcher.png&quot; alt=&quot;pd launcher&quot; /&gt; TODOC : change path to “puredata” folder ? Yes ! you are right :)&lt;/p&gt;

&lt;p&gt;This pd patch is only for use in desktop, and in developpement mode, it is not embeded in your application.&lt;/p&gt;

&lt;p&gt;It contains a path to our project folder containing the abstractions listed below.&lt;/p&gt;

&lt;p&gt;It also contains a path to the &lt;em&gt;assets/Acid_Bass&lt;/em&gt; folder which contains each &lt;strong&gt;gui-view&lt;/strong&gt; of the patch built as an abstraction containing only gui objects. And a &lt;strong&gt;core abstraction&lt;/strong&gt; which contains all the audio, the logic, and the saving system implementation.&lt;/p&gt;

&lt;p&gt;This setup will help you to build several gui view stacked in tabs for your app. You can check the ‘how to configure your launcher post’ to learn more about this view system.&lt;/p&gt;
</description>
        <pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/2015/11/15/Pd_best_practices.html</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/2015/11/15/Pd_best_practices.html</guid>
        
        <category>dev-guide</category>
        
        
      </item>
    
      <item>
        <title>How to use multiple views</title>
        <description>&lt;p&gt;First in the launcher you have to create a config variable :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;right after the line :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;kd&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;onCreate&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;savedInstanceState&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;then we will use this variable to call methods like this &lt;em&gt;config.myCustomisationMethod&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;To use the multi-view support we strongly advise to follow the &lt;strong&gt;pd best practices&lt;/strong&gt; mentionned in the &lt;strong&gt;Pders Guide&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The best way to benefit from the multi-view feature, is to break your patch into several abstractions. You will probably want to seperate the gui from the audio core, and probably break the gui into pannels as hinted in the post mentionned above.&lt;/p&gt;

&lt;p&gt;This is the case in the Acid_Bass project :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;AcidBass_core.pd&lt;/strong&gt; : is the full pd patch. It contains the dsp code, the logic of the sequencer, the clock instanciation, the load and save mechanism instanciation … well pretty much everything except the gui.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;AcidBass_audioControls&lt;/strong&gt;, &lt;strong&gt;AcidBass_noteOptions.pd&lt;/strong&gt;, &lt;strong&gt;AcidBass_noteSelector.pd&lt;/strong&gt; : are each a pannel of the gui views, containing pd gui objects, and custom abstractions. Each object communicates with &lt;strong&gt;AcidBass_core.pd&lt;/strong&gt; via the global pd &lt;strong&gt;[send]&lt;/strong&gt; and &lt;strong&gt;[receive]&lt;/strong&gt; system.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notice the &lt;strong&gt;[declare -path ../../../../pd-party/droidparty-abstractions]&lt;/strong&gt; object again, in each of those abstractions.&lt;/p&gt;

&lt;p&gt;Now in eclipse in your launcher file (ie &lt;em&gt;MainActivity.java&lt;/em&gt;) right after the line&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;  &lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;you can begin the instanciation of your views :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;guiPatches&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Harmony&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Acid_Bass/AcidBass_noteSelector.pd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;guiPatches&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Note Options&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Acid_Bass/AcidBass_noteOptions.pd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;guiPatches&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Audio Controls&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Acid_Bass/AcidBass_audioControls.pd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This is the code for the gui view, the first argument passed is the name of the view, the second one is the path to the abstraction to be loaded in this view.&lt;/p&gt;

&lt;p&gt;Once it is done, you can instanciate your core patch :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;corePatches&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Acid_Bass/AcidBass_core.pd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And finally proceed with the launch :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;PdDroidPartyLauncher&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;launch&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Note 1 : It is best to load your gui views before your core patches for initializations issues that will be discussed in more details in the &lt;a href=&quot;#persist&quot;&gt;Persist saving system section&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Note 2 : Currently we adivse you not to duplicate gui elements from one view to another as tempting as it may be. This stands more specifically for arrays, as pure-data does not allow you to have multiple arrays with the same name. You can report &lt;a href=&quot;https://github.com/b2renger/PdDroidPublisher/issues/13&quot;&gt;here&lt;/a&gt; if you want to comment on that.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_use_the_multiple_view.html</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_use_the_multiple_view.html</guid>
        
        <category>advanced-design</category>
        
        
      </item>
    
      <item>
        <title>How to use the clock</title>
        <description>&lt;p&gt;TODOC&lt;/p&gt;
</description>
        <pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_use_the_clock.html</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_use_the_clock.html</guid>
        
        <category>dev-guide</category>
        
        
      </item>
    
      <item>
        <title>How to save presets</title>
        <description>&lt;p&gt;For the saving system we choose to developp our own system, mainly because sssad was very slow when saving arrays with a lot of samples (saving 1s of audio was taking too much time for instance). The system is built to be as simple as possible, and allow to deal with several preset banks - that is to say that you can save your sequencer patterns and synth presets separatly&lt;/p&gt;

&lt;p&gt;On the pd side you can check the help patches in &lt;strong&gt;/puredata&lt;/strong&gt; release folder. It relies on the same mechanism as sssad, and it probably cannot do eveything sssad can, but it has pretty much the same limitation and it’s best to know about it … sssad and persist rely on the fact that a single instance of an abstraction will save a value that is received and sent via the messages given as arguments : that means that if you don’t send anything at some point … well, nothing will be saved, and nothing will be restored on load. So the lesson is : ** if you want to save a value be sure to initiate it with a default value on startup.**&lt;/p&gt;

&lt;p&gt;With something like this for instance : &lt;img src=&quot;/PdDroidPublisher/img/pd/init.png&quot; alt=&quot;pd init&quot; /&gt;
You could also probably create an empty preset, and load it on startup.&lt;/p&gt;

&lt;p&gt;That being said there is two main abstractions that you will be interested in to actually save values :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;[persist-map]&lt;/strong&gt; : it takes 3 arguments the first one is the name of the preset bank, the second one is the send value of the gui object you want to save, the third one is the receive value of the object you want to load. If you create an object [persist-map synth decay.s decay.r] : you will save your decay value in a the preset bank called ‘synth’.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;[persist-table]&lt;/strong&gt; : it takes 2 arguments, the first one is the name of the preset bank, the second one the name of the table object that you want to save/load (regardless of its size - even if it is not made to save to much audio, play nice !)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let take a pragmatic example from the acid_bass sample app. As stated before we want to save our parameters in two separate banks : one for sequencer patterns and one fo synth presets. So the first thing to do is to create two objects &lt;strong&gt;[loadsave synth]&lt;/strong&gt; and &lt;strong&gt;[loadsave pattern]&lt;/strong&gt;, those act as ‘routers’ for messages.&lt;/p&gt;

&lt;p&gt;In the GUI we have three pannels : two of them are for the sequencer, and only one for the synth. We chose to use a bang to activate the display of dialog pannels one for the save action and one for the load action. That makes for bang that send those messages ‘save_pattern’, ‘load_pattern’, ‘save_synth’, ‘load_synth’.&lt;/p&gt;

&lt;p&gt;Now we can interface this with persist :
&lt;img src=&quot;/PdDroidPublisher/img/pd/loadsave-gui-binding.png&quot; alt=&quot;loadsave interface&quot; /&gt;&lt;/p&gt;

&lt;p&gt;1- we receive a message from a bang, and we create a new message sent with the tag ‘pattern-load’ (two first words), and it sends a path ‘presets_pattern’ and a file format extension ‘cbs’
2- we receive this message and put it in the input of a &lt;strong&gt;[persist-load]&lt;/strong&gt; object (or &lt;strong&gt;[persist-save]&lt;/strong&gt; depending on the context) with the name of the preset bank as argument.
3- repeat 1 and 2 for other actions, and other banks !&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; the file format ‘cbs’ will have to be added manually to save on destkop, wether it will be automatically added on android. That is mainly when you want to see a preset saved on a desktop computer in an android application, which will probably be the case of some of factory presets.&lt;/p&gt;

&lt;p&gt;For the eclipse part, you just have to reference the path to the preset folder in your configuration :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;presetsPaths&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Acid_Bass/presets_pattern&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;presetsPaths&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Acid_Bass/presets_synth&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Congratulations you have finished your training and can now save presets !&lt;/p&gt;
</description>
        <pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_save_presets.html</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_save_presets.html</guid>
        
        <category>dev-guide</category>
        
        
      </item>
    
      <item>
        <title>How to customise your gui</title>
        <description>&lt;p&gt;We will cover :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#config&quot;&gt;the config variable&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#aspect-ratio&quot;&gt;aspect ratio&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#color-theme&quot;&gt;color themes&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#factory-components&quot;&gt;factory components&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#custom-overrides&quot;&gt;custom overrides&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We provide several level of gui customization by adding a few lines of code to you launcher (ie &lt;em&gt;MainActivity.java&lt;/em&gt;). By default you have some simple pd classic gui, with the default colors from your original patch.&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;config&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;create-a-config-variable&quot;&gt;Create a config variable&lt;/h3&gt;

&lt;p&gt;First you need to import the config class from ppp, add the following line at the top of your main *.java file the one located in your /src folder in eclipse.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;net.mgsx.ppp.PdDroidPartyConfig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;After that you can create a new config variable, right after this line :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;kd&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;onCreate&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;savedInstanceState&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;in the main java class. You just need to copy this line :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;this will give you access to new customization function !&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;aspect-ratio&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;aspect-ratio&quot;&gt;Aspect ratio&lt;/h3&gt;

&lt;p&gt;By default ppp will strech you view to match the size of you screen. If you want the gui to keep the same look by not getting stretched away by several screen ratios once you’ve created the config variable below.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;guiKeepAspectRatio&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;a name=&quot;color-theme&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;apply-a-color-theme&quot;&gt;Apply a color theme&lt;/h3&gt;

&lt;p&gt;Here is how to apply one of themes shipped with ppp, again you need to have created the config variable :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;theme&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MonochromeTheme&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MonochromeTheme&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;RED&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;We have a few colors already setup for you, in eclipse you can remove the &lt;em&gt;.RED&lt;/em&gt; part and press &lt;em&gt;ctrl + space&lt;/em&gt; to activate auto-completion and check which other colors are available.&lt;/p&gt;

&lt;p&gt;You can also create a theme with your own colors, you will then have to specify 3 colors, first the main background color, then the widgets background color, and finally the widgets foreground color expressed in hexadecimal form :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;theme&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;MonochromeTheme&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mh&quot;&gt;0xff101933&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0xff202943&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0xff004ce6&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;To find the hexadecimal code you can consult a website like this &lt;a href=&quot;http://www.color-hex.com/&quot;&gt;one&lt;/a&gt;. An hexadecimal color code is composed of 6 characters numbers or letters, and you have to add the prefix &lt;strong&gt;0xff&lt;/strong&gt;. In the above line the colors are different kinds of blue.&lt;/p&gt;

&lt;p&gt;TODOC : more about SVG and/or PNG theming. even if SVG is not fully supported it’s an experimental feature …&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;factory-components&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;use-factory-components&quot;&gt;Use factory components&lt;/h3&gt;

&lt;p&gt;Those are ready to be used for slick look, almost out of the box. You can refer to &lt;a href=&quot;/PdDroidPublisher/2015/11/04/List_overrides.html&quot;&gt;this&lt;/a&gt; post to get a list of all possible overrides.&lt;/p&gt;

&lt;p&gt;To take a simple example, you can apply a custom look, on all the sliders of your patch by using &lt;strong&gt;typeOverrides&lt;/strong&gt;, for instance the line of code below once added to you launcher will make your app draw all sliders as filled rounded rectangles.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;typeOverrides&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Slider&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;RibbonSlider&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;You can also apply this look to only one slider, the slider with the label ‘mySlider’, set via properties directly in Pure-Data.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;objectOverrides&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;mySlider&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;RibbonSlider&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;After adding a line like this one in your launcher you may end up with an error, you just have to use the keyboard shortcut &lt;em&gt;ctrl + shift + o&lt;/em&gt; to import the missing classes in you package.&lt;/p&gt;

&lt;p&gt;FYI this manipulation (for a slider) will just write those two lines of code at the top of the &lt;em&gt;MainActivity.java&lt;/em&gt; file.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;net.mgsx.ppp.widget.core.Slider&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;net.mgsx.ppp.widget.custom.RibbonSlider&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;a name=&quot;custom-overrides&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;develop-custom-overrides-of-components&quot;&gt;Develop custom overrides of components&lt;/h3&gt;

&lt;p&gt;You can developp custom overrides of components, those overrides can be graphical, but also on the interaction level. At this level you might want to consult the &lt;a href=&quot;https://github.com/b2renger/PdDroidPublisher/wiki&quot;&gt;wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The AcidBass example features a simple override to draw an array with a custom grid. The Wobbler example features a more advanced example combining two horizontal radio buttons linked to a slider to select the wobbling speed !&lt;/p&gt;
</description>
        <pubDate>Sun, 15 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_customise_gui.html</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/2015/11/15/How_to_customise_gui.html</guid>
        
        <category>advanced-design</category>
        
        
      </item>
    
      <item>
        <title>User Guide</title>
        <description>&lt;p&gt;This guide help music performers to setup and use applications. No programming skills are required here.&lt;/p&gt;

&lt;ul&gt;

















  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/10/26/How_to_jam_over_wifi.html&quot;&gt;How To Jam over wifi&lt;/a&gt;
  &lt;/li&gt;





  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/01/How_to_jam_alone.html&quot;&gt;How To Jam alone&lt;/a&gt;
  &lt;/li&gt;


















&lt;/ul&gt;
</description>
        <pubDate>Fri, 13 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/user-guide</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/user-guide</guid>
        
        
      </item>
    
      <item>
        <title>Pd Designer Guide</title>
        <description>&lt;p&gt;This guide is for Pders (Pure Data designers) and explain how to build application from your Pd patches.&lt;/p&gt;

&lt;p&gt;We try to keep it as simple as possible to quickly get an application from Pd patch. You first need to configure your developpement environnement, then build your patches, customize it and finally publish it.&lt;/p&gt;

&lt;ul&gt;















  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/01/Publishing_Stack.html&quot;&gt;How to setup your publishing stack&lt;/a&gt;
  &lt;/li&gt;









  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/01/Anatomy_of_a_folder.html&quot;&gt;Anatomy of a project folder&lt;/a&gt;
  &lt;/li&gt;



  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/15/Pd_best_practices.html&quot;&gt;Pd best practices&lt;/a&gt;
  &lt;/li&gt;



  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/04/List_abstractions.html&quot;&gt;List of helper abstractions&lt;/a&gt;
  &lt;/li&gt;



  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/15/How_to_use_the_clock.html&quot;&gt;How to use the clock&lt;/a&gt;
  &lt;/li&gt;



  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/15/How_to_save_presets.html&quot;&gt;How to save presets&lt;/a&gt;
  &lt;/li&gt;



  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/06/Publishing.html&quot;&gt;How to publish !&lt;/a&gt;
  &lt;/li&gt;



  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/05/Port_a_patch.html&quot;&gt;Port a patch ! (big recap)&lt;/a&gt;
  &lt;/li&gt;




&lt;/ul&gt;
</description>
        <pubDate>Fri, 13 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/dev-guide</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/dev-guide</guid>
        
        
      </item>
    
      <item>
        <title>Advanced design</title>
        <description>&lt;p&gt;This guide is about the customization of the looks and behavior of gui components. It implies using the PdDroidPartyConfig class that will get us access great cutomisation possibilities.&lt;/p&gt;

&lt;ul&gt;













  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/15/How_to_use_the_multiple_view.html&quot;&gt;How to use multiple views&lt;/a&gt;
  &lt;/li&gt;







  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/15/How_to_customise_gui.html&quot;&gt;How to customise your gui&lt;/a&gt;
  &lt;/li&gt;



















  &lt;li&gt;
      &lt;a class=&quot;post-link&quot; href=&quot;/PdDroidPublisher/2015/11/04/List_overrides.html&quot;&gt;List of available overrides&lt;/a&gt;
  &lt;/li&gt;


&lt;/ul&gt;
</description>
        <pubDate>Fri, 13 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/advanced-design</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/advanced-design</guid>
        
        
      </item>
    
      <item>
        <title>How to publish !</title>
        <description>&lt;p&gt;This post will help you to put your application on the app store.
To publish you’ll need a developper account for the play store, and have access to this kind of interface.&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/2015/11/06/Publishing.html</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/2015/11/06/Publishing.html</guid>
        
        <category>dev-guide</category>
        
        
      </item>
    
      <item>
        <title>Port a patch ! (big recap)</title>
        <description>&lt;h2 id=&quot;getting-ready&quot;&gt;Getting Ready&lt;/h2&gt;

&lt;p&gt;In this post we assume that you have completed all the steps of the ‘How to setup your publishing stack’ post. At the last step name your new app “hillageizer”, you’ll probably  want to change the name of the main class in &lt;strong&gt;src&lt;/strong&gt; folder to ‘bubbles’ using &lt;em&gt;refactor/rename&lt;/em&gt;, and finally change the name of the folder and the patch in th &lt;strong&gt;assets&lt;/strong&gt; folder, within your system explorer this time. (if it has not change in eclipse, just click on the project and hit F5 - refresh).&lt;/p&gt;

&lt;p&gt;Your workspace should look like this :
&lt;img src=&quot;/PdDroidPublisher/img/port_a_patch/workspace.png&quot; alt=&quot;workspace&quot; /&gt;&lt;/p&gt;

&lt;p&gt;and we are now ready to get started.&lt;/p&gt;

&lt;p&gt;Remember your source code is where you put the zip you extracted, your project files should be in here this is your code, and the eclipse workspace is something else, that helps eclipse remembering where you were.&lt;/p&gt;

&lt;h2 id=&quot;pd-actually-means-pd-vanilla&quot;&gt;Pd actually means Pd Vanilla&lt;/h2&gt;
&lt;p&gt;This post is not about how to code in pd, so if you are a complete noob to pd you may want to build up your pd skills a bit before continuing. We will see how to port a patch to our system and for this we will use an example from the amazing &lt;strong&gt;Andy Farnell&lt;/strong&gt; ! Check out &lt;a href=&quot;http://obiwannabe.co.uk/html/toys/hillageizer/hillageizer.html&quot;&gt;this&lt;/a&gt; ressource ! if you don’t know this website yet, I suggest you take a look around :)&lt;/p&gt;

&lt;p&gt;So just download the pd file, at the end of the page. We are lucky this patch a vanilla-friendly, if you are not familiar with the difference beetween ‘extended’ and ‘vanilla’ just look it up. We want ‘vanilla’ as libpd tracks ‘vanilla’, hopefully you’ll find help on the web if you need to port patches from extended to vanilla.&lt;/p&gt;

&lt;h2 id=&quot;setup-you-files-and-paths&quot;&gt;Setup you files and paths&lt;/h2&gt;

&lt;p&gt;Now we are going to integrate the patch in our project to start using the abstractions, to rig the clock, the saving system and the several views.&lt;/p&gt;

&lt;p&gt;So just copy the &lt;strong&gt;hillgeizer.pd&lt;/strong&gt; file in your &lt;em&gt;assets/hillageizer/&lt;/em&gt; directory. And rename &lt;strong&gt;hillageizer.pd&lt;/strong&gt; to &lt;strong&gt;hillageizer-core.pd&lt;/strong&gt;. Now open a new patcher window and save it as &lt;strong&gt;hillageizer-launcher.pd&lt;/strong&gt; at the root of your project, add a path by creating an object &lt;strong&gt;[declare -path assets/hillageizer/]&lt;/strong&gt; (this is to access the abstractions of your patch), and an object &lt;strong&gt;[declare -path ../pd-party/droidparty-abstractions]&lt;/strong&gt; (this to access the project abstractions, like the clock), then save close the patch and reopen it.&lt;/p&gt;

&lt;p&gt;You should now be able to create an abstraction called &lt;strong&gt;[clock-gui]&lt;/strong&gt;, and create the &lt;strong&gt;[hillageizer-core]&lt;/strong&gt; object in your launcher patch.&lt;/p&gt;

&lt;h2 id=&quot;preparing-the-patch&quot;&gt;Preparing the patch&lt;/h2&gt;

&lt;p&gt;We have a great sounding patch with a lot of parameters, we will want to organize everything in several views, make it compliant to with our clock, and add our own saving system.&lt;/p&gt;

&lt;p&gt;If you look a bit at the patch we have three main parts :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;eventshaker : the clock.&lt;/li&gt;
  &lt;li&gt;3 scale elements : which do scaling operations on the count.&lt;/li&gt;
  &lt;li&gt;phasors : the synth.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first thing we need to do is to separate the gui from the logic. Here everything is built in GOPs, we want the sliders to be alone in their own abstractions. That also means that we need to get rid of all the ‘$0’ from the send and receive names of each gui … We also get rid of the tempo element in the subpatch ‘eventshaker’ to replace it with a [clock] object.&lt;/p&gt;

&lt;p&gt;Here is what he can look like once it’s done :&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/PdDroidPublisher/img/port_a_patch/hillageizer-clean.png&quot; alt=&quot;hillageizer-clean&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now have a patch conforming to the best practives we have described.&lt;/p&gt;

&lt;h2 id=&quot;setting-the-views&quot;&gt;Setting the views&lt;/h2&gt;

&lt;p&gt;The pd side of things as already been done before. We now just have to tell our android launcher which are which.&lt;/p&gt;

&lt;p&gt;First we have to declare a config variable :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PdDroidPartyConfig&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;the line is likely to be marked as an error, you can click on the error icon and select the &lt;em&gt;import&lt;/em&gt; proposition to fix it. (It will import the PdDroidPartyConfig class from our base code).&lt;/p&gt;

&lt;p&gt;This being done, you can move on to add your views, first the &lt;strong&gt;gui&lt;/strong&gt;-view, and then the &lt;strong&gt;core&lt;/strong&gt;-patch.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt; 
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;guiPatches&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Sequencer&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;hillageizer/hillageizer-sequencer.pd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;guiPatches&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Effects&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;hillageizer/hillageizer-effects.pd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;corePatches&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;hillageizer/hillageizer-core.pd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;At this point you can launch you app, by right-clicking on the project and select &lt;em&gt;Runs as/Android Application&lt;/em&gt;. It should run with two views.&lt;/p&gt;

&lt;p&gt;The aspect ratio is probably a little off.&lt;/p&gt;

&lt;h2 id=&quot;presets-saving&quot;&gt;Presets saving&lt;/h2&gt;

&lt;h2 id=&quot;gui-cutsomization&quot;&gt;Gui cutsomization&lt;/h2&gt;

&lt;h2 id=&quot;publishing&quot;&gt;Publishing&lt;/h2&gt;

&lt;p&gt;To publish you’ll need a developper account for the play store.&lt;/p&gt;
</description>
        <pubDate>Thu, 05 Nov 2015 00:00:00 +0000</pubDate>
        <link>http://b2renger.github.io/PdDroidPublisher/2015/11/05/Port_a_patch.html</link>
        <guid isPermaLink="true">http://b2renger.github.io/PdDroidPublisher/2015/11/05/Port_a_patch.html</guid>
        
        <category>dev-guide</category>
        
        
      </item>
    
  </channel>
</rss>
