Esempio n. 1
0
def io_random(slot, *_):
    envs = envelopes()
    amps = []
    for i in (1,2,3):
        amps.append(coin(0.75, 0.5+rnd(),rnd()))
    amps[pick((0,1,2))] = 1.0
    ff = cformants()
    rr = cratios()
    p = io(slot,"Random",
           amp = 0.1,
           vibrato = vibrato(freq = coin(0.75,4+rnd(4),rnd(16)),
                             lock = coin(0.75, 1, 0),
                             noise = coin(0.5, 0.0, rnd()),
                             sens = coin(0.80, rnd(0.1),rnd()),
                             depth = coin(0.25, 0, coin(0.75, rnd(0.3), rnd())),
                             x = 0.0,
                             tremRatio = trem_ratio()),
           blip = blip(attack = coin(0.75, rnd(0.1),rnd(MAX_BLIP_SEGMENT_TIME)),
                       decay = coin(0.75, 0.1+rnd(0.2), rnd(MAX_BLIP_SEGMENT_TIME)),
                       depth = coin(0.75, 0.0, coin(0.75, rnd(0.2), rnd()))),
           noise = noise(ratio = coin(0.75, 1.0, pick(NOISE_RATIOS)),
                         amp = coin(0.75, rnd(0.4), rnd())),
           modulator = modulator(ratio = pick((1,1,1,1,2,2,2,2,3,4)),
                                 feedback = coin(0.5, 0.0, coin(0.75, rnd(2), rnd(4))),
                                 lfo = coin(0.75, 0.0, coin(0.75, rnd(0.2), rnd()))),
           op1 = car(1,ff,rr,envs,amps[0]),
           op2 = car(2,ff,rr,envs,amps[1]),
           op3 = car(3,ff,rr,envs,amps[2]))
    return p
Esempio n. 2
0
def random_xover(slot=127, *_):
    lfrq = coin(0.75, rnd(), coin(0.75, rnd(10),rnd(100)))
    p = xover(slot, "Random",
              lfoFreq = lfrq,
              lfo2Ratio = pick(xcon.LFO_RATIOS)[0],
              lfo2Wave = coin(0.75, 0.5, rnd()),
              lfoEnable = coin(0.75, 1, 0),
              res = coin(0.75, rnd(0.5), rnd()),
              xover = pick(xcon.CROSSOVER_FREQUENCIES),
              lfoToXover = coin(0.50, 0, rnd()),
              externToXover = 0.0,
              minXover = xcon.CROSSOVER_FREQUENCIES[0],
              maxXover = xcon.CROSSOVER_FREQUENCIES[-1],
              filterBMix = rnd(),
              filterBRatio = pick(xcon.FILTER_B_RATIOS)[0],
              filterBLag = coin(0.50, rnd(), 0.0),
              dryAmp = coin(0.75, 0.5+rnd(0.5), coin(0.50, 0, rnd())),
              filterAAmp = coin(0.75, 0.5+rnd(0.5), coin(0.50, 0, rnd())),
              filterBAmp = coin(0.75, 0.5+rnd(0.5), coin(0.50, 0, rnd())),
              dryPan = 0.0,
              filterAPan = 0.0,
              filterBPan = 0.0,
              xscale = 1.0,
              xbias = 0.0)
    return p
Esempio n. 3
0
def io_random(slot, *_):
    envs = envelopes()
    amps = []
    for i in (1, 2, 3):
        amps.append(coin(0.75, 0.5 + rnd(), rnd()))
    amps[pick((0, 1, 2))] = 1.0
    ff = cformants()
    rr = cratios()
    p = io(slot,
           "Random",
           amp=0.1,
           vibrato=vibrato(freq=coin(0.75, 4 + rnd(4), rnd(16)),
                           lock=coin(0.75, 1, 0),
                           noise=coin(0.5, 0.0, rnd()),
                           sens=coin(0.80, rnd(0.1), rnd()),
                           depth=coin(0.25, 0, coin(0.75, rnd(0.3), rnd())),
                           x=0.0,
                           tremRatio=trem_ratio()),
           blip=blip(attack=coin(0.75, rnd(0.1), rnd(MAX_BLIP_SEGMENT_TIME)),
                     decay=coin(0.75, 0.1 + rnd(0.2),
                                rnd(MAX_BLIP_SEGMENT_TIME)),
                     depth=coin(0.75, 0.0, coin(0.75, rnd(0.2), rnd()))),
           noise=noise(ratio=coin(0.75, 1.0, pick(NOISE_RATIOS)),
                       amp=coin(0.75, rnd(0.4), rnd())),
           modulator=modulator(ratio=pick((1, 1, 1, 1, 2, 2, 2, 2, 3, 4)),
                               feedback=coin(0.5, 0.0,
                                             coin(0.75, rnd(2), rnd(4))),
                               lfo=coin(0.75, 0.0, coin(0.75, rnd(0.2),
                                                        rnd()))),
           op1=car(1, ff, rr, envs, amps[0]),
           op2=car(2, ff, rr, envs, amps[1]),
           op3=car(3, ff, rr, envs, amps[2]))
    return p
Esempio n. 4
0
def envelopes():
    type_hint, time_hint = env_hint()
    acc = []

    def pick_time(hint):
        if hint == "fast":
            return rnd(0.1)
        elif hint == "medium":
            return coin(0.75, rnd(0.2), rnd(0.5))
        else:
            return 0.5 + coin(0.75, rnd(2), rnd(6))

    for op in (1, 2, 3):
        typ = coin(p_env_changeup, pick(["adsr", "asr", "perc"]), type_hint)
        tm = coin(p_env_changeup, pick(["fast", "medium", "slow"]), time_hint)

        att = pick_time(tm)
        dcy = pick_time(tm)
        rel = pick_time(tm)
        sus = coin(0.5, 0.5 + rnd(0.5), rnd())
        if typ == "asr":
            sus = 1.0
        elif typ == "perc":
            sus = coin(0.75, 0.0, rnd(0.1))
            dcy /= 2
            rel *= 2
        acc.append((att, dcy, sus, rel))
    return acc
