Algorithmic Arts

ArtWonk & MusicWonk Manual
by John Dunn


Program Overview

ArtWonk is a MIDI and graphics program that produces MIDI music and animation based on algorithmic processes in real time. You compose by connecting "modules" - graphical objects that represent functions and processes - in real time, adjusting the parameters as you go.

ArtWonk will drive MIDI synthesizers, soft synths and sound cards directly, effectively "playing" them in real time or optionally responding to user or environmental parameters; it will also record directly to a standard MIDI file. Real time paint graphics can be created and manipulated on the fly; and both music and paint can be created together as a synesthetic whole.

ArtWonk vs. MusicWonk

ArtWonk and MusicWonk are essentially the same program. The only difference between them is ArtWonk has extensive graphics functions and some graphics support capability such as AVI file creation not found in MusicWonk. ArtWonk will load all MusicWonk created files and MusicWonk will load all ArtWonk created files except those that contain modules from the ArtWonk-exclusive Graphics menu. Unless specifically excepted, when this manual refers to "ArtWonk" it means either"ArtWonk" or "MusicWonk," whichever applies to your software.

Getting started

To get started with ArtWonk, as a minimum you should read through this overview and do or at least view the Getting Started tutorials.  It would also be helpful to look at the Modules page, and the Screen Areas page. Other overview pages that may prove useful are Toolbars, Main Menu, System Module, and Run Loop.

Screen layout

ArtWonk consists of the blue user interface panel (called the Panel), the light blue module workspace just below (the Workspace), and the white tree view of all existing modules to the left (the Module Tree). These hree main screen areas may be resized by click and drag on theie partition borders.

On ArtWonk only, there also are up to 5 floating graphics display windows, the main Canvas and the 4 additional graphics display Screens. Hide or show them with the  blue buttons on the top toolbar labeled C and 1-4, or with the F3 function key.  Or right click on them and use the context pop-up menu.

Tool Tips

ArtWonk makes extensive use of tool tips. To find out what something does, just hold the mouse pointer over it for a few seconds and a tool tip message will appear describing the item. Probably the best way to explore ArtWonk, once you know the basics, is to just noodle around with the mouse, reading the tool tips that pop up.

Creating modules

To create a module, right click on the module Workspace (the light blue colored area). A popup menu will appear. Select a module from the menu and it will be created at the point of the mouse click. Click on the top of module and drag it to move it.

Connecting modules

Modules have outputs at the top, colored light blue, and inputs at the bottom, colored white if not connected to another module and light yellow if they are. You can enter values directly into the inputs by typing in them. Connect outputs to inputs by drag and drop of the output to the input: click on the output you want to connect, drag it over to the input you want to connect to (you will see a drag icon while doing this), and release the mouse button when the pointer is over the target input. The input will turn light yellow and it will label itself to indicate the output it is connected to.

At any time you can click on an input or output label to see at a glance its connections. If you click on an output label, the label highlights cyan and all inputs connected show a yellow highlighted input label; if you click on an input label, the label of the output that feeds it will highlight cyan, and only the input label you clicked on will highlight orange.

You can also double click on an input to get a pop up of constant values. These values are in a standard text file (use Notepad to edit it, not Word) in the ArtWonk directory, named "Constants.txt," and consist of some descriptive text followed by an equal sign ("=") followed by a value. You are free to add to this file as you like. The function that inserts the value only cares about finding an "=" character somewhere on a line, followed by any value. It ignores everything up to and including the "=", and inserts only the value.

Cut, Copy, Delete, Move

You can Cut, Copy, Delete, or Move groups of modules as well as individual modules.

For individual modules, to Cut, Copy, or Delete, right click on the module to get a pop up menu for the action desired for that module. To move a module, simply click on the top part of the module (or shift-click on the module body, where the input/output labels are), and drag the module to its new location.

Selecting groups of modules

To operate on groups of modules, click and drag on the Workspace (not the module), and enclose the modules you want to target with the rubber band box that appears when you click & drag on the Workspace. Modules that are enclosed in the box become "selected" and their labels will turn red. When you release the mouse button the box will disappear but the selected modules will be indicated by the now red labels. Right click on any of the selected modules to get a popup menu for the selected group.

To move the selected modules as a group, click and drag on the top of any of the selected modules (or shift-click on the module body, where the input/output labels are) and all selected modules will follow the drag. To unselect, click anywhere on the Workspace background.

Deleting modules

Right click on the module and select "Delete" from the popup menu. Deleted modules can be recovered by right clicking on the Workspace background and selecting "Undo Delete" from the popup menu.

Pasting Modules

After a single module or a group of modules has been Cut or Copied, right click on the Workspace background. The module creation popup menu will show a "Paste" command near the top of the popup menu. Selecting Paste will paste the previously copied or cut modules. The modules will appear in exactly the same place in the Workspace as the original modules, so if you did not move the original modules previous to a Paste, they will be covered by the newly pasted modules. However after a Paste operation all modules that were created by the paste will be selected, so you can drag the new modules as a group to whatever location you prefer.

Fetching modules

You can move a module or a group of modules beyond the currently visible Workspace by selecting the modules you want to move, then scrolling to the area you want to move them to, and selecting Fetch from menu that pops up when you click on the Workspace background. All the selected modules will be teleported to the current location.

ArtWonk values

ArtWonk outputs produce numbers and/or text, depending on the module. Inputs accept both text and numbers, as appropriate to the module. If the input is non numeric it is considered text. Numbers are double precision floating point, and are automatically converted to other data types such as integers or bytes as needed. You can also enter hexadecimal values by preceding the number with "&H" as &H7F for decimal 127.

