UPISketch Version 3.0 - Desktop: OSX / Windows

User manual / Guide d'utilisation

(14 Feb 2022)

User Manual

Video Tutorials

UPISketch is a sound composition tool, which is based on drawing: the user can sketch and design sound gestures by defining their melodic contour, as in the case of a conventional score. Pitches are, nevertheless, drawn directly at specific time points, without requiring any knowledge of solfege. UPISketch is intended to be simple and intuitive.
The main work area is a page, on which the user produces a composition by assembling different sound gestures.
The material of a gesture comprises an existing sound, which was either pre-recorded by the user or selected from the default database of sounds. We create a gesture by drawing directly on the page, which imposes a melodic contour to the sound source. It is therefore recommended that the basic material is made up of monophonic sounds of which the pitch is clearly defined, otherwise the results may be unpredictable.
Gestures created on the page can be processed in different ways: displaced in time, transposed, as well as stretched/compressed by adjusting the double vertical bar.



Description of functions / buttons :

Switch between general purpose buttons (Open, Save, Settings...) and tool buttons.

Select a gesture on the page, or a gesture or a source-sound in the lists on the left-side.
Can be used to reassign another source-sound to an already created gesture.

Draw a gesture from a selected sound.
This is a button with options : keep the mouse down until these pop up, then choose between pen and straight lines.
For straight lines , each click on the page adds one point, the line is finished by double-clicking for the last point.
    Horizontal lines can be achieved by pressing the shift key before adding a point.

Navigate in the page:
Dragging the mouse will pan.
Zooming is achieved by keeping CTRL key down while moving the mouse,
or simply with the mouse wheel if available.
On dragging rightwards, it will zoom.
On dragging leftwards, it will unzoom.

Delete the selected gesture. Double-click deletes all the page contents. (shortcut: backspace key)

Undo the last action.

Redo the last action.

Restore the default view from the first to the last sound.

Open a UPISketch project.

Save a UPISketch project.

Look for source sounds or gestures. Divided in three parts:
Factory Sounds,
User Sound, Gestures.

General considerations about created files:
UPISketch OSX and Windows creates files in your User's Documents directory.
To use your own sound files :
In the finder, you can populate the UPISketchDocuments subfolder, UserRecordedSounds, with these sound files.
Beware: if your UPISketch project uses one of these sounds, the sound will have to be kept in that place for proper reopening of the session.

Modify display settings:
Display :
- all the graphics, or naked (only the pitch curves, no gestures names)
- show / hide the grid

Units :
- Pitch: In english notation (C4 = C between bass and treble clefs), or in midics (60 = C4, 69 = A4)
, or in Hertz (69 = 440 Hz).
- Lowest and highest pitch and time that are displayed by default.
- How many vertical lines per second: sets the accuracy of the temporal grid.
- How many horizontal lines per octave: sets the accuracy of the pitch grid.

The settings page also includes the audio interface settings.

Export the whole page as a sound file.

Play controls (Play/Stop can also be triggered by the space bar).
Playing begins at the position of the movable start time indicator .
This playhead can be used to monitor the sound in real time.

Double-clicking on stop will rewind to the beginning (0 s.)

Record a sound, which is added to the user sound library.

Operations / manipulations


When a gesture is created on the page, it is added to the list of gestures on the left.
This place lists all the actions on the page and indicates their start time.
It allows you to rename the gestures.
When selecting a gesture, the page scroll to its position.
A play button allows to solo monitor a selected gesture, or to listen to a selected source-sound.


To create a group of gestures, in selection mode, double-click on the first gesture. Its color changes. To add more gestures to this group, click on the additional gestures. To indicate the end of the grouping operation, click on the page in an empty place. The group thus formed is then movable. To remove a single gesture from a group, double-click on that gesture, then click, and finally click outside.


To copy a gesture, hold down the ALT key by dragging the mouse from the gesture you want to copy.
The other possibility is to drag & drop the selected gesture from the list of gestures on the left to the page.
This last way can be applied to a group of gestures as well.


To change the envelope of a sound, i. e. its sound level, move or add points by clicking on the blue line. To access the editing of the curves of a gesture more easily when it is displayed mixed with others, select it first from the list on the left.