Esempio n. 5
0
def envelopes():
    type_hint, time_hint = env_hint()
    acc = []
    def pick_time(hint):
        if hint == "fast":
            return rnd(0.1)
        elif hint == "medium":
            return coin(0.75, rnd(0.2), rnd(0.5))
        else:
            return 0.5+coin(0.75, rnd(2), rnd(6))
    for op in (1,2,3):
        typ = coin(p_env_changeup, pick(["adsr","asr","perc"]), type_hint)
        tm = coin(p_env_changeup, pick(["fast","medium","slow"]), time_hint)
        
        att = pick_time(tm)
        dcy = pick_time(tm)
        rel = pick_time(tm)
        sus = coin(0.5, 0.5+rnd(0.5), rnd())
        if typ == "asr":
            sus = 1.0
        elif typ == "perc":
            sus = coin(0.75, 0.0, rnd(0.1))
            dcy /= 2
            rel *= 2
        acc.append((att,dcy,sus,rel))
    return acc
Esempio n. 6
0
def pick_fm_modulation_ratio(is_harmonic):
    if is_harmonic:
        rs = coin(0.75,
                  pick(HARMONICS),
                  pick(HARMONICS2))
    else:
        rs = coin(0.75, 0.5+rnd(5), rnd(12))
    return rs
Esempio n. 7
0
File: envgen.py Progetto: kaos/Llia
def pick_env_time_hint(is_percussive=None):
    if is_percussive:
        h = pick((MEDIUM, MEDIUM, SLOW, SLOW, SLOW, SLOW, SLOW, SLOW, SLOW,
                  GLACIAL))
    else:
        h = coin(0.75, pick((ULTRA_FAST, FAST, MEDIUM)),
                 pick((ULTRA_FAST, FAST, MEDIUM, SLOW, GLACIAL, FULL)))
    return h
Esempio n. 8
0
def pick_env_time_hint(is_percussive=False):
    if is_percussive:
        h = coin(0.74, SLOW, coin(0.67, MEDIUM, GLACIAL))
    else:
        h = coin(0.75,
                 pick((ULTRA_FAST,FAST,FAST, MEDIUM)),
                 pick((FAST,MEDIUM,SLOW,GLACIAL,FULL)))
    return h
Esempio n. 9
0
def random_flanger(slot=127, *_):
    p = flngr(slot, "Random", amp=0,
              delay = coin(0.75, 0.5, rnd()),
              modDepth = rnd(),
              modFreq = coin(0.75, rnd(), rnd(10)),
              feedback = random_sign()*rnd(0.9),
              loweq = coin(0.75, 20000, pick([1000, 2000, 4000, 8000])),
              higheq = coin(0.75, 20, pick([200, 400, 800, 1600])),
              efxMix = coin(0.75, 0.5+rnd(0.5), rnd()),
              xmodDepth = 0.0,
              xmixScale = 0.0)
    return p
Esempio n. 10
0
def random_ss1(slot, *_):
    ff = pick(LOWPASS_CUTOFF)
    ft = pick(LOWPASS_TRACK)
    open_filter = (ft >= 2) or (ff > MID_CUTOFF)
    if open_filter:
        fenv_sign = -1
    else:
        fenv_sign = 1

    def envtime(seg):
        if seg == 'a':
            return coin(0.75, rnd(0.5), coin(0.75, rnd(), rnd(4)))
        else:
            return coin(0.75, rnd(2), rnd(4))

    amps = []
    for i in range(3):
        amps.append(rnd())
    amps[pick([0, 1, 2])] = 1.0
    p = ss1(slot,
            "Random",
            port=coin(0.90, 0.0, rnd()),
            vsens=coin(0.75, 0.1, rnd()),
            xPitch=0.0,
            chorus=coin(0.50, 1, 0),
            lfoFreq=coin(0.75, 3 + rnd(4), coin(0.5, rnd(3), rnd(16))),
            lfoWave=pick([0, 0, 0, 0, 0, 0, 1, 2]),
            lfoDelay=rnd(2),
            lfoAmp=coin(0.25, 0.0, rnd()),
            attack=envtime("a"),
            decay=envtime("d"),
            sustain=coin(0.75, 0.5 + rnd(0.5),
                         coin(0.75, rnd(), coin(0.5, 0.0, 1.0))),
            release=envtime("r"),
            sawMix=amps[0],
            pulseMix=amps[1],
            subMix=amps[2],
            subOctave=coin(0.5, 0, 1),
            noiseSelect=coin(0.5, 0, 1),
            noiseMix=coin(0.75, 0, coin(0.75, rnd(0.5), rnd())),
            wave=coin(0.75, 0.5, rnd()),
            waveLFO=coin(0.75, 0.0, rnd()),
            waveEnv=coin(0.75, 0.0, rnd()),
            highPass=coin(0.75, HIGHPASS_CUTOFF[0], pick(HIGHPASS_CUTOFF)),
            filterFreq=ff,
            filterTrack=ft,
            filterLFO=int(coin(0.75, 0, rnd(MID_CUTOFF))),
            filterEnv=int(fenv_sign * coin(0.75, rnd(LOWPASS_CUTOFF[-2]), 0)),
            xFilter=0,
            gateMode=coin(0.75, 0, 1),
            amp=0.3)
    return p
Esempio n. 11
0
def random_flanger(slot=127, *_):
    p = flngr(slot,
              "Random",
              amp=0,
              delay=coin(0.75, 0.5, rnd()),
              modDepth=rnd(),
              modFreq=coin(0.75, rnd(), rnd(10)),
              feedback=random_sign() * rnd(0.9),
              loweq=coin(0.75, 20000, pick([1000, 2000, 4000, 8000])),
              higheq=coin(0.75, 20, pick([200, 400, 800, 1600])),
              efxMix=coin(0.75, 0.5 + rnd(0.5), rnd()),
              xmodDepth=0.0,
              xmixScale=0.0)
    return p
