//---------------------------------------------------------------------
// name: gen-all.ck
// desc: generate HTML documentation for chuck website reference
// see: https://chuck.stanford.edu/doc/reference/
//
// version: need chuck version 1.5.0.0 or higher
//
// author: Ge Wang (https://ccrma.stanford.edu/~ge/)
// date: Spring 2023
//---------------------------------------------------------------------
// instantiate a CKDoc object
CKDoc doc; // documentation orchestra
// set the examples root
"../examples/" => doc.examplesRoot;
// add group
doc.addGroup(
// class names
["Object", "Event", "Shred", "Math", "Machine", "Std", "string", "@array" ],
// group name
"Base Classes",
// file name
"base",
// group description
"Basic classes (Object, Event, Shred, etc.) and standard libraries (Math, Machine, Std)"
);
// add group
doc.addGroup(
// class names
[ "UGen", "Gain", "Impulse", "Step", "SndBuf", "SndBuf2", "ADSR", "Envelope",
"Delay", "DelayL", "DelayA", /*"DelayP",*/ "Echo", "Noise", "CNoise",
"Osc", "SinOsc", "TriOsc", "SawOsc", "PulseOsc", "SqrOsc", "Phasor",
"HalfRect", "FullRect", "Chugraph", "Chugen", "UGen_Multi",
"UGen_Stereo", "Mix2", "Pan2" ],
// group name
"Basic Unit Generators",
// file name
"ugens-basic",
// group description
"Basic unit generator (UGen) base classes, simple signal generators, envelopes, and more."
);
// add group
doc.addGroup(
[ "FilterBasic",
"LPF", "HPF", "BPF", "BRF", "BiQuad", "ResonZ",
"OnePole", "OneZero", "TwoPole", "TwoZero", "PoleZero" ],
// group name
"Basic Filter UGens",
// file name
"ugens-filters",
// group description
"Basic filter unit generators."
);
// add group
doc.addGroup(
[ "JCRev", "NRev", "PRCRev", "Chorus", "Modulate", "PitShift",
"SubNoise", "BLT", "Blit", "BlitSaw", "BlitSquare", "FilterStk",
"WvIn", "WaveLoop", "WvOut", "WvOut2", "StkInstrument", "BandedWG",
"BlowBotl", "BlowHole", "Bowed", "Brass", "Clarinet", "Flute",
"Mandolin", "ModalBar", "Moog", "Saxofony", "Shakers", "Sitar",
"StifKarp", "VoicForm", "FM", "BeeThree", "FMVoices", "HevyMetl",
"PercFlut", "Rhodey", "TubeBell", "Wurley" ],
// group name
"Synthesis Toolkit (STK) UGens",
// file name
"ugens-stk",
"Utilities and physical models from the Synthesis Toolkit (STK) by Perry R. Cook and Gary Scavone."
);
// add group
doc.addGroup(
[ "LiSa", "LiSa2", "liSa4", "LiSa6", "LiSa8", "LiSa10", "LiSa16",
"GenX", "Gen5", "Gen7", "Gen9", "Gen10", "Gen17", "CurveTable",
"WarpTable", "Dyno" ],
// group name
"Advanced Unit Generators",
// file name
"ugens-advanced",
// group description
"Advanced and specialty unit generators"
);
// add group
doc.addGroup(
[ "ABSaturator", "AmbPan3", "Bitcrusher", "Elliptic", "ExpDelay", "ExpEnv", "FIR",
"FoldbackSaturator", "GVerb", "KasFilter", "MagicSine", "Mesh2D", "Multicomb",
"Pan4", "Pan8", "Pan16", "PitchTrack", "PowerADSR", "Sigmund", "Spectacle",
"WinFuncEnv", "WPDiodeLadder", "WPKorg35" ],
// group name
"Chugins Library",
// file name
"chugins",
// group descriptions
"Default chugins library offering unit generators and utilities."
);
// add group
doc.addGroup(
[ "Centroid", "Chroma", "Flux", "Kurtosis", "MFCC", "RMS", "RollOff", "SFM", "ZeroX",
"AutoCorr", "DCT", "FeatureCollector", "FFT", "Flip", "IDCT", "IFFT", "UnFlip", "XCorr" ],
// group name
"Unit Analyzers",
// file name
"uanae",
// group description
"Unit analyzer (UAna) objects are specialized UGens that can perform audio analysis and pass analysis information to other UAnae. (See also: AI Tools API reference.)"
);
// add group
doc.addGroup(
[ "MLP", "KNN", "KNN2", "HMM", "SVM", "Word2Vec", "PCA", "Wekinator", "AI" ],
// group name
"AI Tools",
// file name
"ai",
// group description
"ChucK for AI (ChAI) is a set of AI/ML tools for building interactive AI musical instruments and systems. (See also: Unit Analyzer API reference.)"
);
// add group
doc.addGroup(
[ "IO", "FileIO", /* "StdOut", "StdErr", */
"OscIn", "OscOut", "OscMsg",
"Hid", "HidMsg", "KBHit", "SerialIO",
"MidiIn", "MidiOut", "MidiMsg", "MidiFileIn" ],
// group name
"Input & Output",
// file name
"io",
// group descriptions
"Communication tools, including file input/output, Open Sound Control, MIDI, MIDI file reading, serial i/o."
);
// add group
doc.addGroup(
// class names
[ "CKDoc", "StringTokenizer", "ConsoleInput" ],
// group name
"Utilities",
// file name
"utils",
// group description
"Additional Utiilities"
);
// generate
doc.outputToDir( ".", "ChucK Class Library Reference" );
// TODO: print what was generated (or add option to)
// TODO: print what types are in the type system but wasn't documented