UPISketch supports VST3 and Audio Units technologies.
It can host plugins and control their parameters using curves drawn in the lower area of the page.
Plugin management: in the track window (accessible via the "Plugins / Show Tracks" menu),
you can organize the path that the sound takes through the plugins you have added.
Nota Bene: the default plugins can be useful for controlling volume and stereo localisation in global way.

To edit the parameter of a plugin using a curve :
1. Display the list of its parameters:

2. Select it in this list:

3. The curve is then displayed in the lower area of the UPISketch page, and can be modified (if you are in selection mode):
click on the curve to add a point, CTL+click to remove it.

Drawn gestures and plugins tracks :

By default, all gestures are assigned to track 1.
To assign gestures to another track, click in the empty space of this track to select it (it is then highlighted).
Select the gestures, CTL-click, and choose the option "Assign to the currently selected track" :

You can choose to listen or not and to visualize or not the gestures associated to a given track:


As UPISketch develops, new types of sound synthesis will be available.
In the area on the left of the page there are different tabs.
The first tab, "Sounds", is the first type of synthesis to be implemented in UPISketch.
It is a resynthesis based on samples and on the analysis of their fundamental pitch.
The second tab, "Synthesis", corresponds to other types of synthesis.
For the moment we have in the "Basic" folder, a simple oscillator with basic waveforms.
In the near future it will be possible to add your own functions from a mathematical expression,
until then the experienced user can try to modify the file "Expr.txt" by browsing the application package,
The expressions consider x as the phase between 0 and 2π
, and must give results between -1. and 1.
Les modifications sur les autres fichiers (Sine.txt etc.) seront sans effet.
Changes to other files (Sine.txt etc.) will have no effect.


The first type of automatic event generation to be implemented is based on cellular automatas.
It is currently an experimental feature.
Let us recall the principle of cellular automata: starting from a group of ordered cells containing values,
the automaton calculates a new sequence from rules based generally on the content of neighbouring cells.

The automata used here use the following rules:

Si(n) = Si -1(n + 1) - Si - 1(n) (Vieru automaton, subtractive)
For example, the sequence '1 5 8 2 5' in line i = 0, will give the following line (i = 1): '4 3 6 3'.
(Differences are currently calculated according to a modulo 12, which explains that 2 - 8 = 6)

Si(n) = Si -1(n + 1) + Si - 1(n) (Ledrappier automaton, additive)
For example, the sequence '1 5 8 2 5' will give the following line: '6 13 10 7'.

A sequence of numbers resulting from the calculation of the automaton is interpreted as a sequence of semitone intervals, applied to a starting note, creating a melody.
It is possible to calculate the antecedents via the automaton. For example, line -1 is the line which by calculation will give line 0.
In the case of the antecedents calculation, since one of the values is missing due to a greater number of elements, a value is specified at the location of our choice.

Another function, intended to vary the temporal entries of the elements of the suite, is accessible at the bottom of the "Automaton Settings" window: it exploits the properties of the Sturmian suites. An example of a Sturmian suite is the Fibonacci words.
Quoting Wikipedia :
"Let S0 be "0" and S1 be "01". Now Sn = Sn-1Sn-2 (the concatenation of the previous sequence and the one before that).".

More precisely, here are the controls available via the "Automaton Settings" window:
All those settings can be saved in a separate document (UPISketch menu/Automata/Save Automata Settings).

operation type :
    choice between subtractive and additive.
suite type:
    finite gives the sequence once, periodic gives the sequence of intervals in a loop, the size of which is defined by "how many elements".
    exceeding the allowed registers is managed by a mirror effect.
enter continued :
    enter a sequence of numbers which will be processed by the automaton.
value constraint :
    (is used in the case of antecedent calculation (choosen line < 0))
    specifies a value constraint for the cell located in the column defined by "column constraint".
column constraint :
    specifies the column in which the desired value is located in order to completely define the antecedent.
starting note :
    note from which will be applied the sequence of intervals (60 = C3)
duration of each event :
    - in the case of the 'constant' option: duration in seconds of each event generated
    - in the case of the 'sturmian' option: basic duration in seconds, multiplied by the number of repetitions in the values of the sturmian sequence.
choosen line :
    choice of the line resulting from the automaton calculation.
    It is possible to obtain both the successors and the antecedents ("back in time").
