Manuel de Non Sequencer
Manuel de Non Sequencer.
Non Sequencer possède plusieurs modes et fonctions. Lorsque la flexibilité arrive à peu de frais, nous préférons être flexible et faire la différence ailleurs. Lorsque des limitations arbitraires sont raisonnables et nécessaires, Non Sequencer les impose, mais pas sans être forcé de le faire. Lorsqu'il est plus facile d'être inefficace qu'efficace, mais que l'efficacité importe, nous préférons faire la petite quantité de travail nécessaire pour être efficace, ceci résultant souvent dans des gains de performance énormes. Ceci peut sonner comme une déclaration évidente mais, en réalité, la conception efficace est une pratique rare dans l'arène moderne des logiciels audio sous Linux. Bien qu'il soit tentant de mettre en œuvre tout et n'importe quoi dans chaque programme, nous résistons à cet appel. Non Sequencer a pour objet d'être un séquenceur temps-réel et tout ce qui se trouve en dehors de ce cadre est un boulot pour un autre jour. S'il y a quelque chose lié à la tâche actuelle qu'un ordinateur peut faire instantanément et facilement, mais qui nécessite un travail pour vous, Non Sequencer essaie de le faire pour vous afin que vous puissiez continue à faire de la musique sans être embêtés. L'interface-utilisateur de Non Sequencer est conçue pour combiner les fonctionnalités nues et la vitesse du matériel avec la lueur de liberté logicielle.
L'interface graphique de Non Sequencer est plutôt simple et est hautement optimisée pour être rapide. Les opérations habituelles sont conçues pour être aussi rapide que possible. Là où d'autres séquenceurs monopolisent complètement le processeur lors d'un défilement, …etc, Non Sequencer s’accomplit doucement, même sur du matériel antique. Ce n'est pas techniquement difficile d'obtenir cela et, en fait, c'est une honte que d'autres développeurs ne considère pas une bonne performance 1) comme une priorité.
Après invocation, Non Sequencer affiche l'éditeur de motif et charge le motif 1. L'éditeur de motif présente une interface de grille, le cœur d'une séquenceur pas-à-pas. Vous pouvez mettre une note sur la grille soit :
La longueur des motifs est illimités et il n'y a pas d'action spéciale nécessaire pour les allonger 3) .
Non Sequencer peut présenter les grilles en 2 modes différents “étendu” et “compacté” 4) . Dans le mode “compacté”, seules les rangées nommées sont affichées. Ceci signifie que seulement les notes de l'instrument actuel ou de la gamme 5) utiliseront de l'espace vertical, ce qui résulte dans une utilisation de l'espace disponible sur l'écran bien plus efficace. Toute note étant rendue invisible par la vue compactée sera mise en sourdine.
La résolution de l'affichage du motif peut être ajustée 6) et, de façon additionnelle, le canevas peut être zoomé horizontalement 7) et verticalement lorsque nécessaire. Cependant, il est grandement recommandé d'éviter de créer des compositions “verticales”, et d'essayer de créer chaque partie dans un motif différent pour éviter le besoin de faire défiler pour voir les notes.
Les motifs toniques ont un choix de gamme 8) est de note, qui limite l'affichage uniquement aux notes valides. Ce compactage-de-rangée peut être désactivé si souhaité et donc les 128 notes seront toutes visibles. Ou, simplement, utilisez l'assignation chromatique si vous ne créez pas de la musique basée sur une gamme.
Les percussions, ou autres motifs basés sur des échantillons, peuvent être assignés à une assignation d'instrument ce qui, une fois encore, limite l'affichage uniquement aux notes pour lesquelles des noms et des volumes ont été fournis. Le format de définition d'instrument est un simple fichier ASCII contenant un nom, une note, et un pourcentage de volume par ligne.
Les motifs individuels peuvent être mise en solo ou en sourdine depuis l'éditeur de motif.
Chaque motif possède un paramétrage pour le canal MIDI de sortie et le port de séquenceur, et peut également être modifié pendant que le transport est en route.
Un motif peut être enregistré via MIDI avec l'un des quatre modes :
Pour les situations réclamant une inspection précise, des ajustements fins, ou l'entrée de donnée n'étant pas des notes, l'éditeur d'évènement nous permet d'éditer la liste d'évènement MIDI brute d'un motif. Il est accessible par : menu de Non Sequencer → Édition → Éditer les évènements.
Une utilisation habituelle est l'insertion d'évènement de Program Change ou de Control Change.
Comme tout le reste dans Non Sequencer, l'éditeur d'évènement est en temps-réel, modifiez-y une note et vous entendrez directement le résultat si le motif est en train d'être joué.
Les phrases sont aux motifs ce que les motifs sont aux notes. Basculer dans l'éditeur de phrase affiche la phrase 1, dans laquelle chaque rangée correspond à un motif existant. La grille de l'éditeur de phrase est fixée à une colonne par pulsation. Cet affichage est quelque peu comparable à une vue de ligne temporelle dans d'autres séquenceurs, mais ne soyez pas déçu. Les phrases peuvent être nombreuses et sont déclenchés exactement comme des motifs.
Lorsqu'un nœud de la grille de l'éditeur de phrase est activé, la longueur de l'évènement de queue inséré sera le même que celui du motif étant déclenché. Ajuster la durée de cet évènement fera en sorte que le motif sera coupé court ou bouclé. Si la longueur d'un motif référencé est modifié, ceci ne sera pas réfléchi dans l'affichage de phrase. Vous devrez soit ré-insérer ou ajuster la longueur de la référence.
Pour éviter des confusions, il est recommandé que vous composiez en premier tous les motifs dont vous avez besoin pour une phrase puis quen seullement après, vous alliez dans l'éditeur de phrase.
Les opérations d'édition sont les mêmes que dans l'éditeur de motif.
L'éditeur de séquence défini la séquence de lecture. L'interface est une liste de phrases devant être lue séquentiellement, commençant à la mesure 1. Il n'est pas nécessaire d'inclure toutes les phrases existantes dans la liste de lecture. Les phrases peuvent être déplacées vers le haut et le bas dans la liste de lecture, insérées et effacées. L'éditeur affiche la mesure de début de chaque phrase en addition de son nombre et de son nom.
Cette hiérarchie séquence→phrase→motif permet des compositions logiques et expressives, sans un travail intensif de copier-coller-dupliquer imposé par d'autres séquenceurs.
Supposons, par exemple, que vous ayez un morceau avec une progression de 12 mesures qui se répète quatre fois. Cette séquence de 12 barres est composées de plusieurs motifs, chacune de quelques mesures de longueur et, grosso-modo, correspondante aux accords dans la progression.
Dans un autre séquenceur, vous devriez utiliser des opérations de copier/coller balourdes pour étendre destructivement la séquence de 12 mesures. Puis, si vous vouliez modifier une partie de cette sous-séquence plus tard, vous devrez aller éditer chacune des instances dans la vue de “ligne temporelle”. Ceci est absurdement inefficace pour l'utilisateur.
Avec Non Sequencer, vous créez simplement vos motifs, les assemblez dans des phrases logiques, puis assemblez ces phrases dans des séquences qui déterminent le morceau entier. Cette approche est similaire à l'approche du bas vers le haut des langages factorisé tels de Forth.
À côté de la liste de lecture des séquences se trouve une collection de déclencheurs de motif. Nous pouvons ici surveiller la progression des multiples motifs pendant la lecture et les mettre en sourdine, …etc.
Les couleurs indiquent :
Non Sequencer utilise nativement le transport JACK-MIDI.
Puisque JACK-MIDI est récent et que tous les programmes ne le supportent pas encore, ceci peut semer de la confusion. Cette section essaie d'expliquer un peu les ports de connexion JACK-MIDI.
L'interface du séquenceur ALSA a longtemps était le sous-système de routage MIDI standard pour Linux. Mais de nombreux (presque tous) programmes que nous utilisons maintenant, utilisent JACK pour leurs entrées/sorties audio. Il est donc logique pour ces programmes liés au MIDI utilisant le transport JACK pour la synchronisation d'utiliser également les ports JACK pour délivrer du MIDI. Ainsi, le MIDI-ALSA devient de plus en plus obsolète.
Les ports MIDI JACK ne sont en aucun sens relié aux ports MIDI ALSA. Les ports MIDI JACK sont comme les ports audio JACKS, excepté que les données étant transmises dans chaque tampon sont des évènements horodatés et bruts plutôt que des échantillons audio à point flottants. Le MIDI JACK est précis à l'échantillon près, ce qui signifie qu'un évènement Note On MIDI peut arriver en même temps qu'un son, et que les deux ne dériveront jamais l'un de l'autre comme cela peut se produire avec ALSA.
En substance, le MIDI JACK est un moyen d'exprimer une corrélation temporelle directe entre des données audio et MIDI.
Par exemple, pour connecter Non Sequencer à ZynAddSubFX, vous pouvez utiliser ceci dans une terminal : jack_connect Non:midi_out-1 ZynAddSubFX:midi_in
.
D'autre part, assurez-vous que les sorties de ZynAddSubFX sont connectées aux “system:playback_*” pour que vous puissiez entendre les sons qu'il produit.
Il est possible d'utiliser des clients MIDI JACK et des clients MIDI ALSA ensemble grâce au pont fourni par jackd. Pour que ceci fonctionne, vous devez adjoindre l'option : -X seq
à la section du pilote ALSA de la ligne de commande de jackd, comme par exemple : jackd -d alsa -X seq
.
La manière dont des portes ainsi pontés sont nommés dépend de la version de JACK, mais ça devrait être plutôt évident. Lorsqu'utilisé de cette façon, plusieurs des avantages du MIDI JACK sont perdus et il vous est donc recommandé de trouver des synthétiseurs capable d'utiliser le MIDI JACK pour obtenir les meilleurs résultats.
Voici un exemple de connexions MIDI JACK de Non Sequencer, de ZynAddSubFX, et d'un clavier MIDI dans Catia :
Le format des fichiers .non est une variation de SMF-2. Dans un fichier SMF-2, chaque gros morceau de piste représente un motif. Puisque Non Sequencer groupe les motifs en phrases, cet usage de SMF-2 est probablement incompatible avec d'autres implémentations 14).
Chaque phrase est stockée comme une piste de messages Cue MIDI, chacun étant une référence à un motif à être déclenché. La séquence / liste-de-lecture est stockée en tant que première piste, et consiste en un liste de méta-évènements de point Cue se référant aux phrases.
D'autre part, dans le première piste, il y a un méta-évènement spécifique au séquenceur 15) contenant les données du morceau qui ne peuvent pas être facilement exprimé avec les méta-évènements existants, et une information de version pour aider aux futures compatibilités.
Pour résumer, l'auteur a fait tout son possible pour sauvegarder les séquences dans un format standard, en étant raisonnable 16) plutôt qu'avec un genre de format ASCII improvisé 17) ou pire, avec un format XML non-maintenable, volumineux et bogué.
En plus de sauvegarder et de charger des fichiers .non, Non Sequencer peut exporter des motifs individuels en tant que fichiers MIDI SMF-0 traditionnels.
Les fichiers SMF-0 peuvent être importés en tant que nouveau motif 18), ou SMF-1 19) et SMF-2 20) peuvent être importés en tant que N nouveaux motifs 21). Tous les motifs importés sont paramétrés pour afficher la gamme chromatique, afin de ne pas avoir de notes cachées par le mode d'affichage.
Ceci devrait rendre facile la migration de tout motif existant que vous pourriez avoir vers Non Sequencer, ou de permette d'éditer les motifs Non Sequencer dans des programmes externes 22) .
Le transport de Non Sequencer est piloté par le transport JACK et donc, afin de synchroniser Non Sequencer avec une STAN comme Ardour par exemple, vous devez paramétrer Ardour pour qu'il soit le maître du transport JACK. Ainsi, toutes les informations d'assignation du tempo et de signature temporelle devraient être manipulé par le maître du transport JACK. Non Sequencer répondra ainsi à ces modifications automatiquement. S'il n'y a pas de maître du transport JACK lorsque Non Sequencer démarre, alors il prendra se rôle. Ceci est utile si vous prévoyez simplement d'utiliser Non Sequencer comme un instrument musical.
Non Sequencer crée deux ports d'entrées MIDI :
Le mode de lecture peut être basculer entre “Motif”, “Séquence”, “Déclencheur”, et “Queue” :
Beaucoup de l'inspiration dans l'avancement de Non Sequencer a été dérivée du boucleur hautement utile et réussi FreeWheeling de JP Mercury. Mr. Mercury est un visionnaire.
Mais la sœur la plus proche de Non Sequencer est le synthétiseur incroyablement compétent : ZynAddSubFX de Paul Nasca Octavian. ZynAddSubFX, a récemment commencé à supporter le MIDI JACK 24) . Il est incontestablement le meilleur synthétiseur disponible pour Linux, et probablement l'un des meilleurs de l'époque. Si vous avez Non Sequencer et ZynAddSubFX, vous avez tout ce qu'il faut pour faire de la belle musique.
Bien entendu, cette section ne serait pas complète sans mentionner Seq24 de Rob Buse. C'est la frustration sans fin pour Jonathan, ainsi que les performances abyssales et des limitations absurdes de Seq24 qui ont été, plus que n'importe quel autre facteur unique, l'inspiration pour écrire Non Sequencer. L'aspect le plus frustrant était que 25) Seq24 était 26) le meilleur séquenceur disponible pour Linux. Seq24, qui prétend être léger et libre de boursouflure est, sans aucune comparaison, le plus lent et plus pauvrement optimisé séquenceur que Jonathan ait essayé. Même l'énorme bête grognarde qu'est Rosegarden a de meilleures performances que Seq24 dans tous les sens sauf en ce qui concerne le temps de démarrage.
Ces jours sont dépassés.