# A personal, VSL- and UACC-driven sound map



## ptram (Oct 6, 2018)

Hi,

One of the goals I’ve always tried to pursue is the standardization of my way of choosing sounds. Standardization means that I don’t have to look for sounds in endless lists, and can immediately choose what I’m looking for, whichever the sound library I’m using at the moment. It also means that I can replace libraries without much effort, if any.

With so many sounds, another concurrent goal is to keep everything inside the human scale. Having all the possible choices at disposal everytime means having to scroll through a muddied blob of data. I need context, and a shorter list (or small series of lists) that I can manage.

VSL has tried, at each generation of libraries, to create a series of standardized ‘matrices’, laying out groups of articulations in a series of standardized sets. There are standardized sets for basic articulations, for runs, for dynamics. Whether you are using a solo violin or an ophicleide, you deal with a functionally similar list of articulations.






Another company trying to standardize is Spitfire Audio, with a public standard called UACC. This is a list of 128 articulations grouped by type. The description is loose, so that you can adapt it to different types of sound libraries. A Nasty articulation can describe at the same time something in a flute or a cello.






Other developers are not so strict in the organization of their libraries. But I’m trying to see if I can somewhat adapt them to my personal schema.

I’ve probably found a way to let the VSL and Spitfire structures coexist in my personal list(s). This system unifies all the systems I’ve to deal with, can be compact, and can grow to include additional articulations needed for special situations.

When using Logic 10.4.x, the new Articulation Set system allows to create a list of articulations appearing in a particular order, independent from the progressive number of the articulation IDs. For example, I can start my list with an ID different than 1, then have an item corresponding to ID 1, then another one corresponding to ID 20.






Each articulation entry will match an UACC ID to a value corresponding to the library's standard. As a consequence, I’m free to organize any other standard according to my own standard, by using different Articulation Sets based on the same underlying references.






A table of articulations allows for quickly matching between UACC’s, VSL’s and my personal numbers and names, and with each of the libraries I will have to use. This is also a way to quickly find an articulation, either by browsing for lines in the table, of by using the search function of the spreadsheet software.






While this is only the “basic” set of articulations, I believe that the same method can be transposed to other sets, like runs or extended techniques. But this will be another project.

Paolo


----------



## ptram (Oct 19, 2018)

I've maybe finally found a satisfactory compromise. By using the VSL factory presets conceived for the Steinberg Expression Maps as a guide, I could reorganize and re-edit my own map. It should be detailed enough to allow a clear matching between different libraries.

For the ones interested in giving me some additional hints, I've attached a map, with the articulations sorted via UACC numbers (and consequent Logic ID's), or with my own names grouped by main families.

Paolo


----------



## babylonwaves (Oct 19, 2018)

ptram said:


> For the ones interested in giving me some additional hints, I've attached a map, with the articulations sorted via UACC numbers (and consequent Logic ID's), or with my own names grouped by main families.


great effort. I wish UACC wouldn't have been conceived with so much Spitfire in mind, but your pdf translates it well. Now align the key switches and you have something similar to what I'm trying to do


----------



## ptram (Oct 25, 2018)

Vibrato, non vibrato, natural… How to deal with these? A modern flute and violin usually play vibrato. A modern clarinet and baroque violin play non vibrato. How to deal with the defaults, in an universal map?

The UACC astutely calls them Generic and Alternative. But Dorico (with its Natural default articulation) and the VSL presets (with a fix sequence of vibrato and non vibrato cells) demand for a choice.

If the Natural articulation in Dorico, or the default articulation in Logic, has to call a default articulation, which one should it do? Go for the most common today (vibrato), and write (and hide) 'n.v.' where the alternative one is preferred?

I'm thinking to create a first, default cell in my universal preset map, where each instrument's preset has the most common articulation. Then, the usually sequence of articulations (vibrato, non vibrato, molto vibrato…) begins, starting from the second one.

Not elegant, but funcional. Is there a better, cleaner and more elegant way to deal with the different defaults?

One of the possible solutions is to place the 'Natural' articulation, in my presets, at the very end. A repository for a preferred sound. If Dorico always recalls 'Natural' when not knowing what to do, this may be the most elegant solution.






