Getting Started

Download

Download the latest Kiwi application for your operating system and the documentation from the page. You'll find a version for each operating system, a list of help patches that describes the objects' behaviour and a set of tutorials guiding through creating certain audio processing.

Compatibility

Kiwi is compatible with the three main operating system.

  • Macos : version 10.7 and later.
  • Windows : windows 7 and later.
  • Linus : tested with ubuntu 14.04

Installing

Once download is complete, the corresponding archive shall be extracted by double clicking on it. A Kiwi folder containing the application is then created. On macos and linux copy the application to your app folder (Application folder on Mac, /usr/bin on linux). Windows users may execute the installer.

Lauching Kiwi

When Kiwi is executed three main windows appear : The Document Browser, the Beacon Dispatcher and Kiwi's console.

The menu bar appears on top of your screen or as a header of Kiwi's console on windows.

Signing up

There is two options to connect to Kiwi's server: either create a user account or use an already created account. To create an account, click on 'Register' under 'Account' menu. A register window appears. Enter your username, your email adress and your passowrd. After clicking the register button the user receives a email containing a temporary link enabling him to validate his account creation.

To connect to an existing user account, click on login in the menu 'Account'. A login window shows up. Enter your email address or username and your password. If you forgot your password, you can reset it using your email address by clicking on the button 'Forgot password'.

First patch

At this point, you can either join a shared patch using the Document Browser window or open a local patch. In this section we will demonstrate how to open and manipulate a local patch. Instructions on how to collaborate will be given later.

Open the patch first-patch.kiwi provided in the documentation folder. If you didn't download the documentation yet, you can find it on this page.

As you can see, the patch is a set of objects each one carrying out an operation. Data either control or signal data is sent between objects using links. Grey connections are used to send messages (numbers, strings, lists, bang ect...) whereas green connections send signals from top to bottom.

This first patch is a generator of sound (synthesis) where the top-left part is the generator. The top-right is used to trigger a gain envelope. The signal is then sent to a master gain control and the dac~ object which represents the audio output of the patch.

A patch can either be in mode edition or in mode lock. In edition mode objects and links can be added, removed or edited. In mode lock, graphical objects (the gain slider is graphical is an example) are now enabled and can be manipulated to generate different sounds. To switch between mode lock and mode edition either click on the lock button or press Cmd + E (Ctrl + E for linux or windows users).

The audio processing is by default disabled, to put the audio on click on the speaker icon on the top left part of the patch .

Once you have locked the patch and started the audio processing you can increase the gain using the "gain" slider, you can generate the sound by clicking on the "envelope" message object (below "envelope" comment) and adjust the frequency of the generated sound by dragging the number object which controls the frequency.

Collaborate

In this section we will describe how one can join a patch and collaborate with other users.

To collaborate with others one may use the document browser and open a document that is being edited by another collaborator. There is no chatting solution integrated in Kiwi's software but you can use another chatting software to meet up and speak while working together.

As you can see the document displays a list of documents accessible by anyone. Downloading, deleting, uploading, renaming, duplicating a patches is enabled by right clicking on the document browser. Sorting documents using different criteria is also possible.

Double click on a patch to start collaborating.

Once you have join the document you can click on the top left part to show users currently editing or using the patch. Objects currently selected by other users are hilighted in orange whereas your own selection is shown in blue.

You can now edit and/or play the patch as you will with others.

Objects List

Help patches

A list of help patches describing how each object works is provided in the documentation folder. If you didn't download the documentation yet, you can find it on this page. Sometimes help patches gather several objects that are functionally linked, for instance gate and switch or gate~ and switch~.

List of objects

