Tutorial #1: Getting Started
This is a startup tutorial that will introduce you to the basic elements
of ArtWonk. It will create a simple 2 voice random note player that can be
adjusted with widgets in the user interface panel, and can be played and
recorded with the tool bar transport buttons.
Part 1
- Start with the Tiny Tutorial from the Introduction. Here it is again:
- 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.
- 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.
- 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.
- Make the sound respond to the toolbar Play
button by connecting the System Module
Play output to the MIDI Voice Play
input. Sound should stop if it was playing. Now click on the Play
button on either toolbar. When Play is in, you should get
sound, when it is out, you should get silence.
- Although the sound isn't much yet, you do have enough to create a MIDI
file. So give this a try. Simply click on the toolbar (either one) Record
button. It will turn red. Then click on Play and let it run
for a few bars. Then click on Play again to stop.
- Click on the Playback
button (speaker icon) to hear your MIDI file. It should play back
exactly as it was recorded.
- It would be nice to be able to change instruments. You can do this
with the Prog input to the MIDI Voice.
- Right click on the Workspace to get the module pop up menu and
select Knob from the Widget
submenu.
- Notice that you get not only the Knob module but also a
knob graphic in the upper left corner of the dark blue Panel.
Move the knob to the center of the panel by holding down the shift
key and dragging it with the mouse.
- Plug the Knob module output into the Midi Voice
Prog input. Now click on the Play button
to get sound and try different knob settings. Default Knob movement
is up/down for large changes and left/right for small changes. You
should hear different instruments playing.
- At this point, if you are not getting the results you expected,
you might try loading the patch file in the Tutorials folder,
"Tutorial1a," which is this tutorial up to this point, and checking
it against your own patch.
- If you want to do a temporary save of your current patch, click on
the Quick save icon, the red floppy 4th from the left of the lower
toolbar. This saves the patch as "Quick#" with the "#" as 0-9,
automatically rotating.
Part 2
- Rather than just getting program numbers, it would be better to see
the patch names as you change them.
- Pop up the module menu, and select the macro called "ProgList"
from Macros/MIDI Control/Parts."
- Use the hand icon "mover" that shows up in the upper left corner
of the Panel graphic to move it where you want, especially if it
landed on top of the knob you created earlier. Click on the Panel
background to dismiss the hand icon. If you should want to move the
graphics as a group again, just click on the Panel background and
drag the rubber band box that will show up to enclose the items you
want to move as a group, then move the box, and again click on the
background when you are finished moving to dismiss the temp group
box.
- Back in the Workspace, connect the Prog output
of the newly created ProgList macro to the Prog
input of the Midi Voice module, replacing the Knob
connection previously made. Click Play
in the toolbar to play the patch, selecting the instrument names
from the list box widget, or by clicking on the Inc/Dec widget to
change one at a time. You should hear different instruments as you
go, and you should see the highlighted MIDI Prog number and
instrument name selected.
- You don't need the knob you created earlier, so delete it. To do
this, right click on the Knob module in the Workspace (not on the
Knob graphic in the Panel), and select Delete from the pop up menu.
Both the module and the graphic are deleted.
- The program names you see in the Prog label are the default General
Midi names. If your synth is not GM (just about all sound cards are, so
this applies mostly for those who are using a soft synth/sampler or a
hardware synthesizer), you can change the names in the text file in the
ArtWonk Names folder. Be sure
to start by reading the readme.txt file.
- The tutorial up to this point can be found in the Tutorials folder as
"Tutorial1b."
Part 3
-
Now create a 2nd voice. Since this is just a simple random note
pumper, we will stay with the random theme, but try to bump up the
interest a little. First thing, swap out the RandInt
module with a RandWalk module.
This will keep the random but give it more of a pattern.
- Pop up the Workspace module menu, and select RandWalk
from the Pattern group. Connect the Clock
module Out to the RandWalk Strb
(strobe) input. Connect the RandWalk
Out to the MIDIVoice Note Input. Delete the RandInt
module.
-
In almost every patch MIDI output control is needed, so there are
several Macros that simplify setting up MIDI out. Start by going
to the Help menu and browsing Macro Help for MIDI Control
macros.
-
Use the MIDI2 macro for
this patch, which gives 2 MIDI output channels and basic Panel
controls. Right click on the Workspace, and in the pop-up module
menu, select Macros/MIDI Control/2-Voice/MIDI2. How would you
know where to find that? Simple, the Macros menu is set up the
same as the Macros Help. So by browsing Help you get an idea of
what you need and where to find it.
- As before, the Macro graphic shows up in the upper left corner of the
Panel with the 3-hand mover icon attached. So move the graphic
somewhere toward the center of the Panel, but not on top of anything
else, then click on the background to dismiss the mover icon.
- MIDI2 replaces the MIDIVoice
module and the ProgList macro,
so delete them by right clicking on the top of each Workspace module
(not the Panel graphic), and selecting "Delete."
- Now connect the Clock Out
to the MIDI2 L.Clock input.
Connect the RandInt output to
the MIDI2 L.Note input, and
the System module Play output
to the MIDI2 Play
input. At this point you should be back where you started: Click
the toolbar Play button and you get random notes. If you do not,
go back and check your connections.
- The tutorial up to this point can be found in the Tutorials folder as
"Tutorial1c."
- Before moving to the next part, take a moment to look inside the MIDI2 macro. Macros are simply
containers for more modules. To get inside, click on the "@"
symbol on the top right. You will see the two MIDIVoice
modules along with the other support modules. Click on
the "#" symbole on the MIDI2 container module in the upper left of the
Workspace to return to the main Workspace. You could also click on
the "Start" line in the white module tree to the left of the Workspace.
Part 4
- Before setting up the 2nd voice, give the totally random chromatic
scale some manners. There are any number of ways to do this, but
the simplest and most comprehensive is to use the FitScale
module. So right click on the Workspace and select Process/FitScale.
This module coerces its input note to the nearest note of the scale
selected by the Scale input. There are over 80 different scales to
choose from, but for now we will pick #1, Major (Ionian). So type "1" in
the Scale input. (A fast way to input constants is to double click on
the input and a table will pop up. Most constants are given note
durations, but a number is a number. Click on the number you want,
in this case "True=1." You can change this table to suit your own
needs by editing Constants.txt in the ArtWonk Settings folder.)
- Now connect the RandWalk output
to the FitScale In input, and
connect the FitScale Out
output to the MIDI2 macro
L.Note input. Click the Toolbar Play button to hear the results.
- The random notes should now be slightly less random, being confined to
the C Major scale (the key is set by the yellow Transpose knob in the MIDI2 Panel graphic).
- Finally, we can add a 2nd voice. There is no limit to the ways you can
play one voice off another in ArtWonk just as in music at large.
For this tutorial we will go with the DitherBack
macro, which sort of wanders back and forth. Read about
it in Macros Help/Misc Macros. Get it from - you guessed it
- the Workspace pop-up module menu: Macros/Misc. Macros/DitherBack.
- Now connect the Clock output
to the DitherBack Clock
input, the FitScale Out to
the DitherBack Note input,
and the DitherBack Note
output to the MIDI2 R.Note
input. Finally, connect the Clock
output to the MIDI2 R.Clock
input.
- Although it's not likely to matter in this simple patch, MIDI Out
modules should always be the last in the processing chain since that is
the last thing each calculation cycle does, send the MIDI messages out
to the sound device. To move MIDI2
to the end of the chain, left click on its name in the white
module tree to select it for moving, then right click on the last module
in the tree, DitherBack.
You should see the tree rearrange itself so MIDI2
is at the end of the chain. If you are getting little 64th note
glitches in your sound, chances are the modules are in the wrong
calculation order, and usually it's because MIDI out is not at the end
of the chain.
- Click the toolbar Play button to audition your patch. Try
speeding up the clock a bit (more about that later) by typing 12 into
the Clock Dur input (or you can double click the input text box and
select 8th=12 from the constants list). Try turning on Legato by
clicking on the little blue "L" button in the upper left of the MIDI2
Panel graphic (it will turn yellow to show Legato is on). Legato
in the ArtWonk context sends MIDI Off messages only at the very end of a
MIDI note. This causes the note to be on for its entire duration,
and it also causes double or multiple notes to play as a single long
note. The results are often surprising.
- The tutorial up to this point can be found in the Tutorials folder as
"Tutorial1d."
Part 5
- For a finishing touch we will add a scale picker and some clock
control. The scales that are built into the FitScale
module are available in the ListBox
widget. Right click on the Workspace to get the module
menu, select Widgets/ListBox. The Panel graphic will appear in the
upper left as always. Shift-click-drag to place it where you want.
- Left click on the ListBox graphic
to open its properties box. You can also open the widget
properties by clicking on the Properties button on the top right of the
module. Use the sliders to adjust the size, and select the
"FitScale" option button on the right, 2nd from the bottom. You
should see the list box fill up with scale names. Click "OK."
- Connect the ListBox Index output to the FitScale Scale input.
Also connect the ListBox Index to its own Index input. This will
cause it to remember its setting when you save the patch. Click on
the Toolbar Play button and try out some different scales.
- Now for the clock control. A word here about rhythm might be in
order. ArtWonk has many different ways to set up rhythms, simple
and complex, loose and tight. And it eats rhythm boxes for lunch,
once you become familiar with the tools (hint: see the Ary Clock
sequencer macros). But this tutorial patch as well as many of the
Example patches and most of the clock control macros use a single value
totally robotic rhythm - why is that? Mainly it's because ArtWonk
specializes in data driven compositions, such as DNA music, that works
well with monorhythms, where the clock (or clocks) hold steady and the
rhythm is perceived from other cues, mostly pitch changes. So if you
want more traditional rhythms you certainly can have them with ArtWonk,
but if you are willing to give its monorhythms a try you might be
surprised with the rich creative material you find there.
- So, as with the MIDI Control, brows Help/Macros/Clock Control to get
an idea of what's available. You are free to experiment with any of them
of course, but for now use the ClkDur%ON
macro. You know the drill: right click on the Workspace, select
Macro/Clock Controls/ClkDur%ON. Move it wherever you like and
dismiss the mover by clicking on the Panel background.
- Connect the Dur and %On outputs of the ClkDur%ON
macro to the Dur and %On inputs of the Clock
module. While you're at it, connect the System
module Stop output to the Clock
Hold input, so when the Toolbar Play button is out (Play=0 and
Stop=1), the clock and all activity driven by it will freeze.
- As a last step, move the MIDI2 module to the end of the calculation
cycle. Left click on its name in the white module tree to the left
of the workspace, then right click on the last module in the tree, the ClkDur%ON. You will see the chain
rearrange itself so MIDI2 is
now at the end. Strictly speaking, Panel widgets are asynchronous
with the calculation chain and you don't really need to put them ahead
of MIDI. But its still a good idea to keep the MIDI modules at the
end, like signaling a turn even when there's no traffic.
- Take some time to explore what you've built. Most of the control
widgets and all of the module labels give tool tip help messages when
you hold your cursor over them for a moment. Also, it is easy to
trace what modules are plugged into what by clicking on the
labels. If there is a connection, the connected modules' label
will highlight, turning what seems at first to be an impossible jumble
into a readable signal flow.
- This concludes the "Getting Started" tutorial. This last part can be
found in the Tutorials folder as "Tutorial1e."
[End of Tutorial #1, Getting Started]
ArtWonk is Copyright © 2003-2014 by John Dunn and
Algorithmic Arts. All Rights Reserved.