Module value readout

You may notice that fast changing values in modules, such as the Main and Clock readouts in the System module, do not, by default, update every time the value changes. Rather, the module readouts update 5 times a second, which is about as fast as you can make sense of them, and has minimal impact on CPU usage. You can change this in the Main menu Global Options. This does not affect readouts in the Panel.


Although a MIDI file can be played like a sound file, for example by double clicking on the file name, MIDI is not sound like an .mp3 or .wave file is.  Instead it is a stream of control messages that instructs sound producing devices how and what to play.

Most soft synths and samplers, while designed to produce sound, need to be controlled by something else, a keyboard or a MIDI file for example. ArtWonk provides that MIDI control dynamically and with astonishing range.

ArtWonk is not music production or scoring or multitrack editing software and it does not attempt to replace them.  It is pure creation software.  As such, MIDI gives the widest possible choice of sound producing options. With ArtWonk, you are not stuck with one particular sound set, you have the entire world of MIDI synths and samplers at your command.

That said, unless you are already an experienced user of computer music software, you likely will first experience MIDI as the Microsoft default General MIDI wavetable synthesizer.  This is OK.  It gives you 128 different instruments and is a good and - as it is built in to Windows - a simple starting point.  Just be aware as you progress in your creative explorations that there is a mountain of MIDI sound options as near as the Internet, many low priced and even free.  See the Appendix for some suggestions for expanding your MIDI sound options when you are ready.

Connecting to MIDI

To connect to MIDI, first make sure you have a working MIDI driver installed on your computer.  Almost always, Windows has one configured as its "Microsoft MIDI Mapper."  This will usually be a General MIDI wavetable synth, which provides an adequate starting point, compatible with the default General MIDI instrument names supported by ArtWonk.

The simplest way to test for MIDI is to jump right in and play an ArtWonk patch. Select from ArtWonk's top line menu, "File/Open...," and select the patch named "Load Me First."  It's there to get you started.

If you are unable to get sound, search your computer for some MIDI files, "*.mid." and double click on them, if you get sound, you can go back to ArtWonk and try setting the MIDI Output driver again, it's there and you should be able to get it working. If double clicking on the .mid files produce no sound, you need to figure out how to configure MIDI for your computer.  Usually this will involve fussing with Sound settings from the Control Panel.

Tiny tutorial to get first sound

  1. After you have set the MIDI Output driver (you don't need an Input driver yet), and you are ready to proceede with the tutorial, select File/New to get a fresh start.  Now right click on the light blue Workspace background to get the module menu. Select Clock from the top of the Clock sub menu. Pop up the module menu again and select Rand Int (not Random) from the Pattern menu.
  2. Click and drag the Strb output of the Clock to the Strb input of the Rand Int module. You should see the output of the Rand Int changing, showing values from 0 to 24, the default setting.
  3. Pop up the module menu, and select MIDI Voice from the MIDI Out menu. Drag the Clock Strb output to the MIDI Voice Clock input. You should hear a steady one note beat. Drag the Rand Int output to the MIDI Voice Note input.  At this point you should hear random notes. You can turn it off by typing 0 into the Play input at the top of the MIDI Voice module.

Computer System Requirements

ArtWonk runs on all Windows operating systems from Windows XP on, including XT 64, Vista 32, Vista 64, and Windows-7 and up, 32 and 64. Some have reported that it works with Windows 98, Windows 2000, and with Windows emulators on the Macintosh, although we are unable to provide support these platforms.

You need a sound card or synth, but most likely it's already there. Most Windows computers have a built-in MIDI driver, called "Microsoft GS Wavetable Synth," that works with almost any sound card or built in sound chip, and is made available as the default sound device through the "Microsoft MIDI Mapper."  

Synthesizer Compatibility

ArtWonk provides an extensive and highly flexible MIDI implementation. This makes it ideal for controlling all kinds of synthesizers, keyboards, and workstations, as well as modular synths and high end professional sound processors such as Sonic Core Scope and Symbolic Sound Kyma; and in fact ArtWonk has been designed from the ground up for high compatibility and nuanced control of the Kyma and Scope synths we've used in our own studio for over 10 years.

Software Synthesizer and Sampler Compatibility

ArtWonk is compatible with most software synthesizers and samplers. However, many soft synths do not have their own MIDI drivers, and therefore require a program called a "MIDI Loop Back" in order to work with ArtWonk or any other MIDI control software.

A MIDI Loop Back provides connections to send the output of ArtWonk to a Loop Back input, then you connect your soft synth to the same Loop Back output. These programs are available as free downloads, they are easy to install, and once installed they are trouble free.

ArtWonk works very well with any of these free MIDI Loop Back drivers. If you don't know which to use, we recommend MidiYoke on Windows XP and other Windows versions prior to Vista; and LoopBe1 for Windows Vista, 7, 8 and above. Both are free. also offers an expanded 30 device version for around $20.


ArtWonk works very well with popular VST host software such as REAPER, Cubase, Ableton Live, Sonar and FL Studio/Fruity Loops , or the free Wavosaur and VSTHost (which we use in-studio). Since the output of ArtWonk is a live MIDI stream, essentially an algorithmic keyboard player, it is not a VST application itself. But the VST host programs have MIDI inputs and outputs that can easily be set up to distribute the ArtWonk MIDI stream to the hosted VST and VSTi modules.

ArtWonk is Copyright 2003-2014 by John Dunn and Algorithmic Arts. All Rights Reserved.