FoxDot Branch “PitchGlitch”
FoxDot Distro PitchGlitch
FoxDot was created in 2015 to try and open the pathways to Live Coding for users who may be new to programming and want to use it create music quickly and easily. It\\\\\'s an easy-to-use Python library that creates an interactive programming environment and talks to the powerful sound synthesis engine, called SuperCollider to make music. FoxDot schedules musical events in a user-friendly and easy-to-grasp manner that makes live coding easy and fun for both programming newcomers and veterans alike.
FoxDot Homepage with Default Distribution
PitchGlitch is an extended version of FoxDot Default Distribution. With this distribution I hope to support a continuance in developing FoxDot with new additions, new functionalities to the platform. This changes/additions are shown below. The videos show most new changes.
Here and additional video to explain current development on MidiIn() function:
Download here:
In case there is trouble (I had previously):
Problem Only some synths are loading on startup!
Error: Not all synths are loaded in SuperCollider (Console) while FoxDot starts up
Solution: Run python3 -m FoxDot within your downloaded folder of your PitchGlitch git holder you cloned and installed FoxDot from
If developer should be interested in helping me to progress faster, please contact me! Your help is much appreciated. Cheers!
Release notes:
rc 0.1
SynthDefs:
loop, stretch, play1, play2, audioin, noise, dab, varsaw, lazer, growl, dirt, crunch, cicada, cricket, rave, scatter, charm, bell, gong, soprano, dub, scratch, klank, feel, glass, soft, quin, pluck, spark, blip, ripple, creep, orient, zap, marimba, fuzz, bug, pulse, saw, snick, twang, karp, arpy, nylon, donk, squish, swell, razz, sitar, star, jbass, piano, bass, sawbass, prophet, pads, pasha, ambi, space, keys, dbass, sinepad, video, viola, hydra, abass, acidbass, alva, angel, angst, bassguitar, bbass, bchaos, bellmod, benoit, birds, blips, bnoise, borgan, bounce, bphase, brass, brown, chimebell, chipsy, click, clip, cluster, combs, cs80lead, dafbass, dblbass, donkysub, donorgan, dopple, drone, dustv, ebass, ecello, eeri, eoboe, epiano, faim, faim2, fbass, filthysaw, flute, fm, fmbass, fmrhodes, garfield, glitchbass, glitcher, grat, gray, gsynth, harp, hnoise, hoover, kalimba, ladder, lapin, laserbeam, latoo, lfnoise, linesaw, longsaw, mhpad, mhping, moogbass, moogpluck, moogpluck2, mpluck, noisynth, noquarter, organ, organ2, pbass, phazer, pianovel, pink, pmcrotal, ppad, prayerbell, prof, radio, rhodes, rhpiano, risseto, rissetobell, rlead, rsaw, rsin, shore, sillyvoice, sine, siren, spacesaw, sos, sosbell, spick, sputter, square, ssaw, steeldrum, strings, subbass, subbass2, supersaw, tb303, total, tremsynth, tribell, tritri, triwave, tubularbell, tworgan, tworgan2, tworgan3, tworgan4, varicelle, vibass, vinsine, virus, waves, windmaker, wobble, wobblebass, wsaw, wsawbass, xylophone
SynthDefs: Extra attributes
SynthDef | Xtra Attributes |
---|---|
acidbass | lagtime=0.12, frange=6 (filter range), width=0.51, rq=0.4 |
angel | rq=0.5, cnoise=0.001 (clip noise), offnote=1.01 |
benoit | semione=12, semitwo=24, trackmul=2, width=0.17 |
blips | nharm=20, offnote=1.001 |
borgan | spread=0.8, lagtime=0.1 |
bounce | para1=2, para2=2.5, rel=0.09, nharm=3 |
bphase | pmindex=2 |
chimebell | rel=0.02, t60=8, offnote=1.001 |
chipsy | offnote=0.75, rel=0.009 |
cicada | trig_freq=0.2 |
click | mult=4, ptime=0.2 |
cluster | para1=7, mult=4, pstep=0.75 |
combs | rate=2, depth=0.8, regen= -3, sweep=8, rq=0.9, nharm=2 |
cs60lead | fatk=0.75, fdec=0.5, fsus=0.8, frel=1.0, cutoff=200, dtune=0.002, vibspeed=4, vibdepth=0.015, ratio=0.8, glide=0.15 |
dafbass | ffmod=1 (do not 0), level=0.8, peak=1, offnote=1.01 |
dblbass | freqdev=4, op1mul=0.1, op2mul=0.1, op3mul=0.1, sprd=0.5, subAmp=0.1 |
donkysub | frate |
donorgan | rel=0.5, lforate=9, lfowidth=0.01, cutoff=100, rq=0.5 |
dustv | everbtime=3, roomdepth=8 |
ebass | pick=0.414, rq=0.5, cutoff=250 |
eoboe | range=0, vibrate=6, width=1, decimate=22040, decibits=2, offnote=1.005 |
feel | offnote=1.005 |
filthysaw | cf=100, t_bd=0, t_sd=0, pw=0.4 |
flute | ipress=0.9, ibreath=0.09, ifeedbk1=0.4, ifeedbk2=0.4 |
fmbass | atkfract=0.05, relfract= 0.7, modindex = 80, modratio = 1.51, subamp = 0.99, modfb = 1 fmrhodes >> vel = 0.8, modindex = 0.2, oscmix = 0.2, lfospeed = 0.4, lfodepth = 0.1 |
garfield | phase=0, smooth=0.5, mult=3, vibrato=1, rq=1 |
grat | rlpf=4000 |
glitcher | len =20, henA=2, henB=0.4, t=1 |
harp | decaytime=7, coef=0.04, blend=0.7 |
hoover | rel=0.09, offnote=0.5 |
kalimba | oscmix=0.4, relMin=2.5, relMax=3.5 |
linesaw | lforate1 = 5, lfodepth1 = 0.25, phasecenter1 = 0.35, lforate2 = 2.7, lfodepth2 = 0.5, phasecenter2 = 0.5, pswitch = 0 (0 or 1), fdelay1 = 0.00025, fdelay2 = 0.00015 |
mhpad | vibrate = 4, vibdepth = 0.02, trem=3, tremdepth = 0.5 |
mhping | depth=0.02 |
moogbass | cutoff = 1200, gain = 1.2, lagamount = 0.01, width=0.6 |
moogpluck | pluckfilter=4, pluckcoef=0.8, pluckmix=0.8 |
moogpluck2 | level=0.8, legato=1, para1=0.5 |
pmcrotal | mod=5, atone=2, btone=4 |
prayerbell | decayscale=0.6, singswitch=0, lag=3 |
rhodes | rate=4.85, phase=0.5, cutoff=2000, rq=0.5 |
rhpiano | modindex=0.2, mix=0.2, lfospeed=0.4, lfodepth=0.1 |
rlead | bps=2, seqnote1=3, seqnote2=1, seqnote3=2 |
rsaw | lofreq = 800, hifreq = 4000 scatter >> level=0.8, offnote1=2, offnote2=1 |
shore | noiselevel=0.1, density=100 |
sillyvoice | level=0.5, sinefb=0.2 |
sine | level=0.5, sinefb=0.2 |
sosbell | ringamp=1, ringrel=0.9, wobbledepth=0.9, wobblemin=0.3, wobblemax=3.8, strikeamp=1, strikedec=0.05, strikerel=0.09, strikedepth=0.058, strikeharm=4, humamp=0.7 |
spacesaw | filterlow=100, filterhigh=2000, rq=0.3, sidepreamp=2, midpreamp=1, lfofreq=0.1, lfodepth=0.015, balance=0.5 (0 to 1), monoswitch=0 (0 or 1) |
sputter | pw = 0.5, noisedepth = 0.05, pwmrate = 12, pwmdepth = 0.15, rstartf = 2000, rlf = 500, rrf = 5000, ratk = 0.5, method = 0 (0 to 4), gateSwitch = 1 (0 to 1), gateThresh = 0.5 (0 to 1), stereoWidth = 0.75 (0 to 1) |
squish | xlatk=0.1, xlsus=0.01, xldur=1, xlmul=0.2, pulserate=4, pulsewidth=0.5 |
steeldrum | fharm=6, offnote=2.015 |
strings | freqlag = 0.9, rq = 0.012, combharm = 4, sawharm = 1.5 |
subbass | plpf=2400, plpr=1.0 |
subbass2 | plpf=2400, plpr=1.0 |
supersaw | noiserate=0.5 |
tb303 | wave=0, ctf=100, res=0.2, top=1000 |
tremsynth | modfreq=3 |
tribell | lforate = 8, lfowidth = 0.02, cutoff = 80, rq = 0.05 |
triwave | lforate=3, lfowidth=0.0, cutoff=400, rq=0.7 |
tubularbell | exciterRel=0.05 |
tworgan | qnt=1, fndmtl=1, nazard=1, bflute=1, trc=1, lrigot=1, sflute=1, vrate=3, vdepth=0.008, vdelay=0.1, vonset=0, vratevar=0.1, vdepthvar=0.1 |
tworgan2 | vibrate=6.0, vibharm=1.017, fharm=5.04, rq=1, blend=0.83 |
tworgan3 | vrate=6, vdepth=0.02, vdelay=0.1, vonset=0, vratevar=0.1, vdepthvar=0.1, fharm=5.04, rq=1, blend=0.83 |
tworgan4 | lforate=4.85, lfodepth=0.006, cutoff=5000, rq=0.5, parfreq=400, parrq=1, pardb=3, blend=0.6 |
varcell | cutoff=4800, noisemix=0.5, noiserate=12, xvib=2 |
varsaw | offnote=1.005 |
vibass | vibrate=9 |
vinsine | noiseamp=0.02, mainsdepth=0.35, mainshz = 50, vrate = 2, vdepth = 0.005, sineclip = 0.825 |
windmaker | cutoff=100, rq=0.1 |
wobble | modfreq=4, width=0.4 |
wobblebass | modfreqlo=1, modfreqhi=6, gate=1, wfmax=8500, reso=0.4, iphase=0.0, offnote1=0.98, offnote2=1.025 |
wsaw | iphase1=0.4, iphase2=0.5, iphase3=0.0, offnote1=1, offnote2=0.99, offnote3=1.005 |
wsawbass | slidetime = 0.08, cutoff = 1100, width = 0.15, detune = 1.002, preamp = 4 |
xylophone | t60=2 virus >> prate1=1, prate2=2, len=2 |
SynthDefs: New functionalities
print(Player.get_fxs()) >> Lists all filters and effects available for each SynthDef instrument.
Example:
print(Player.get_fxs())
Output:
('vib', 'vibdepth', 'slide', 'sus', 'slidedelay', 'slidefrom', 'glide', 'glidedelay', 'bend', 'benddelay', 'coarse', 'striate', 'buf', 'rate', 'pshift', 'hpf', 'hpr', 'lpf', 'lpr', 'spf', 'spr', 'spfslide', 'spfend', 'swell', 'bpf', 'bpr', 'bpnoise', 'mpf', 'mpr', 'bits', 'amp', 'crush', 'dist', 'tmp', 'chop', 'chopmix', 'chopwave', 'chopi', 'tremolo', 'beat_dur', 'echo', 'echotime', 'spin', 'cut', 'room', 'mix', 'formant', 'shape', 'drive', 'squiz', 'comp', 'comp_down', 'comp_up', 'triode', 'krush', 'kutoff', 'leg', 'tanh', 'fdist', 'fdistfreq', 'fdistc', 'fdistcfreq1', 'fdistcfreq2', 'fdistcfreq3', 'fdistcfreq4', 'fdistcm1', 'fdistcm2', 'fdistcm3', 'fdistcm4', 'fdistcq1', 'fdistcq2', 'fdistcq3', 'fdistcq4', 'chorus', 'chorusrate', 'sample_atk', 'sample_sus', 'position', 'ring', 'ringl', 'ringh', 'lofi', 'lofiwow', 'lofiamp', 'phaser', 'phaserdepth', 'room2', 'mix2', 'damp2', 'revatk', 'revsus')
print(Player(NAME_OF_SYNTH).get_extra_attributes) >> Lists all extra attributes of a particular SynthDef instrument.
Example:
print(Player("wobblebass").get_extra_attributes())
Output:
\'modfreqlo\': \'1\', \'modfreqhi\': \'6\', \'gate\': \'1\', \'wfmax\': \'8500\', \'reso\': \'0.4\', \'iphase\': \'0.0\', \'offnote1\': \'0.98\', \'offnote2\': \'1.`
Sample Player: sdb >> New attribute for a sample player SynthDef to easy switch between entire sample data bases.
Example:
b1 >> play(Z, dur=4, sample1, sdb=1, amplify=1/8)
Hint: You can set your default number for a sample database in menu option Open Config File
Midi: MidiIn+++ >> Additional functionalities to MidiIn()
Call MidiIn()
midi = MidiIn()
Check all available devices
midi.device.get_ports()
Enable midi message print
midi.print_message(True) ``
Select midi device
midi = MidiIn(PORT)
Get played midi note from keyboard
midi.get_note()
Get velocity of keyboard key or pad
midi.get_velocity()
Get value from controller like knobs
midi.get_ctrl(MIDI_CHANNEL)
Midi: TempoTapper >> Implemented functionality for project TempoTapper
-
Check for TempoTapper device
midi = MidiIn() midi.device.get_ports()
-
Setup TempoTapper device
tempotap = MidiIn(PORT) tempotap.tempo_tapper(True)
-
Update tempo clock with TempoTapper
def updateBPM():
Clock.bpm = tempotap.tempo_tapper_bpm()
Clock.future(1, updateBPM)
updateBPM() -
Help: Sample Charts App >> Sample Chart App in Menu > Help&Support
Sample Charts: - Generates buttons for each sample in a chosen data base
- Plays the sound on press
- Shows a basic code example to copy/paste it into the FoxDot IDE