hsc3-db-0.12: sclang/UGenDB.sc
UGenDB {
*haskellCode {
var uu_a = UGen.allSubClassesOf.sort({|a, b| a.name < b.name});
var ignoring = ['BasicOpUGen','BFPanner','BinaryOpUGen'
,'DbufTag','Dfsm','Dtag','Dwrand'
,'FFTSubbandFlatness','FFTSubbandFlux','FFTSubbandPower','Foa'
,'JoshMultiChannelGrain'
,'LADSPA','LocalBuf','LocalIn'
,'MulAdd'
,'NearestN'
,'OnsetsDS','OutputProxy'
,'PackFFT','Panner','Poll'
,'SendReply','SendPeakRMS','SharedIn','SharedOut','Sum3','Sum4'
,'TextVU'
,'UnaryOpUGen','UnpackFFT'
,'XFade'];
var uu = uu_a.reject({|u| ignoring.includes(u.name.asSymbol)});
var r = List.new;
r.add(Date.getDate.format("-- AUTOGENERATED: %Y-%m-%d-%Hh%M"));
r.add("module Sound.SC3.UGen.DB.Data where");
r.add("import Sound.SC3.UGen.DB.Record");
r.add("import Sound.SC3.UGen.Rate");
r.add("ugenDB :: [U]");
r.add("ugenDB = [" ++ uu[0].ugenDBHaskell);
uu.drop(1).collect({|e|
("processing " ++ e.name.asSymbol).postln;
r.add(" ," ++ e.ugenDBHaskell);
});
r.add(" ]");
r.add("-- Local Variables:");
r.add("-- truncate-lines:t");
r.add("-- End:");
^r;
}
*haskellWrite {
arg nm = "Data.hs";
var fd = File.new(nm,"w");
var r = this.haskellCode;
r.do{|s| fd.putString(s++"\n")};
fd.close;
}
}