Esempio n. 12
0
File: rutil.py Progetto: kaos/Llia
def fm_params(op, pconfig={}):
    pdeep = pconfig.get("p-deep-modulation", 0.1)
    plfo = pconfig.get("p-lfo", 0.1)
    mscale = coin(pdeep, pick([1,10,100,1000,10000]),pick([1,1,10,10,10,10]))
    rs = {"fm%d_ratio" % op : pick_ratio(pconfig),
          "fm%d_moddepth" % op : round(coin(0.75, rnd(), 0.0),4),
          "fm%d_modscale" % op : float(mscale),
          "fm%d_lag" % op : round(coin(0.50, 0.0, rnd()), 4),
          "fm%d_lfo1" % op : round(coin(plfo, coin(0.5, rnd(0.25), rnd()), 0.0),4),
          "fm%d_lfo2" % op : round(coin(plfo, coin(0.5, rnd(0.25), rnd()), 0.0),4),
          "fm%d_external" % op : 0.0,
          "fm%d_left" % op : 0,
          "fm%d_right" % op : 0}
    return rs
Esempio n. 13
0
def random_ss1(slot, *_):
    ff = pick(LOWPASS_CUTOFF)
    ft = pick(LOWPASS_TRACK)
    open_filter = (ft >=2) or (ff > MID_CUTOFF)
    if open_filter:
        fenv_sign = -1
    else:
        fenv_sign = 1
    def envtime(seg):
        if seg == 'a':
            return coin(0.75, rnd(0.5), coin(0.75, rnd(), rnd(4)))
        else:
            return coin(0.75, rnd(2), rnd(4))
    amps = []
    for i in range(3):
        amps.append(rnd())
    amps[pick([0,1,2])] = 1.0
    p = ss1(slot,"Random",
            port = coin(0.90, 0.0, rnd()),
            vsens = coin(0.75, 0.1, rnd()),
            xPitch = 0.0,
            chorus = coin(0.50, 1, 0),
            lfoFreq = coin(0.75, 3+rnd(4), coin(0.5, rnd(3), rnd(16))),
            lfoWave = pick([0,0,0,0,0,0,1,2]),
            lfoDelay = rnd(2),
            lfoAmp = coin(0.25, 0.0, rnd()),
            attack = envtime("a"),
            decay = envtime("d"),
            sustain = coin(0.75, 0.5+rnd(0.5), coin(0.75, rnd(), coin(0.5, 0.0, 1.0))),
            release = envtime("r"),
            sawMix = amps[0],
            pulseMix = amps[1],
            subMix = amps[2],
            subOctave = coin(0.5, 0, 1),
            noiseSelect = coin(0.5, 0, 1),
            noiseMix = coin(0.75, 0, coin(0.75, rnd(0.5), rnd())),
            wave = coin(0.75, 0.5, rnd()),
            waveLFO = coin(0.75, 0.0, rnd()),
            waveEnv = coin(0.75, 0.0, rnd()),
            highPass = coin(0.75, HIGHPASS_CUTOFF[0], pick(HIGHPASS_CUTOFF)),
            filterFreq = ff,
            filterTrack = ft,
            filterLFO = int(coin(0.75, 0, rnd(MID_CUTOFF))),
            filterEnv = int(fenv_sign*coin(0.75, rnd(LOWPASS_CUTOFF[-2]), 0)),
            xFilter = 0,
            gateMode = coin(0.75, 0, 1),
            amp = 0.3)
    return p
Esempio n. 14
0
def cratios():
    harmonic = (1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4,
                5, 6, 8)
    acc = []
    for i in range(3):
        acc.append(coin(0.80, pick(harmonic), rnd(8)))
    return tuple(acc)
Esempio n. 15
0
def pick_filter(id):
    floor,ceiling = 100,16000
    ff = int(floor+rnd(ceiling-floor))
    trk = coin(0.75,0,pick((0.5,1,2)))
    head = ceiling-ff
    r = rnd()
    if r<0.25:
        env = cenv = 0
    elif r<0.50:
        env = int(rnd(head))
        cenv = 0
    elif r<0.75:
        cenv=int(rnd(head))
        env=int(rnd(head-cenv))
    else:
        env=0
        cenv=int(rnd(head))
    if ff > 6000:
        env = coin(0.8,-1,1)*env
        cenv = coin(0.8,-1,1)*cenv
    if cenv==0 and env==0:
        plfo = 0.5
    else:
        plfo = 0.1
    lfo = coin(plfo, int(head), 0)
    vlfo = coin(0.05,int(head),0)
    return filter(id,freq=ff,track=trk,
                  env=env,cenv=cenv,lfo=lfo,vlfo=vlfo,
                  res=rnd())
Esempio n. 16
0
File: envgen.py Progetto: kaos/Llia
def pick_env_type_hint(hint=None, p_changeup=1.0):
    hint = hint or pick((GATE, PERCUSSIVE, PERCUSSIVE, PERCUSSIVE, PERCUSSIVE,
                         ADSR, ADSR, ADSR, ADSR, ASR, ASR))
    #hint = coin(p_changeup, pick_env_type_hint(None,0), hint)
    if coin(p_changeup):
        return pick_env_type_hint(hint, 0)
    return hint
Esempio n. 17
0
def cratios():
    harmonic = (1,1,1,1,1,1,1,1,
                2,2,2,2,2,2,2,2,
                3,3,3,4,4,5,6,8)
    acc = []
    for i in range(3):
        acc.append(coin(0.80, pick(harmonic), rnd(8)))
    return tuple(acc)
Esempio n. 18
0
def pick_filter_mod(ff):
    if coin(0.25):
        if ff > 4000:
            psign = 0.75
        else:
            psign = 0.25
        return random_sign(psign)*pick(FILTER_FREQUENCIES)
    else:
        return 0
Esempio n. 19
0
def pick_noise_mod(nfreq):
    if coin(0.25):
        if nfreq > 4000:
            psign = 0.75
        else:
            psign = 0.25
        return random_sign(psign)*pick(FILTER_FREQUENCIES)
    else:
        return 0
Esempio n. 20
0
def pick_harmonic_envmod(n):
    if coin(0.60):
        return 0
    else:
        if n > 12:
            psign = 0.75
        else:
            psign = 0.25
    return random_sign(psign)*pick(HARMONICS)