Object Alias Description
line~ Generate an audio ramp signal
noise~ A white noise generator
sah~ Samples and holds an input signal
hub Send message to other users
send s Send message to matching receive object
mtof Convert midi notes to frequencies
number~ Display audio samples values
number f Display a nuumber
select Ouput bang if receive matching input
snapshot~ Ouput sample signal values
random Ouput random number in a uniform distribution
unpack Access elements in a list
pack Create and outputs a list of messages
comment c Add a comment to the patch
!=~ Signal inequality operator
==~ Signal equality operator
>=~ Signal superior operator
>~ Signal strict superior operator
<=~ Signal inferior operator
<~ Signal strict inferior operator
/~ Divide two signals
-~ Substract two signals
% Compute the modulo of number in desired basis
pow Compute exponentiation of a number
== Equality operator
!= Inequality operator
>= Superior operator
> Strict superior operator
<= Inferior operator
< Strict inferior operator
/ Compute the division of two numbers
- Compute the substraction of two numbers
message Send messages or list of messages
slider Graphical slider sending values between 0 and 1
toggle A switch button
bang Send a bang message
meter~ A peak amplitude vu meter
trigger t Trigger events based on received data
newbox Empty new box
errorbox Error box
+ Add two numbers
* Multiply two numbers
print Print messages into Kiwi console
receive r Receive messages from a sender bound to the same name
loadmess Output arguments as message when the patch is loaded
delay Delay messages as bang
pipe Delay any message
metro Output bang at regular time interval
adc~ Receive audio signals from inputs or external devices
dac~ Send audio signals to outputs or external devices
osc~ A cosine oscillator
phasor~ Generate a sawtooth signal
*~ Multiply two signals
+~ Add two signals
sig~ Convert numbers into audio signals
delaysimple~ Simple variable delay line with optional feedback value
scale Convert a number from one range into another range
gate Route message to selected output
switch Output message receive in selected inlet
gate~ Route received signal to selected output
switch~ Ouput signal received in selected inlet
clip Clip a number between a maximum and a minimum value
clip~ Clip a signal between a maximum and a minimum value
float Store a float value
sf.play~ Play an audio file from disk
sf.record~ Record an audio file on disk

Tutorials

A set of tutorials is provided in the documentation folder. If you didn't download the documentation yet, you can find it on this page. Each tutorial aims at taking you through the creation of a specific audio processing or exploring a certain aspect of Kiwi software.

Available tutorials:

  • first-patch
  • mooc
    1. simple delay line
    2. play and record sound files
    3. chowning FM synthesis
    4. risset’s bell
    5. granular on a delay line
    6. from Stockhausen’s Kontakte
  • others
    • flanger
    • sound generators gen01
    • sound generators gen02
    • sound generators gen03
    • sound generators gen04
    • simple pitchshifter
    • overlapped pitchshifter

Premiers pas

Téléchargement

Le dernière version de l'application Kiwi et sa documentation sont disponibles sur cette page. On y trouve une version pour chaque système d'exploitation, une liste de patchs d'aide qui montrent le comportement des objets, et un ensemble de tutoriaux pour guider le lecteur dans la création de certains traitements audionumériques temps réel.

Compatibilité

Kiwi est compatible avec les trois systèmes d'exploitation principaux :

  • MacOS : version 10.7 et ultérieures.
  • Windows : windows 7 et ultérieures.
  • Linux : la version a été testé avec ubuntu 14.04

Installation

Une fois le téléchargement effectué, l'archive correspondante est extraite par un double-clic sur l'icône. Un dossier Kiwi contenant l'application est alors créé. Sur MacOS et Linux, il faut copier l'application vers le dossier contenant les applications (Applications sur MacOS, /usr/bin sur Linux). Sous Windows, il faut exécuter l'installeur.

Lancement de Kiwi

Quand Kiwi est lancé, trois fenêtres principales apparaissent : le Document Browser, le Beacon Dispatcher et la console Kiwi.

La barre des menus apparaît en haut de l'écran ou comme entête de la console Kiwi sur Windows.

Connexion

Il y a deux manières de se connecter au serveur Kiwi : soit en créant un compte utilisateur, soit en utilisant un compte déjà créé. Pour créer un compte, il faut cliquer sur 'Register' dans le menu 'Account'. Une fenêtre d'enregistrement apparaît. Il faut entrer son nom d'utilisateur (user name), son adresse email et son mot de passe. Après avoir cliqué sur le bouton 'register', l'utilisateur reçoit un email contenant un lien temporaire permettant de valider la création de compte.

