Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab

17 mai 2019 : accident de la base de données : plus d'infos

#1 2010-03-17 04:22:29 Cherche collaboration...

artflx
membre
Lieu: Montréal
Date d'inscription: 2009-10-19
Messages: 25
Site web

Cherche collaboration...



Bonjours,

Je travail depuis environs 6 mois avec SuperCollider (j'ai travaillé beaucoup avec Pure Data jusqu'à ce moment) et je développe actuellement un projet qui se veut assez vaste (du moins je l'espère lol ).

Et voilà, le projet me semble bien entamé et je cherche donc des gents qui seraient intéressés à collaborer à la suite de son développement. En gros, le projet, dont le nom est " GEN, créez de la musique générative dans votre salon! ", consiste à développer un logiciel relativement complet et intuitif de création de musique générative (avec ma connaissance imparfaite de ce qu'est la musique générative smile ). Bon, à l'heure actuelle, la base du projet est bien établie, c'est-à-dire que le développement des éléments de base est terminé et tout semble fonctionnel (système de syncro, d'enregistrement, de sauvegarde de presets, ect.) et il reste donc le plus intéressant à faire, soit mettre la chaire autour de l'os  big_smile  (ajouter des effets, améliorer les fonctions des séquenceurs, etc.).

Aussi, un de mes soucis dans ce projet est de convertir certains morceaux de code en classe (les samplers, en autre...) afin d'optimiser le programme. En effet, mon code tel qu'il est écrit actuellement comporte un grand nombre de variables globales et je cherche donc à réduire leur utilisation. Enfin, si vous avez des avis à ce sujet, je serais plutôt content de les connaître.

Alors, si vous êtes intéresser à participer au développement de ce projet, je vous invite à communiquer avec moi par courriel ( flx.artiste@gmail.com ) ou à vous rendre sur mon site web afin de télécharger le dernier développement du projet ( www.artflx.com/Espace_code.php#gen ). Et n'hésitez pas à me poser des questions sur son utilisation car il n'y a que très peu d'indication pour l'instant... Mais ça viendras en temps et lieu smile

Bien entendu, je serai ravi de connaître vos commentaires ou suggestion sur ce projet  cool

PS: Vous trouverai aussi quelques abstractions Pd sur la même page (sampler, séquenceur, système de preset, etc.), pour ceux que ça intéresse.

Hors ligne

 

#2 2010-04-06 22:24:18 Re : Cherche collaboration...

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Cherche collaboration...



Bonjour Artfx,

Je regarderais ton code source plus en profondeur quand j'aurais un peu de temps.
Merci en tout cas de le fournir ! smile

Voici un petit bout de musique générative de notre ami Click Nilson, ça peut te donner des idées smile :

//generative stacked thirds, try a few times...
//sound, all parameters have lag for gradual changes
(
SynthDef(\stackedthirdvoice,{|freq=440, amp=0.1, numharmonics=1, pan=0.0, lagrate= 1.0, modrate= 1.0, modphase= 0.0, modamp= 0.0|
var blip;

blip= Blip.ar(freq.lag(lagrate), numharmonics.lag(lagrate), amp.lag(lagrate))*((1.0-modamp.lag(lagrate))+(modamp.lag(lagrate)*SinOsc.ar(modrate.lag(lagrate), modphase.lag(lagrate), 0.5, 0.5)));

Out.ar(0,PanAz.ar(2,blip,pan.lag(3.0)))

}).send(s);
)

//run more than one of me at once if you like
(   
    var root, numthirds;
    var thirdsarray, ratios, freqs;
    var voices, amp;
    var runningproduct;
    var ampchangechance, numharmonicschangechance, panchangechance;
    var minthird, maxthird;
    var changespeed;
    var arpeggiochance, resetchance, modchance;
    var modratenow,modphasenow,modampnow;
    var mode= 3.rand;     
    
    numthirds = rrand(4,rrand(10,20));
    
    ampchangechance = [rrand(0.01,rrand(0.01,1.0)),exprand(0.001,numthirds.reciprocal),numthirds.reciprocal].choose;
    numharmonicschangechance = [rrand(0.01,rrand(0.01,1.0)),exprand(0.001,numthirds.reciprocal),numthirds.reciprocal].choose;
    panchangechance = [rrand(0.01,rrand(0.01,1.0)),exprand(0.001,numthirds.reciprocal),numthirds.reciprocal].choose;
    arpeggiochance = rrand(0.0,rrand(0.05,rrand(0.05,1.0)));
    resetchance = rrand(0.0,0.1);
    modchance = rrand(0.0,0.3);
    
    if(0.6.coin,{modampnow=0.0; modchance=0.0; });
    
    changespeed = rrand(0.5,3.5);
    
    modratenow = rrand(1.0,10.0)*(changespeed.reciprocal);
    modphasenow = pi.rand;
    modampnow = 1.0.rand;
    
    root = rrand(24,60).midicps;

    amp = 0.5/numthirds;
    
    //between just over 2.5 semitones and just under 4.5, where 3 is minor third and 4 is major
    minthird = rrand(2.51,2.75);
    maxthird = rrand(4.25,4.49);
    
    if(0.02.coin,{minthird=maxthird;});
    
    thirdsarray= Array.rand(numthirds,minthird,maxthird).midiratio;
    
    runningproduct = 1.0;
    
    ratios = [1]++(Array.fill(numthirds,{|i| runningproduct = runningproduct * thirdsarray[i]; runningproduct;}));
    
    freqs = root*ratios;
    
    voices = Array.fill(numthirds+1,{|i|  Synth(\stackedthirdvoice,[\freq, freqs[i], \amp, amp, \pan, 1.0.rand.rand2, \lagrate, changespeed, \modrate, modratenow,\modphase, modphasenow+(0.1.rand), \modamp, modampnow])});
    
    {
    
        inf.do{
        var which;
    
        which = numthirds.rand;
       
        thirdsarray[which] = rrand(minthird,maxthird).midiratio;
    
        runningproduct = 1.0;
    
        ratios = [1]++(Array.fill(numthirds,{|i| runningproduct = runningproduct * thirdsarray[i]; runningproduct;}));
    
        freqs = root*ratios;
    
        switch(mode,
        0,{for(which+1,which+1,{|i| voices[i].set(\freq, freqs[i])});},
        1,{for(which+1,rrand(which+1,numthirds),{|i| voices[i].set(\freq, freqs[i])});},
        2,{for(which+1,numthirds,{|i| voices[i].set(\freq, freqs[i])});}
        );
    
        if(resetchance.coin,{voices.do{|voice| voice.set(\numharmonics, 1, \amp, [amp,0.0].choose); } });
    
        if(arpeggiochance.coin,{
           
            //zero everything
            voices.do{|voice| voice.set(\amp,0.0); };
       
            //arpeggiate
            {
            var startpoint= ((numthirds+1).rand);
            var direction = (-1)**(2.rand);
            var speed;
    
            speed= (rrand(changespeed-0.4,changespeed+0.6))/numthirds;
           
            (numthirds+1).do{|i| var indexnow= (startpoint+(i*direction)); voices.wrapAt(indexnow).set(\amp, amp);  speed.wait; };
           
            (numthirds+1).do{|i| var indexnow= (startpoint+((numthirds-i)*direction)); voices.wrapAt(indexnow).set(\amp, amp);  speed.wait; };
           
            }.fork;
       
         });
       
         if(modchance.coin,{
       
         if(0.4.coin,{
       
         modratenow = rrand(1.0,10.0)*(changespeed.reciprocal);
         modphasenow = pi.rand;
         modampnow = 1.0.rand;
       
         voices.do{|v| v.set(\modrate, modratenow,\modphase, modphasenow, \modamp, modampnow); }
       
         },{
       
         voices.do{|v| v.set(\modrate, rrand(1.0,10.0)*(changespeed.reciprocal),\modphase, pi.rand, \modamp, 1.0.rand); }
       
         });
       
         });
    
        rrand(changespeed-0.5,changespeed+0.5).wait;
        }
    
    }.fork;
    
    //independent
    
    voices.do{|voice, i|
       
        {
           
            inf.do{
           
            if(ampchangechance.coin,{voice.set(\amp,[amp.rand,amp,exprand(0.001,0.1),0.0].choose)});
           
            rrand(changespeed-0.1,changespeed+0.9).wait;
            }
       
        }.fork;
       
        {
           
            inf.do{
           
            if(numharmonicschangechance.coin,{voice.set(\numharmonics,[1,rrand(2,6),rrand(3,10),rrand(7,20),rrand(11,31)].wchoose([0.35,0.35,0.2,0.08,0.02]))});
           
            rrand(changespeed-0.3,changespeed+0.7).wait;
            }
       
        }.fork;
       
            {
           
            inf.do{
           
            if(panchangechance.coin,{voice.set(\pan,1.0.rand.rand2)});
           
            rrand(changespeed-0.2,changespeed+0.8).wait;
            }
       
        }.fork;
    }
)

__________________


Bonne suite !
+++

Hors ligne

 

#3 2010-04-09 00:57:09 Re : Cherche collaboration...

artflx
membre
Lieu: Montréal
Date d'inscription: 2009-10-19
Messages: 25
Site web

Re: Cherche collaboration...



Bonjour,

J'ai ajouté un démo de ce qui est possible de faire à l'heure actuelle avec le projet "Gen, créez de la musique générative dans votre salon!". Vous pouvez l'écouter sur mon site web, à l'adresse suivante : http://artflx.olympe-network.com/Espace … couter#gen

Notez que cette démo à été réalisé très rapidement et que je la changerai sous peu pour une démo plus pertinente. Bref, au fur et à mesure que ce projet évoluera, je changerai de démo afin de donner une idée plus juste de ce qu'il peut faire.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2020