tag:linuxfr.org,2005:/users/yoyzLinuxFr.org : les contenus de yoyz2016-05-13T22:04:45+02:00/favicon.pngtag:linuxfr.org,2005:News/372822016-05-11T12:38:04+02:002016-05-11T13:19:56+02:00Picoloop un séquenceur musicalLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Picoloop est un séquenceur musical que je développe depuis 2013. Ce logiciel est une « <em>groovebox</em> » logicielle permettant de jouer des séquences de 16 pas. Chaque pas peut contenir une note et un ensemble de paramètres permettant de modifier la tessiture du son joué.</p>
<p>Ce logiciel permet de créer de la musique à partir d'un ordinateur Linux/Windows ou d'une console de jeu PSP, GP2X, Dingoo. Il s'inspire fortement des logiciels <a href="http://www.nanoloop.com/">Nanoloop</a> (non-libres) développés par Oliver Wittchow un Allemand spécialiste du développement de séquenceur sur GameBoy, GameBoy Advance et Android.</p>
<p>Picoloop est en licence BSD.</p></div><ul><li>lien nᵒ 1 : <a title="https://github.com/yoyz/audio/" hreflang="en" href="https://linuxfr.org/redirect/97123">Sources</a></li><li>lien nᵒ 2 : <a title="http://chipmusic.org/forums/topic/13624/picoloop-nanoloop-clone/" hreflang="en" href="https://linuxfr.org/redirect/97124">Forum de développement</a></li><li>lien nᵒ 3 : <a title="https://www.dropbox.com/s/9ogqdytniiij6dp/picoloop-0.66-20160417?dl=0" hreflang="en" href="https://linuxfr.org/redirect/97125">Téléchargement des versions compilées</a></li><li>lien nᵒ 4 : <a title="https://raw.githubusercontent.com/yoyz/audio/master/README.md" hreflang="en" href="https://linuxfr.org/redirect/97126">README</a></li><li>lien nᵒ 5 : <a title="https://soundcloud.com/yoyz2k/picoloop-v049-audioout-wip" hreflang="fr" href="https://linuxfr.org/redirect/97163">Exemple de production musicale n°1</a></li><li>lien nᵒ 6 : <a title="https://soundcloud.com/yoyz2k/audioout-051" hreflang="fr" href="https://linuxfr.org/redirect/97164">Exemple de production musicale n°2</a></li><li>lien nᵒ 7 : <a title="https://soundcloud.com/yoyz2k/pic0-001" hreflang="fr" href="https://linuxfr.org/redirect/97165">Exemple de production musicale n°3</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#histoire-de-picoloop">Histoire de Picoloop</a><ul>
<li><a href="#nanoloop">Nanoloop</a></li>
<li><a href="#lgpt">LGPT</a></li>
<li><a href="#picoloop">Picoloop</a></li>
</ul>
</li>
<li>
<a href="#s%C3%A9quenceurs-menu-et-affichage">Séquenceurs menu et affichage</a><ul>
<li><a href="#le-s%C3%A9quenceur">Le séquenceur</a></li>
<li><a href="#bpm">BPM</a></li>
<li><a href="#swing">Swing</a></li>
<li><a href="#timedivision">TimeDivision</a></li>
<li><a href="#ergonomie-du-s%C3%A9quenceur">Ergonomie du séquenceur</a></li>
<li><a href="#chargement-et-sauvegarde-des-patterns">Chargement et sauvegarde des patterns</a></li>
</ul>
</li>
<li>
<a href="#plateforme">Plateforme</a><ul>
<li><a href="#psp-et-dingoo">PSP et Dingoo</a></li>
</ul>
</li>
<li>
<a href="#moteur-de-synth%C3%A8se">Moteur de synthèse</a><ul>
<li><a href="#picosynth">Picosynth</a></li>
<li><a href="#picodrum">Picodrum</a></li>
<li><a href="#dbopl">DBOpl</a></li>
<li><a href="#cursynth">Cursynth</a></li>
<li><a href="#twytch">Twytch</a></li>
<li><a href="#pbsynth">PBSynth</a></li>
<li><a href="#mda-drumsynth">MDA Drumsynth</a></li>
</ul>
</li>
<li><a href="#code-source-et-binaire">Code source et binaire</a></li>
<li><a href="#exemples-de-production">Exemples de production</a></li>
<li>
<a href="#licence">Licence</a><ul>
<li>
<a href="#dialogue-entre-un-attentif-mod%C3%A9rateur-et-lauteur-">Dialogue entre un attentif modérateur et l'auteur :</a><ul>
<li><a href="#la-r%C3%A9ponse-courte">La réponse courte</a></li>
<li><a href="#la-r%C3%A9ponse-longue">La réponse longue</a></li>
<li><a href="#du-coup-si-je-r%C3%A9sume">Du coup, si je résume</a></li>
</ul>
</li>
<li><a href="#je-viens-de-mettre-%C3%A0-jour-le-git-avec-tes-recommandations">Je viens de mettre à jour le git avec tes recommandations.</a></li>
</ul>
</li>
</ul><h2 id="histoire-de-picoloop">Histoire de Picoloop</h2>
<p>En 2010, j'ai découvert deux logiciels qui ont modifié sur le long terme mon approche de la musique.</p>
<h3 id="nanoloop">Nanoloop</h3>
<p>Le premier, Nanoloop, est un séquenceur synthétiseur embarqué dans une cartouche de GameBoy Advance permettant de jouer de la musique électronique. Pour de nombreux utilisateurs, ce logiciel dont je m'inspire très fortement dispose d'une ergonomie tout simplement parfaite. </p>
<p>Je qualifierai même d'oeuvre d'art ce logiciel sur un point de vue ergonomique mais aussi sur ses nombreuses qualités d'un point de vue musical. </p>
<p>Il permet entre autres de jouer quatre pistes monophoniques en stéréo. Il s’intègre avec des instruments midi. Il permet de créer une musique tout à fait cohérente et travaillée.</p>
<h3 id="lgpt">LGPT</h3>
<p>Le second, LGPT, est un séquenceur échantillonneur s'inspirant des <em>trackers</em> des années 90 que l'on trouvait sur Amiga, Atari et DOS. Ce logiciel fonctionne sur de nombreuses consoles portables sous Linux et permet de jouer 8 pistes contenant des samples.</p>
<p>Le label <a href="http://www.hexawe.net/">http://www.hexawe.net/</a> publie des albums qui sont composés uniquement avec ce logiciel. D'ailleurs, la plupart des musiques des albums sont publiées avec le fichier LGPT associé.</p>
<h3 id="picoloop">Picoloop</h3>
<p>Après deux années à me balader avec ces deux logiciels dans mon sac à dos, je me suis dit : « je suis capable de développer mon logiciel, qui répondra à mes besoins et souhaits ».</p>
<p>Je connaissais la programmation C/C++ sous Linux mais je n'avais encore jamais développé de logiciel graphique et sonore sur des plateformes embarquées. J'ai donc commencé à bricoler divers main.c. Je suis arrivé à mettre en place une interface graphique et lui faire jouer des plips et des plops. J'ai porté cette interface sur la plateforme Dingoo, une console portable sous Linux. Et là… je suis clairement tombé dedans.</p>
<h2 id="séquenceurs-menu-et-affichage">Séquenceurs menu et affichage</h2>
<p>Le séquenceur propose 4 pistes dans lesquelles on retrouve des patterns (les séquences).</p>
<p>Voilà à quoi ressemble le séquenceur graphiquement :<br><img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f796f797a2f617564696f2f6d61737465722f7069636f6c6f6f702f7069636f6c6f6f705f73637265656e73686f742e706e67/picoloop_screenshot.png" alt="Picoloop" title="Source : https://raw.githubusercontent.com/yoyz/audio/master/picoloop/picoloop_screenshot.png"></p>
<p>L'affichage est composé de trois élements :</p>
<ol>
<li>le séquenceur dans une matrice 4x4 de 16 pas</li>
<li>le menu situé en bas, les crochets indiquent le menu sélectionné </li>
<li>les infos courantes situées à droite </li>
</ol><ul>
<li>les pas 1, 7, 10 et 15 seront joués.</li>
<li>le <em>cutoff</em> et la résonance sont les paramètres en cours de modification, on peut le voir sur la deuxième ligne de texte à droite </li>
<li>la tête de lecture du séquenceur se trouve au pas numéro 8 en vert sombre affiché également à droite (numérotation commençant à 0).</li>
<li>le curseur de sélection se trouve sur le pas 7 en vert clair et je suis en train de modifier la hauteur du <em>cutoff</em> et de la résonance pour ce pas.</li>
</ul><h3 id="le-séquenceur">Le séquenceur</h3>
<p>Il permet de jouer de 16 à 128 pas par piste.</p>
<h3 id="bpm">BPM</h3>
<p>Le BPM (vitesse de lecture en Beat Par Minutes) et le swing (décalage temporel du temps des pas), peuvent être modifiés globalement pour les 4 pistes, en fonction du type de musique que l'on souhaite créer. </p>
<h3 id="swing">Swing</h3>
<p>Le swing, parfois appelé groove dans certains séquenceurs, permet de modifier la vitesse de lecture des pas pairs et impairs. Picoloop permet de modifier ce swing de 25 à 75 pour les quatre pistes simultanément.</p>
<ul>
<li>Un swing à 50 donne le même temps de lecture pour chaque pas, on a donc une vitesse de lecture homogène entre les pas.</li>
<li>Un swing à 75 permet de lire les pas pairs deux fois plus vite que les pas impairs.</li>
<li>Un swing à 25 permet de lire les pas impairs deux fois plus vite que les pas pairs.</li>
</ul><h3 id="timedivision">TimeDivision</h3>
<p>Chaque piste peut profiter d'un temps de divisions temporelles différent. Cela permet de faire varier la vitesse de lecture d'une piste par rapport à une autre. L'utilité pratique d'une telle fonctionnalité est de créer de longues nappes de synthé que l'on fait varier très lentement. Par exemple un temps de division de 8 permet de lire une piste de 16 pas à la même vitesse qu'une piste de 128 pas. Ce qui est très pratique, mais finalement peu disponible dans les séquenceurs à pattern.</p>
<h3 id="ergonomie-du-séquenceur">Ergonomie du séquenceur</h3>
<p>La modification d'un pattern s'effectue en temps réel pendant que le séquenceur joue le pattern. L'ensemble des paramètres de synthèse de chaque synthétiseur peut être modifié pour chaque pas, ce qui donne une variation élevée du son joué par un pattern. Cette ergonomie est similaire à Nanoloop et est proche des séquenceurs Elektron.</p>
<h3 id="chargement-et-sauvegarde-des-patterns">Chargement et sauvegarde des patterns</h3>
<p>Un menu Load/Save permet de sauvegarder le pattern qui est actuellement joué sur une piste. On peut si on le souhaite sauvegarder et charger indépendamment chaque piste et non les quatre en même temps. Ce qui permet de faire des micro-variations dans ce que l'on joue.</p>
<p>Le chargement d'un pattern s'effectue en temps réel et non à la fin d'un pattern. Cette méthode adaptée au jeu en temps réel, et utilisée typiquement sur les synthétiseurs Volca, augmente le panel de variations possible que l'on peut appliquer à des patterns de 16 pas.</p>
<h2 id="plateforme">Plateforme</h2>
<p>J'ai développé Picoloop pour qu'il fonctionne sur des consoles de jeu mais aussi sur PC.</p>
<p>L'idée est assez simple, je souhaitais :</p>
<ul>
<li>disposer d'un bloc-note musical avec moi ; </li>
<li>pouvoir utiliser les pistes créées sur ce bloc-note directement avec mes synthés mais aussi sur un CPU ayant des performances supérieures aux consoles de jeu ;</li>
<li>disposer d'un code ayant une portabilité élevée afin de pouvoir le faire évoluer vers les nouvelles plateformes qui sortiront dans le futur ; </li>
</ul><p>Picoloop fonctionne donc sur Linux, Windows mais aussi sur les autres plateformes sur lesquelles j'ai eu le temps de le porter.</p>
<p>Le choix des bibliothèques utilisées par le code du logiciel a été effectué dans un souci de portabilité. J'utilise <a href="https://fr.wikipedia.org/wiki/Simple_DirectMedia_Layer">SDL 1.2</a> pour l'affichage car SDL 1.2 est encore disponible sur beaucoup de plateformes. <a href="https://www.music.mcgill.ca/%7Egary/rtaudio/">RtAudio</a> pour la gestion du son et RtMidi pour la partie Midi (en cours de développement et partiellement implémenté).</p>
<h3 id="psp-et-dingoo">PSP et Dingoo</h3>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f796f797a2f617564696f2f6d61737465722f7069636f6c6f6f702f7069636f6c6f6f705f73637265656e73686f745f7073705f64696e676f6f2e6a7067/picoloop_screenshot_psp_dingoo.jpg" alt="PICOLOOPPSPDINGOO" title="Source : https://raw.githubusercontent.com/yoyz/audio/master/picoloop/picoloop_screenshot_psp_dingoo.jpg"></p>
<p>Ici une photo de Picoloop sur plateformes Dingoo avec le système Linux OpenDingux et PSP avec un firmware permettant l’exécution de homebrew (code "maison").</p>
<h2 id="moteur-de-synthèse">Moteur de synthèse</h2>
<h3 id="picosynth">Picosynth</h3>
<p>Un synthétiseur soustractif 32 bits 2 oscillateurs utilisant uniquement des entiers que j'ai développé spécialement pour valider le concept de l'application dans un environnement sans virgule flottante. Il utilise une synthèse soustractive très simplifiée. Il permet de jouer des sons très simples.</p>
<h3 id="picodrum">Picodrum</h3>
<p>Un synthétiseur soustractif 32 bits dédié aux rythmes. Il s'inspire très fortement du moteur Picosynth. Il permet de jouer des "<a href="https://fr.wikipedia.org/wiki/Kick#Musique">kicks</a>", des "<a href="https://en.wikipedia.org/wiki/Hi-hat">hats</a>" et des "<a href="https://en.wikipedia.org/wiki/Snare_drum">snares</a>".</p>
<h3 id="dbopl">DBOpl</h3>
<p>Un synthétiseur FM 2 opérateurs utilisant un code source d'émulation de carte OPL2. Ce type de synthèse était utilisé typiquement sur les jeux DOS.</p>
<h3 id="cursynth">Cursynth</h3>
<p>Un synthétiseur soustractif 2 oscillateurs développé par Matt Tytel disponible également sous Debian en ligne de commande.</p>
<h3 id="twytch">Twytch</h3>
<p>Également appellé Helm, un synthétiseur soustractif 2 oscillateurs développé également par Matt Tytel. Ce synthétiseur est plus complet et plus varié que Cursynth.</p>
<h3 id="pbsynth">PBSynth</h3>
<p>Encore un autre synthétiseur soustractif 2 oscillateurs. Ce synthé a été développé il y a plusieurs années par un amateur de développement logiciel et de musique, à la base pour la plateforme GP2X. Celui-ci occupe très peu de CPU, il fonctionne en entier et virgule flottante et peut être joué sur une console de jeu type PSP.</p>
<h3 id="mda-drumsynth">MDA Drumsynth</h3>
<p>Un synthétiseur rythmique développé par la société MDA qui l'a mis en opensource par la suite.</p>
<h2 id="code-source-et-binaire">Code source et binaire</h2>
<p>Le code source de ce logiciel est hébergé sur <a href="https://github.com/yoyz/audio/">GitHub</a>. Le forum du développement du logiciel se trouve hébergé sur <a href="http://chipmusic.org/forums/topic/13624/picoloop-nanoloop-clone/">chipmusic.org</a>. La dernière version des binaires pour Windows et PSP se trouve sur <a href="https://www.dropbox.com/s/9ogqdytniiij6dp/picoloop-0.66-20160417?dl=0">Dropbox</a>.</p>
<p>Étant seul sur le développement de ce projet que j'effectue par passion, je n'ai pas créé de paquets pour Debian, Redhat et autres versions de Linux. Cependant le logiciel n'est pas compliqué à compiler et le README contient les instructions liées à la compilation sous Linux. Si vous souhaitez contribuer à la création d'un paquet pour votre distribution préférée vous êtes bien évidemment les bienvenus.</p>
<p>Si vous souhaitez contribuer à ce logiciel, je vous invite à soumettre vos diffs au format "diff -Naur" directement dans la partie "issue" dans Github en précisant le tag git sur lequel s'applique ce patch.</p>
<h2 id="exemples-de-production">Exemples de production</h2>
<p>Les <a href="https://soundcloud.com/yoyz2k/picoloop-v049-audioout-wip">deux</a> <a href="https://soundcloud.com/yoyz2k/audioout-051">premiers</a> lien musicaux utilisent Open303 et Cursynth qui sont des synthèses qui demandent une FPU très puissante : comprendre PC desktop ou laptop supportant au moins SSE et fournissant 1 Gflops. Un PC laptop bas de gamme d'il y a quatre ans en est capable.<br>
En clair le code utilisé tourne sur PC et il n'est pas optimisé suffisamment pour tourner sur de l'embarqué, il demande à vue de nez 500 Mflops pour fonctionner correctement par piste, et il y a quatre pistes. Ces tracks n'ont pas été testés sur processeur ARM avec NEON mais les processeurs ARM tablette et smartphone ne sont probablement pas encore en mesure de gérer suffisamment de FLOPS en CPU pour arriver à soutenir 4 voix avec un calcul flottant de ce type.</p>
<p>Le <a href="https://soundcloud.com/yoyz2k/pic0-001">troisième</a> utilise picodrum, picosynth et Dbopl, en gros ce qu'il est possible de sortir sur une PSP ou une Dingoo avec du calcul entier (int long) et pas de FPU. C'est une synthèse moins couteuse que les deux tracks précédentes.</p>
<h2 id="licence">Licence</h2>
<h3 id="dialogue-entre-un-attentif-modérateur-et-lauteur-">Dialogue entre un attentif modérateur et l'auteur :</h3>
<p>« Concernant la dépêche sur Picoloop en cours de modération sur LinuxFr.org : d'abord merci d'avoir rédigé et soumis une dépêche sur LinuxFr.org. L'équipe de modération s'interroge sur une information manquante qui est généralement attendue par nos lecteurs, à savoir la licence du logiciel.</p>
<p>Après un examen rapide, je dirais, sauf erreur, concernant <a href="https://github.com/yoyz/audio/">le dépôt Git</a> :</p>
<ul>
<li>rien dans le README global</li>
<li>amsynth/ : GPLv2+</li>
<li>biquad_filter/ : licence libre basique</li>
<li>chip/gb : GPLv2</li>
<li>chip/opl2 : GPLv2+</li>
<li>PGCPE : licences propriétaires (dont "Not for reproduction (electronic or hardcopy) except for personal use." par exemple). Ça paraît problématique.</li>
<li>cursynth: GPLv3+ (potentiellement un souci avec le GPLv2 strict vu plus haut)</li>
<li>lgptsampler : GPLv2+</li>
<li>mda_drumsynth : GPLv2+</li>
<li>midi : une BSD modifiée avec une demande optionnelle d'envoi des modifications</li>
<li>open303 : pas d'info de licence, propriétaire donc</li>
<li>pbsynth : pas d'info de licence, propriétaire donc</li>
<li>picoloop : non concluant, a priori un mélange de licences plus du non spécifié</li>
<li>twytch : GPLv3+</li>
<li>vopm : non concluant, je dirais propriétaire</li>
</ul><p>La dépêche évoque Picoloop, Picosynth, Picodrum, DBOpl, Cursynth, Twytch, PBSynth et MDA Drumsynth. Pourrait-on connaître la licence de chacun de ces logiciels ? Idéalement l'ajout d'un fichier COPYRIGHT contenant la licence dans chaque répertoire, la mention de la licence dans le README et l'utilisation d'entêtes serait pratique pour déterminer la licence de chaque code. Voir par exemple <a href="http://www.gnu.org/licenses/gpl-howto.fr.html">http://www.gnu.org/licenses/gpl-howto.fr.html</a> pour la GPL. »</p>
<h4 id="la-réponse-courte">La réponse courte</h4>
<p>Je vais placer une licence BSD sur le répertoire Picoloop, le code source du logiciel. Ça me semble le plus adapté en fonction de la façon dont je développe ce logiciel. Si une personne souhaite le reprendre un jour il pourra le faire évoluer vers un type de licence plus adapté au cycle de vie de ce logiciel. Je vais intégrer un fichier LICENCE en fonction de ce que j’aperçois dans chaque répertoire, tu as déjà fait un gros bout du boulot. Je répond à ce mail une fois que c'est effectué avec le nom des fichiers et les explications du pourquoi.</p>
<h4 id="la-réponse-longue">La réponse longue</h4>
<p>Tu soulèves une question très intéressante mais aussi très longue à détailler et expliquer, j'ai toujours repoussé à plus tard et je n'aurais sans doute pas dû.<br>
Je me suis intéressé uniquement à l'aspect conception du logiciel, les licences pour moi c’était annexe tant que le code semblait être BSD, GPL, MIT et autres licence opensource. Je n'ai toujours pas tranché très clairement la licence qui peut s'appliquer au programme en lui même pour différente raison que je vais décrire. Je vais donc partir par défaut sur la BSD.</p>
<p>Tout d'abord je vais détailler un peu le dépôt github.com/yoyz/audio :</p>
<ul>
<li>Le répertoire "." du git contient les codes sources d'origine sans modification</li>
<li>Le répertoire "picoloop" du git contient le programme Picoloop et ses dépendances pour compiler avec gcc/g++ make, en clair le minimum vital pour ne pas avoir à ramener 15 dépendances pour que le binaire puisse fonctionner.</li>
</ul><p>Je ne travaille que dans le répertoire "picoloop" du git pour faire évoluer le logiciel et patcher les moteurs sonores. Je travaille dans le répertoire "." du git pour importer des moteurs sonores. C'est pour ça d’ailleurs que le git s'appelle « audio » et non « picoloop », car un jour j'y ajouterai d'autres programmes qui dépendront de ces moteurs de synthèse. Les imports de code de moteurs de synthèse se font dans le répertoire "." afin de garder une trace des sources originales. J’intègre au final dans Picoloop quand un moteur sonore est fonctionnel tel quel avec un "build.sh" et un "main.c" permettant de valider un helloworld dessus. Par exemple je n'utilise pas encore VOPM, ni PGCPE, enfin celui-ci il va falloir que je creuse pour savoir où il se trouve j'en ai pas de souvenir.</p>
<p>Ensuite le programme Picoloop dans le répertoire du même nom est scindé en deux grosses briques : </p>
<ol>
<li>le séquenceur qui utilise les bibliothèques RtAudio, RtMidi, SDL1.2, DirectX ;</li>
<li>les plugins moteurs de synthése qui sont dans des licences très variées comme tu as pu le voir.</li>
</ol><p>L'ensemble des .c/.cpp du répertoire picoloop et des répertoires fils sont compilés dans des .o. J'ai donc besoin de l'ensemble des codes des moteurs de synthèse que j'utilise et du séquenceur pour fabriquer le binaire. Il n'est pas possible d'utiliser des .so et donc de désolidariser chaque bout de code, bien que ce soit portable sous Unix, car la PSP ne les prend pas en charge de la même façon, Windows également. Et donc ça demanderait pas mal de boulot pour arriver à un résultat incertain. Donc, pragmatiquement, je suis obligé d'avoir l'ensemble des codes sources pour que ça fonctionne. Et tout ces codes sources dans des licences variées.</p>
<p>Je penche fortement du coup pour une licence BSD pour Picoloop, ce qui laisse à quiconque le soin de faire ce qu'il souhaite des sources sans se préoccuper trop de l'aspect juridique lié aux licences. Pour la simple raison que si la GPL2 est sans doute incompatible avec la licences MIT qui est incompatible avec la tataouinepouetpouet licence, ça ne m’intéressera absolument pas. Qu'est ce que tu en penses vu la construction du soft ?</p>
<p>Dans le monde de la MAO, il y a peu de codeurs (moins de 10) par projet et le code source tombe très souvent aux oubliettes au bout de quelques années. Et avec ce prérequis d’insérer un lot de .h et de .o avec licences variées dans un exécutable, le mieux serait peut-être qu'il soit en BSD au final afin de tout simplifier. Mon intérêt c'est de faire un logiciel qui me plaît et qui plaît aux gens ; si un jour je souhaite faire de l'argent avec, ou si une autre personne souhaite faire de l'argent avec, que ce soit faisable sans devenir un casse-tête juridique. Je pense donc que laisser les sources sans patch et avec patch dans le même arbre ça peut aider à démystifier ce casse-tête, s'il se présente un jour. </p>
<p>Concernant les moteurs de synthèse dont la licence semble problématique voici ce que j'ai trouvé :</p>
<ul>
<li>Open303 : <a href="https://sourceforge.net/p/open303/code/HEAD/tree/License.txt">MIT</a>
</li>
<li>PGCPE : celui-ci je ne l'ai pas vu dans mon code ? Je ne pense pas l'utiliser, il doit traîner dans le "." du git — enfin ça ne me dit rien, mais c'est sans doute un bout de code qui suit un autre bout de code. Très souvent des moteurs sonores sont publiés par des codeurs indépendants sur leur page personnelle. On retrouve très souvent ces bouts de code avec des émulateurs qui sont publiés avec leurs source. D'ailleurs j'encourage tous ces petits gars à publier leur code, même s'ils ne fournissent pas l'infra ./configure et autre pour que ça tourne, juste un bout de code permettant une réutilisation.</li>
<li>Pbsynth : le code a été publié avec le binaire Linux <a href="http://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,6,2867">Gp2x</a> sur le site <a href="http://openhandhelds.org/">Openhandleds</a>. L'auteur ne répond plus à ses courriels, il a sans doute changé d'adresse. Je ne saurais dire quelle est la licence de ce bout de code logiciel, l'auteur a laissé les sources et le binaire volontairement sur le site Openhandhelds. En suivant le fil du README, je pense qu'il ne s'est jamais plus préoccupé de la suite des événements, même s'il a songé un jour à en faire un produit. Donc je ne sais pas, je l'ai contacté, il y a plus d'un an, il ne m'a jamais répondu.</li>
<li>Vopm, je viens de lui envoyer un courriel sam_kb CHEZ yahoo.co.jp, c'est un Japonais qui <a href="http://www.geocities.jp/sam_kb/">publie des VST freeware pour Windows</a> avec le code source, et là je ne sais pas quel est la licence et j'avoue ne pas lui avoir posé la question précédemment ; je n'utilise pas son code source dans Picoloop, du moins pas encore, mais j'y songe.</li>
</ul><h4 id="du-coup-si-je-résume">Du coup, si je résume</h4>
<ul>
<li>Open303 utilise une licence MIT, et il est utilisé dans le code</li>
<li>PGCPE il faut que je creuse, sûrement dans le "." du git, mais pas dans Picoloop le logiciel ;</li>
<li>Picoloop, on va dire BSD pour que rien ne coince, je vais mettre un fichier LICENCE ;</li>
<li>Et concernant ces logiciels qui se trouvent dans "picoloop/Machine" (les moteurs de synthèse) :
<ul>
<li>Picoloop : BSD</li>
<li>Picosynth : BSD</li>
<li>Picodrum : BSD</li>
<li>DBOpl : GPLv2 audio/picoloop/Machine/Dbopl/adlib.h</li>
<li>Cursynth : GPLv3</li>
<li>Twytch : GPLv3</li>
<li>PBSynth : je ne le saurais sans doute jamais</li>
<li>MDA Drumsynth : opensource, mais quelles licences ? sur Sourceforge ils disent <a href="https://sourceforge.net/projects/mda-vst/">GPLv2 et MIT</a>, mais je n'en suis pas certain.</li>
</ul>
</li>
</ul><h3 id="je-viens-de-mettre-à-jour-le-git-avec-tes-recommandations">Je viens de mettre à jour le git avec tes recommandations.</h3>
<p>Voici l'arbre des licences :</p>
<table>
<thead><tr>
<th>dossier</th>
<th>licence</th>
</tr></thead>
<tbody>
<tr>
<td>picoloop</td>
<td>BSD</td>
</tr>
<tr>
<td>picoloop/Machine/MidiOutSystem</td>
<td>BSD</td>
</tr>
<tr>
<td>picoloop/Machine/Cursynth</td>
<td>GPLv3</td>
</tr>
<tr>
<td>picoloop/Machine/Twytch</td>
<td>GPLv3</td>
</tr>
<tr>
<td>picoloop/Machine/Dbopl</td>
<td>GPLv2</td>
</tr>
<tr>
<td>picoloop/Machine/MDADrum</td>
<td>GPLv2</td>
</tr>
<tr>
<td>picoloop/Machine/Open303</td>
<td>MIT</td>
</tr>
<tr>
<td>picoloop/Machine/PBSynth</td>
<td>Inconnue ; l'auteur a disparu dans la nature</td>
</tr>
<tr>
<td>picoloop/Machine/Picosynth</td>
<td>BSD</td>
</tr>
<tr>
<td>picoloop/Machine/Picodrum</td>
<td>BSD</td>
</tr>
</tbody>
</table><p>Tout le reste du repo git, le répertoire "." n'est pas lié au logiciel Picoloop. J'y dépose ce dont j'ai besoin pour travailler, mais on peut construire le logiciel rien qu'à partir du répertoire "picoloop".</p>
<p>C'est donc lié à ma méthode de travail et lié à la construction du logiciel. <br>
Du coup, seul PBSynth pose un souci et je ne vois pas bien comment résoudre ce problème.</p></div><div><a href="https://linuxfr.org/news/picoloop-un-sequenceur-musical.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/108917/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/picoloop-un-sequenceur-musical#comments">ouvrir dans le navigateur</a>
</p>
yoyzZeroHeureBenoît SibaudclaudexNÿcopalm123bubar🦥https://linuxfr.org/nodes/108917/comments.atom