Esempio n. 21
0
File: envgen.py Progetto: kaos/Llia
def pick_env_type_hint(hint=None, p_changeup=1.0):
    hint = hint or pick((GATE,
                         PERCUSSIVE,PERCUSSIVE,PERCUSSIVE,PERCUSSIVE,
                         ADSR,ADSR,ADSR,ADSR,
                         ASR,ASR))
    #hint = coin(p_changeup, pick_env_type_hint(None,0), hint)
    if coin(p_changeup):
        return pick_env_type_hint(hint,0)
    return hint
Esempio n. 22
0
def random_program(slot=127, *_):
    lp = [400, 800, 1600, 3150, 6300, 8000,
          10000, 10000, 10000, 10000,
          16000, 16000, 16000, 16000]
    hp = [20, 100, 100, 100, 100, 200, 400, 800, 1600, 3150]
    p = carnal(slot, "Random", amp=0,
               delayTime = coin(0.5, rnd(0.5), rnd(MAX_DELAY)),
               xDelay = 0,
               wow = coin(0.75,0,coin(0.75, rnd(0.1), rnd())),
               wowFreq = coin(0.75, rnd(), rnd(5)),
               flutter = coin(0.75, 0, coin(0.75, rnd(0.2), rnd())),
               feedback = coin(0.75, 0.5+rnd(0.4), rnd(0.95)),
               gain = 1.0,
               threshold = 1.0,
               eq = [pick(lp), pick(hp)],
               wetMix = coin(0.75, 0.5+rnd(0.25), rnd()),
               xWetMix=0)
    return p
Esempio n. 23
0
def fm_params(op, pconfig={}):
    pdeep = pconfig.get("p-deep-modulation", 0.1)
    plfo = pconfig.get("p-lfo", 0.1)
    mscale = coin(pdeep, pick([1, 10, 100, 1000, 10000]),
                  pick([1, 1, 10, 10, 10, 10]))
    rs = {
        "fm%d_ratio" % op: pick_ratio(pconfig),
        "fm%d_moddepth" % op: round(coin(0.75, rnd(), 0.0), 4),
        "fm%d_modscale" % op: float(mscale),
        "fm%d_lag" % op: round(coin(0.50, 0.0, rnd()), 4),
        "fm%d_lfo1" % op: round(coin(plfo, coin(0.5, rnd(0.25), rnd()), 0.0),
                                4),
        "fm%d_lfo2" % op: round(coin(plfo, coin(0.5, rnd(0.25), rnd()), 0.0),
                                4),
        "fm%d_external" % op: 0.0,
        "fm%d_left" % op: 0,
        "fm%d_right" % op: 0
    }
    return rs
Esempio n. 24
0
def _env_time(hint):
    hnt = coin(0.8, hint, pick(['FAST','MEDIUM','SLOW','GLACIAL']))
    if hnt == 'FAST':
        return r(rnd(0.1))
    elif hnt == 'MEDIUM':
        return r(0.1 + rnd(2))
    elif hnt == 'SLOW':
        return r(0.5 + rnd(4))
    else:
        return r(3+rnd(9))
Esempio n. 25
0
def _env_time(hint):
    hnt = coin(0.8, hint, pick(['FAST', 'MEDIUM', 'SLOW', 'GLACIAL']))
    if hnt == 'FAST':
        return r(rnd(0.1))
    elif hnt == 'MEDIUM':
        return r(0.1 + rnd(2))
    elif hnt == 'SLOW':
        return r(0.5 + rnd(4))
    else:
        return r(3 + rnd(9))
Esempio n. 26
0
def pick_efx(env):
    a,d1,d2,r,bp,s,hold = env
    rs = {"efx-amp" : coin(0.25, 0.0, rnd()),
          "efx-mix" : coin(0.50, rnd(2)-1, coin(0.5, -1.0, 1.0)),
          "lfo-ratio" : coin(0.75, pick(LFO_RATIOS[:6]),pick(LFO_RATIOS))[0],
          "flanger-delay" : rnd(MAX_FLANGER_DELAY),
          "flanger-feedback" : coin(0.5,-1,1)*coin(0.75,rnd(0.75),0.5*rnd(0.5)),
          "flanger-lfo-depth" : coin(0.75, rnd(0.3), coin(0.75, 0.0, rnd())),
          "ps-ratio" : coin(0.75, pick([0.5,1.0,1.5,2,3,4]),rnd(4)),
          "ps-pitch-dispersion" : coin(0.90, 0, rnd(0.5)),
          "ps-time-dispersion" : coin(0.75, 0, rnd()),
          "ps-lfo-depth" : coin(0.75, 0, rnd()),
          "attack" : a,
          "decay1" : d1,
          "decay2" : d2,
          "release" : r,
          "breakPoint" : bp,
          "sustain" : s,
          "env-cycle" : hold}
    return rs
Esempio n. 27
0
def random_program(slot=127, *_):
    lp = [
        400, 800, 1600, 3150, 6300, 8000, 10000, 10000, 10000, 10000, 16000,
        16000, 16000, 16000
    ]
    hp = [20, 100, 100, 100, 100, 200, 400, 800, 1600, 3150]
    p = carnal(slot,
               "Random",
               amp=0,
               delayTime=coin(0.5, rnd(0.5), rnd(MAX_DELAY)),
               xDelay=0,
               wow=coin(0.75, 0, coin(0.75, rnd(0.1), rnd())),
               wowFreq=coin(0.75, rnd(), rnd(5)),
               flutter=coin(0.75, 0, coin(0.75, rnd(0.2), rnd())),
               feedback=coin(0.75, 0.5 + rnd(0.4), rnd(0.95)),
               gain=1.0,
               threshold=1.0,
               eq=[pick(lp), pick(hp)],
               wetMix=coin(0.75, 0.5 + rnd(0.25), rnd()),
               xWetMix=0)
    return p
Esempio n. 28
0
def percussive_envelope(time_hint):
    if time_hint < MEDIUM:
        time_hint = pick_env_time_hint(True)
    junk,dcy1,dcy2,rel = pick_env_times(time_hint,0.0)
    att = coin(0.80, 0.00, rnd(0.01))
    dcy1,dcy2 = min(dcy1,dcy2),max(dcy1,dcy2)
    while dcy1 > 1:
        dcy1 = dcy1-1
    if dcy2 < 0.5:
        dcy2 = coin(0.25, dcy2, pick([dcy1*2,dcy1*3,dcy1*4]))
    bp = coin(0.50,rnd(0.75),0.75)
    sus = coin(0.90,0.0,rnd(0.12))
    return round_env_values([att,dcy1,dcy2,rel,bp,sus,0])