how many elements :
    number of elements desired (in the case of the 'periodic' option).
    this box has no effect in the case of the 'finite' option.
first (and second) seed :
    Allows to define the words S0 and S1, and thus the subsequent iterations.
    The default setting corresponds to the Fibonacci word, with S0 = 0, S1 = 01.
start time :
    Defines the time from which the height sequence will be inserted.
constant / sturmian :
    defines the type of temporal deployment of the sequence.

 Copyright (c) 2017-2022 Centre Iannis Xenakis

Manuel d’utilisation

Tutoriels Vidéo

UPISketch est un programme d’aide à  la composition sonore, par le dessin.
Le principe de base est de pouvoir dessiner des gestes sonores, en définissant leur contour mélodique, comme pour une partition classique.
La différence réside dans le fait que les hauteurs sont directement dessinées, sans recourir aux symboles du solfège.

Il se veut simple d’utilisation.
La zone de travail principale est la page. C’est là que la composition est réalisée, par l’agencement des différents gestes sonores qui vont la constituer.
Un geste utilise comme matériau un son existant, soit enregistré par l’utilisateur, soit choisi dans la librairie de sons par défaut.
Pour créer un geste, on utilise
le mode dessin, qui permet d’imposer le contour mélodique au son-source.
Il est recommandé d’utiliser comme matériau de base des sons monophoniques, dont la hauteur est clairement définie.
Dans le cas contraire, les résultats seront imprédictibles.

Les gestes créés sur la page peuvent être manipulés : déplacés dans le temps, transposés, et on peut les étirer ou les raccourcir en manipulant la barre verticale située à  leur droite.



Description des fonctions / boutons :

Permet de basculer entre les boutons de menu général (Ouvrir, Enregistrer, Réglages) et les boutons-outils.

Permet de sélectionner un geste dans la page, ou un geste ou un son-source dans les listes de gauche.
Peut être utilisé pour réassigner un son-source à un geste ou groupe de gestes déjà créé.

Dessine un geste à partir d'un son sélectionné.
Il s'agit d'un bouton avec des options : maintenez la souris enfoncée jusqu'à ce qu'elles apparaissent, puis choisissez entre le stylo et les lignes droites.
Pour les lignes droites
, chaque clic sur la page ajoute un point, la ligne est terminée en double-cliquant sur le dernier point.
    Les lignes horizontales peuvent être obtenues en appuyant sur la touche "Maj" avant d'ajouter un point.

Navigation dans la page :
La translation s'effectue avec le glissé de la souris.
Le zoom, en glissant avec le bouton CTRL enfoncé,
ou simplement avec la molette de la souris si disponible.
Agrandissement en glissant vers la droite.
Rétrécissement en glissant vers la gauche.

Supprime le geste sélectionné. Un double-clic efface tout le contenu de la page. (raccourci clavier : touche "retour arrière")

Annule la dernière action.

Rétablit la dernière action.

Rétablit la vue par défaut (ensemble des sons visibles du premier au dernier)

Ouvrir un projet UPISketch.

Enregistrer un projet UPISketch.

