packages feed

hsc3-db-0.14: 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'
			,'MatchingP','MatchingPResynth','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;
	}
}