Esempio n. 29
0
File: envgen.py Progetto: kaos/Llia
def _percussive_envelope(time_hint):
    if time_hint < MEDIUM:
        time_hint = pick_env_time_hint(True)
    status("Percussive", time_hint)
    junk, dcy1, dcy2, rel = pick_envelope_times(time_hint, 0.0)
    att = coin(0.80, 0.00, rnd(0.01))
    dcy1, dcy2 = min(dcy1, dcy2), max(dcy1, dcy2)
    if dcy1 > 1:
        dcy1 = coin(0.75, rnd(), dcy1)
    if dcy2 < 0.5:
        dcy2 = coin(0.25, dcy2, pick((dcy1 * 2, dcy1 * 3, dcy1 * 4)))
    bp = coin(0.50, rnd(0.75), 0.75)
    sus = coin(0.90, 0.0, rnd(0.12))
    return _round_env_values((att, dcy1, dcy2, rel, bp, sus, 0))
Esempio n. 30
0
File: envgen.py Progetto: kaos/Llia
def _percussive_envelope(time_hint):
    if time_hint < MEDIUM:
        time_hint = pick_env_time_hint(True)
    status("Percussive", time_hint)
    junk,dcy1,dcy2,rel = pick_envelope_times(time_hint,0.0)
    att = coin(0.80, 0.00, rnd(0.01))
    dcy1, dcy2 = min(dcy1,dcy2),max(dcy1,dcy2)
    if dcy1 > 1:
        dcy1 = coin(0.75, rnd(), dcy1)
    if dcy2 < 0.5:
        dcy2 = coin(0.25, dcy2, pick((dcy1*2,dcy1*3,dcy1*4)))
    bp = coin(0.50,rnd(0.75),0.75)
    sus = coin(0.90, 0.0, rnd(0.12))
    return _round_env_values((att,dcy1,dcy2,rel,bp,sus,0))
Esempio n. 31
0
def scanner_random(slot,*_):
    srate = coin(0.50, rnd(7),coin(0.90, rnd(), rnd(100)))
    wave = coin(0.70, 0.5, rnd())
    delay = rnd(0.05)
    depth = rnd()
    feedback = random_sign(0.5, coin(0.75, 0.5+rnd(0.49), rnd(0.75)))
    if abs(feedback) > 0.75:
        lowpass = pick((16000, 12000, 8000, 8000, 8000, 4000, 4000, 2000))
    else:
        lowpass = 16000
    dry = 0.5
    wet = 0.5

    return scanner(slot, "Random",
                   srate, wave, delay, depth,
                   feedback,lowpass, dry, wet, wet, 0.0)
Esempio n. 32
0
def op_params(op, pconfig={}):
    vel = coin(pconfig.get("p-velocity", 0.4), rnd(), 0.0)
    lf1 = coin(pconfig.get("p-lfo", 0.1), rnd(), 0.0)
    lf2 = coin(pconfig.get("p-lfo", 0.1), rnd(), 0.0)
    penv = random_sign() * coin(pconfig.get("p-pitch-env", 0.02),
                                rnd(2) - 1, 0.0)
    rs = {
        "op%d_ratio" % op: pick_ratio(pconfig),
        "op%d_bias" % op: pick_bias(pconfig),
        "op%d_velocity" % op: round(vel, 4),
        "op%d_lfo1" % op: round(lf1, 4),
        "op%d_lfo2" % op: round(lf2, 4),
        "op%d_external" % op: 0.0,
        "op%d_key" % op: 60,
        "op%d_left" % op: 0,
        "op%d_right" % op: 0,
        "op%d_pe" % op: round(penv, 4)
    }
    if op == 3:
        p = pconfig.get("p-noise", 0.1)
        nsmix = round(coin(p, coin(0.5, rnd(), 1.0), 0.0), 4)
        nsbw = pick(NOISE_BANDWIDTHS)
        rs["nse3_mix"] = nsmix
        rs["nse3_bw"] = nsbw
    elif op == 4:
        p = pconfig.get("p-buzz", 0.4)
        plfo = pconfig.get("p-lfo", 0.1)
        n = int(coin(0.60, rnd(8), rnd(128)))
        if n < 16:
            s = 1
        elif n > 84:
            s = -1
        else:
            s = coin(0.5, -1, 1)
        env = int(s * coin(0.50, rnd(128), 0.0))
        lfo = int(coin(plfo, coin(0.75, rnd(64), rnd(128))))
        lag = round(coin(0.50, rnd(), 0.0), 4)
        mix = round(coin(p, rnd(), 0), 4)
        rs["bzz4_n"] = max(n, 1)
        rs["bzz4_env"] = env
        rs["bzz4_lfo2"] = lfo
        rs["bzz4_lag"] = lag
        rs["bzz4_mix"] = mix
    return rs
Esempio n. 33
0
File: rutil.py Progetto: kaos/Llia
def op_params(op, pconfig={}):
    vel = coin(pconfig.get("p-velocity",0.4), rnd(), 0.0)
    lf1 = coin(pconfig.get("p-lfo",0.1), rnd(), 0.0)
    lf2 = coin(pconfig.get("p-lfo",0.1), rnd(), 0.0)
    penv = random_sign()*coin(pconfig.get("p-pitch-env", 0.02), rnd(2)-1, 0.0)
    rs = {"op%d_ratio" % op : pick_ratio(pconfig),
          "op%d_bias" % op : pick_bias(pconfig),
          "op%d_velocity" % op : round(vel,4),
          "op%d_lfo1" % op : round(lf1,4),
          "op%d_lfo2" % op : round(lf2,4),
          "op%d_external" % op : 0.0,
          "op%d_key" % op : 60,
          "op%d_left" % op : 0,
          "op%d_right" % op : 0,
          "op%d_pe" % op : round(penv,4)}
    if op == 3:
        p = pconfig.get("p-noise",0.1)
        nsmix = round(coin(p, coin(0.5, rnd(), 1.0), 0.0),4)
        nsbw = pick(NOISE_BANDWIDTHS)
        rs["nse3_mix"] = nsmix
        rs["nse3_bw"] = nsbw
    elif op == 4:
        p = pconfig.get("p-buzz", 0.4)
        plfo = pconfig.get("p-lfo",0.1)
        n = int(coin(0.60, rnd(8), rnd(128)))
        if n < 16:
            s = 1
        elif n > 84:
            s = -1
        else:
            s = coin(0.5,-1,1)
        env = int(s * coin(0.50, rnd(128), 0.0))
        lfo = int(coin(plfo, coin(0.75, rnd(64),rnd(128))))
        lag = round(coin(0.50, rnd(), 0.0), 4)
        mix = round(coin(p, rnd(), 0), 4)
        rs["bzz4_n"] = max(n,1)
        rs["bzz4_env"] = env
        rs["bzz4_lfo2"] = lfo
        rs["bzz4_lag"] = lag
        rs["bzz4_mix"] = mix
    return rs
