Mole recipe
- ~10-15 dried chiles
- 1 big handful of pumpkin seeds/almonds
- 1 small handful of sesame seeds
- 1 big handful of raisins or similar
- 1 tbsp of tomato paste
- 1 small handful of animal crackers or similar
Gdef : Singleton { | |
classvar <groupOrder, rebuildBundle, <nodeMap; | |
var <group, <afterList, <beforeList, <server, <>permanent=true; | |
classvar blockUpdate=false, updateCount=0; | |
*initClass { | |
[Event, EventTypesWithCleanup].do(Class.initClassTree(_)); | |
groupOrder = LinkedList(); | |
nodeMap = IdentityDictionary(); |
// XMP parsing requires: | |
// Quarks.install("XML"); [in supercollider] | |
// brew install exiftool [in terminal] | |
+SoundFile { | |
exiftoolPath { | |
^"/usr/local/bin/exiftool" | |
} | |
extractMarkers { |
+Object { | |
|> { | |
|other| | |
^other.value(this) | |
} | |
+> { | |
|other, adverb| | |
^(this +.(adverb) other.value(this)) | |
} |
Mole recipe
( | |
var guiFunc; | |
var ampMin = -70; | |
var ampMax = 36; | |
var numberBoxHeight = 22; | |
var compressFunc = { | |
|isSynth, amp, aboveRatio, belowRatio, ratioScale, aboveThreshold, belowThreshold, knee, curve, expandMax, plot=false| | |
var compressAmt, expandAmt; |
~folderDependencies = (); | |
~invertedDependencies = (); | |
~addDependency = { | |
|folder, dependsOnFolder, description| | |
~folderDependencies[folder] = ~folderDependencies[folder] ?? { () }; | |
~folderDependencies[folder][dependsOnFolder] = ~folderDependencies[folder][dependsOnFolder] ?? { () }; | |
~folderDependencies[folder][dependsOnFolder] = ~folderDependencies[folder][dependsOnFolder].add(description); | |
~invertedDependencies[dependsOnFolder] = ~invertedDependencies[dependsOnFolder] ?? { () }; | |
~invertedDependencies[dependsOnFolder][folder] = ~invertedDependencies[dependsOnFolder][folder] ?? { () }; |
PlimitSum : ListPattern { | |
var <>limit; | |
*new { arg list, limit=16, repeats=inf; | |
if (list.isKindOf(Array).not) { | |
list = [list] | |
}; | |
^super.new(list, repeats).limit_(limit) | |
} |
( | |
Event.partialEvents[\nodeObjectEvent] = ( | |
nodeObject: { | |
|self| | |
self.use { | |
var nodeObj = ~id.asArray.collect { | |
|id| | |
switch (~type, | |
\note, { | |
Synth.basicNew(~instrument, ~server, id).isRunning_(true); |
+Object { | |
assertChannels { | |
|...args| | |
if (this.asArray.shape != args) { | |
Exception("Expected array of shape % (array is %)".format(args, this.shape)).throw; | |
} | |
} | |
} |
NodeProxyArgDict { | |
classvar all; | |
var parentNodeProxy, dict; | |
*initClass { | |
all = IdentityDictionary(); | |
} | |
*new { | |
|np| |