Pour se connecter à un compte utilisateur existant, il faut cliquer sur 'login' dans le menu 'Account'. Une fenêtre de connexion apparaît. Il faut entrer son adresse email ou son nom d'utilisateur (user name) et son mot de passe. En cas d'oubli de son mot de passe, il est possible de le réinitialiser en utilisant son adresse email, en cliquant sur le bouton 'Forgot password'.

Premier patch

A ce point, il est soit possible de rejoindre un patch partagé en utilisant la fenêtre du Document Browser ou d'ouvrir un patch local. Dans cette section, nous montrerons comment ouvrir et manipuler un patch local. Les indications sur les manières de collaborer seront données un peu plus loin dans cette documentation.

Ouvrez le patch first-patch.kiwi disponible dans le dossier de documentation. Si vous n'avez pas encore la documentation, vous pouvez la télécharger sur cette page.

Comme on peut le voir, un patch est un ensemble d'objets, chacun exécutant une opération. Les données, soit de contrôle, soit des signaux, sont envoyées entre les objets par les connexions. Les connexions en gris sont utilisées pour envoyer des messages (nombres, chaînes de caractères, listes, bangs, etc.) tandis que les connexions en vert transportent les signaux de haut en bas.

Le premier patch est un générateur de son (synthèse) : la partie en haut à gauche est le générateur.La partie en haut à droite est utilisée pour déclencher une enveloppe d'amplitude. Le signal est ensuite envoyé vers un contrôle de gain maître et l'objet dac~ qui représente la sortie audio du patch.

