Try our online exercise editor with integrated counterpoint analysis.

Currently all Artinfuser Counterpoint servers are in maintenance mode. I did not get enough patrons to continue supporting rendering music in this project.


Editing config

Why edit the task configuration?

Task configuration (task config) allows the user to control hundreds of parameters, which cannot be changed within web interface. To edit the task configuration, click on the task status icon and scroll down to config editor. Changes can be made and new configuration lines can be added, but be aware that this can lead to errors. The information about the errors can be found in the Algorithm warnings log on the task page.

Viewing configuration is also useful to understand which parameters were changed compared to default settings.

Where to edit the task configuration?

To edit task configuration click on task status and scroll down to task configuration window.

Configuration file syntax

Assign values to the parameters:

some_parameter = 1
another_parameter = "ABC"

Start your comments with # sign:

# This whole line is just a comment  
some_parameter = 1 # This is a comment for this parameter

What can be changed in the task configuration?

  1. Changing the existing values of the parameters in the user’s task config is the simplest and most stable way to make adjustments. Artinfuser Counterpoint has the most important parameters programmed in to facilitate change. Read the comments for each parameter:
show_correct_hatch = 1 # Set to 1 to mark corrected notes with hatch
  1. If the required parameter is not in the config, proceed to the default config of the MGen algorithm and verify if the parameter is there (click the "Example and include configs" button under the task config, click your algorithm and go to include folder).

  2. Examples of configs can also be consulted (click the "Example and include configs" button under the task config, click the MGen algorithm and choose any config file).

  3. The instrument’s parameters can also be changed. See next section.

Instrument config

To change instrument parameters user should specify instrument group, instrument name, track id, then colon and then entering the parameter that needs to be changed. To locate the default values for the parameters and to know which parameters exist for each instrument, click the "Instrument configs" button below task config, and then click on the required instrument:

# Randomize note velocity not greater than this percent
"Violin/Arco/1": rnd_vel = 8   
# Randomize step dynamics not greater than this percent
"Violin/Arco/1": rnd_dyn = 8   

If there are multiple instruments of same type, specify the particular instrument config after the slash:

# Frequency (in percent) when legato can be replaced with non-legato by moving note end to the left
"Trumpet/SM Trumpet": nonlegato_freq = 13  
# Minimum note length (in ms) allowed to convert to nonlegato   
"Trumpet/SM Trumpet": nonlegato_minlen = 200 

Here are types of instrument parameters that you can change:

  1. Library parameters. Usually you should not change them.
library = "Friedlander Violin 1.5" # For which library algorithm is optimized
n_min = G3 # Lowest note
n_max = F7 # Highest note
t_min = 12 # Shortest note in ms
t_max = 0 # Longest melody withot pauses in ms (0 = no limit). Decreases with dynamics
  1. Output parameters. You can control these parameters using instrument GUI on website.
# Panning: default 50 (maximum left, 50 - default position, 100 - maximum right):
"Trumpet/SM Trumpet": Pan = 50
# Volume: default 100 (relative volume from 0 to 100):
"Trumpet/SM Trumpet": Volume = 100
  1. Name a continuous controller (CC). Usually you do not need this, but you can if is a CC that is not named yet:
CC_Name = 59: "Transition speed"
  1. Name a keyswitch. Usually you do not need this, but you can if there is a keyswitch that is not named yet. Artinfuser Counterpoint supports only mutually exclusive keyswitches, that produce predictable state when being pressed (non-latching keyswitches). See examples below. Keyswitches that change state when being depressed are not supported (latch mode keyswitches). Also keyswitches that cycle through states are not supported (cycle non-latching keyswitches).

Mutually exclusive keyswitches are organized into groups. Sending one keyswitch from a group cancels all other keyswitches from the group.

KswGroup = "F2: Color on", "F#2: Color off"
KswGroup = "D3: Normal", "D#3: Sul ponticello", "E3: Sul tasto" # Bow position
KswGroup = "G2: Sustain", "A2: Staccato", "A#2: Pizzicato", "B2: Tremolo" # Style
  1. Send named continuous control or keyswitch at track start. Keep in mind that if you send multiple keyswitches from mutually exclusive keyswitch group, only last of them will be sent. CC value range is 0-127. Keyswitch value is midi velocity (range 0-127): 101 is recommended velocity.
Transition speed = 80
Color on = 101
  1. Algorithm parameters. Changing these parameters requires understanding of how algorithms work. You will find most important algorithm parameters in instrument GUI on website. I would not recommend changing them in config file without full knowlendge of consequences:
all_ahead = 54 # Time in ms to stretch sutain notes (not legato) back to cope with slow attack
tasto_import = 1 # Set to 0 to ignore sul tasto in source MIDI file and play as normal notes
bow_lock = 0 # 0 - do not lock bow, 1 - always sul tasto, 2 - always sul ponticello
  1. Internal parameters. You should not change these parameters. To achieve needed results please find other parameters. For example, use Volume parameter instead of Volume_default.
# Direct CC volume, should not be changed by user:
"Flute/Normal": Volume_default = 89

Pitches in the task configuration

Pitches used in task config correspond to the pitches in DAW. Pay attention, that they can differ from pitches in virtual instrument. For example, Kontakt virtual instrument can show F2 note, while in DAW and in task config it is G3.

Examples of configurations

Move instrument to the left from its default position (50):

# 0 - maximum left, 50 - default position, 100 - maximum right
"Violin/Arco/1": Pan = 40 

Decrease instrument final mixer volume from its default (100):

# default 100 (relative volume from 0 to 100)
"Violin/Arco/1": Volume = 80 

Apply "con sordino" articulation to the whole Violin track:

"Violin/Arco/1": InitTechnique = "con sord"

Disable random replacing of legato transitions with non-legato for Violin instrument:

# Frequency (in percent) when legato can be replaced with non-legato by moving note end to the left
"Violin/Arco/1": nonlegato_freq = 0 

Randomly replace the legato transitions with non-legato only when the note is longer than 0.6 seconds for the Violin instrument:

# Minimum note length (in ms) allowed to convert to nonlegato
"Violin/Arco/1": nonlegato_minlen = 600 

Disable gliss articulation for Violin instrument:

# Frequency of gliss articulation in percent
"Violin/Arco/1": gliss_freq = 0 

Allow gliss transition only for notes longer than 1.2 seconds

# Minimum note length that can have a gliss transition
"Violin/Arco/1": gliss_minlen = 1200 

Task configuration editor keyboard shortcuts

PC Key combination Mac Key combination Description
Ctrl-F Cmd-F Start searching
Ctrl-G Cmd-G Find next
Shift-Ctrl-G Shift-Cmd-G Find previous
Shift-Ctrl-F Cmd-Option-F Replace
Shift-Ctrl-R Shift-Cmd-Option-F Replace all
Alt-F Alt-F Persistent search (dialog doesn't autoclose, enter to find next, Shift-Enter to find previous)
F11 F11 Toggle full screen
Esc Esc Exit full screen