Esempio n. 34
0
def _pick_mod_scale(p_deep_modulation=0.1):
    s = coin(p_deep_modulation,
             coin(0.75, pick((1e2,1e3)), pick((1e4,1e5))),
             coin(0.50, 1,10))
    return s
Esempio n. 35
0
def _ctune():
    harm = pick([1,1.333,1.5,2,3,4,5,6,7,8])
    return r(coin(0.75, harm, 1+rnd(8)))
Esempio n. 36
0
def m_random(slot=127,*_):
    time_hint = pick(('FAST','MEDIUM','SLOW','GLACIAL'))
    env_mode = coin(0.80, 0, 1)
    rb1 = _tune()
    rb2 = coin(0.50, rb1+(coin(0.50, rnd(0.01), 0)), _tune())
    amps = []
    for i in range(3):
        amps.append(coin(0.75, 0.333+rnd(0.667), 0))
    amps.append(coin(0.75, 0, rnd()))
    amps[pick([0,1,2])]=1.0
    p = m(slot,"Random",
          port = coin(0.1, rnd(), 0),
          amp = 0.1,
          lfo =  lfo(vFreq = r(coin(0.75, 4+rnd(4), coin(0.75,
                                                         1+rnd(9),rnd(99)))),
                     vSens = r(coin(0.75, 0.1, rnd())),
                     vDepth = r(coin(0.75, 0.0, rnd())),
                     xPitch = 0.0,
                     aRatio = _lfo_ratio(),
                     bRatio = _lfo_ratio(),
                     cRatio = _lfo_ratio(),
                     aDelay = pick(LFO_DELAYS),
                     bDelay = pick(LFO_DELAYS),
                     cDelay = pick(LFO_DELAYS),
                     tLag = r(coin(0.50, 0, rnd()))),
          enva = _env('a',time_hint,env_mode),
          envb = _env('b',time_hint,env_mode),
          envc = _env('c',time_hint,env_mode),
          a = toneA(ratio = min(_tune()*pick([1,2,2,3,3,3,4,4,4,4,6,8,12,16,24,32]),99),
                    keyscale = [60,0,0],
                    quotient = [pick([1,2,3,4,5,6,7,8,9,10,11,12]),
                                coin(0.75, 0, pick(range(8))),
                                coin(0.75, 0, pick(range(8))),
                                0],
                    pulse = [r(coin(0.5, 0.5, rnd())),
                             r(coin(0.75, 0.0, rnd())),
                             r(coin(0.75, 0.0, rnd())),
                             0.0],
                    clkmix = coin(0.75, 0.0, rnd()),
                    envpitch = coin(0.90, 0.0, sign()*rnd()),
                    tremolo = coin(0.75, 0, rnd())),
          b = toneB(ratio1 = rb1, ratio2 = rb2,
                    keyscale = [60,0,0],
                    n1 = [pick(range(32)),
                          coin(0.75, 0.0, pick(range(32))),
                          coin(0.75, 0.0, pick(range(32))),
                          0.0],
                    n2 = [pick(range(32)),
                          coin(0.50, 0.0, rnd()),
                          coin(0.75, -1, coin(0.75, 1, 0))],
                    envpitch = coin(0.90, 0.0, sign()*rnd()),
                    tremolo = coin(0.75, 0, rnd())),
          c = toneC(ratio = _ctune(),
                    keyscale = [60,0,0],
                    pulseFreq = [_ctune(),
                                 coin(0.75, 0, pick(range(4))),
                                 coin(0.75, 0, pick(range(4))),
                                 0.0],
                    pwm = [coin(0.5, 0.5, rnd()),
                           coin(0.5, 0.0, rnd()),
                           coin(0.75, 0.0, rnd()),
                           0.0],
                    inciteSelect = coin(0.50, 0.0, rnd()),
                    envpitch = coin(0.90, 0, sign()*rnd()),
                    tremolo = coin(0.75,0, rnd())),
          noise = noise(lp = coin(0.75, 20000, 500+coin(5000)),
                        hp = coin(0.75, 10, 500+coin(5000)),
                        lag = coin(0.5, 0.0, rnd()),
                        tremolo = coin(0.75, 0, rnd())),
          mix = mixer(mix = amps,
                      pan = [sign()*rnd(),sign()*rnd(),sign()*rnd(),sign()*rnd()]),
          f1 = filter_(1,
                       freq = r(coin(0.75, rnd(5000), rnd(20000))),
                       track = r(pick([0,0,0,1])),
                       res = coin(0.75, rnd(0.5), rnd()),
                       lfo = [coin(0.75, 0.0, rnd(5000)),
                              coin(0.75, 0.0, rnd(5000))],
                       env = [coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000))),
                              coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000)))],
                       pan = 0.0),
          f2 = filter_(2,
                       freq = r(coin(0.75, rnd(5000), rnd(20000))),
                       track = r(pick([0,0,0,1])),
                       res = coin(0.75, rnd(0.5), rnd()),
                       lfo = [coin(0.75, 0.0, rnd(5000)),
                              coin(0.75, 0.0, rnd(5000))],
                       env = [coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000))),
                              coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000)))],
                       pan = 0.0))
    return p