Un patch peut soit être en mode édition soit en mode exécution (bloqué). En mode exécution (bloqué), les objets graphiques (le potentiomètre de gain est un exemple d'objet graphique) sont actifs et peuvent être manipulés pour générer différents sons. Pour basculer du mode exécution (bloqué) au mode édition, il faut soit cliquer sur le bouton lock

ou enfoncert les touches Cmd + E (Ctrl + E for linux or windows users).

Le traitement audio temps réel est par défaut désactivé. Pour allumer l'audio, il faut cliquer sur l'icône de haut-parleur en haut à gauche du patch .

Une fois le patch en mode exécution et l'audio allumé, vous pouvez augmenter le gain en utilisant le potentiomètre "gain"; vous pouvez générer le son en cliquant sur l'objet-message "enveloppe" (en-dessous du commentaire "enveloppe") et ajuster la fréquence du son engendré par l'objet-nombre qui contrôle la fréquence (par un "drag" à la souris).

Collaboration

Dans cette section, nous décrivons comment il est possible de rejoindre un patch et de collaborer avec d'autres utilisateurs.

Pour collaborer avec les autres utilisateurs, il est possible d'utiliser le "document browser" et d'ouvrir un patch qui est édité par une autre personne. Il n'y a pas de solution de "chat" dans Kiwi, mais on peut utiliser n'importe quel autre logiciel de "chat" pour vous retrouver et échanger tout en travaillant ensemble.

Comme on peut le constater, le "document browser" présente une liste de documents accessible par tout le monde. Télécharger, remonter vers le serveur, renommer, supprimer, dupliquer un patch est possible par un clic droit sur le "document browser". Il est également possible de trier des documents selon différents critères.

Pour commencer à collaborer, double-cliquer sur un patch.

Une fois que l'on a rejoint le document, on peut cliquer en haut à gauche pour voir les utilisateurs qui travaillent au même moment sur le patch, en édition ou en exécution. Les objets sélectionnés par les autres utilisateurs sont surlignés en orange, tandis que la sélection personnelle est montrée en bleu.

On peut ensuite éditer ou jouer librement le patch avec les autres utilisateurs.

Liste des objets

Patchs d'aide

Une liste de patchs d'aide décrivant le fonctionnement des objets est disponible dans le dossier de documentation. Si vous n'avez pas encore la documentation, vous pouvez la télécharger sur cette page. Parfois les patchs d'aide regroupent plusieurs objets liés fonctionnellement, par exemple gate et switch ou gate~ et switch~.

Liste des objets

Objets Alias Description
line~ Génère un signal de rampe audio
noise~ Générateur de bruit blanc
sah~ "Sample and hold" sur un son en entrée
hub Envoie un message aux autres utilisateurs connectés
send s Envoie un message à l'objet receive correspondant
mtof Convertit une note Midi en fréquence
number~ Affiche les valeurs des samples audio
number f Affiche un nombre
select Produit un bang lorsque l'entrée est égale à la valeur
snapshot~ Capture les valeurs des samples
random Produit un nombre aléatoire (distribution uniforme)
unpack Sépare les éléments d'une liste
pack Crée et produit une liste
comment c Ajoute un commentaire au patch
!=~ Opérateur signal d'inégalité
==~ Opérateur signal d'égalité
>=~ Opérateur signal supérieur ou égal
>~ Opérateur signal supérieur strict
<=~ Opérateur signal inférieur ou égal
<~ Opérateur signal inférieur strict
/~ Divise deux signaux
-~ Soustrait deux signaux
% Calcule le modulo d'un nombre dans la base désirée
pow Calcule la puissance d'un nombre
== Opérateur d'égalité
!= Opérateur d'inégalité
>= Opérateur supérieur ou égal
> Opérateur supérieur strict
<= Opérateur inférieur ou égal
< Opérateur inférieur strict
/ Calcule la division de deux nombres
- Calcule la différence de deux nombres
message Produit des messages ou des listes de messages
slider Potentiomètre graphique sortant des valeurs entre 0 et 1
toggle Bouton on/off (1/0)
bang Produit un bang
meter~ Vu-mètre (pic d'amplitude)
trigger t Déclenche des événements à partir des données reçues
newbox Crée une boîte vide
errorbox Boîte erreur
+ Ajoute deux nombres
* Multiplie deux nombres
print Ecrit des messages dans la console Kiwi
receive r Reçoit des messages d'un objet send du même nom
loadmess Sort ses arguments comme message au chargement du patch
delay Retarde un bang reçu en entrée
pipe Retarde n'importe quel message
metro Produit un bang à intervalle régulier
adc~ Reçoit les signaux audio des entrées son
dac~ Envoie des signaux audio vers les sorties son
osc~ Oscillateur cosinus
phasor~ Génère un signal en dents de scie
*~ Multiplie deux signaux
+~ Ajoute deux signaux
sig~ Convertit des nombres en signaux audio
delaysimple~ Délai variable simple avec feedback optionnel
scale Changement d'échelle d'un nombre vers une autre échelle
gate Route un message vers la sortie sélectionnée
switch Sort le message reçu sur l'entrée sélectionnée
gate~ Route le signal reçu vers la sortie sélectionnée
switch~ Sort le signal reçu sur l'entrée sélectionnée
clip Ecrête un nombre entre une valeur minimum et maximum
clip~ Ecrête un signal entre une valeur minimum et maximum
float Stocke un nombre flottant
sf.play~ Joue un fichier audio
sf.record~ Enregistre un fichier audio

Tutoriels

Un ensemble de tutoriels est disponible dans le dossier de documentation. Si vous n'avez pas encore la documentation, vous pouvez la télécharger sur cette page. Chaque tutorial présente un traitement audio spécifique ou un certain aspect du logiciel Kiwi.

Tutoriaux disponibles:

  • premier patch (first-patch)
  • mooc
    1. ligne à retard simple
    2. lecture et enregistrement de fichiers
    3. synthèse FM d’après Chowning
    4. cloche de Risset
    5. granulateur sur ligne à retard
    6. d’après Kontakte de Stockhausen
  • autres
    • flanger
    • générateurs sonores gen01
    • générateurs sonores gen02
    • générateurs sonores gen03
    • générateurs sonores gen04
    • pitchshifter simple
    • pitchshifter avec recouvrement