System Module

Even when first loaded or after a New, ArtWonk has one module, the System module. This is a unique module that can not be copied. It is used to read and set system parameters that will be stored with the patch file. Use the blue property button to set static, authoring options, and the module inputs to set dynamic options.

(Note: Artwonk has two types of global parameters. Authoring options, which you set with the System Modue property button are saved with any .awp patch file you create, and loading a patch file will update these parameters. The other type of global parameters are set with the top menu Options/Global Options dialog. These parameters are for your personal system settings. They are not saved when you save a patch file, and loading a patch file does not change them.)

Several system module outputs have a corresponding input. You can read the status of the system parameter at the output, or you can programmatically set it at the input.

System module outputs are duplicated in the Flag module, which gives easy access to them within the body of macros.

From top to bottom here are the System module outputs:

Reset - strobes True (1 for one loop cycle) upon Reset.

Load - strobes True (1) upon Load.

Main - this is a count of Main Loop ticks since the last reset.

Clk 1 - count of the Clock 1 loop ticks since the last reset.

Ck 2 - count of the Clock 2 loop ticks since the last reset

Tick - Tick count (timer interval) being used by the main loop timer.

MIDI - MIDI Real time input flags. These are bit flags that strobe bitwise True when the real time message is received. Messages currently supported are: Start (1), Stop (2), Continue (4), and MTC Qframe (8). Use an AND module to isolate the bit flags; the bit values for the flags are available in the Constants table, by double clicking on a module input. In this case you would run the System Module's MIDI output to an AND input, then double click on the other AND input to insert the desired MIDI flag mask.

Refresh - strobes True (1) when the Toolbar Refresh button is pressed. ArtWonk does not use the Refresh button for anything at all, so you are free to use it however you like.

Record - True (1) while the Record button is in.

Play - True (1) while the Play button is in. This is typically used to enable MIDI output modules. Use it with a Not module to set the Hold state of modules such as Clocks.

Stop - The reverse of the Play flag: False (0) while the Play button is in, and True (1) when it is out.

Snap - The current Snapshot number.

Post - True (1) on the last cycle before a file is saved.

From top to bottom here are the System module inputs:

Reset - strobe this input to generate a reset event. All loop timer clocks will reset, and each module in the main run loop will be exposed to the Reset flag.

Load - strobe this input to generate a Load event, which is a Reset event with the addition of the Load flag going True (1) at the same time.

Main - set the time interval to the Main Run Loop in milliseconds. To set the interval to a Tempo setting, use the Tempo2Ms module in the Process menu. You can set the Main Loop timer to any interval from 1 millisecond to 1,000,000 milliseconds (16.7 minutes), somewhat less in Windows 95/98. You cannot shut it down except when slaving ArtWonk to external MIDI.

In general, and unless you have specific reason to do otherwise, Loop timers should not be set much below 10 milliseconds. Setting the timers faster than this may cause timer overruns, which will result in audible MIDI timing glitches. Timer overrun is indicated by the red LED in the lower right of the Status bar. It is normal for this to flicker when files are loaded or saved, or at the very start of a Reset or Load, or just prior to recording a MIDI file. This is because ArtWonk does considerable pre calculation prior to starting its timing loop runs in order to make the actual module calculation loops as efficient as possible. Overruns at these times have no effect on the loop timing accuracy.

Clock 1&2 - set the time interval to Loop Clocks 1&2. Same range as for the Main Run Loop timer. You can shut down Clocks 1-3 by setting them to 0. After shutting them down, you must do a Reset to start them back up again, it is not enough to just change the time back to a non zero value.

Exit - This provides a way for a patch to exit programmatically. Enter the value 1234.5678 to instantly exit ArtWonk. Note that if the file dirty flag is set due to a change in the modules, the file save dialog box will appear. To prevent this, use the MakeDirty module to clear the dirty flag just before the exit.

RcEnd - (Record End). When recording to MIDI, especially when using the Lgto (legato) feature which only sends MIDI notes when they have changed, the recording can be truncated because any notes that were left on get shut off right away in the resulting MIDI file. This input gives a graceful way to end these recordings, by setting all notes that were left on to the number of ticks specified.

Play - set to non zero to programmatically set the Play flag and depress the Play buttons in the tool bars. When saved with this input set to nonzero, Play button will automatically come on when the patch is loaded.

By default Play is internally connected to the Reset output, so when clicking on the Play button a Reset flag is generated and modules that are sensitive to the Reset flag, such as clocks, are automatically resynchronized. You can change this in the System module Properties dialog.

Snap - set to a legal Snapshot value (0-127) to programmatically set the Snapshot. Snapshots are only sent when this value changes.

Mute - set to non zero to mute (stop) all MIDI output.


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