Esempio n. 37
0
def _random_engion(slot,gconfig):
    fn = pick((basic_generator,chorus_generator))
    return fn(slot,gconfig)
Esempio n. 38
0
def _tune():
    harm = pick([0.125,0.25,0.50,0.75,1.0,1.333,1.5,2,3,4,5,6,8,12,16])
    return r(coin(0.75, harm, 0.1+rnd(16)))
Esempio n. 39
0
def trem_ratio():
    r = coin(0.75, (1.0, ""), pick(TREMOLO_RATIOS))
    return r[0]
Esempio n. 40
0
def get_env_hint():
    return pick(["PERCUSSION", "ADDSR"])
Esempio n. 41
0
def m_random(slot=127, *_):
    time_hint = pick(('FAST', 'MEDIUM', 'SLOW', 'GLACIAL'))
    env_mode = coin(0.80, 0, 1)
    rb1 = _tune()
    rb2 = coin(0.50, rb1 + (coin(0.50, rnd(0.01), 0)), _tune())
    amps = []
    for i in range(3):
        amps.append(coin(0.75, 0.333 + rnd(0.667), 0))
    amps.append(coin(0.75, 0, rnd()))
    amps[pick([0, 1, 2])] = 1.0
    p = m(slot,
          "Random",
          port=coin(0.1, rnd(), 0),
          amp=0.1,
          lfo=lfo(vFreq=r(
              coin(0.75, 4 + rnd(4), coin(0.75, 1 + rnd(9), rnd(99)))),
                  vSens=r(coin(0.75, 0.1, rnd())),
                  vDepth=r(coin(0.75, 0.0, rnd())),
                  xPitch=0.0,
                  aRatio=_lfo_ratio(),
                  bRatio=_lfo_ratio(),
                  cRatio=_lfo_ratio(),
                  aDelay=pick(LFO_DELAYS),
                  bDelay=pick(LFO_DELAYS),
                  cDelay=pick(LFO_DELAYS),
                  tLag=r(coin(0.50, 0, rnd()))),
          enva=_env('a', time_hint, env_mode),
          envb=_env('b', time_hint, env_mode),
          envc=_env('c', time_hint, env_mode),
          a=toneA(ratio=min(
              _tune() *
              pick([1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 6, 8, 12, 16, 24, 32]), 99),
                  keyscale=[60, 0, 0],
                  quotient=[
                      pick([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),
                      coin(0.75, 0, pick(range(8))),
                      coin(0.75, 0, pick(range(8))), 0
                  ],
                  pulse=[
                      r(coin(0.5, 0.5, rnd())),
                      r(coin(0.75, 0.0, rnd())),
                      r(coin(0.75, 0.0, rnd())), 0.0
                  ],
                  clkmix=coin(0.75, 0.0, rnd()),
                  envpitch=coin(0.90, 0.0,
                                sign() * rnd()),
                  tremolo=coin(0.75, 0, rnd())),
          b=toneB(ratio1=rb1,
                  ratio2=rb2,
                  keyscale=[60, 0, 0],
                  n1=[
                      pick(range(32)),
                      coin(0.75, 0.0, pick(range(32))),
                      coin(0.75, 0.0, pick(range(32))), 0.0
                  ],
                  n2=[
                      pick(range(32)),
                      coin(0.50, 0.0, rnd()),
                      coin(0.75, -1, coin(0.75, 1, 0))
                  ],
                  envpitch=coin(0.90, 0.0,
                                sign() * rnd()),
                  tremolo=coin(0.75, 0, rnd())),
          c=toneC(ratio=_ctune(),
                  keyscale=[60, 0, 0],
                  pulseFreq=[
                      _ctune(),
                      coin(0.75, 0, pick(range(4))),
                      coin(0.75, 0, pick(range(4))), 0.0
                  ],
                  pwm=[
                      coin(0.5, 0.5, rnd()),
                      coin(0.5, 0.0, rnd()),
                      coin(0.75, 0.0, rnd()), 0.0
                  ],
                  inciteSelect=coin(0.50, 0.0, rnd()),
                  envpitch=coin(0.90, 0,
                                sign() * rnd()),
                  tremolo=coin(0.75, 0, rnd())),
          noise=noise(lp=coin(0.75, 20000, 500 + coin(5000)),
                      hp=coin(0.75, 10, 500 + coin(5000)),
                      lag=coin(0.5, 0.0, rnd()),
                      tremolo=coin(0.75, 0, rnd())),
          mix=mixer(mix=amps,
                    pan=[
                        sign() * rnd(),
                        sign() * rnd(),
                        sign() * rnd(),
                        sign() * rnd()
                    ]),
          f1=filter_(
              1,
              freq=r(coin(0.75, rnd(5000), rnd(20000))),
              track=r(pick([0, 0, 0, 1])),
              res=coin(0.75, rnd(0.5), rnd()),
              lfo=[coin(0.75, 0.0, rnd(5000)),
                   coin(0.75, 0.0, rnd(5000))],
              env=[
                  coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000))),
                  coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000)))
              ],
              pan=0.0),
          f2=filter_(
              2,
              freq=r(coin(0.75, rnd(5000), rnd(20000))),
              track=r(pick([0, 0, 0, 1])),
              res=coin(0.75, rnd(0.5), rnd()),
              lfo=[coin(0.75, 0.0, rnd(5000)),
                   coin(0.75, 0.0, rnd(5000))],
              env=[
                  coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000))),
                  coin(0.25, 0, coin(0.75, rnd(10000), -rnd(10000)))
              ],
              pan=0.0))
    return p
Esempio n. 42
0
File: envgen.py Progetto: kaos/Llia
 def select():
     return pick([GATE,ASR,ADSR,PERCUSSIVE])
Esempio n. 43
0
def _tune():
    harm = pick(
        [0.125, 0.25, 0.50, 0.75, 1.0, 1.333, 1.5, 2, 3, 4, 5, 6, 8, 12, 16])
    return r(coin(0.75, harm, 0.1 + rnd(16)))
