Oui, mais à propos... de ce drôle de titre ?
C'est le début d'un très long nom de partition de John Cage.
http://www.johncage.info/workscage/crumplingpaper.html
Voici un début de transposition du procédé de cette pièce à pure data.
Voilà une des dix pages. On en choisit de 3 à 10 et on a le droit de les répéter. On joue seul ou à plusieurs.
Chaque point vaut un silence, une croix est un double son ("unison") les O sont des sons qui durent et dans le cas des parenthèses qui sont de la même famille, il faut jouer exactement la même chose pour les parenthèses ouvrantes que pour les fermentes.
Pour le moment, il manque les sons et une version plus tardive sera faite avec des machines sonores interfacées par un ou plusieurs arduinos.
Dans les semaines qui viennent je vais faire les prises de son des fragments de 2 secondes maximum. Une vingtaine pour chaque banque de son.
Pour tester le patch, il faut choisir le nombre de voies de 1 à 4 qui se créent en dynamique - en haut à droite. Pour changer le nombre de voies, il faut repasser à 0, détruire avant de choisir un nouveau nombre et de construire.
Avant de lancer la lecture, il faut charger des pages de partitions dans les 1 à 4 lecteurs qui se sont créés et des banques de sons dans les boîtes en dessous, mais là, pour le moment, il n'y a rien à charger...
Dernière modification par pob (2011-07-04 14:38:34)
Hors ligne
c très bien.
peut etre l'interface manque de vu meter
sinon j'ai appris des choses en lisant ton code.
pas tout compris mais c sur la bonne voie
Hors ligne
je dois bien avouer mon ignorance devant ce type de messages
;
pd-audioTables obj $1 20 table $2
y a t il un tutorial qui traine quelque part.
Hors ligne
oli44 > Ouais, c'est un remake new-yorkais de "La cage aux folles" version couple homo de l'intelligentsia...
jkp > merci. Ce que tu relèves, c'est du patch dynamique, on recrée le code comme si on rajoutait (et enlevait) des lignes au fichier texte qui se cache derrière chaque patch.
Perso, j'ai appris mes quelques bases avec un objet [polypoly~], il y a peut-être d'autres façons de ne pas s'y perdre. Il faut absolument savoir le numéro des objets pour les manipuler (rajouter des connexions, effacer des objets...)
On peut travailler avec un sous-patch cible, ici [pd audioTables] .
Quand j'envoie un message
[;
pd-audioTables ( je vais pouvoir agir sur son contenu.
Quelques fonctions :
"clear" pour tout vider
"donecanvasdialog " pour modifier les propriétés du sous-patch, peut servir à déplacer, masquer ou faire apparaître la fenêtre de GOP (graph on parent)
"obj " va créer un objet ( positionX positionY nomObjet ...arguments... )
"connect " va créer une connexion, là il faut connaître le numéro des objets et c'est là que ça se corse, c'est là où il vaut mieux être très bien organisé, créer les choses avec une certaine logique.
http://puredata.info/community/projects/software/many
Dernière modification par pob (2011-07-05 09:47:39)
Hors ligne
EDIT (trop lent ) :
Help > Pure Data > manual > pd-msg > 1.msg_and_patch
Et chouette projet, par ailleurs...
Dernière modification par Olivier (2011-07-05 09:55:26)
Hors ligne
Ouep, juste pour préciser qu'il n'y a pas (à ma connaissance) de méthode pour supprimer un objet unique, pob si tu as une astuce à ce sujet je suis preneur...(le retrouver géographiquement avec ses coordonnées x.y ?)
A savoir aussi que le patchage dynamique trouve vite ses limites quant il s'agit de créer/effacer beaucoup d'objets à un rythme soutenu (clics audio cf goulet d'étranglement tcl/tk ), le patchage dynamique concerne donc de la production de patchs à jouer une fois la génération dynamique finie, beaucoup plus que de la modification 'en live' de patchs.
Hors ligne
Il y a pour la modification en live une suggestion, commencer le message de modif pas un [; dsp 0( et en fin de modif [; dsp 1(, c'est une proposition de Mathieu Bouchard qui avait circulé sur la liste. Ca évite des clics, pour la guitare je ne sais pas si ça évite le son des frettes...
Pour effacer, j'ai peut-être dit une connerie, mais bon, pour nettoyer l'ardoise magique, il y a clear, c'est un peu brutal, faut tout recommencer à zéro, ce qui est peut-être le moins compliqué en patch dynamique...
Il y a [cut ( - faut sans doute sélectionner avant le bon objet avec un [find (, mais ensuite si on fait de nouvelles connexions il faut savoir combien d'objets on a effacé et le rang de ces objets effacés... galère...
Hors ligne
Pob j'ai effectivement jamais essayé le dsp 1/0, si ça se trouve ça marche, mais j'avais trouvé la limite très basse genre au delà de 10 création d'objets / secondes ça cliquait sévère... Voir si ta soluce peut améliorer les choses.
Sinon je continue de me demander si le patchage dynamique est vraiment un truc fini, dans le sens ou la suppression est vraiment merdique, et je ne parle même pas de l'édition d'un objet quelconque...
Alors qu'avec la création/incrémentation d'un index lors de la création d'un objet, tout serait énormément plus facile...
Hors ligne
iemguts devrait servir à aider le patch dynamique. Je ne sais pas trop où ça en est à l'heure actuelle.
Dans mon application, comme tu dis, je m'en sers pour la création au début de la session plutôt que pour reconfigurer à la volée... De toutes façon quand on crée une nouvelle instance d'objet il faut lui passer tous les arguments, alors pour tout démolir et recréer, ça fait un paquet d'infos à renvoyer à chaque coup, très lourd si on fait varier des valeurs dans les modules.
Pour moi c'est un moyen de pousser la modularité vers une certaine automation : un patch type et qui s'adapte en quelques clics à un dispositif : nombre de canaux de sortie, nombre de voies de séquenceur/sampler...
Hors ligne