eggg dot uk

strudel cheatsheet

todo

instrument names

auto-pull from docs

or list some favs

synths

auto-pull from docs

or list some favs

effects with brief explainer

1.transpose(2) //scales up/down
 1//speed values in the negative result in reversed sounds (samples mainly?)
 2$: s("bd!4").bank("RolandTR808").gain(.75).speed(-8)
 3
 4$: n("<0 - 1!2>, <3 -  4!2>")
 5  .s("sawtooth")
 6  .scale("G2:minor")
 7  .fast(2)
 8  .speed(1)
 9  .gain(.6)
10  .transpose(-7)
11  .fm(2)
12  .ply(8)
13
14$: s("crow -")
15.speed(-1)
 1//young buck - get buck beat/tuba
 2setcpm(80/4)
 3
 4$: s("bd - - bd cp - bd - - - bd - cp bd - -")
 5.bank("RolandTR909")
 6
 7.early(.02)
 8.gain(.5)
 9.room(.25)
10
11$: note("b1 - - b1 - - c2 - b1 - d2 - d2 c#2 c2 - ")
12.s("gm_tuba")
13.gain(1.25)
14.crush(4.5)
15.delay(.15)
16.sometimesBy(.1,n=>n.jux(rev))

spagda / hubda - if using strudel you may need to import this to use those functions which are natively part of nudel

1function spag(name){return'https://spag.cc/'+name} function listToArray(stringList){if(Array.isArray(stringList)){return stringList.map(listToArray).flat()} return stringList.replaceAll(' ',',').split(',').map((v)=>v.trim()).filter((v)=>v)} async function spagda(nameList){const names=listToArray(nameList);if(names.length===0){return} const map={};for(const name of names){map[name]=spag(name)} samples(map)} async function speechda(wordList='',locale='en-GB',gender='f',){if(wordList.includes(':')){const[localeArg,wordsArg]=wordList.split(':');if(localeArg.includes('-')){locale=localeArg}else{gender=localeArg} wordList=wordsArg} if(locale.includes('/')){const[localeArg,genderArg]=locale.split('/');locale=localeArg;gender=genderArg} const words=listToArray(wordList);if(words.length===0){return} samples('shabda/speech/'+locale+'/'+gender+':'+words.join(','))} async function hubda(orgList,repoList=''){const orgs=listToArray(orgList);const orgRepos=[];const orgChoices=[];for(const org of orgs){if(org.includes('/')){const[orgName,repoName]=org.split('/');orgRepos.push({org:orgName,repo:repoName})}else{orgChoices.push(org)}} const repoChoices=listToArray(repoList);for(const orgChoice of orgChoices){for(const repoChoice of repoChoices){orgRepos.push({org:orgChoice,repo:repoChoice})}} const addresses=orgRepos.map(({org,repo})=>'github:'+org+'/'+repo);for(const address of addresses){samples(address)}} window.speechda=speechda;window.spagda=spagda;window.spag=spag;window.hubda=hubda

changelog

[[2025-03-26]] began to write up instument/effect detail [[2025-04-18]] updates as i prep for posting

#livecoding #strudel #cheatsheet #music