Pages: 1
Le principe de ce patch c'est de prendre un sample, de le découper en petit morceaux qui soit vont se recouvrir un peu, donc certaines parties du samples seront jouée plusieurs fois et ont aura une expansion temporelle:
ABCDEF
-> AABBCCDDEEFF
Soit seront espacés, et certaines parties du sample ne seront pas jouée et ont aura une compression temporelle :
ABCDEF
-> ACE
Pour que cela sonne correctement on va appliquer à chaque morceau de sample (grain) une envellope d'amplitude triangulaire, qui commence à zero, monte jusqu'à 1 avec une pente de 1 et redescent à 0.
De plus on va enchainer les grains (avec un metro) de façon à ce que l'envellope suivante commence au moment ou la précédente est au son maximum, comme ça on a une amplitude constante et pas de "trous". Comme ça :
Pour parler un peu de l'implémentation dans max, on va utiliser un [groove~] pour le sample, et ce qu'on voit sur le dessin, c'est que l'on a besoin que de 2 [groove~] (y'a jamais plus de deux envellope/sample en même temps), simplement quand l'envellope est finie on relance le groove avec une position dans le sample un peu plus tardive.
Une manière naïve de faire ça aurait été de faire pleins de groove~ avec notre sample et de les faire partir tous à des positions différentes (1,2,3,4 secondes, etc) et de les enchainer, ce qui est idiot car pour un long sample il en faut des tas.
Une autre chose que l'on voit dans le dessins c'est que :
a * durée de l'envellope = 2 * Metro
avec a = 1 / pitch (pitch de l'envellope)
C'est la condition pour que les envellopes s'enchainent bien comme je le veux, et il suffit donc de calculer le pitch en fontion de la vitesse du metro et de la durée de l'envellope.
Ok, passons maintenant à l'implémentation.
Premièrement je fais un subpatch "groove" avec deux [groove~] un pour le sample et un pour l'envellope. Les inlets de gauche à droite:
Bang pour déclencher les deux groove~, position de départ dans le sample (remarquez l'usage de prepend set), pitch de l'envellope, pitch du sample.
Ensuite je prend deux subpatchs groove que je vais déclancher alternativement avec le metro.
J'ajoute le calcul du pitch de l'envellope et de la position de lecture du sample (on compte le nombre de bang du metro et on multiplie par la vitesse du metro).
J'ajoute un multiplicateur à la position de lecture du sample, c'est ce qui va permettre de faire du time stretching.
Et finalement, un petit système qui arrête le metro si le sample est fini, et qui relance le tout si loop = 1.
C'est fini !
Bon j'espère que ça vous aidera un peu, parce que je ferais pas ça tout les jours..
Note: je vous conseil d'utiliser mon envellope triangulaire, mais on peut utiliser n'importe quoi..
Hors ligne
citation :
Le principe de ce patch c'est de prendre un sample, de le découper en petit morceaux qui soit vont se recouvrir un peu, donc certaines parties du samples seront jouée plusieurs fois et ont aura une expansion temporelle:
ABCDEF
-> AABBCCDDEEFF
L'idée est vraiment excellente , ça depasse le simple looping par time stretch qu'on voit un peu partout. J'ai compris le principe général, je pense qu'en testant le patch tout deviendra plus clair.
Merci pour la clarté de tes explications et pour la qualité de tes patches.
Hors ligne
>L'idée est vraiment excellente
Pas de moi hein
>ça depasse le simple looping par time stretch
Qu'est-ce que ?
Hors ligne
excellente explication!
j'intègre de suite!!
Hors ligne
Oui je me doute bien que tu n'est pas l'inventeur de la synthèse granu et du pitch shifting.
J'entendais par "Looping par time stretch" les patches qui te callent en boucle automatiquement ton sample au tempo en le time stretchant. C'est le système avec l'enveloppe que je trouve vraiment original, en tout cas j'ai jamais vu ça avant.
J'ai testé et je trouve qu'il réagit superbien et proprement (pas de clics) , on obtient des sons intéréssants et l'utilisation d'autres envelloppes que la triangulaire fait réélement varier le traitement.
J'ai juste l'impression qu'il y a un petit blanc à la fin de chaque boucle sinon il manquerait juste des indications de valeur pour s'y repérer un peu mieux.
good job
Hors ligne
>J'ai testé et je trouve qu'il réagit superbien et proprement (pas de clics)
Parce que l'amplitude est modulée par des envellopes qui commencent et finissent à zero.
> l'utilisation d'autres envelloppes que la triangulaire fait réélement varier le traitement.
Oui en fait si tu prend un sample quelconque tu fais de la modulation d'amplitude, c'est sur que ça va changer le résultat.
Normalement il faudrait utiliser que des envellopes positive, qui commencent et finisent à 0 et qui quand tu les additionnes décalé d'une demi longeur te donne une amplitude constante.
Hors ligne
Hors ligne
Oui, moi j'ai utilisé du "Pitch-synchronous granular synthesis" je crois.
[img]http://www.sfu.ca/~truax/GranPs.gif [/img]
Overlapping grain envelopes designed to be synchronous with the frequency of the grain waveform, thereby producing fewer audio artifacts.
Cela dit il faudrait peut-être voir ça d'un peu plus près, la modulation d'amplitude n'est pas neutre au niveau fréquenciel.
Hors ligne
Pages: 1