<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">

  <channel>
    <title>Vormplus - Full Articles</title>
    <link>https://vormplus.be/full-articles/</link>
    <lastBuildDate>Fri, 18 Aug 2017 14:10:00 +0000</lastBuildDate>
    <atom:link href="https://vormplus.be/" rel="self" type="application/rss+xml" />

        <description>The personal blog of Jan Vantomme</description>
    
        <item>
      <title>Converting MIDI to JSON</title>
      <link>https://vormplus.be/full-articles/converting-midi-to-json</link>
      <guid>full-articles/converting-midi-to-json</guid>
      <pubDate>Fri, 18 Aug 2017 14:10:00 +0000</pubDate>
      <description><![CDATA[<p>I’ve been working on a generative WebGL music video on and off for the past few weeks, and I needed a good way to synchronise visuals to audio. Realtime audio analysis can be useful, but it isn’t always precise enough. Since I’m creating the music as well as the visuals, I decided to export the music as audio and MIDI, so I could use the MIDI NOTE ON events to trigger animations.</p>
<p>I looked at some online tools to convert MIDI to something text-based, and some <em>broken</em> node.js modules, but didn’t find anything that worked for me. So I decided to create my own tools. The result is a Processing sketch that can convert a MIDI file into a JSON structure with timestamps, note numbers, velocity, … The JSON file looks like this:</p>
<pre><code>{
  "PPQN": 96,
  "messages": [
    {
      "octave": 2,
      "noteName": "C2",
      "tick": 0,
      "velocity": 100,
      "noteNumber": 36,
      "timestamp": 0
    },
    {
      "octave": 3,
      "noteName": "D#3",
      "tick": 0,
      "velocity": 103,
      "noteNumber": 51,
      "timestamp": 0
    },
    {
      "octave": 2,
      "noteName": "C2",
      "tick": 96,
      "velocity": 101,
      "noteNumber": 36,
      "timestamp": 455
    },
    {
      ...
    }
  ],
  "BPM": 132
}    </code></pre>
<p>I’ve also created a small WebGL project with BabylonJS to show you how this data can be used to trigger animations in sync with  audio. Note that this small demo project was only tested in Chrome on Mac OS X, running on a local web server. I haven’t optimised anything yet for mobile devices or other browsers/operating systems, so there’s a chance that it may not fully work. The code is documented quite well, and should be clear enough to give you an idea on how to get started.</p>
<p><img src="https://img.vormplus.be/blog/webgl-music-visualiser.png" alt="Webgl Music Visualiser" /></p>
<p>You can see the result right here: <a href="https://playground.vormplus.be/webgl-music-video/">https://playground.vormplus.be/webgl-music-video/</a>.</p>
<p>The repository with all code can be found on <a href="https://github.com/vormplus/midi-to-json">Github</a>.</p>
<p>I still have a lot of work to do on the full music video. I’ll publish the project online once I’m finished mixing and mastering my new album. So keep an eye on this blog if you want to stay up to date.</p>]]></description>
    </item>
        <item>
      <title>auto://loop Performer Synth</title>
      <link>https://vormplus.be/full-articles/autoloop-performer-synth</link>
      <guid>full-articles/autoloop-performer-synth</guid>
      <pubDate>Fri, 09 Sep 2016 14:10:00 +0000</pubDate>
      <description><![CDATA[<p>I’ve finished building a performance synthesizer based on the <a href="https://www.axoloti.com/product/axoloti-core/">Axoloti Core</a> board a while ago, and hadn’t found any time to document it yet. So finally, here’s an overview of the build process. </p>
<p>I wanted a synth with a lot of controls, so I can play it like an instrument in many different ways. That’s why I chose to add some controls you won’t find easily in “commercial/off-the-shelf” synths. The synth has two distance sensors, that can be used to play it like a theremin. There’s also an extra stereo jack input for a Behringer foot pedal, so you can push buttons with your feet while your hands are playing with the other controls.</p>
<p>But enough chatter for now. This is what it looks like.</p>
<p><img src="https://img.vormplus.be/blog/autoloop-synth-001.jpg" alt="Autoloop Synth" /></p>
<p><img src="https://img.vormplus.be/blog/autoloop-synth-002.jpg" alt="Autoloop Synth" /></p>
<h2>Build Process</h2>
<p>I did a lot of prototyping with electronics, and different materials for the case at <a href="https://timelab.org/">timelab</a>, the local fablab in Ghent. I took a lot of photos during the design and build process. You can find all photos on <a href="https://www.flickr.com/photos/vormplus/albums/72157673509442785">Flickr</a>.</p>
<h3>Electronics</h3>
<p>The synth has quite some different controls. Here’s the full list, and the GPIO pads they are connected to.</p>
<ul>
<li>6 Potentiometers, connected to PA0, PA1, PA2, PA3, PB0 and PB1.</li>
<li>1 Thumb Joystick, connected to PC2 and PC3.</li>
<li>1 LKM1638 board, connected to PA4, PA5, PA6 and PA7.</li>
<li>1 Stereo Jack to connect a Behringer foot pedal, connected to PB6 and PB7.</li>
<li>Toggle, connected to PB8.</li>
<li>Push Button, connected to PB9.</li>
<li>2 IR Distance Sensors, connected to PC0 and PC1.</li>
</ul>
<p>The image below shows some photos taken during the prototyping phase, and one of the final electronics.</p>
<p><img src="https://img.vormplus.be/blog/synth-electronics.jpg" alt="The electronics of the synth" /></p>
<h3>Case</h3>
<p>The case was made with wood for the main box, and black acrylic for the top plate. I’ve also made some custom 3D-printed parts for the Axoloti bracket, the thumb joystick mount, and the buttons for the LKM1638 board. </p>
<p><img src="https://img.vormplus.be/blog/synth-case.jpg" alt="Building the wooden synth case." /></p>
<p>Before designing the final top plate, I did a lot of prototyping to find the best way to mount each individual control. The photo below shows some of these prototypes. Everything was laser cut from 3mm thick acrylic.</p>
<p><img src="https://img.vormplus.be/blog/controls-prototypes.jpg" alt="Prototypes for mounting the controls." /></p>
<p>The synth also contains some 3D printed parts. I did a few iterations on each part to make sure everything had the right dimensions. These prototypes were printed on the Ultimaker 2 at Timelab, the final prints for the synth were made professionally  at Shapeways. The photo below shows the process of prototyping the 3D-printed parts.</p>
<p><img src="https://img.vormplus.be/blog/3d-printing-synth-parts.jpg" alt="3D-printing prototype parts for the synth." /></p>
<h2>Graphics</h2>
<p>All artwork for the top plate of the synth was made with the <a href="https://github.com/adobe-fonts/source-code-pro">Adobe Source Code Pro</a> font. The exact location for each controller was based on the layout. The Adobe Source Code Pro font contains a lot of interesting glyphs. You can see them in the image below. If you combine these glyphs, you can create great illustrations.</p>
<p><img src="https://img.vormplus.be/blog/adobe-source-sans-glyphs.png" alt="Glyphs used to create the top graphics for the synth." /></p>
<p>This is what the final graphics for the synth look like.</p>
<p><img src="https://img.vormplus.be/blog/axoloti-synth-graphics.png" alt="The graphics for the Autoloop Performer Synth." /></p>
<h2>Software</h2>
<p>I developed some custom objects to control the LEDs and display, and read button states on the LKM1638 board. These objects are available in the Axoloti community library. I’ve shot some short videos of the software for the LKM1638 board in action. You can find them on Vimeo.</p>
<ul>
<li><a href="https://vimeo.com/173932173">Axoloti + LKM1638: Light Organ</a></li>
<li><a href="https://vimeo.com/173932174">Axoloti + LKM1638: Set LEDs Individually</a></li>
<li><a href="https://vimeo.com/173932172">Axoloti + LKM1638: Toggle Leds</a></li>
<li><a href="https://vimeo.com/173932171">Axoloti + LKM1638: Light up LED when button is pressed</a></li>
</ul>]]></description>
    </item>
        <item>
      <title>Getting Started with Axoloti</title>
      <link>https://vormplus.be/full-articles/getting-started-with-axoloti</link>
      <guid>full-articles/getting-started-with-axoloti</guid>
      <pubDate>Fri, 11 Sep 2015 14:10:00 +0000</pubDate>
      <description><![CDATA[<p>I've started writing my second book a while ago. This time, the subject is Axoloti, a platform for creating synthesizers, drum machines, effects processors or other weird instruments. I've decided to use leanpub, so I don't have to work with a publisher. This allows me to sell the book while I'm writing it, and keep the book more affordable. The first chapter is available as a free sample, if you want to read the rest of the book, you'll need to buy it. You can get the book right over here: <a href="https://leanpub.com/getting-started-with-axoloti">https://leanpub.com/getting-started-with-axoloti</a>.</p>
<p>Since the first chapter is available for free, I've decided to publish it over here as well. So here we go…</p>
<p>In this first chapter, you will learn how to build a basic monophonic synthesizer by creating objects and connecting them. Your synth will only be able to play one note at a time, but that should be enough. The Minimoog was monophonic as well, and a lot of great music was made with it. Time to get started.</p>
<h2>Part 1: Making Noise</h2>
<p>Start by creating a new document. Double-click anywhere in the empty document to bring up the object selector window. Type <strong>osc</strong>, and select the <strong>osc/sine</strong> object. Press enter to add the object to your document.</p>
<p><img src="https://img.vormplus.be/blog/001-create-objects.png" alt="fig 1.1 — The object selector." /></p>
<p>Now that you know how to create objects, it’s time to add some more. These are the four objects you need to create your first synthesizer.</p>
<ul>
<li><strong>midi/in/keyb mod:</strong> This object represents a MIDI keyboard, and will handle all incoming notes.</li>
<li><strong>osc/sine:</strong> A basic sine wave oscillator. This is the object that will generate the sound.</li>
<li><strong>math/*c:</strong> This object multiplies the signal running through it with a constant value. You will use it to control the volume of your synthesizer. Make sure you use the one with the red inlet and outlet, as this object will be used on the audio signal.</li>
<li><strong>audio/out stereo:</strong> This object will send the audio signal to the audio outputs on the Axoloti board.</li>
</ul>
<p>Once you’ve added the objects, your document should look like <em>Figure 1.2</em>. This might be a good time to save your document.</p>
<p><img src="https://img.vormplus.be/blog/002-all-objects-needed-for-first-synth.png" alt="Figure 1.2 — All objects needed to create a basic synthesizer with Axoloti." /></p>
<p>The next thing you need to do, is connecting the objects with “patch cables”. Inlets are displayed on the left to the object, outlets on the right side. You’ll notice that these inlets and outlets have different colors. In the objects you’ve created, you’ll see that there are blue, red and yellow inlets and outlets.  Best practice is to connect inlets and outlets of the same color, but there are some exceptions you will learn about later. These are the connections you should make now. </p>
<ol>
<li>Connect the note outlet of the keyboard object to the pitchm inlet of the oscillator.</li>
<li>Connect the outlet of the oscillator to the inlet of the math/*c object.</li>
<li>Connect the outlet of the math/*c object to both inlets of the audio out objet.</li>
</ol>
<p>Once you’ve connected the objects, your document should look like <em>Figure 1.3</em>.</p>
<p><img src="https://img.vormplus.be/blog/003-objects-connected.png" alt="Figure 1.3 — All objects are connected." /></p>
<p>So that’s it. Your first synthesizer is finished, and ready to play. </p>
<ol>
<li>Make sure your Axoloti board is connected to your computer with the Micro USB cable. </li>
<li>Plug in some headphones, or connect the main audio out to your amplifier or speakers.</li>
<li>Press the <strong>Live</strong> checkbox at the top left of your document to compile and upload your first patch to the Axoloti board.</li>
<li>Go to <strong>Window &gt; Keyboard</strong> to bring up the virtual keyboard. You can also plug in a MIDI keyboard, as this is more fun to play.</li>
<li>Press a note on the virtual keyboard. At this moment you should hear nothing.</li>
<li>Rotate the dial of the <strong>math/*c</strong> slowly to turn up the volume.</li>
<li>Press some more notes, and hear the sound of your first synthesizer.</li>
</ol>
<p><img src="https://img.vormplus.be/blog/004-playing-the-synth-with-the-keyboard.png" alt="Figure 1.4 — Playing the synthesizer with the keyboard." /></p>
<h2>Part 2: Making the Noise Stop</h2>
<p>As you may have noticed, the sound keeps playing once you’ve pressed a note on the keyboard. This is probably not the behavior you want. A good synthesizer should make noise when you press a key, and stop when you release it. Let’s take a look at how you can fix this by adding only one object.</p>
<ol>
<li>Double click your document to bring up the object selector window.</li>
<li>Type <strong>gain</strong>, and select the <strong>gain/vca</strong> object.</li>
<li>Press enter to add the object to your document.</li>
</ol>
<p>Your document should now look like <em>Figure 1.5</em>.</p>
<p><img src="https://img.vormplus.be/blog/005-gain-object-added.png" alt="Figure 1.5 — A gain/vca object was added to the document." /></p>
<p>It’s time to change how the objects in your patch are connected.</p>
<ol>
<li>Disconnect the wire between the oscillator and the math/*c object. You can do this by right-clicking on the oscillator outlet and selecting <strong>Disconnect outlet</strong> from the menu. Another way to do this is to click on the outlet, and dragging the cable away.</li>
<li>The new gain/vca object you’ve just created needs to be placed between the oscillator and the math/*c object.</li>
<li>Connect the outlet of the oscillator to the red inlet of the gain/vca object.</li>
<li>Connect the outlet of the gain/vca object to the inlet of the math/*c object.</li>
<li>Connect the yellow gate outlet of the MIDI keyboard object to the blue inlet of the gain/vca object. This is a one of the possible connections between different colors.</li>
</ol>
<p>If you’ve done everything correct, your document should look like <em>Figure 1.6</em>.</p>
<p><img src="https://img.vormplus.be/blog/006-objects-connected.png" alt="Figure 1.6 — All objects are connected." /></p>
<p>The new patch is now ready to play. Press the Live checkbox at the top left of your document, and start playing some notes on the keyboard. You’ll notice that the sound stops when you release the key.</p>
<h2>Part 3: Adding Velocity</h2>
<p>Your current patch is starting to work the way most synthesizers work. But there is a small problem: all notes are played at the same volume. In this third step, you will add the functionality to play softer notes between the loud ones. This will make your music a bit more interesting.</p>
<ol>
<li>Double click in your document to bring up the object selector window.</li>
<li>Type <strong>gain</strong>, and select the <strong>gain/vca</strong> object.</li>
<li>Press enter to add the object to your document.</li>
<li>Disconnect the wire between the first gain/vca object and the math/*c object.</li>
<li>Connect the outlet of the first gain/vca object to the red inlet of the second gain/vca object.</li>
<li>Connect the outlet of the second gain/vca object to the inlet of the math/*c object.</li>
<li>Connect the velocity outlet of the MIDI keyboard object to the blue inlet of the second gain/vca object.</li>
</ol>
<p>Your patch should now look like <em>Figure 1.7</em>.</p>
<p><img src="https://img.vormplus.be/blog/007-velocity.png" alt="Figure 1.7 — Velocity functionality was implemented in the patch." /></p>
<p>The synth is now ready to play. Press the Live checkbox on your document window and start playing the keyboard. Drag the velocity slider and listen how the volume of the notes change. If you use a real MIDI keyboard, you can play it harder or softer to hear the difference.</p>
<h2>Part 4: Adding an Envelope</h2>
<p>Most synthesizers have envelopes to control the volume of the oscillator or the frequency of the filter. ADSR stands for Attack/Decay/Sustain/Release. In this part, you will learn how to add an envelope to control the volume.</p>
<ol>
<li>Double click in your document to bring up the object selector window.</li>
<li>Type <strong>adsr</strong> and press enter to create an ADSR envelope.</li>
<li>Disconnect the wire from the gate outlet of the keyboard to the first gain/vca object.</li>
<li>Connect the gate outlet of the keyboard to the inlet of the ADSR envelope.</li>
<li>Connect the outlet of the ADSR envelope to the blue inlet of the first gain/vca object.</li>
<li>Double click in your document to bring up the object selector window.</li>
<li>Type <strong>kscope</strong>, to add a <strong>kscope 128 p</strong> object. This object will be used to display the signal of the ADSR envelope.</li>
<li>Connect the outlet of the ADSR envelope to the blue inlet of the new kscope object.</li>
</ol>
<p>If you did everything correct, your patch should look like <em>Figure 1.8</em>.</p>
<p><img src="https://img.vormplus.be/blog/008-adsr-envelope.png" alt="Figure 1.8 — An ADSR envelope was added to the patch." /></p>
<h3>Envelope Parameters</h3>
<p>Let’s take a look at what the different dials of the ADSR envelope do. The white line in <em>Figure 1.9</em> shows the amplitude of the envelope.</p>
<p><img src="https://img.vormplus.be/blog/009-adsr-envelope-schematic.png" alt="Figure 1.9 — Schematic of an ADSR Envelope." /></p>
<ul>
<li><strong>Attack</strong>: The time it takes to reach the maximum volume of the sound when you press a key on your keyboard. If you set this dial to the left, the sound will reach its maximum volume very quickly. If you set this dial to the right, it will take some time to reach the maximum volume.</li>
<li><strong>Decay</strong>: The time it takes to reach the sustain level of your sound after the attack. </li>
<li><strong>Sustain</strong>: The volume of your sound until you release the key.</li>
<li><strong>Release</strong>: The time it takes to go from the sustain level to zero after you release the key. If you set this dial to the left, the sound will stop fast when you release the key on your keyboard. If you set the dial to the right, the sound will slowly fade out.</li>
</ul>
<p>You can now press the Live checkbox and start playing the keyboard. Change the parameters on the ADSR envelope and listen how it changes your sound. You can see what the different parameters do by watching the signal in the kscope object.</p>
<h2>Part 5: Adding a Filter</h2>
<p>The last thing needed to create an even more interesting sound is a filter. There are lots of different filters available in the Axoloti object library. You will find them in the filter directory of the object selector.</p>
<ol>
<li>Double click in your document to bring up the object selector window.</li>
<li>Type <strong>filter</strong>, select the <strong>bp svf m filter</strong>, and press enter to add the object to your document.</li>
<li>Disconnect the wire between the second <strong>gain/vca</strong> object and the <strong>math/*c</strong> object.</li>
<li>Connect the outlet of the second <strong>gain/vca</strong> object to the red inlet of the filter you’ve just created.</li>
<li>Connect the outlet of the filter to the <strong>math/*c</strong> object.</li>
</ol>
<p>Your final synthesiser is should look like <em>Figure 1.10</em>. Press the Live button and play around with the pitch and resonance dials and hear what happens to your sound if you play the keyboard.</p>
<p><img src="https://img.vormplus.be/blog/010-filter.png" alt="Figure 1.10 — A bandpass filter was added to the patch." /></p>
<h2>Exercises</h2>
<p>Now that you know how to create a basic monophonic synthesizer, it’s time to test your knowledge. Try some of these exercises and hear the broad range of sounds you can make with just one oscillator, an envelope and a filter.</p>
<ol>
<li>You’ve created a sine wave oscillator at the beginning of this chapter. Replace it with a saw or square oscillator and see how this affects the sound of your synthesizer.</li>
<li>Change the Envelope. Use a Attack/Decay Envelope (AD), Attack/Hold/Decay Envelope (AHD) or Hold/Decay Envelope (HD). You’ll find these objects in the env directory in the object selector. </li>
<li>Change the Filter, or connect an extra ADSR envelope to the resonance inlet of the filter in your final patch.</li>
</ol>]]></description>
    </item>
        <item>
      <title>Meet Axoloti</title>
      <link>https://vormplus.be/full-articles/meet-axoloti</link>
      <guid>full-articles/meet-axoloti</guid>
      <pubDate>Fri, 02 Jan 2015 14:10:00 +0000</pubDate>
      <description><![CDATA[<p>I started making electronic music in 1996, first with the crappy General Midi sounds on a cheap sound card before moving to ReBirth. In 1999, I started playing with decent hardware synths, samplers and drum machines. I spent a long time making music with Ableton Live, and recently I’ve started combining software with hardware again.</p>
<p>Last year, Johannes Taelman invited me to play with the beta version of a new open source hardware/software music platform for he was building. He just launched a <a href="https://www.indiegogo.com/projects/axoloti-a-digital-audio-platform-for-makers">crowdfunding campaign</a>, so it’s a good time for me to review the Axoloti for you.</p>
<h2>Axoloti Core</h2>
<p>Let’s take a look at the Axoloti Core first. This board is the hardware part of the platform. If you are familiar with electronics prototyping: think of it as an Arduino on steroids, for creating music. This is what the board looks like.</p>
<p><img src="https://img.vormplus.be/blog/axoloti-core-board.jpg" alt="Axoloti Core board." /></p>
<p>From left to right:</p>
<ul>
<li>Stereo audio input and output with 24bit sampling.</li>
<li>Headphone jack.</li>
<li>Micro USB port to connect the board to your computer so you can program the board.</li>
<li>Micro SD Card slot to store patches and samples.</li>
<li>Midi input and output.</li>
</ul>
<p>At the other side of the board, there are a lot of holes where you can attach other electronic components like faders, knobs or buttons. This makes the board really interesting because it allows you to create your own personal hardware instrument. The board is quite small, so it’s also ideal to hide it in an interactive installation.</p>
<h2>Axoloti Patcher</h2>
<p>The software for the Axoloti allows you to model your own sounds by connecting small objects with patch cables. It’s a bit like building a modular synth. What’s really great is that you can decide for yourself in which order these objects are connected. If you need eight oscillators, each with a ADSR envelope and a filter, you can build it. With commercial software or hardware synthesizers, this isn’t possible as their specifications are fixed. They are usually designed to generate a certain kind of sound, so you aren’t free to do with them what you want. The Axoloti Patcher comes with over 400 different objects. Here’s a screenshot showing some of them.</p>
<p><img src="https://img.vormplus.be/blog/axoloti-patcher-objects.jpg" alt="The Axoloti Patcher environment showing a lot of objects " /></p>
<p>Programming the Axoloti is a bit like using PureData or Max/MSP. You connect some objects with virtual cables. Once you’ve created a patch, you can push the “Live” button. The software will then compile the patch to C code and upload it to the Axoloti board.</p>
<p>A great feature in the software is subpatching. You can easily create a polyphonic synthesizer by loading a monophonic synth patch and telling the software how many voices you need.</p>
<p>Axoloti isn’t limited to create synthesizers. So far I’ve used it to create guitar effects, synths, drum machines and even a small sampler. The fun part is that you don’t need your computer after you’ve programmed the board. You can use it as a standalone instrument. Just plug in a MIDI keyboard/controller and focus on the music!</p>
<h2>Axoloti Needs Your Support</h2>
<p>If you are into making electronic music, you should <a href="https://https://www.indiegogo.com/projects/axoloti-a-digital-audio-platform-for-makers">support the Axoloti crowd funding campaign on Indiegogo</a>. For only €60, you will receive an Axoloti Core board so you can create any musical instrument you like. That’s really cheap compared to small standalone music boxes from Korg or Roland. And those commercial boxes usually only do one thing, whereas the Axoloti can be multiple things at the same time.</p>
<p>Your money will be used to create the first batch of Axoloti boards, and to continue developing the firmware and software. The goal is to build a small community of music enthusiasts around this piece of open-source hardware/software.</p>
<h2>Free Patches for Everybody!</h2>
<p>I’ve open sourced some of the patches I made so far on <a href="https://github.com/vormplus/AxolotiPatches">GitHub</a>. There’s only three of them right now, but I’ll publish more of them soon.</p>
<p>If you want to know what they sound like, you can find some more info about each patch and an audio file on this page I’ve created on <a href="https://www.beatfreak.be/axoloti/">www.beatfreak.be/axoloti</a>.</p>
<h2>Links</h2>
<ul>
<li><a href="https://axoloti.be/">Axoloti Website</a>: All information you need about the Axoloti.</li>
<li><a href="https://www.youtube.com/channel/UCN5o_lwOZrhPjt1i6GlaM5A">Axoloti YouTube Channel</a>: Tutorials and demos.</li>
<li><a href="https://www.indiegogo.com/projects/axoloti-a-digital-audio-platform-for-makers">Axoloti Crowdfunding Campaign</a>: Go buy yourself a board so you can create music. You’ll love it.</li>
<li>Follow <a href="https://twitter.com/axoloti_be">Axoloti on Twitter</a>.</li>
</ul>]]></description>
    </item>
        <item>
      <title>Apparatus for Creating Generative Drawings Without the Use of a Computer</title>
      <link>https://vormplus.be/full-articles/apparatus-for-creating-generative-drawings-without-the-use-of-a-computer</link>
      <guid>full-articles/apparatus-for-creating-generative-drawings-without-the-use-of-a-computer</guid>
      <pubDate>Fri, 15 Aug 2014 14:05:00 +0000</pubDate>
      <description><![CDATA[<p>I've created a lot of generative drawings in the past few years, and while most of them look great on a screen, I felt that something was missing when I made prints. I played around a bit with inkjet prints, but they didn't add any value to my work, so I started experimenting with traditional fine arts printing techniques.</p>
<p>One of the first things I tried was using a laser cutter to engrave thin plastic plates, and later copper plates with a hard ground, and printing them by hand. What I like about this process, is that it adds some imperfection to my work, something I can't add in the software I write.</p>
<p><img src="https://img.vormplus.be/blog/laser-engraved-drypoint.jpg" alt="Drypoint print, made by using a laser cutter to engrave the drawing in a plastic plate." /></p>
<p>I also experimented with other techniques like screen printing, woodblock printing, photopolymer printing, etching, … In December 2013, I generated some small patterns with Processing, and had some office stamps made with them.</p>
<p><img src="https://img.vormplus.be/blog/pushme-stamps-made-with-processing.jpg" alt="Stamps, generated with Processing." /></p>
<p>The stamps were used to create the dyptich Cipher/Decipher. It took quite some work to print this piece, just over 20 hours, as the paper size is 70 x 100 cm.</p>
<p><img src="https://img.vormplus.be/blog/cipher-decipher.jpg" alt="Cipher/Decipher" /></p>
<p>The problem with using these kinds of stamps is that they only come in boring office colors. To use other colors of ink, I had to create my own stamp cushions. I printed these little orange boxes at the local fab lab, and added a layer of felt so I could work with Letraset Pantone ink.</p>
<p><img src="https://img.vormplus.be/blog/pushme-custom-stamp-cushions.jpg" alt="Custom 3D printed stamp cushions." /></p>
<p>And this is what the final stamps looked like.</p>
<p><img src="https://img.vormplus.be/blog/pushme-custom-stamps-ready-for-installation.jpg" alt="Custom stamps ready for installation." /></p>
<h2>Dubbelwerk, the Exhibition</h2>
<p>In April, there was the Dubbelwerk exhibition in Ghent. The idea behind the exhibition was that teams of two artists would collaborate to create a single piece. I decided to ignore the curator, and collaborated with the visitors of the exhibition. So I used the stamps to create an interactive installation without computers. The name of the installation is "Apparatus for Creating Generative Drawings Without the Use of a Computer". The visitors of the exhibition were invited to use the stamps, and generate the drawing during the four days the exhibition was open.</p>
<h3>Setting up the installation</h3>
<p>The installation looked like this before the opening of the show. A clean white wall with five stamps hanging from the ceiling.</p>
<p><img src="https://img.vormplus.be/blog/pushme-installation-before-opening.jpg" alt="The installation before the opening of the exhibition." /></p>
<p><img src="https://img.vormplus.be/blog/pushme-stamp-detail.jpg" alt="Detail of one of the stamps." /></p>
<h3>Kids vs. Adults</h3>
<p>When the exhibition opened, I noticed that adults are bit hesitant in participating. Probably because they know that you can't touch art in a museum or gallery setting. But once they had a few beers, and saw other people using the stamps, they got over it. Kids on the other hand, don't have these boundaries. They see the stamps, and immediately reach for them. Some of them stayed over an hour doing nothing but placing stamps on the paper.</p>
<p><img src="https://img.vormplus.be/blog/kids-and-bigger-kids.jpg" alt="People writing their name" /></p>
<h3>Expected interactions</h3>
<p>There were a few things I expected visitors would do with this installation. People will use the canvas as a graffiti wall to draw hearts, smilies or even write their name.</p>
<p><img src="https://img.vormplus.be/blog/faces-and-hearts.jpg" alt="Faces and Hearts" /></p>
<h3>Unexpected interactions</h3>
<p>Sometimes it's great to see what people do if you hand them your tools. Somebody started rotating the stamp while pressing it, which gave a great result. People also dragged the stamp across the paper leaving a smudge of ink. These are things I probably wouldn't have done myself when using stamps to create art.</p>
<p><img src="https://img.vormplus.be/blog/ink-smudges.jpg" alt="Ink Smudges" /></p>
<h3>Drawing "Offscreen"</h3>
<p>And then there is always the aspiring graffiti artist who starts drawing on the wall. It started with a single yellow stamp, and by the end of the opening night, somebody wrote on the wall next to the piece.</p>
<p><img src="https://img.vormplus.be/blog/offscreen-drawing.jpg" alt="First offscreen drawing" /></p>
<p>And when one person starts to draw and write on the wall, others will follow…</p>
<p><img src="https://img.vormplus.be/blog/writing-names-001.jpg" alt="People writing their name" /></p>
<h2>The Next Step</h2>
<p>This is what the installation looked like after the exhibition.</p>
<p><img src="https://img.vormplus.be/blog/final-installation.jpg" alt="The installation after the exhibition" /></p>
<p>As four days was a bit short to fill the entire wall, I want to setup the installation at a place where it can be displayed for a longer time. The good news is that I've found a place for it. The installation will be part of <a href="https://thenewsublime.com/">The New Sublime</a> during the Brighton Digital Festival. Opening night is on September 5, the installation will be on display until the end of the festival.</p>]]></description>
    </item>
        <item>
      <title>Going to Milan</title>
      <link>https://vormplus.be/full-articles/going-to-milan</link>
      <guid>full-articles/going-to-milan</guid>
      <pubDate>Tue, 25 Mar 2014 14:05:00 +0000</pubDate>
      <description><![CDATA[<p>I'm happy to announce that I will be showing my first products during the Milan Furniture Fair at <a href="https://www.venturaprojects.com/ventura-lambrate-2014/">Ventura Lambrate 2014</a>. I'm not going there alone. The fine people of <a href="https://www.deinvasie.be/en/article/de-invasie-milan-2014">De Invasie</a> organise everything, and a lot of talented Belgian designers will be there too.</p>
<p>These are the products I'll be showing in Milan. The exhibition is at Via dei Canzi 14, Milan from Tuesday April 8 - Sunday April 13. If you are in Milan during the fair, come say hi.</p>
<h2>CloudOne Pendant Lamp</h2>
<p><img src="https://img.vormplus.be/blog/cloudone-pendant-lamp.jpg" alt="CloudOne Pendant Lamp" /></p>
<h2>CloudCups</h2>
<p><img src="https://img.vormplus.be/blog/cloudcups.jpg" alt="CloudCups" /></p>]]></description>
    </item>
        <item>
      <title>Taking Screenshots with Processing</title>
      <link>https://vormplus.be/full-articles/taking-screenshots-with-processing</link>
      <guid>full-articles/taking-screenshots-with-processing</guid>
      <pubDate>Wed, 19 Feb 2014 14:05:00 +0000</pubDate>
      <description><![CDATA[<p>Sometimes it can be handy to create a screenshot from Processing. In this short tutorial, I'm going to show you how you can do this in Processing 2. I've used this code to create a new piece of net art named <a href="https://pixelplayground.eu/projects/screenshot-inception">Screenshot Inception</a>.</p>
<p>Import these Java classes at the beginning of your sketch and declare a <code>PImage</code> variable. You also need some basic code in the <code>setup()</code> and <code>draw()</code> functions.</p>
<pre><code>import java.awt.Robot;
import java.awt.*;
import java.awt.image.*;

PImage screenShot;

void setup()
{
    size( displayWidth, displayHeight );

    takeScreenShot();

    background( 0 );
}

void draw()
{
    image( screenShot, 0, 0 );
}</code></pre>
<p>The function to take a screenshot is fairly straightforward. You need to create a Java <code>Rectangle</code> and copy the screen dimensions into that <code>Rectangle</code>. The <code>Robot</code> class is used to capture the screen into a BufferedImage using the <code>createScreenCapture()</code> method. The pixels from the <code>BufferedImage</code> are then copied into a <code>PImage</code> object with the same dimensions. Make sure you use this code within a try/catch block or you'll get an error.</p>
<pre><code>void takeScreenShot()
{
    Rectangle screenRect = new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() );

    try {

        BufferedImage screenBuffer = new Robot().createScreenCapture( screenRect );

        screenShot = new PImage( screenBuffer.getWidth(), screenBuffer.getHeight(), PConstants.ARGB );
        screenBuffer.getRGB( 0, 0, screenShot.width, screenShot.height, screenShot.pixels, 0, screenShot.width );
        screenShot.updatePixels();

    } catch ( AWTException e ) {
        e.printStackTrace();
    }
}</code></pre>
<p>The code for this tutorial is available on <a href="https://github.com/vormplus/Processing2-Tutorial">GitHub</a>.</p>]]></description>
    </item>
        <item>
      <title>Equilibrium</title>
      <link>https://vormplus.be/full-articles/equilibrium</link>
      <guid>full-articles/equilibrium</guid>
      <pubDate>Wed, 28 Aug 2013 14:05:00 +0000</pubDate>
      <description><![CDATA[<p>If you are in Brighton this month, you should see "The New Sublime", an exhibition with James Alliban, Evan Boehm and many others, including yours truly. You can see "Equilibrium", my new interactive installation from 31 August - 8 September. The exhibition is at Clearleft, 68 Middle Street, Brighton. More info over here: <a href="https://clearleft.com/does/art">clearleft.com/does/art</a>.</p>
<h2>Equilibrium</h2>
<p><img src="https://img.vormplus.be/blog/equilibrium.jpg" alt="Screen Grab of Equilibrium" /></p>
<p>In a time where we are constantly touching our connected devices, we hardly take time to stand still and look at something. If you want to enjoy this artwork, you need to stand completely still. Any movement will disturb the balance between you and the artwork.</p>]]></description>
    </item>
        <item>
      <title>Creative Coding Playground at Vooruit</title>
      <link>https://vormplus.be/full-articles/creative-coding-playground-at-vooruit</link>
      <guid>full-articles/creative-coding-playground-at-vooruit</guid>
      <pubDate>Thu, 11 Jul 2013 14:00:00 +0000</pubDate>
      <description><![CDATA[<p>Mark your calendar! At the end of August, there will be a 3-day creative coding workshop/hackaton/whatever at Vooruit in Ghent. Together with <a href="https://twitter.com/gwenvanhee">Gwen Vanhee</a>, I made a small website for the event. Check it out at <a href="https://vooruit100.lab101.be/">https://vooruit100.lab101.be/</a>. There's a limit of 30 participants, so be quick to get your spot.</p>
<p><img src="https://img.vormplus.be/blog/vooruit-creative-coding-playground.png" alt="Screenshot of the Creative Coding Playground website made by Gwen Vanhee and yours truly." /></p>]]></description>
    </item>
        <item>
      <title>Working with the PShape class</title>
      <link>https://vormplus.be/full-articles/working-with-the-pshape-class</link>
      <guid>full-articles/working-with-the-pshape-class</guid>
      <pubDate>Sun, 23 Jun 2013 14:00:00 +0000</pubDate>
      <description><![CDATA[<p>A great new feature in Processing 2 is the PShape class. You can use it to store a shape, as well as its appearance. In this article, we'll take a look at creating basic shapes like a rectangle and an ellipse, and how we can create our own custom shapes.</p>
<p>The first thing we need to do is to declare some PShape variables, right before the <code>setup()</code> function.</p>
<pre><code>PShape rectangle;
PShape circle;</code></pre>
<p>Inside the setup() function, we'll create the shapes. The first parameter is the type of shape, then you have the x and y coordinates of the shape, and the width and height.</p>
<pre><code>rectangle = createShape( RECT, 40, 80, 160, 160 );
circle = createShape( ELLIPSE, 250, 80, 160, 160 );</code></pre>
<p>To change the appearance of these shapes, you can use the <code>setFill()</code>, <code>setStroke()</code> and <code>setStrokeWeight()</code> methods of the <code>PShape</code> class.</p>
<pre><code>rectangle.setFill( #FF823A );
rectangle.setStroke( #F04155 );
rectangle.setStrokeWeight( 4 );  
circle.setFill( #95CFB7 );
circle.setStroke( false );</code></pre>
<p>In the <code>draw()</code> function, you can draw your shapes with the <code>shape()</code> function. The result should look like this.</p>
<p><img src="https://img.vormplus.be/blog/basic-pshapes.png" alt="Basic PShapes" /></p>
<p>If you want to create your own custom shapes, you'll need to create an empty shape, and add vertices to it. This is the code to create a hexagon shape.</p>
<pre><code>hexagon = createShape();
hexagon.beginShape();
for ( int i = 0; i &lt; 6; i++ ) {
    float x = cos( i * THIRD_PI ) * 20;
    float y = sin( i * THIRD_PI ) * 20;
    hexagon.vertex( x, y );
}
hexagon.endShape( CLOSE );

hexagon.setFill( color( 255, 64 ) );
hexagon.setStroke( color( #0E8D94, 128 ) );</code></pre>
<p>This shape will be drawn at (0, 0). In the <code>draw()</code> function, I've used the <code>translate()</code> function to move the point to where the mouse pointer is, so you can paint with the custom shape you've just created. The result looks like this.</p>
<p><img src="https://img.vormplus.be/blog/custom-hexagon-01192.png" alt="A custom hexagon made with the PShape class" /></p>
<p>Note that not every method of the <code>PShape</code> class is documented in the Processing 2 reference. If you want to know everything you can do with it, you should check out the <a href="https://www.processing.org/reference/javadoc/core/processing/core/PShape.html">JavaDoc for PShape</a>.</p>
<p>The code for this tutorial can be found in the <a href="https://github.com/vormplus/Processing2-Tutorial">GitHub Repository</a> for this series of articles.</p>]]></description>
    </item>
    
  </channel>
</rss>
