Currently all Artinfuser Studio servers are in maintenance mode. I did not get enough patrons to continue supporting rendering music in this project.
Artinfuser Studio uses multiple algorithms to adapt MIDI files to virtual instruments.
Short notes (shorter than 400 ms by default) are converted to staccato articulations if the are not slurred and do not have tremolo. Staccato dynamics is usually decreased compared to arco articulations. In some libraries staccato algorithm needs a different delay compared to other articulations - it is applied.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Auto staccato | stac_maxlen | Set maximum note length which will be converted to staccato articulation. |
Staccato dyn. range | stac_dyn_range | Staccato dynamics will be mapped inside this range. |
Staccato attenuation | stac_db | Decrease staccato volume by this value. |
Pizzicato articulation is automatically applied only when pizz technique is specified in notation editor. Pizzicato dynamics is usually decreased compared to arco articulations. In some libraries pizzicato algorithm needs a different delay compared to other articulations - it is applied.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Pizz dyn. range | pizz_dyn_range | Pizzicato dynamics will be mapped inside this range. |
Pizz attenuation | pizz_db | Decrease pizzicato volume by this value. |
If a virtual instrument supports separate tremolo samples, they can be selected by specifying tremolo technique in notation editor. Some notation editors export tremolo as short repeating notes. Artinfuser Studio detects if note repeats more than two times with length less than 100 ms each and converts it into tremolo articulation (these parameters can be changed). Tremolo dynamics is usually decreased compared to arco articulations. Same algorithm is used for woodwinds to trigger flutter tongue.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Auto flutter tongue | trem_maxlen | Maximum length of note that can be converted to tremolo if repeated. |
Flutter tongue attenuation | trem_db | Decrease flutter tongue volume by this value. |
Flutter tongue dyn. range | trem_dyn_range | Flutter tongue dynamics will be mapped inside this range. |
Auto tremolo | trem_maxlen | Maximum length of note that can be converted to tremolo if repeated. |
Tremolo attenuation | trem_db | Decrease tremolo volume by this value. |
Tremolo dyn. range | trem_dyn_range | Tremolo dynamics will be mapped inside this range. |
If notes are connected with a slur in notation editor, Legato transition is not applied if previous note is too short for virtual instrument to play legato transition. User can choose to connect all adjacent sustain notes with slurs automatically in Artinfuser Studio instead of creating slurs in notation editor. In some libraries legato transition time depends on slurred note velocity - it is calculated and applied automatically.
If two notes have a legato transition between them and they form a short interval (major or minor 2nd by default), finger legato will be chosen if there are not too many finger legato transitions in succession (not more than 2 by default).
Glissando articulations can be added randomly to long notes connected with legato transitions.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Auto gliss | gliss_minlen | Set minimum second note length in legato transition to convert to glissando. |
Auto gliss probability | gliss_freq | Probability of legato transition being replaced with glissando. |
Split portamento articulations can be added randomly to long notes connected with legato transitions.
Adjacent notes can be converted automatically to legato transitions. Usually this is controlled at the level of file for all instruments, but you can override how many transitions will be converted to legato for each instrument.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
- | auto_legato | This parameter will override AutoLegato parameter of the whole file. Randomly adds slurs to adjacent notes if slurs were not specified in notation editor. Pay attention that stepwise motion and shorter leaps get greater probability to have a slur, while longer leaps have less chances to get a slur automatically. |
If same note is repeated (retriggered), one of two articulations is selected randomly, considering note length: rebow or nonlegato.
User can select which articulations are preffered: soft or harsh - by changing attack dynamics range. Note accents will not get accents outside of this range.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Accent range | acc_range | Note accents will be mapped inside this range. |
Only in rare cases composers add dynamics hairpins to score when a long note has to start with crescendo or end with diminuendo. Yet such notes are usually performed by musicians with crescendo and diminuendo.
Artinfuser Studio can automatically add:
User can control:
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Minimum note length | cresc_mindur | Minimum note length that can start with automatic crescendo. |
Starting cresc. dynamics | cresc_mul | Starting dynamics of crescendo compared to target dynamics of the note. |
Cresc. length | cresc_len | Length of automatic crescendo compared to the note length. |
Minimum note length | dim_mindur | Minimum note length that can finish with automatic diminuendo. |
Ending dim. dynamics | dim_mul | Ending dynamics of diminuendo compared to initial dynamics of the note. |
Dim. length | dim_len | Length of automatic diminuendo compared to the note length. |
Long notes can sound too static in some music styles if their dynamics does not change. Artinfuser Studio can add diminuendo and crescendo inside note automatically. If note also has other dynamics changes (e.g. automatic crescendo start or diminuendo ending) - then diminuendo-crescendo inside note will take time that is left with static dynamics.
Diminuendo-crescendo inside note (CDIN) can be added randomly. You can change the following parameters:
Diminuendo dynamics is selected randomly between initial note dynamics and dynamics selected by user.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Probability | rbell_freq | Probability of automatic diminuendo inside a long note. |
Note length | rbell_dur | Minimum note length that can have an automatic diminuendo inside. Maximum note length is used to select diminuendo dynamics (see docs). |
Dim. dynamics | rbell_mul | Percent of target dynamics of the note. Maximum diminuendo dynamics will be used for shorter notes and minimum - for longer notes (change minimum and maximum note length values to tweak diminuendo dynamics selection). This ensures that longer notes can have greater change in dynamics. |
Position inside note | rbell_pos | Position range of lowest dynamics of diminuendo-crescendo shape - position is selected randomly inside this range. |
Vibrato adds expressiveness to music performance. Artinfuser Studio can add vibrato automatically. User can control the following parameters of vibrato intensity separately for short and long notes:
User can control the following parameters of vibrato speed separately for short and long notes:
Short notes:
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Note length | vib_bell_dur | Notes having length within this range will be considered short. Vibrato parameters for short notes will be applied to them. |
Peak intensity | vib_sbell | Peak vibrato intensity is selected based on dynamics inside this range (highest dynamics results in maximum value inside this range). |
Peak speed | vibf_sbell | Peak vibrato speed is selected based on dynamics inside this range (highest dynamics results in maximum value inside this range). |
Intensity peak position | vib_sbell_top | Position of vibrato intensity peak inside note is selected randomly within this range. |
Speed peak position | vibf_sbell_top | Position of vibrato speed peak inside note is selected randomly within this range. |
Intensity start shape | vib_sbell_exp | Sets shape of left part of vibrato intensity curve for note. |
Intensity end shape | vib_sbell_rexp | Sets shape of right part of vibrato intensity curve for note. |
Speed start shape | vibf_sbell_exp | Sets shape of left part of vibrato speed curve for note. |
Speed end shape | vibf_sbell_rexp | Sets shape of right part of vibrato speed curve for note. |
Longer notes:
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Peak intensity | vib_bell | Peak vibrato intensity is selected based on dynamics inside this range (highest dynamics results in maximum value inside this range). |
Peak speed | vibf_bell | Peak vibrato speed is selected based on dynamics inside this range (highest dynamics results in maximum value inside this range). |
Intensity peak position | vib_bell_top | Position of vibrato intensity peak inside note is selected randomly within this range. |
Speed peak position | vibf_bell_top | Position of vibrato speed peak inside note is selected randomly within this range. |
Intensity start shape | vib_bell_exp | Sets shape of left part of vibrato intensity curve for note. |
Intensity end shape | vib_bell_rexp | Sets shape of right part of vibrato intensity curve for note. |
Speed start shape | vibf_bell_exp | Sets shape of left part of vibrato speed curve for note. |
Speed end shape | vibf_bell_rexp | Sets shape of right part of vibrato speed curve for note. |
If music sounds too mechanical, you can apply a small randomization amount to the following parameters:
Example of smooth random function (47 seconds of tempo randomization with period about 6 seconds). Red line shows initial tempo:
In some situations this can make sound more realistic. Avoid overusing randomization technique, because it is not a natural source of realism and can lead to strange results. I would recommend to decrease any randomization coefficient two times from value where you start to hear randomness. When same note is repeated, its velocity gets higher randomization coefficient to avoid machinegun effect.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Random accent | rnd_vel | Controls how much of initial note accent can be randomized. |
Random dynamics | rnd_dyn | Controls how much of initial note dynamics can be randomized. |
Random dynamics slowness | rnd_dyn_slow | Controls how fast random dynamics function changes. Higher values create slower changing random dynamics. |
Random vibrato intensity | rnd_vib | Controls how much of note vibrato is randomized. |
Random vibrato intensity slowness | rnd_vib_slow | Controls how fast random vibrato intensity function changes. Higher values create slower changing random vibrato intensity. |
Random vibrato speed | rnd_vibf | Controls how much of note vibrato speed is randomized |
Random vibrato speed slowness | rnd_vibf_slow | Controls how fast random vibrato speed function changes. Higher values create slower changing random vibrato speed. |
Random start | rand_start | Controls maximum random note start shift compared to note length. |
Random start limit | rand_start_max | Absolute maximum random note start shift in ms. |
Random end | rand_end | Controls maximum random note end shift compared to note length. |
Random end limit | rand_end_max | Absolute maximum random note end shift in ms. |
Artinfuser Studio can automatically add random note endings for brass instruments, including:
For each note ending type user can set probability. Ending is selected randomly only if note has enough length.
Parameter name in web interface | Parameter name in config | Comment |
---|---|---|
Short fall probability | end_sfl_freq | Probability of note to have a short fall ending if its length is enough. |
Vibrato probability | end_vib_freq | Probability of note to have a vibrato ending if its length is enough. |
Alternative vibrato probability | end_vib2_freq | Probability of note to have an alternative vibrato ending if its length is enough. |
Pitch bend down probability | end_pbd_freq | Probability of note to have a pitch bend down ending if its length is enough. |
Length groups algorithm groups notes into groups of 2, 3 and 4 notes. Group size is selected randomly each time a previous group ended. By default length of all notes in group is increased by 70 ms except for last note. Length of last note is decreased by 100 ms. This approach makes uniform rhythms sound more live.
Artinfuser Studio automatically detects situations, when note start corrections result in overlapping notes, that are not intended to have legato transition between them. These situations are fixed by moving note endings to the left.
You can find more algorithm parameters in instrument configs