QMIDIARP(1) General Commands Manual QMIDIARP(1) NOM qmidiarp - Arpegiateur et LFO MIDI pour le sequenceur ALSA SYNOPSIS qmidiarp [OPTION] [file] qmidiarp { --help | --version } DESCRIPTION QMidiArp est un arpegiateur, sequenceur lineaire programmable et oscillateur a basse frequence (LFO) MIDI avance. Selon l'option choisi il utilise JACK MIDI ou ALSA MIDI. Un nombre illimite d'arpegiateurs, sequenceurs et LFOs peuvent etre definis comme modules pour fonctionner en parallele. Les modules arpegiateurs produisent des sequences de notes dependant des notes recues sur leur port d'entree, qui est typiquement connecte a un clavier MIDI ou un sequenceur. Les modules sequenceurs sont similaires aux premiers sequenceurs analogiques, lineaires, monophoniques et ajustables en etant en marche. Les LFOs MIDI, de maniere independante, produisent des donnees de controleur MIDI avec forme d'onde, resolution temporelle, amplitude et duree ajustables. Pour chaque module, un filtre d'entree est disponible. Le port de sortie et le canal MIDI peuvent etre attribues pour chaque module independamment. Puisque les modules utilisent un sequenceur commun, ils sont automatiquement synchronises entre eux. QMidiArp fonctionne avec une resolution interne de 192 ticks par quart de mesure (beat). La queue peut etre synchronisee a une horologe MIDI entrant ou en tant que client JACK Transport. La plupart des controles de QMidiArp est accessible par controle MIDI via un mecanisme d'apprentissage par menu contextuel. QMidiArp possede egalement un outil de journalisation d'evenements MIDI entrants. QMidiArp utilise les bibliotheques du kit Qt4. Fonctionnement General Si aucune option est specifiee au demarrage, QMidiArp utilise devient un client JACK MIDI et cre un port d'entree ainsi que deux ports de sortie. Si l'on demarre QMidiArp avec l'option -a, le systeme MIDI est ALSA. En cliquant sur les boutons Nouvel Arpege..., Nouveau LFO... ou Nouveau Sequenceur... le module choisi apparait en tant qu'onglet dans la zone principale. Les modules peuvent etre renommes ou supprimes avec les boutons et fonctions de menu correspondants. Le montage entier contenant tous les arpeges et LFOs de la barre d'onglets ainsi que les definitions de la fenetre Parametres peuvent etre sauvegardees dans un fichier XML QMidiArp (.qmax). Les modules peuvent etre detachees en tant que fenetres independantes pour les controler et visualiser en parallele. Le tempo du sequenceur est defini de maniere commune pour tous les modules en unites de beats par minute (bpm). La queue du sequenceur est demarree en cliquant sur le bouton indiquant une fleche bleue. Fonctionnement en mode MIDI Clock (disponible uniquement pour ALSA) QMidiArp peut utiliser les evenements MIDI clock entrant en tant que source d'horologe et de controle start/stop. Si le bouton MIDI clock a droite de la boite de reglage du tempo est enfonce, la queue du sequenceur est arretee et QMidiArp attendra la reception d'un evenement "MIDI Clock Start" d'une source externe connectee a son entree MIDI. Une fois cet evenement recu, la queue est demarree en utilisant les evenements d'horologe MIDI comme source. La synchronisation fonctionne au mieux si le tempo de la source externe correspond a peu pres a celui de QMidiArp. La queue s'arretera sur reception d'un evenement MIDI Clock Stop. Pendant le fonctionnement en mode MIDI Clock, les fonctions internes de start/stop ainsi que l'ajout ou le chargement de fichiers sont desactivees. Elles sont reactivees en cliquant sur le bouton MIDI Clock a nouveau. Fonctionnement en tant que client JACK Transport Lorsqu'on appuye sur le bouton Connecter a Jack Transport, QMidiArp essaiera de se connecter a un serveur JACK en marche. Il fonctionnera ensuite en tant que client Jack Transport, c'est a dire, le tempo sera deduit d'un maitre Jack Transport et la synchronisation sera maintenue. Le sequenceur de QMidiArp redemarrera a zero a chaque fois que le maitre Jack transport est mis en marche, independamment de la position initiale de Jack Transport. Ceci s'applique egalement quand Jack Transport fonctionne en boucle. Le bouton Jack Transport se relache automatiquement lors d'une deconnextion de Jack, par exemple si Jack n'est plus actif. Note: Les etats des boutons MIDI Clock et Jack Transport sont sauvegardes dans le fichier de session QMidiArp a chaque enregistrement et deviennent actifs ou inactifs a chaque ouverture d'une session. Les Modules Arpegiateur Les arpegiateurs de QMidiArp produisent des sequences de notes qui dependent des notes jouees au clavier d'entree. La facon dont les notes sont traduites en sequence est determine par le motif et les reglages de chaque module. Les champs Entree et Sortie Chaque arpegiateur possede un champ Entree et un champ Sortie. Le champ d'entree definit la gamme de notes et le canal MIDI auxquels l'arpeggiator est assigne. Les notes qui passent par ce filtre sont triees par leur hauteur et ajoutees au tampon interne de notes de l'arpegiateur. Les notes ne passant par aucun filtre peuvent etre acheminees a un port MIDI defini dans la fenetre Parametres ou ignorees. Le champ Sortie contient les reglages du canal MIDI et du port de sortie auxquels les notes de l'arpege seront envoyees. Motifs d'arpege Le motif de l'arpege peut etre selectionne et edite dans le champ Motif. Les motifs predefinis (presets) sont accessibles d'un menu deroulant. Le motif actif est affiche dans un ecran dedie montrant les notes de base comme traits. L'echelle verticale de cet ecran correspond a l'index des notes dans le motif. Les changements d'octave (voir Editer les motifs d'arpege) sont affiches comme des separateurs horizontaux supplementaires. Les notes sortant de l'arpeggiateur dependent des notes recues a l'entree, qui sont attribuees par ordre ascendant aux notes de base definies dans le motif. Par exemple, un trait unique en bas de l'ecran d'affichage (presets "simple") signifie qu'au premier passage, la note la plus basse jouee sur le clavier est produite. Si plusieurs notes sont appuyees sur le clavier et si seulement une note est presente dans le motif, c'est le mode de repetition qui determine la sequence de notes jouees a la sortie. Si le motif contient des traits de note empiles (mode accord), les accords joues sur le clavier deviennent aussi des accords a la sortie avec une polyphonie dans la limite du nombre de notes definies dans cette pile. Mode de repetition Le mode de repetition definit le comportement de l'arpege sur plusieurs repetitions du motif quand le nombre de notes jouees sur le clavier depasse le nombre de notes presentes dans le motif, par exemple avec une seule note dans le motif mais un accord de trois notes joue sur le clavier. Avec le mode de repetition "Monte", la note produite est incrementee a chaque repetition vers la prochaine note jouee sur le clavier. Avec le mode "Descend", la prochaine note plus basse est jouee. Avec une seule note presente dans le motif, ceci produit un arpege classique lineaire. Ainsi, meme avec des motifs simples comme "01" ou "0", on genere des arpeges complets. En revanche, avec le mode de repetition "Statique", les notes a la sortie seront constantes. Mode de Declenchement Les arpegiateurs de QMidiArp possedent trois modes de declenchement par le clavier d'entree. En mode "Continu", le motif est repete en permanence en synchronisation avec le sequenceur interne sans tenir compte du moment ou les notes sont jouees. Le mode "Redemarre" permet de garder cette quantisation mais en renvoyant la sequence au point de depart a chaque nouvelle note jouee en stakato. Enfin, le mode "Declenche" produit le demarrage de l'arpegiateur au moment ou une note stakato est jouee. Editer les motifs d'arpege Les motifs d'arpege de QMidiArp sont definis par une sequence de caracteres contenant les notes meme ainsi que des caracteres de controle pour des changements de tempo, de velocite, de duree, d'octave, et de mode accord. En appuyant sur le bouton Editer le motif, le preset de motif apparait sous forme d'un champ de texte modifiable. Le motif modifie peut etre sauvegarde dans la liste des motifs predefinis en cliquant le bouton Memoriser le motif. Le motif actif peut etre supprime de la liste en cliquant sur le bouton Supprimer le motif. Les modifications de la liste des motifs s'appliquent simultanement a tous les arpeggiateurs dans la barre des onglets. La syntaxe du texte d'un motif est la suivante: 0..9 : Indice de note jouee sur le clavier en ordre ascendant + : Augmente d'une octave - : Diminue d'une octave = : Retour a l'octave de base > : Double tempo < : Demi tempo . : Retour au tempo standard: un quart de mesure ( ) : Mode accord debut / fin e.g. (012) produit un accord des trois notes les plus basses dans le tampon / : Augmente la velocite de 20% \ : Diminue la velocite de 20% d : Double duree de note h : Demi duree de note p : Pause Tous les controles sont valides jusqu'a la fin du motif. Par exemple, le controle > doublera la vitesse de l'arpege pour toutes les notes suivantes dans le motif jusqu'a la prochaine repetition a laquelle la vitesse reprendra a un quart de mesure. Randomisation Le rythme, la velocite et la duree des notes produites peuvent etre randomises par les reglettes du champ Randomisation. Ces reglages peuvent etre utilises pour produire des motifs moins mecaniques, mais a des valeurs plus elevees, ils ajoutent des accents interessants au motif joue. Enveloppe QMidiArp peut superposer une fonction d'enveloppe aux velocites des arpeges. La dynamique de cette enveloppe est definie par les reglettes Attack et Release. En ajustant un temps d'"attack" non-nul, les velocites de notes a la sortie sont incrementees pendant le temps d'attack defini en secondes. Si un temps "release" est specifie, les notes relachees sont gardees dans le tampon, et leur velocite est lineairement diminuee jusqu'a la fin du temps "release". Cette fonction n'a un effet sur le son que si le synthetiseur connecte a la sortie produit des sons sensibles a la velocite. Elle fonctionne aux mieux avec des motifs a haute polyphonie comme par exemple le motif "Chord Oct 16 A". Groove Les reglettes de la fenetre Groove permettent de controler un decalage lineaire du rythme, de la duree des notes et de leur velocite a l'interieur de chaque quart de mesure du motif. Ceci permet de creer un rythme du type swing ou d'accentuer le motif. Les ajustements Groove sont valables pour tous les arpegiateurs simultanement. Les modules arpegiateurs de QMidiArp ont ete inspire par l'arpegiateur materiel MAP1 par Rudi Linhard. Les modules LFO En parallele aux arpegiateurs, QMidiArp peut envoyer des donnees de controle MIDI sous forme d'un oscillateur a basse frequence (LFO) a une sortie specifiee. Les donnees LFO sont des evenements MIDI envoyes en synchronie avec la queue de l'arpegiateur. La queue doit etre en etat demarre pour activer les LFOs. Chaque module LFO possede un champ forme d'onde pour definir la forme des donnees produites et un champ Sortie pour definir leur canal MIDI, port ALSA ainsi que le numero de controleur a produire. Actuellement, la forme d'onde peut etre choisie entre Sinus, Scie montant, Scie descendant, Triangle, Creneau et Libre. La frequence du LFO est definie en multiples et diviseurs du tempo de l'arpegiateur, une frequence de 1 produit une onde entiere a chaque quart de mesure. Si l'on specifie des frequences plus basses, la longueur de la table d'onde doit etre ajustee en consequence si l'on souhaite produire un cycle d'onde complet. La resolution temporelle du LFO determine le nombre d'evenements produits a chaque quart de temps. Elle peut aller de 1 a 192 evenements par quart de temps. L'amplitude et l'offset de l'onde peuvent etre specifies entre 0 et 127. A basse resolution temporelle, le LFO produira des changements rythmiques du controle, tandis que des resolutions elevees menent a des ondes de plus en plus continues. Rendre muet l'onde point par point On peut retenir l'emission d'un point individuel sur la forme d'onde en cliquant avec le bouton droit de la souris a l'endroit correspondant dans l'ecran d'affichage de l'onde. Les points muets de l'onde sont affiches en couleur sombre. Formes Libres En selectionnant la forme Libre, l'onde peut etre dessinee ou modifiee avec le bouton gauche de la souris. Lorqu'on tente a modifier une forme calculee, elle est automatiquement copiee vers la forme libre, et la forme libre precedente est ecrasee. Toutes les operations du LFO incluant le dessin peuvent etre faites pendant que le transport est en marche. Direction de lecture et repetition The play mode can be switched between: ->_> : En avant et repeter <_<- : En arriere et repeter ->_< : Aller-retour et repeter >_<- : Retour-aller et repeter ->_| : Un seul aller |_<- : Un seul retour Les changements faits dans ces controles s'appliquent immediatement. Enregistrement Les donnees de controle MIDI recues a l'entree peuvent etre enregistrees en continue en appuyant sur le bouton Enregistrer. Ce bouton est lui-meme controlable par MIDI (c.f. Apprentissage MIDI) et QMidiArp est ainsi utilisable comme Looper et sequenceur de controles. Le champ Entree du LFO Le champ d'entree permet de specifier le controleur MIDI CC a enregistrer. On specifie ici egalement comment le module reagit en cas de reception de notes a l'entree. Comme les arpegiateurs, le LFO peut etre redemarre ou declenche (trigge), et la production de donnees peut etre arretee en cas de touches relachees, donc a la reception d'un signal Note Off a l'entree avec le Canal correspondant. Le champ Sortie du LFO Ce champ contient les reglages du port, canal et controleur des donnees produites. Il permet egalement de rendre muet le module entierement. Les modules sequenceurs En cliquant sur le bouton Nouveau Sequenceur... dans la barre de controle, un nouveau module Seq peut etre ajoute a la barre d'onglets. Chacun de ces modules produit une sequence simple, lineaire et monophonique, similaire aux premiers sequenceurs materiels analogiques. Les modules Seq sont controlables en etant en marche, egalement similaire aux sequenceurs analogiques. Programmer une sequence Comme les modules LFO de QMidiArp, le sequenceur peut etre programme en ajustant les notes avec le bouton gauche de la souris sur l'ecran d'affichage. La gamme d'octaves est fixee a 4, la note la plus basse etant C2, si la transposition globale est zero. Les notes peuvent etre rendues muettes avec le bouton droit de la souris. La duree de la sequence peut etre ajustee entre 1 et 8 beats (quarts de mesure), la resolution temporelle entre 1 et 16 par beat. Une resolution de 4 produit 4 notes par beat, donc des notes double croche. On peut aussi programmer des sequences en utilisant la fonction Enregistrer. Si le bouton Enregistrer est enfonce, les notes recues sur le port d'entree sont enregistrees pas a pas commencant par la derniere note modifiee. La sequence peut etre programmee avec la queue de sequenceur en marche. Controler la sequence globalement Le module Seq possede des reglettes pour ajuster la velocite (volume), la duree des notes et la transposition de la sequence par demi-notes. Tous les changements de ces controles s'appliquent a chaque nouveau tour de la boucle. Les champs Entree et Sortie du sequenceur Le champ Entree definit comment gerer les notes recues sur le Canal MIDI ajuste. Si la case Note est cochee, la sequence est globalement transposee avec la note recue comme valeur de transposition. Si la case Velocite est cochee egalement, la sequence produira des notes avec la meme velocite que celle de la note recue. Le champ Entree definit egalement le comportement de declenchement de la sequence en cas de reception de notes a l'entree. Redemarre renvoie la sequence a son debut, mais sans interrompre le rythme. La sequence est re-declenchee avec le timing des notes jouees seulement si Trigger est est coche. Note Off arretera la sequence avec une note relachee, et Boucle doit etre cochee pour une repetition permanente au lieu d'un seul passage. Le champ Sortie est equivalent a celui des arpegiateurs et LFOs. On peut produire des accents dans une sequence en ajoutant des modules LFO en parallele aux modules Seq. Pour ceci, il suffit que le LFO envoie ses donnees vers le meme port et canal MIDI que les modules Seq. Parametres La fenetre "Parametres" permet de configurer vers quel port ALSA les evenements passant par le filtre d'entree d'aucun arpegiateur sont achemines. Si ces evenements devront etre ignores, la case correspondante doit etre decochee. Dans cette fenetre on specifie egalement si QMidiArp est controlable par des controleurs MIDI. En cochant la case Style compact d'affichage des modules tous les nouveaux modules crees auront une apparence economique en place pour la distribution sur le bureau de l'ordinateur. Tous les ajustements faits dans le dialogue Parametres sont sauvegardes avec les donnees des modules dans le fichier .qmax. Controle MIDI QMidiArp accepte les evenements de controle MIDI, si l'option Modules controlables par MIDI est cochee dans le dialogue Settings. Le controle par MIDI est dispobible pour les modules Seq (boutons muets, velocite, duree des notes), les modules LFO (boutons muets, amplitude, decalage) et les modules d'arpege (boutons muets). Apprentissage MIDI Les controleurs peuvent etre attribues par un clic de droite sur l'element de controle correspondant, et en selectionnant Apprendre du MIDI. QMidiArp attendra ensuite la reception d'un evenement de controle MIDI (envoye par exemple a partir d'une reglette d'une surface de controle). Lors de la premiere reception d'un tel evenement, ce controleur est achemine vers l'element de controle selectionne. Il est possible d'attribuer plusieurs controleurs MIDI a un seul element. Lorsqu'on selectionne Oublier les controleurs, toutes les attributions de cet element seront supprimees. Si l'on choisit Annuler l'apprentissage, QMidiArp n'attendra plus d'evenements de controle MIDI. Note: par defaut, les controleurs attribues aux boutons "muet" fonctionnent en tant que "toggle", c'est a dire le bouton change entre actif/inactif sur chaque reception d'une valeur de controle de 127. Editeur de controles Pour modifier les controles attribues, on choisit Controles MIDI dans le menu Affichage. Les proprietes de chaque controle MIDI peuvent etre modifiees dans le tableau de cette fenetre. Les controleurs de boutons ont un fonctionnement specifique. Si les valeurs min et max sont identiques, le controleur fonctionnera en tant que "toggle". Si min et max sont differents, le module devient muet lors de la reception de min (case muet cochee) et devient actif lors de la reception d'une valeur de max. Lorsqu'on appuye sur Supprimer, la ligne selectionnee est effacee, et le bouton Retablir recharge les attributions actuelles. Toutes les modifications faites dans ce tableau sont appliquees sur appui du bouton OK alors que Cancel annule les changements. Stockage Global Une autre fenetre a disposition permet le stockage et le rappel de la plupart des parametres de tous les modules en commun. Dans cette fenetre, chaque module et ses emplacements de stockage apparaissent dans une colonne, la premiere colonne etant attribuee a la gestion commune de tous les modules. En cliquant sur le petit bouton Sauver on enregistre les parametres de tous les modules dans l'emplacement represente par les boutons dans la ligne, et un nouvel emplacement vide apparait. Les parametres dans ces emplacements peuvent etre rappelles pour chaque module individuellement par les boutons dans les colonnes des modules, ou globalement pour tous les modules en cliquant sur le bouton numerote a gauche. Un emplacement peut etre supprime en cliquant sur le bouton "fleche" en bas du tableau. Au cas ou l'on ajoute un nouveau module quand les autres modules possedent deja leurs emplacements de stockage, les stockages du nouveau module sont d'abord vides. Ils peuvent etre remplis en appuyant a nouveau sur Sauver. Quand le sequenceur de QMidiArp est en marche, la commutation des parametres depend des selections faites dans la premiere ligne de la fenetre. Fin de produit des commutations de parametres a chaque fois que le module selectionne dans le deuxieme menu combo atteint la fin de son motif. Si dans cette configuration, on clique sur l'un des boutons individuels, le module concerne commandera la commutation a la fin de son motif. Apres produit des commutations apres le nombre fixe de quart de temps (beats) selectionnes dans le deuxieme menu combo. La commutation peut etre commandee par controleur MIDI attribue par le menu de contexte du bouton de chaque module dans la premiere ligne. Notez que c'est la valeur du controleur MIDI qui selectionne l'emplacement a rappeller, et qu'on doit eventuellement ajuster son echelle dans l' Editeur de controles pour adapter la plage de valeurs. Avec le panneau de Stockage Global QMidiArp devient un sequenceur Live simple mais pratique. Mais on peut cacher la fenetre avec l'entree du menu Affichage ou avec le bouton correspondant dans la barre d'outils principale. Journal La fenetre du Journal d'evenements liste les evenements MIDI entrants. Les evenements sont affiches en couleur dependant de leur type. Le journal est affiche dans la partie inferieure du logiciel par defaut, mais il peut etre cache ou detache en tant que fenetre independante. La journalisation peut etre desactivee entierement ou uniquement pour les evenements d'horologe MIDI. Fichiers d'exemple Il y a actuellement trois fichiers de demonstration de l'arpegiateur. Le fichier demo.qma a ete concu pour etre utilise avec des sons de type suivant: Canal 1: Marimba, Canal 2: Celesta, Canal 3: Basse acoustique, mais on peut obtenir des resultats interessants en employant d'autres types de son. Le montage semo_seqlfo.qmax demontre l'utilisation des nouveaux modules Seq et LFO fonctionnant en parallele. Les sorties des sequenceurs devraient etre connectees a des synthetiseurs et des sons percussifs. Les LFO produisent des donnees destinees aux frequences de filtres (cutoffs) qui ont le controleur MIDI standard CC#74. Le synthetiseur ZynAddSubFX par Paul Nasca reagit a ces controleurs, et ses presets "Bass 1" ou "Plucked 3" fonctionnenet bien avec cette demonstration. OPTIONS --portCount Definir le nombre de ports ALSA disponibles egal a . La valeur par defaut est 2. --help Affiche les options de ligne de commande disponibles et quitte le programme. --version Affiche l'information de version du programme et quitte celui- ci. --alsa Utiliser le pilote ALSA MIDI --jack Utiliser le pilote JACK MIDI (par defaut) fichier Nom d'un fichier QMidiArp (.qmax) valide a charger au demarrage du programme. FICHIERS *.qmax Fichiers XML QMidiArp contenant les donnees au format texte XML. EXEMPLES Les fichiers d'exemple de QMidiArp se situent dans /usr/share/qmidiarp ou dans /usr/local/share/qmidiarp NOTES Les erreurs et avertissements sont ecrits dans stderr(3). SUPPORT qmidiarp-devel@lists.sourceforge.net AUTEURS Frank Kober, Nedko Arnaudov, Guido Scholz et Matthias Nagorni. Cette page de manuel a ete ecrite par Frank Kober . 2011-11-10 QMIDIARP(1)