Paolo


----------



## ptram (Dec 11, 2018)

An update, to ask your opinion and suggestions before starting to make the actual VSL presets.

To recollect: I'm trying to create an universal map of articulations in VSL’s strings and winds instruments. This will be used as a fixed-scheme for all the presets. This way, I will be able to select all the VSL articulations with a single Expression Map (Dorico) or Articulation Set (Logic).

My map is inspired to the Expression Map created by VSL for its Strings libraries. There are more cells in my map, to allow even the more exoteric articulations. The included recorded repetitions and dynamics are only the basic, with the full set reserved to different, dedicated programs.

In the map, attacks are organized in matrices inside a program (here, the columns), type of sound/sustain in different cells on the X-axis (the rows). Selection of the matrices happens via the lowest MIDI octave, selection of the X-axis cells with the second lowest MIDI octave (no problems with the range of the contrabass instruments: only the 5-strings contrabass would require a separate map for the low-B, while the orchestral contrabass tuba ends at low-C).

Some matrices will feature two or more rows, selected via playing speed. For example, alternating slow and fast legato, staccato and spiccato, or the different repetition speeds. Slots in a cell (for example, for alternating cresc and dim) are selected with a dedicated CC (20).

Portamento and Glissando are offered as variations of Legato, and are included in different slots of the same cell. The DAW can either select one of the extremes (Legato or Portamento/Glissando), or gently xfade between them. Different speeds are mapped to different rows.

Mute articulations are considered a separate instrument, even if some basic articulation is allowed, if needed. They are just a different sound type.

The last column of the map is mostly used for “favorite” articulations, adapted according to the required performing style. For example, when playing Western classical music, this may be a “sus vib” for a flute or violin, or a “sus n.v.” for a clarinet or trombone.

I've tried to be as balanced as possible. As far as you move to the right and to the bottom, the more you will find a bit of anarchy. But in general I've tried to preserve an internal symmetry.

Any hints, before I start with the big work on the presets?

Paolo


----------



## ptram (Dec 17, 2018)

After further considerations, I've changed my plan again. I remade my universal VSL articulation table. The bundle of messages to select an articulation will be:

1) Program Change (matrix)
2a) Keyswitch Notes 0-11 (X-axis)
2b) Keyswitch Velocity (Y-axis); this will be alternated with playing speed

A manually inserted keyswitch will be the AB Switch, and a manually inserted CC20 will control xfade between slots a/b inside a cell.

Program Changes will be used to select matrices inside a program. The use of PCs, not overlapping playable notes, will not limit me to 12 matrices. I will therefore be able to leave each matrix be specialized on a particular type of sound production (staccato, sustain, tremolo, pre-recorded repetitions with dynamics…).

A first Keyswitch will only use the lowest MIDI octave, a range out of any instrument's range. This will select a column in the X-axis. Columns are made up of a first group of four controlling vibrato (vib, n.v., molto, progr); a second group with alternatively increasing/decreasing strenght (deep/pont, light/tasto, deeper/harsh, lighter/harmonics, even deeper/blast, even lighter/feathered), a column for accessory articulations (sfx), a last column for a preferred articulation in the row (for example, sus vib for flutes, n.v. for clarinets).

The Keyswitch Velocity will select the Y-axis, containing variations to the base one (like different trill intervals, dynamic durations). As an alternative, other matrices will use playing speed (for example, for automatically alternating between staccato and spiccato, or long/med/short portatos).

While I would have a third message available in Logic's bundle, I would prefer to leave selection of the AB Switch (crec/dim, up/down) to a manual control. However, since notation programs can send messages for dynamics, the AB Switch could be the third message in the bundle.

Selection of the a/b slot inside a cell will be manually controlled with a CC20 message, xfading between the slots (for vib/n.v., tasto-->normal, etc.).

This schema should cover all the wind and strings instruments.

Paolo


----------



## ptram (May 27, 2019)

I've gone ahead with my map of VSL articulations, remapped to UACC/Logic Articulation IDs.

And I could finally create an Articulation Set for my VLS Universal Preset, matching any other library following the same UACC-inspired map.

I really hope Apple will add groups to the articulation list…

Paolo


----------