Recherche de sons sources, divisé en trois sections :
Factory Sounds (sons d'usine),
User Sounds (sons utilisateur), User Recorded Sounds (sons enregistrés avec UPISketch).

Considérations générales à  propos des fichiers :
UPISketch OSX et Windows créent leur fichiers dans votre dossier Documents.
Pour utiliser vos propres sons :
Depuis le finder, vous pouvez ajouter des sons dans le dossier UserSounds, qui se trouve dans UPISketchDocuments.
Attention : si votre projet UPISketch utilise l'un de ces sons, celui-ci devra être conservé au même endroit afin d'assurer une réouverture correcte du projet.

Permet de modifier les réglages d’affichage :
Options d'affichage :
- tous les graphismes, ou nu (seulement les courbes de hauteur, pas de noms pour les gestes)
- afficher ou non la grille
Unités : en notation anglo-saxonne (C4 = Do entre clé de sol et clé de fa), ou en midics (60 = C4, 69 = A4 (= La3 en France)), ou en Hertz (69 = 440 Hz).
Hauteurs minimale et maximale affichées par défaut.
Domaine temporel affiché par défaut.
Nombre de lignes verticales par secondes : permet de régler la précision des repôres temporels.
Nombre de lignes horizontales par octave : permet de régler la précision des repôres de hauteur.

Les contrôles affichés comprennent aussi des réglages pour l'interface son.

Permet d’exporter la totalité de la page sous la forme d’un fichier son.

Contrôles de lecture (Lecture et arrêt peuvent aussi être activés par la barre d'espace).
La lecture commence à  l’emplacement du curseur de  démarrage, positionnable .
Cette tête de lecture permet d'écouter en temps réel le résultat.
Un double-clic sur stop fait revenir le curseur au début (0 s.)

Enregistre un son, qui se rajoute à  la liste des sons créés par l’utilisateur.

Opérations / manipulations


Lorsqu'un geste est créé sur la page, il s'ajoute à la liste de gestes située à gauche.
Cette liste répertorie tous les gestes de la page en indiquant leur date de départ.
Elle permet de renommer les gestes.
Lorsqu'on sélectionne un geste dans cette liste, la page se recentre sur la position de ce geste.
Un bouton play permet d'écouter en solo un geste sélectionné, ou un son-source sélectionné.


Pour créer un groupe de gestes, en mode sélection, double-cliquer sur le premier geste. Sa couleur change. Pour ajouter d'autres gestes à ce groupe, cliquer sur les gestes supplémentaires. Pour signifier la fin de l'opération de groupage, cliquer dans la page en dehors de tout geste. Le groupe ainsi formé est alors déplaçable. Pour enlever un seul geste d'un groupe, double-cliquer sur ce geste, puis cliquer, et enfin cliquer en dehors.


Pour copier un geste, maintenir la touche ALT appuyée en faisant coulisser la souris depuis le geste que l'on souhaite copier.
L'autre possibilité est de glisser-déposer le geste sélectionné dans la liste de gestes à gauche, vers la page.
Cette dernière manière permet aussi de dupliquer un groupe de gestes.


Pour modifier l'enveloppe d'un son, c'est-à-dire son niveau sonore, déplacer ou ajouter des points en cliquant sur la ligne bleue. Pour accéder plus facilement à l'édition des courbes d'un geste lorsqu'il s'affiche mélangé à d'autres, le sélectionner d'abord dans la liste de gauche.


UPISketch prend en charge les technologies VST3 et Audio Units. Il peut accueillir des plugins et contrôler leurs paramètres à l'aide de courbes situées dans la zone inférieure de la page.
Gestion des plugins : dans la fenêtre de pistes (accessible via le menu "Plugins / Afficher les Pistes", on organise le chemin que prend le son, traversant les plugins qu'on a ajoutés.
Note Bene : les plugins par défaut peuvent être utiles pour contrôler le volume et la localisation stéréo de manière globale.

Pour éditer à l'aide d'une courbe le paramètre d'un plugin :

1. Afficher la liste des paramètres dont il est doté :

2. Le sélectionner dans cette liste :

3. La courbe s'affiche alors dans la zone inférieure de la page UPISketch, et peut être modifiée (si l'on est en mode sélection
) :
un clic sur la courbe pour ajouter un point, un CTL+clic pour le supprimer.

Gestes dessinés et pistes de plugins : 

Par défaut, tous les gestes sont assignés à la piste 1.
Pour assigner des gestes à une autre piste, cliquer dans l'espace vide de cette piste pour la sélectionner (elle est alors en surbrillance).
Sélectionner les gestes, CTL-clic, et choisir l'option "Assigner à la piste actuellement sélectionnée" :

On peut choisir d'écouter ou non et de visualiser ou non les gestes associés à une piste donnée :


Au fur et à mesure du développement d'UPISketch, de nouveaux types de synthèse sonore seront disponibles.
Dans la zone à gauche de la page se trouvent différents onglets.
Au premier onglet, "Sons", correspond le premier type de synthèse à avoir été mis en place dans UPISketch.
Il s'agit d'une resynthèse basée sur des échantillons et sur l'analyse de leur hauteur fondamentale.
Au deuxième onglet, "Synthèse", correspondent d'autres types de synthèse.
Nous disposons pour l'instant dans le dossier "Basic", d'un simple oscillateur avec des formes d'ondes basiques.
Il sera possible dans un futur proche d'ajouter ses propres fonctions à partir d'une expression mathématique.
D'ici-là, l'utilisateur·trice expérimenté·e pourra tenter des modifications du fichier "Expr.txt", en naviguant dans le paquet de l'application,
Les expressions considèrent x comme la phase entre 0 et 2π, et doivent donner des résultats entre -1. et 1.
Les modifications sur les autres fichiers (Sine.txt etc.) seront sans effet.


Le premier type de génération automatique d'évènements à être implémenté se base sur les automates cellulaires.
Il s'agit pour le moment d'une fonctionnalité expérimentale.
Rappelons le principe des automates cellulaires : partant d'un groupe de cellules ordonnées contenant des valeurs,
l'automate calcule une nouvelle suite à partir de règles basées généralement sur le contenu des cellules voisines.

Les automates utilisés ici ont pour règles :

Si(n) =
Si -1(n + 1) - Si - 1(n)       (Automate de Vieru, soustractif)
Par exemple la suite '1 5 8 2 5' à la ligne i = 0, donnera à la ligne suivante (i = 1) : '4 3 6 3'
(Les différences sont calculées actuellement selon un modulo 12, ce qui explique que 2 - 8 = 6)

Si(n) =
Si -1(n + 1) + Si - 1(n)       (Automate de Ledrappier, additif)
Par exemple la suite '1 5 8 2 5' donnera à la ligne suivante : '6 13 10 7'

Une suite de nombres résultant du calcul de l'automate est interprétée comme une suite d'intervalles en demi-tons, appliquée à une note de départ, créant ainsi une mélodie.
Il est possible de calculer les antécédents via l'automate. Par exemple la ligne -1 est celle qui par calcul donnera la ligne 0.
Dans le cas du calcul d'antécédents, étant donné qu'une des valeurs est manquante (nombre d'éléments plus grand), on spécifie une valeur à l'emplacement de notre choix.

Une autre fonction, destinée à varier les entrées temporelles des éléments de la suite, se trouve accessible en bas de la fenêtre "Automaton Settings" : elle exploite les propriétés des suites sturmiennes. Un exemple de suite sturmienne est celle des mots de Fibonacci.
Citant Wikipedia :
"La suite (Sn) des mots de Fibonacci, notamment, est définie par S1 = 1 et S2 = 0, et pour n > 2, par :
Sn= Sn-1Sn-2 (le produit est la concaténation des deux précédents termes)."

Plus précisément, voici les contrôles disponibles via la fenêtre "Automaton Settings" :
Tous ces réglages peuvent être enregistrés dans un document séparé, via le menu UPISketch / Automata / Save Automata Settings.

operation type :
    choix entre soustractif et additif.
suite type :
    finite donne une seule fois la séquence, periodic donne la séquence d'intervalles en boucle, dont la taille et définie par 
    "how many elements".
    le dépassement des registres autorisés est géré par un effet de miroir.
enter suite :
    entre une suite de nombres qui sera traitée par l'automate
value constraint :
    (s'utilise dans le cas du calcul d'antécédent (choosen line < 0))
    spécifie une contrainte de valeur pour la cellule située à la colonne définie par "column constraint".
column constraint :
    spécifie la colonne à laquelle se trouve la valeur souhaitée afin de définir complètement l'antécédent.
starting note :
    note à partir de laquelle sera appliquée la suite d'intervalles (60 = C3)
duration of each event :
    - dans le cas de l'option 'constant' : durée en secondes de chaque évènement généré
    - dans le cas de l'option 'sturmian' : durée de base en secondes, multipliée par le nombre de répétition dans les valeurs de la suite sturmienne.
choosen line :
    choix de la ligne résultant du calcul des automates.
    possibilité d'obtenir ainsi,
aussi bien les successeurs que les antécédents ("remontée dans le temps").
how many elements :
    nombre d'éléments souhaités (dans le cas de l'option 'periodic').
    cette case n'a pas d'effet dans le cas de l'option 'finite'.
first (and second) seed :
Permet de définir les mots S2 et S3, et ainsi les itérations ultérieures.
    Le réglage par défaut correspond au mot de Fibonacci, avec S1 = 1, S2 = 0, S3 = 01
start time :
    définit le moment à partir duquel la suite de hauteurs va être insérée.
constant / sturmian :
    définit le type de déploiement temporel de la suite.

 Copyright (c) 2017-2022 Centre Iannis Xenakis