Esempio n. 44
0
def chorus_generator(slot=127, genconfig={}):
    print("# Using chorus_generator")

    def get_config(key, dflt):
        return genconfig.get(key, dflt)

    ratios, biases = pick_frequencies(get_config("p-harmonic", 0.8))
    op_amps = operator_amps()
    mod_scales = modulation_scales(0)
    ratios, biases, mod_scales = list(ratios), list(biases), list(mod_scales)
    for stk in "ABC":
        use_chorus = coin(0.6)
        if use_chorus:
            cop = {"A": 1, "B": 5, "C": 7}[stk]
            mod1 = {"A": 2, "B": 4, "C": 8}[stk]
            mod2 = {"A": 3, "B": 6, "C": None}[stk]
            ratios[cop - 1] = 0
            biases[cop - 1] = coin(0.75, _round(rnd(2)), _round(rnd(7)))
            mod_scales[mod1 - 1] = pick((100, 100, 1000, 1000, 10000))
            if (mod2 == 6 and coin(0.20)):
                mod_scales[mod2 - 1] = pick((100, 100, 1000, 1000, 10000))
    envelopes = pick_envelopes(get_config("env-type-hint", ADSR),
                               get_config("env-time-hint", ADSR),
                               get_config("p-env-changeup", MEDIUM),
                               get_config("p-env-changeup", MEDIUM),
                               p_duplicate_carrier=0.35)
    env1, env2, env3, env4, env5, env6, env7, env8 = envelopes
    vf, vdly, vsens, vdepth = pick_vibrato()
    pfb = get_config("p-feedback", 0.1)
    afb = pick_stack_feedback(pfb)
    bfb = pick_stack_feedback(pfb)
    cfb = pick_stack_feedback(pfb)
    alfo = pick_stack_lfo()
    blfo = pick_stack_lfo()
    clfo = pick_stack_lfo()

    def openv(op, value):
        return env(op, value[0], value[1], value[2], value[3], value[4],
                   value[5], value[6])

    def opp(n):
        index = n - 1
        return op(n, ratios[index], biases[index], op_amps[index],
                  mod_scales[index], 0, 0, pick_velocity(), pick_op_lfo(), 0)

    p = algo(
        slot,
        "Random",
        amp=0.5,
        modDepth=_round(coin(0.75, 1.0, 0.5 + rnd(0.5))),
        external=[0.0, 0.0, 1.0],  # [mod,pitch,scale]
        vibrato=vibrato(vf, vdly, vsens, vdepth),
        stackA=stack("A",
                     True,
                     op_amps[0],
                     60,
                     feedback=afb[0],
                     fb_env=afb[1],
                     fb_lfo=afb[2],
                     lfo_ratio=alfo[0],
                     lfo_delay=alfo[1],
                     lfo_wave=alfo[2]),
        stackB=stack("B",
                     True,
                     op_amps[4],
                     60,
                     feedback=bfb[0],
                     fb_env=bfb[1],
                     fb_lfo=bfb[2],
                     lfo_ratio=blfo[0],
                     lfo_delay=blfo[1],
                     lfo_wave=blfo[2]),
        stackC=stack("C",
                     True,
                     op_amps[6],
                     60,
                     feedback=cfb[0],
                     fb_env=cfb[1],
                     fb_lfo=cfb[2],
                     lfo_ratio=clfo[0],
                     lfo_delay=clfo[1],
                     lfo_wave=clfo[2]),
        env1=openv(1, env1),
        env2=openv(2, env2),
        env3=openv(3, env3),
        env4=openv(4, env4),
        env5=openv(5, env5),
        env6=openv(6, env6),
        env7=openv(7, env7),
        env8=openv(8, env8),
        op1=opp(1),
        op2=opp(2),
        op3=opp(3),
        op4=opp(4),
        op5=opp(5),
        op6=opp(6),
        op7=opp(7),
        op8=opp(8))
    return p
Esempio n. 45
0
def pick_lfo_frequency():
    half = len(LFO_RATIOS) / 2
    q1 = pick(LFO_RATIOS[:half])[0]
    q2 = pick(LFO_RATIOS)[0]
    q3 = coin(0.75, q1, q2)
    return round(float(q3), 4)
Esempio n. 46
0
def _lfo_ratio():
    low = LFO_RATIOS[:11]
    full = LFO_RATIOS
    return coin(0.75, pick(low), pick(full))
Esempio n. 47
0
def pick_stack_lfo():
    r = coin(0.75, pick(LFO_RATIOS[:14]), pick(LFO_RATIOS))[0]
    dly = _round(rnd(4))
    wv = _round(rnd())
    return r,dly,wv
Esempio n. 48
0
def _principle_stack():
    return pick("ABC")
Esempio n. 49
0
def env_hint():
    typ = pick(["adsr", "asr", "perc"])
    tm = pick(["fast", "medium", "slow"])
    return typ, tm
Esempio n. 50
0
def _harmonic_ratio():
    lst1 = [0.5] * 3 + [1.0, 2.0] * 8 + [3.0, 4.0] * 6
    lst2 = lst1 * 2 + [0.75, 1.333] + [1.5] * 4
    lst3 = lst2 * 2 + [5, 6, 6, 6] * 4 + [8, 8, 9, 10, 12, 16] * 2 + [7]
    return pick(lst3)
Esempio n. 51
0
def pick_stack_lfo():
    r = coin(0.75, pick(LFO_RATIOS[:14]), pick(LFO_RATIOS))[0]
    dly = _round(rnd(4))
    wv = _round(rnd())
    return r, dly, wv
Esempio n. 52
0
def _lfo_ratio():
    low = LFO_RATIOS[:11]
    full = LFO_RATIOS
    return coin(0.75, pick(low), pick(full))
Esempio n. 53
0
def _pick_op_ratio(p_harmonic=0.75):
    return coin(p_harmonic, pick(HARMONICS),
                coin(0.75, 0.5 + rnd(3), 0.5 + rnd(8)))
Esempio n. 54
0
def _ctune():
    harm = pick([1, 1.333, 1.5, 2, 3, 4, 5, 6, 7, 8])
    return r(coin(0.75, harm, 1 + rnd(8)))
Esempio n. 55
0
File: envgen.py Progetto: kaos/Llia
 def select():
     return pick([GATE, ASR, ADSR, PERCUSSIVE])