diff --git a/README b/README
--- a/README
+++ b/README
@@ -6,7 +6,7 @@
 [hs]: http://haskell.org/
 [sc3]: http://audiosynth.com/
 
-© [rohan drape][rd] and others, 2008-2012, [gpl][gpl].
+© [rohan drape][rd] and others, 2008-2013, [gpl][gpl].
 
 [rd]: http://rd.slavepianos.org/
 [gpl]: http://gnu.org/copyleft/
diff --git a/Sound/SC3/UGen/Record/A2B.hs b/Sound/SC3/UGen/Record/A2B.hs
--- a/Sound/SC3/UGen/Record/A2B.hs
+++ b/Sound/SC3/UGen/Record/A2B.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.A2B where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/A2K.hs b/Sound/SC3/UGen/Record/A2K.hs
--- a/Sound/SC3/UGen/Record/A2K.hs
+++ b/Sound/SC3/UGen/Record/A2K.hs
@@ -3,11 +3,11 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data A2K = A2K {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 a2K :: A2K
 a2K = A2K {
-  input = 0.0
+  in = 0.0
   }
 mkA2K :: A2K -> S.UGen
 mkA2K (A2K  a') = S.mkOsc S.KR "A2K" [a'] 1
diff --git a/Sound/SC3/UGen/Record/APF.hs b/Sound/SC3/UGen/Record/APF.hs
--- a/Sound/SC3/UGen/Record/APF.hs
+++ b/Sound/SC3/UGen/Record/APF.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data APF = APF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   radius :: S.UGen
   } deriving (Show)
 aPF :: APF
 aPF = APF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   radius = 0.8
   }
diff --git a/Sound/SC3/UGen/Record/AY.hs b/Sound/SC3/UGen/Record/AY.hs
--- a/Sound/SC3/UGen/Record/AY.hs
+++ b/Sound/SC3/UGen/Record/AY.hs
@@ -1,4 +1,4 @@
--- | Emulator of the AY (aka YM) soundchip, used in Spectrum/Atari
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AY where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AY8910.hs b/Sound/SC3/UGen/Record/AY8910.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/AY8910.hs
@@ -0,0 +1,43 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.AY8910 where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data AY8910 = AY8910 {
+  r0 :: S.UGen,
+  r1 :: S.UGen,
+  r2 :: S.UGen,
+  r3 :: S.UGen,
+  r4 :: S.UGen,
+  r5 :: S.UGen,
+  r6 :: S.UGen,
+  r7 :: S.UGen,
+  r8 :: S.UGen,
+  r9 :: S.UGen,
+  rA :: S.UGen,
+  rB :: S.UGen,
+  rC :: S.UGen,
+  rD :: S.UGen,
+  rate :: S.UGen
+  } deriving (Show)
+aY8910 :: AY8910
+aY8910 = AY8910 {
+  r0 = 0.0,
+  r1 = 0.0,
+  r2 = 0.0,
+  r3 = 0.0,
+  r4 = 0.0,
+  r5 = 0.0,
+  r6 = 0.0,
+  r7 = 0.0,
+  r8 = 0.0,
+  r9 = 0.0,
+  rA = 0.0,
+  rB = 0.0,
+  rC = 0.0,
+  rD = 0.0,
+  rate = 1.0
+  }
+mkAY8910 :: AY8910 -> S.UGen
+mkAY8910 (AY8910  a' b' c' d' e' f' g' h' i' j' k' l' m' n' o') = S.mkOsc S.AR "AY8910" [a',b',c',d',e',f',g',h',i',j',k',l',m',n',o'] 3
+instance Make AY8910 where
+  ugen = mkAY8910
diff --git a/Sound/SC3/UGen/Record/Allpass1.hs b/Sound/SC3/UGen/Record/Allpass1.hs
--- a/Sound/SC3/UGen/Record/Allpass1.hs
+++ b/Sound/SC3/UGen/Record/Allpass1.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Allpass1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Allpass1 = Allpass1 {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen
   } deriving (Show)
 allpass1 :: Allpass1
 allpass1 = Allpass1 {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0
   }
 mkAllpass1 :: Allpass1 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Allpass2.hs b/Sound/SC3/UGen/Record/Allpass2.hs
--- a/Sound/SC3/UGen/Record/Allpass2.hs
+++ b/Sound/SC3/UGen/Record/Allpass2.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Allpass2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Allpass2 = Allpass2 {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 allpass2 :: Allpass2
 allpass2 = Allpass2 {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/AllpassC.hs b/Sound/SC3/UGen/Record/AllpassC.hs
--- a/Sound/SC3/UGen/Record/AllpassC.hs
+++ b/Sound/SC3/UGen/Record/AllpassC.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data AllpassC = AllpassC {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
@@ -12,7 +12,7 @@
 allpassC :: AllpassC
 allpassC = AllpassC {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
   decaytime = 1.0
diff --git a/Sound/SC3/UGen/Record/AllpassL.hs b/Sound/SC3/UGen/Record/AllpassL.hs
--- a/Sound/SC3/UGen/Record/AllpassL.hs
+++ b/Sound/SC3/UGen/Record/AllpassL.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data AllpassL = AllpassL {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
@@ -12,7 +12,7 @@
 allpassL :: AllpassL
 allpassL = AllpassL {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
   decaytime = 1.0
diff --git a/Sound/SC3/UGen/Record/AllpassN.hs b/Sound/SC3/UGen/Record/AllpassN.hs
--- a/Sound/SC3/UGen/Record/AllpassN.hs
+++ b/Sound/SC3/UGen/Record/AllpassN.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data AllpassN = AllpassN {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
@@ -12,7 +12,7 @@
 allpassN :: AllpassN
 allpassN = AllpassN {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
   decaytime = 1.0
diff --git a/Sound/SC3/UGen/Record/AmpComp.hs b/Sound/SC3/UGen/Record/AmpComp.hs
--- a/Sound/SC3/UGen/Record/AmpComp.hs
+++ b/Sound/SC3/UGen/Record/AmpComp.hs
@@ -6,14 +6,14 @@
   rate :: S.Rate,
   freq :: S.UGen,
   root :: S.UGen,
-  exp_ :: S.UGen
+  exp :: S.UGen
   } deriving (Show)
 ampComp :: AmpComp
 ampComp = AmpComp {
   rate = S.AR,
   freq = 0.0,
   root = 0.0,
-  exp_ = 0.3333
+  exp = 0.3333
   }
 mkAmpComp :: AmpComp -> S.UGen
 mkAmpComp (AmpComp r a' b' c') = S.mkOsc r "AmpComp" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/Amplitude.hs b/Sound/SC3/UGen/Record/Amplitude.hs
--- a/Sound/SC3/UGen/Record/Amplitude.hs
+++ b/Sound/SC3/UGen/Record/Amplitude.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Amplitude = Amplitude {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   attackTime :: S.UGen,
   releaseTime :: S.UGen
   } deriving (Show)
 amplitude :: Amplitude
 amplitude = Amplitude {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   attackTime = 0.01,
   releaseTime = 0.01
   }
diff --git a/Sound/SC3/UGen/Record/AmplitudeMod.hs b/Sound/SC3/UGen/Record/AmplitudeMod.hs
--- a/Sound/SC3/UGen/Record/AmplitudeMod.hs
+++ b/Sound/SC3/UGen/Record/AmplitudeMod.hs
@@ -1,17 +1,17 @@
--- | amplitude follower
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AmplitudeMod where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data AmplitudeMod = AmplitudeMod {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   attackTime :: S.UGen,
   releaseTime :: S.UGen
   } deriving (Show)
 amplitudeMod :: AmplitudeMod
 amplitudeMod = AmplitudeMod {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   attackTime = 0.01,
   releaseTime = 0.01
   }
diff --git a/Sound/SC3/UGen/Record/AnalyseEvents2.hs b/Sound/SC3/UGen/Record/AnalyseEvents2.hs
--- a/Sound/SC3/UGen/Record/AnalyseEvents2.hs
+++ b/Sound/SC3/UGen/Record/AnalyseEvents2.hs
@@ -1,9 +1,9 @@
--- | event analyser (BBCut)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AnalyseEvents2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data AnalyseEvents2 = AnalyseEvents2 {
-  input :: S.UGen,
+  in :: S.UGen,
   bufnum :: S.UGen,
   threshold :: S.UGen,
   triggerid :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 analyseEvents2 :: AnalyseEvents2
 analyseEvents2 = AnalyseEvents2 {
-  input = 0.0,
+  in = 0.0,
   bufnum = 0.0,
   threshold = 0.34,
   triggerid = 101.0,
diff --git a/Sound/SC3/UGen/Record/ArrayMax.hs b/Sound/SC3/UGen/Record/ArrayMax.hs
--- a/Sound/SC3/UGen/Record/ArrayMax.hs
+++ b/Sound/SC3/UGen/Record/ArrayMax.hs
@@ -1,4 +1,4 @@
--- | detect the largest value (and its position) in an array of UGens
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ArrayMax where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/ArrayMin.hs b/Sound/SC3/UGen/Record/ArrayMin.hs
--- a/Sound/SC3/UGen/Record/ArrayMin.hs
+++ b/Sound/SC3/UGen/Record/ArrayMin.hs
@@ -1,4 +1,4 @@
--- | detect the smallest value (and its position) in an array of UGens
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ArrayMin where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Astrocade.hs b/Sound/SC3/UGen/Record/Astrocade.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Astrocade.hs
@@ -0,0 +1,29 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Astrocade where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Astrocade = Astrocade {
+  reg0 :: S.UGen,
+  reg1 :: S.UGen,
+  reg2 :: S.UGen,
+  reg3 :: S.UGen,
+  reg4 :: S.UGen,
+  reg5 :: S.UGen,
+  reg6 :: S.UGen,
+  reg7 :: S.UGen
+  } deriving (Show)
+astrocade :: Astrocade
+astrocade = Astrocade {
+  reg0 = 0.0,
+  reg1 = 127.0,
+  reg2 = 0.0,
+  reg3 = 0.0,
+  reg4 = 0.0,
+  reg5 = 0.0,
+  reg6 = 15.0,
+  reg7 = 0.0
+  }
+mkAstrocade :: Astrocade -> S.UGen
+mkAstrocade (Astrocade  a' b' c' d' e' f' g' h') = S.mkOsc S.AR "Astrocade" [a',b',c',d',e',f',g',h'] 1
+instance Make Astrocade where
+  ugen = mkAstrocade
diff --git a/Sound/SC3/UGen/Record/Atari2600.hs b/Sound/SC3/UGen/Record/Atari2600.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Atari2600.hs
@@ -0,0 +1,27 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Atari2600 where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Atari2600 = Atari2600 {
+  audc0 :: S.UGen,
+  audc1 :: S.UGen,
+  audf0 :: S.UGen,
+  audf1 :: S.UGen,
+  audv0 :: S.UGen,
+  audv1 :: S.UGen,
+  rate :: S.UGen
+  } deriving (Show)
+atari2600 :: Atari2600
+atari2600 = Atari2600 {
+  audc0 = 1.0,
+  audc1 = 2.0,
+  audf0 = 3.0,
+  audf1 = 4.0,
+  audv0 = 5.0,
+  audv1 = 5.0,
+  rate = 1.0
+  }
+mkAtari2600 :: Atari2600 -> S.UGen
+mkAtari2600 (Atari2600  a' b' c' d' e' f' g') = S.mkOsc S.AR "Atari2600" [a',b',c',d',e',f',g'] 1
+instance Make Atari2600 where
+  ugen = mkAtari2600
diff --git a/Sound/SC3/UGen/Record/AtsAmp.hs b/Sound/SC3/UGen/Record/AtsAmp.hs
--- a/Sound/SC3/UGen/Record/AtsAmp.hs
+++ b/Sound/SC3/UGen/Record/AtsAmp.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsAmp where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsBand.hs b/Sound/SC3/UGen/Record/AtsBand.hs
--- a/Sound/SC3/UGen/Record/AtsBand.hs
+++ b/Sound/SC3/UGen/Record/AtsBand.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsBand where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsFreq.hs b/Sound/SC3/UGen/Record/AtsFreq.hs
--- a/Sound/SC3/UGen/Record/AtsFreq.hs
+++ b/Sound/SC3/UGen/Record/AtsFreq.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsFreq where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsNoiSynth.hs b/Sound/SC3/UGen/Record/AtsNoiSynth.hs
--- a/Sound/SC3/UGen/Record/AtsNoiSynth.hs
+++ b/Sound/SC3/UGen/Record/AtsNoiSynth.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsNoiSynth where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsNoise.hs b/Sound/SC3/UGen/Record/AtsNoise.hs
--- a/Sound/SC3/UGen/Record/AtsNoise.hs
+++ b/Sound/SC3/UGen/Record/AtsNoise.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsNoise where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsParInfo.hs b/Sound/SC3/UGen/Record/AtsParInfo.hs
--- a/Sound/SC3/UGen/Record/AtsParInfo.hs
+++ b/Sound/SC3/UGen/Record/AtsParInfo.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsParInfo where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsPartial.hs b/Sound/SC3/UGen/Record/AtsPartial.hs
--- a/Sound/SC3/UGen/Record/AtsPartial.hs
+++ b/Sound/SC3/UGen/Record/AtsPartial.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsPartial where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsSynth.hs b/Sound/SC3/UGen/Record/AtsSynth.hs
--- a/Sound/SC3/UGen/Record/AtsSynth.hs
+++ b/Sound/SC3/UGen/Record/AtsSynth.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsSynth where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AtsUGen.hs b/Sound/SC3/UGen/Record/AtsUGen.hs
--- a/Sound/SC3/UGen/Record/AtsUGen.hs
+++ b/Sound/SC3/UGen/Record/AtsUGen.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AtsUGen where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AudioControl.hs b/Sound/SC3/UGen/Record/AudioControl.hs
--- a/Sound/SC3/UGen/Record/AudioControl.hs
+++ b/Sound/SC3/UGen/Record/AudioControl.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AudioControl where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/AudioMSG.hs b/Sound/SC3/UGen/Record/AudioMSG.hs
--- a/Sound/SC3/UGen/Record/AudioMSG.hs
+++ b/Sound/SC3/UGen/Record/AudioMSG.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AudioMSG where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data AudioMSG = AudioMSG {
-  input :: S.UGen,
+  in :: S.UGen,
   index :: S.UGen
   } deriving (Show)
 audioMSG :: AudioMSG
 audioMSG = AudioMSG {
-  input = 0.0,
+  in = 0.0,
   index = 0.0
   }
 mkAudioMSG :: AudioMSG -> S.UGen
diff --git a/Sound/SC3/UGen/Record/AverageOutput.hs b/Sound/SC3/UGen/Record/AverageOutput.hs
--- a/Sound/SC3/UGen/Record/AverageOutput.hs
+++ b/Sound/SC3/UGen/Record/AverageOutput.hs
@@ -1,16 +1,16 @@
--- | calculates mean average of audio or control rate signal
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.AverageOutput where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data AverageOutput = AverageOutput {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen
   } deriving (Show)
 averageOutput :: AverageOutput
 averageOutput = AverageOutput {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0
   }
 mkAverageOutput :: AverageOutput -> S.UGen
diff --git a/Sound/SC3/UGen/Record/B2A.hs b/Sound/SC3/UGen/Record/B2A.hs
--- a/Sound/SC3/UGen/Record/B2A.hs
+++ b/Sound/SC3/UGen/Record/B2A.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.B2A where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/B2Ster.hs b/Sound/SC3/UGen/Record/B2Ster.hs
--- a/Sound/SC3/UGen/Record/B2Ster.hs
+++ b/Sound/SC3/UGen/Record/B2Ster.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.B2Ster where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/B2UHJ.hs b/Sound/SC3/UGen/Record/B2UHJ.hs
--- a/Sound/SC3/UGen/Record/B2UHJ.hs
+++ b/Sound/SC3/UGen/Record/B2UHJ.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.B2UHJ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BAllPass.hs b/Sound/SC3/UGen/Record/BAllPass.hs
--- a/Sound/SC3/UGen/Record/BAllPass.hs
+++ b/Sound/SC3/UGen/Record/BAllPass.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BAllPass = BAllPass {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 bAllPass :: BAllPass
 bAllPass = BAllPass {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BBandPass.hs b/Sound/SC3/UGen/Record/BBandPass.hs
--- a/Sound/SC3/UGen/Record/BBandPass.hs
+++ b/Sound/SC3/UGen/Record/BBandPass.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BBandPass = BBandPass {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   bw :: S.UGen
   } deriving (Show)
 bBandPass :: BBandPass
 bBandPass = BBandPass {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   bw = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BBandStop.hs b/Sound/SC3/UGen/Record/BBandStop.hs
--- a/Sound/SC3/UGen/Record/BBandStop.hs
+++ b/Sound/SC3/UGen/Record/BBandStop.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BBandStop = BBandStop {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   bw :: S.UGen
   } deriving (Show)
 bBandStop :: BBandStop
 bBandStop = BBandStop {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   bw = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BBlockerBuf.hs b/Sound/SC3/UGen/Record/BBlockerBuf.hs
--- a/Sound/SC3/UGen/Record/BBlockerBuf.hs
+++ b/Sound/SC3/UGen/Record/BBlockerBuf.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BBlockerBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BFDecode1.hs b/Sound/SC3/UGen/Record/BFDecode1.hs
--- a/Sound/SC3/UGen/Record/BFDecode1.hs
+++ b/Sound/SC3/UGen/Record/BFDecode1.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BFDecode1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BFDecoder.hs b/Sound/SC3/UGen/Record/BFDecoder.hs
--- a/Sound/SC3/UGen/Record/BFDecoder.hs
+++ b/Sound/SC3/UGen/Record/BFDecoder.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BFDecoder where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BFEncode1.hs b/Sound/SC3/UGen/Record/BFEncode1.hs
--- a/Sound/SC3/UGen/Record/BFEncode1.hs
+++ b/Sound/SC3/UGen/Record/BFEncode1.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BFEncode1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BFEncode1 = BFEncode1 {
-  input :: S.UGen,
+  in :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
   rho :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 bFEncode1 :: BFEncode1
 bFEncode1 = BFEncode1 {
-  input = 0.0,
+  in = 0.0,
   azimuth = 0.0,
   elevation = 0.0,
   rho = 1.0,
diff --git a/Sound/SC3/UGen/Record/BFEncode2.hs b/Sound/SC3/UGen/Record/BFEncode2.hs
--- a/Sound/SC3/UGen/Record/BFEncode2.hs
+++ b/Sound/SC3/UGen/Record/BFEncode2.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BFEncode2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BFEncode2 = BFEncode2 {
-  input :: S.UGen,
+  in :: S.UGen,
   point_x :: S.UGen,
   point_y :: S.UGen,
   elevation :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 bFEncode2 :: BFEncode2
 bFEncode2 = BFEncode2 {
-  input = 0.0,
+  in = 0.0,
   point_x = 1.0,
   point_y = 1.0,
   elevation = 0.0,
diff --git a/Sound/SC3/UGen/Record/BFEncodeSter.hs b/Sound/SC3/UGen/Record/BFEncodeSter.hs
--- a/Sound/SC3/UGen/Record/BFEncodeSter.hs
+++ b/Sound/SC3/UGen/Record/BFEncodeSter.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BFEncodeSter where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BFGrainPanner.hs b/Sound/SC3/UGen/Record/BFGrainPanner.hs
--- a/Sound/SC3/UGen/Record/BFGrainPanner.hs
+++ b/Sound/SC3/UGen/Record/BFGrainPanner.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BFGrainPanner where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BFManipulate.hs b/Sound/SC3/UGen/Record/BFManipulate.hs
--- a/Sound/SC3/UGen/Record/BFManipulate.hs
+++ b/Sound/SC3/UGen/Record/BFManipulate.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BFManipulate where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BHiPass.hs b/Sound/SC3/UGen/Record/BHiPass.hs
--- a/Sound/SC3/UGen/Record/BHiPass.hs
+++ b/Sound/SC3/UGen/Record/BHiPass.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BHiPass = BHiPass {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 bHiPass :: BHiPass
 bHiPass = BHiPass {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BHiShelf.hs b/Sound/SC3/UGen/Record/BHiShelf.hs
--- a/Sound/SC3/UGen/Record/BHiShelf.hs
+++ b/Sound/SC3/UGen/Record/BHiShelf.hs
@@ -3,14 +3,14 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BHiShelf = BHiShelf {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rs :: S.UGen,
   db :: S.UGen
   } deriving (Show)
 bHiShelf :: BHiShelf
 bHiShelf = BHiShelf {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rs = 1.0,
   db = 0.0
diff --git a/Sound/SC3/UGen/Record/BLBufRd.hs b/Sound/SC3/UGen/Record/BLBufRd.hs
--- a/Sound/SC3/UGen/Record/BLBufRd.hs
+++ b/Sound/SC3/UGen/Record/BLBufRd.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BLBufRd where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BLowPass.hs b/Sound/SC3/UGen/Record/BLowPass.hs
--- a/Sound/SC3/UGen/Record/BLowPass.hs
+++ b/Sound/SC3/UGen/Record/BLowPass.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BLowPass = BLowPass {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 bLowPass :: BLowPass
 bLowPass = BLowPass {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BLowShelf.hs b/Sound/SC3/UGen/Record/BLowShelf.hs
--- a/Sound/SC3/UGen/Record/BLowShelf.hs
+++ b/Sound/SC3/UGen/Record/BLowShelf.hs
@@ -3,14 +3,14 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BLowShelf = BLowShelf {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rs :: S.UGen,
   db :: S.UGen
   } deriving (Show)
 bLowShelf :: BLowShelf
 bLowShelf = BLowShelf {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rs = 1.0,
   db = 0.0
diff --git a/Sound/SC3/UGen/Record/BMoog.hs b/Sound/SC3/UGen/Record/BMoog.hs
--- a/Sound/SC3/UGen/Record/BMoog.hs
+++ b/Sound/SC3/UGen/Record/BMoog.hs
@@ -1,9 +1,9 @@
--- | 24db/oct rolloff - 4nd order resonant Low/High/Band Pass Filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BMoog where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BMoog = BMoog {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   q :: S.UGen,
   mode :: S.UGen,
@@ -11,7 +11,7 @@
   } deriving (Show)
 bMoog :: BMoog
 bMoog = BMoog {
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   q = 0.2,
   mode = 0.0,
diff --git a/Sound/SC3/UGen/Record/BPF.hs b/Sound/SC3/UGen/Record/BPF.hs
--- a/Sound/SC3/UGen/Record/BPF.hs
+++ b/Sound/SC3/UGen/Record/BPF.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BPF = BPF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 bPF :: BPF
 bPF = BPF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BPZ2.hs b/Sound/SC3/UGen/Record/BPZ2.hs
--- a/Sound/SC3/UGen/Record/BPZ2.hs
+++ b/Sound/SC3/UGen/Record/BPZ2.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data BPZ2 = BPZ2 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 bPZ2 :: BPZ2
 bPZ2 = BPZ2 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkBPZ2 :: BPZ2 -> S.UGen
 mkBPZ2 (BPZ2 r a') = S.mkOsc r "BPZ2" [a'] 1
diff --git a/Sound/SC3/UGen/Record/BPeakEQ.hs b/Sound/SC3/UGen/Record/BPeakEQ.hs
--- a/Sound/SC3/UGen/Record/BPeakEQ.hs
+++ b/Sound/SC3/UGen/Record/BPeakEQ.hs
@@ -3,14 +3,14 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data BPeakEQ = BPeakEQ {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen,
   db :: S.UGen
   } deriving (Show)
 bPeakEQ :: BPeakEQ
 bPeakEQ = BPeakEQ {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rq = 1.0,
   db = 0.0
diff --git a/Sound/SC3/UGen/Record/BRF.hs b/Sound/SC3/UGen/Record/BRF.hs
--- a/Sound/SC3/UGen/Record/BRF.hs
+++ b/Sound/SC3/UGen/Record/BRF.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BRF = BRF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 bRF :: BRF
 bRF = BRF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BRZ2.hs b/Sound/SC3/UGen/Record/BRZ2.hs
--- a/Sound/SC3/UGen/Record/BRZ2.hs
+++ b/Sound/SC3/UGen/Record/BRZ2.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data BRZ2 = BRZ2 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 bRZ2 :: BRZ2
 bRZ2 = BRZ2 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkBRZ2 :: BRZ2 -> S.UGen
 mkBRZ2 (BRZ2 r a') = S.mkOsc r "BRZ2" [a'] 1
diff --git a/Sound/SC3/UGen/Record/Balance.hs b/Sound/SC3/UGen/Record/Balance.hs
--- a/Sound/SC3/UGen/Record/Balance.hs
+++ b/Sound/SC3/UGen/Record/Balance.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Balance where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Balance = Balance {
-  input :: S.UGen,
+  in :: S.UGen,
   test :: S.UGen,
   hp :: S.UGen,
   stor :: S.UGen
   } deriving (Show)
 balance :: Balance
 balance = Balance {
-  input = 0.0,
+  in = 0.0,
   test = 0.0,
   hp = 10.0,
   stor = 0.0
diff --git a/Sound/SC3/UGen/Record/Ball.hs b/Sound/SC3/UGen/Record/Ball.hs
--- a/Sound/SC3/UGen/Record/Ball.hs
+++ b/Sound/SC3/UGen/Record/Ball.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data Ball = Ball {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   g :: S.UGen,
   damp :: S.UGen,
   friction :: S.UGen
@@ -12,7 +12,7 @@
 ball :: Ball
 ball = Ball {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   g = 1.0,
   damp = 0.0,
   friction = 0.01
diff --git a/Sound/SC3/UGen/Record/Beep.hs b/Sound/SC3/UGen/Record/Beep.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Beep.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Beep where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Beep = Beep {
+  freq :: S.UGen,
+  vol :: S.UGen
+  } deriving (Show)
+beep :: Beep
+beep = Beep {
+  freq = 3250.0,
+  vol = 1.0
+  }
+mkBeep :: Beep -> S.UGen
+mkBeep (Beep  a' b') = S.mkOsc S.AR "Beep" [a',b'] 1
+instance Make Beep where
+  ugen = mkBeep
diff --git a/Sound/SC3/UGen/Record/BeepU.hs b/Sound/SC3/UGen/Record/BeepU.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/BeepU.hs
@@ -0,0 +1,15 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.BeepU where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data BeepU = BeepU {
+  maxSize :: S.UGen
+  } deriving (Show)
+beepU :: BeepU
+beepU = BeepU {
+  maxSize = 0.0
+  }
+mkBeepU :: BeepU -> S.UGen
+mkBeepU (BeepU  a') = S.mkOsc S.AR "BeepU" [a'] 1
+instance Make BeepU where
+  ugen = mkBeepU
diff --git a/Sound/SC3/UGen/Record/BinData.hs b/Sound/SC3/UGen/Record/BinData.hs
--- a/Sound/SC3/UGen/Record/BinData.hs
+++ b/Sound/SC3/UGen/Record/BinData.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BinData where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BlitB3.hs b/Sound/SC3/UGen/Record/BlitB3.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/BlitB3.hs
@@ -0,0 +1,15 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.BlitB3 where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data BlitB3 = BlitB3 {
+  freq :: S.UGen
+  } deriving (Show)
+blitB3 :: BlitB3
+blitB3 = BlitB3 {
+  freq = 440.0
+  }
+mkBlitB3 :: BlitB3 -> S.UGen
+mkBlitB3 (BlitB3  a') = S.mkOsc S.AR "BlitB3" [a'] 1
+instance Make BlitB3 where
+  ugen = mkBlitB3
diff --git a/Sound/SC3/UGen/Record/BlitB3Saw.hs b/Sound/SC3/UGen/Record/BlitB3Saw.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/BlitB3Saw.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.BlitB3Saw where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data BlitB3Saw = BlitB3Saw {
+  freq :: S.UGen,
+  leak :: S.UGen
+  } deriving (Show)
+blitB3Saw :: BlitB3Saw
+blitB3Saw = BlitB3Saw {
+  freq = 440.0,
+  leak = 0.99
+  }
+mkBlitB3Saw :: BlitB3Saw -> S.UGen
+mkBlitB3Saw (BlitB3Saw  a' b') = S.mkOsc S.AR "BlitB3Saw" [a',b'] 1
+instance Make BlitB3Saw where
+  ugen = mkBlitB3Saw
diff --git a/Sound/SC3/UGen/Record/BlitB3Square.hs b/Sound/SC3/UGen/Record/BlitB3Square.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/BlitB3Square.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.BlitB3Square where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data BlitB3Square = BlitB3Square {
+  freq :: S.UGen,
+  leak :: S.UGen
+  } deriving (Show)
+blitB3Square :: BlitB3Square
+blitB3Square = BlitB3Square {
+  freq = 440.0,
+  leak = 0.99
+  }
+mkBlitB3Square :: BlitB3Square -> S.UGen
+mkBlitB3Square (BlitB3Square  a' b') = S.mkOsc S.AR "BlitB3Square" [a',b'] 1
+instance Make BlitB3Square where
+  ugen = mkBlitB3Square
diff --git a/Sound/SC3/UGen/Record/BlitB3Tri.hs b/Sound/SC3/UGen/Record/BlitB3Tri.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/BlitB3Tri.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.BlitB3Tri where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data BlitB3Tri = BlitB3Tri {
+  freq :: S.UGen,
+  leak :: S.UGen,
+  leak2 :: S.UGen
+  } deriving (Show)
+blitB3Tri :: BlitB3Tri
+blitB3Tri = BlitB3Tri {
+  freq = 440.0,
+  leak = 0.99,
+  leak2 = 0.99
+  }
+mkBlitB3Tri :: BlitB3Tri -> S.UGen
+mkBlitB3Tri (BlitB3Tri  a' b' c') = S.mkOsc S.AR "BlitB3Tri" [a',b',c'] 1
+instance Make BlitB3Tri where
+  ugen = mkBlitB3Tri
diff --git a/Sound/SC3/UGen/Record/Breakcore.hs b/Sound/SC3/UGen/Record/Breakcore.hs
--- a/Sound/SC3/UGen/Record/Breakcore.hs
+++ b/Sound/SC3/UGen/Record/Breakcore.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Breakcore where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Brusselator.hs b/Sound/SC3/UGen/Record/Brusselator.hs
--- a/Sound/SC3/UGen/Record/Brusselator.hs
+++ b/Sound/SC3/UGen/Record/Brusselator.hs
@@ -1,10 +1,10 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Brusselator where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Brusselator = Brusselator {
   reset :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   mu :: S.UGen,
   gamma :: S.UGen,
   initx :: S.UGen,
@@ -13,7 +13,7 @@
 brusselator :: Brusselator
 brusselator = Brusselator {
   reset = 0.0,
-  rate_ = 0.01,
+  rate = 0.01,
   mu = 1.0,
   gamma = 1.0,
   initx = 0.5,
diff --git a/Sound/SC3/UGen/Record/BufAllpassC.hs b/Sound/SC3/UGen/Record/BufAllpassC.hs
--- a/Sound/SC3/UGen/Record/BufAllpassC.hs
+++ b/Sound/SC3/UGen/Record/BufAllpassC.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BufAllpassC = BufAllpassC {
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
   } deriving (Show)
 bufAllpassC :: BufAllpassC
 bufAllpassC = BufAllpassC {
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2,
   decaytime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BufAllpassL.hs b/Sound/SC3/UGen/Record/BufAllpassL.hs
--- a/Sound/SC3/UGen/Record/BufAllpassL.hs
+++ b/Sound/SC3/UGen/Record/BufAllpassL.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BufAllpassL = BufAllpassL {
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
   } deriving (Show)
 bufAllpassL :: BufAllpassL
 bufAllpassL = BufAllpassL {
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2,
   decaytime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BufAllpassN.hs b/Sound/SC3/UGen/Record/BufAllpassN.hs
--- a/Sound/SC3/UGen/Record/BufAllpassN.hs
+++ b/Sound/SC3/UGen/Record/BufAllpassN.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BufAllpassN = BufAllpassN {
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
   } deriving (Show)
 bufAllpassN :: BufAllpassN
 bufAllpassN = BufAllpassN {
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2,
   decaytime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BufCombC.hs b/Sound/SC3/UGen/Record/BufCombC.hs
--- a/Sound/SC3/UGen/Record/BufCombC.hs
+++ b/Sound/SC3/UGen/Record/BufCombC.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BufCombC = BufCombC {
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
   } deriving (Show)
 bufCombC :: BufCombC
 bufCombC = BufCombC {
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2,
   decaytime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BufCombL.hs b/Sound/SC3/UGen/Record/BufCombL.hs
--- a/Sound/SC3/UGen/Record/BufCombL.hs
+++ b/Sound/SC3/UGen/Record/BufCombL.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BufCombL = BufCombL {
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
   } deriving (Show)
 bufCombL :: BufCombL
 bufCombL = BufCombL {
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2,
   decaytime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BufCombN.hs b/Sound/SC3/UGen/Record/BufCombN.hs
--- a/Sound/SC3/UGen/Record/BufCombN.hs
+++ b/Sound/SC3/UGen/Record/BufCombN.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data BufCombN = BufCombN {
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
   } deriving (Show)
 bufCombN :: BufCombN
 bufCombN = BufCombN {
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2,
   decaytime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/BufDelayC.hs b/Sound/SC3/UGen/Record/BufDelayC.hs
--- a/Sound/SC3/UGen/Record/BufDelayC.hs
+++ b/Sound/SC3/UGen/Record/BufDelayC.hs
@@ -5,14 +5,14 @@
 data BufDelayC = BufDelayC {
   rate :: S.Rate,
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen
   } deriving (Show)
 bufDelayC :: BufDelayC
 bufDelayC = BufDelayC {
   rate = S.AR,
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2
   }
 mkBufDelayC :: BufDelayC -> S.UGen
diff --git a/Sound/SC3/UGen/Record/BufDelayL.hs b/Sound/SC3/UGen/Record/BufDelayL.hs
--- a/Sound/SC3/UGen/Record/BufDelayL.hs
+++ b/Sound/SC3/UGen/Record/BufDelayL.hs
@@ -5,14 +5,14 @@
 data BufDelayL = BufDelayL {
   rate :: S.Rate,
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen
   } deriving (Show)
 bufDelayL :: BufDelayL
 bufDelayL = BufDelayL {
   rate = S.AR,
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2
   }
 mkBufDelayL :: BufDelayL -> S.UGen
diff --git a/Sound/SC3/UGen/Record/BufDelayN.hs b/Sound/SC3/UGen/Record/BufDelayN.hs
--- a/Sound/SC3/UGen/Record/BufDelayN.hs
+++ b/Sound/SC3/UGen/Record/BufDelayN.hs
@@ -5,14 +5,14 @@
 data BufDelayN = BufDelayN {
   rate :: S.Rate,
   buf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   delaytime :: S.UGen
   } deriving (Show)
 bufDelayN :: BufDelayN
 bufDelayN = BufDelayN {
   rate = S.AR,
   buf = 0.0,
-  input = 0.0,
+  in = 0.0,
   delaytime = 0.2
   }
 mkBufDelayN :: BufDelayN -> S.UGen
diff --git a/Sound/SC3/UGen/Record/BufGrain.hs b/Sound/SC3/UGen/Record/BufGrain.hs
--- a/Sound/SC3/UGen/Record/BufGrain.hs
+++ b/Sound/SC3/UGen/Record/BufGrain.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufGrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   trigger :: S.UGen,
   dur :: S.UGen,
   sndbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   pos :: S.UGen,
   interp :: S.UGen
   } deriving (Show)
@@ -15,7 +15,7 @@
   trigger = 0.0,
   dur = 1.0,
   sndbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   pos = 0.0,
   interp = 2.0
   }
diff --git a/Sound/SC3/UGen/Record/BufGrainB.hs b/Sound/SC3/UGen/Record/BufGrainB.hs
--- a/Sound/SC3/UGen/Record/BufGrainB.hs
+++ b/Sound/SC3/UGen/Record/BufGrainB.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufGrainB where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   trigger :: S.UGen,
   dur :: S.UGen,
   sndbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   pos :: S.UGen,
   envbuf :: S.UGen,
   interp :: S.UGen
@@ -16,7 +16,7 @@
   trigger = 0.0,
   dur = 1.0,
   sndbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   pos = 0.0,
   envbuf = 0.0,
   interp = 2.0
diff --git a/Sound/SC3/UGen/Record/BufGrainBBF.hs b/Sound/SC3/UGen/Record/BufGrainBBF.hs
--- a/Sound/SC3/UGen/Record/BufGrainBBF.hs
+++ b/Sound/SC3/UGen/Record/BufGrainBBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufGrainBBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   trigger :: S.UGen,
   dur :: S.UGen,
   sndbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   pos :: S.UGen,
   envbuf :: S.UGen,
   azimuth :: S.UGen,
@@ -20,7 +20,7 @@
   trigger = 0.0,
   dur = 1.0,
   sndbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   pos = 0.0,
   envbuf = 0.0,
   azimuth = 0.0,
diff --git a/Sound/SC3/UGen/Record/BufGrainBF.hs b/Sound/SC3/UGen/Record/BufGrainBF.hs
--- a/Sound/SC3/UGen/Record/BufGrainBF.hs
+++ b/Sound/SC3/UGen/Record/BufGrainBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufGrainBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   trigger :: S.UGen,
   dur :: S.UGen,
   sndbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   pos :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
@@ -19,7 +19,7 @@
   trigger = 0.0,
   dur = 1.0,
   sndbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   pos = 0.0,
   azimuth = 0.0,
   elevation = 0.0,
diff --git a/Sound/SC3/UGen/Record/BufGrainI.hs b/Sound/SC3/UGen/Record/BufGrainI.hs
--- a/Sound/SC3/UGen/Record/BufGrainI.hs
+++ b/Sound/SC3/UGen/Record/BufGrainI.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufGrainI where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   trigger :: S.UGen,
   dur :: S.UGen,
   sndbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   pos :: S.UGen,
   envbuf1 :: S.UGen,
   envbuf2 :: S.UGen,
@@ -18,7 +18,7 @@
   trigger = 0.0,
   dur = 1.0,
   sndbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   pos = 0.0,
   envbuf1 = 0.0,
   envbuf2 = 0.0,
diff --git a/Sound/SC3/UGen/Record/BufGrainIBF.hs b/Sound/SC3/UGen/Record/BufGrainIBF.hs
--- a/Sound/SC3/UGen/Record/BufGrainIBF.hs
+++ b/Sound/SC3/UGen/Record/BufGrainIBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufGrainIBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   trigger :: S.UGen,
   dur :: S.UGen,
   sndbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   pos :: S.UGen,
   envbuf1 :: S.UGen,
   envbuf2 :: S.UGen,
@@ -22,7 +22,7 @@
   trigger = 0.0,
   dur = 1.0,
   sndbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   pos = 0.0,
   envbuf1 = 0.0,
   envbuf2 = 0.0,
diff --git a/Sound/SC3/UGen/Record/BufMax.hs b/Sound/SC3/UGen/Record/BufMax.hs
--- a/Sound/SC3/UGen/Record/BufMax.hs
+++ b/Sound/SC3/UGen/Record/BufMax.hs
@@ -1,4 +1,4 @@
--- | detect the largest value (and its position) in an array of UGens
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufMax where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/BufMin.hs b/Sound/SC3/UGen/Record/BufMin.hs
--- a/Sound/SC3/UGen/Record/BufMin.hs
+++ b/Sound/SC3/UGen/Record/BufMin.hs
@@ -1,4 +1,4 @@
--- | detect the largest value (and its position) in an array of UGens
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.BufMin where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/CQ_Diff.hs b/Sound/SC3/UGen/Record/CQ_Diff.hs
--- a/Sound/SC3/UGen/Record/CQ_Diff.hs
+++ b/Sound/SC3/UGen/Record/CQ_Diff.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.CQ_Diff where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Cepstrum.hs b/Sound/SC3/UGen/Record/Cepstrum.hs
--- a/Sound/SC3/UGen/Record/Cepstrum.hs
+++ b/Sound/SC3/UGen/Record/Cepstrum.hs
@@ -1,4 +1,4 @@
--- | Quefrency analysis and liftering
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Cepstrum where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/CheckBadValues.hs b/Sound/SC3/UGen/Record/CheckBadValues.hs
--- a/Sound/SC3/UGen/Record/CheckBadValues.hs
+++ b/Sound/SC3/UGen/Record/CheckBadValues.hs
@@ -4,15 +4,15 @@
 import Sound.SC3.UGen.Record
 data CheckBadValues = CheckBadValues {
   rate :: S.Rate,
-  input :: S.UGen,
-  id_ :: S.UGen,
+  in :: S.UGen,
+  id :: S.UGen,
   post :: S.UGen
   } deriving (Show)
 checkBadValues :: CheckBadValues
 checkBadValues = CheckBadValues {
   rate = S.AR,
-  input = 0.0,
-  id_ = 0.0,
+  in = 0.0,
+  id = 0.0,
   post = 2.0
   }
 mkCheckBadValues :: CheckBadValues -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Chromagram.hs b/Sound/SC3/UGen/Record/Chromagram.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Chromagram.hs
@@ -0,0 +1,27 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Chromagram where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Chromagram = Chromagram {
+  fft :: S.UGen,
+  fftsize :: S.UGen,
+  n :: S.UGen,
+  tuningbase :: S.UGen,
+  octaves :: S.UGen,
+  integrationflag :: S.UGen,
+  coeff :: S.UGen
+  } deriving (Show)
+chromagram :: Chromagram
+chromagram = Chromagram {
+  fft = 0.0,
+  fftsize = 2048.0,
+  n = 12.0,
+  tuningbase = 32.703195662575,
+  octaves = 8.0,
+  integrationflag = 0.0,
+  coeff = 0.9
+  }
+mkChromagram :: Chromagram -> S.UGen
+mkChromagram (Chromagram  a' b' c' d' e' f' g') = S.mkOsc S.KR "Chromagram" [a',b',c',d',e',f',g'] 1
+instance Make Chromagram where
+  ugen = mkChromagram
diff --git a/Sound/SC3/UGen/Record/ChuaL.hs b/Sound/SC3/UGen/Record/ChuaL.hs
--- a/Sound/SC3/UGen/Record/ChuaL.hs
+++ b/Sound/SC3/UGen/Record/ChuaL.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ChuaL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/CircleRamp.hs b/Sound/SC3/UGen/Record/CircleRamp.hs
--- a/Sound/SC3/UGen/Record/CircleRamp.hs
+++ b/Sound/SC3/UGen/Record/CircleRamp.hs
@@ -1,10 +1,10 @@
--- | circular linear lag
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.CircleRamp where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data CircleRamp = CircleRamp {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTime :: S.UGen,
   circmin :: S.UGen,
   circmax :: S.UGen
@@ -12,7 +12,7 @@
 circleRamp :: CircleRamp
 circleRamp = CircleRamp {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTime = 0.1,
   circmin = -180.0,
   circmax = 180.0
diff --git a/Sound/SC3/UGen/Record/ClearBuf.hs b/Sound/SC3/UGen/Record/ClearBuf.hs
--- a/Sound/SC3/UGen/Record/ClearBuf.hs
+++ b/Sound/SC3/UGen/Record/ClearBuf.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ClearBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Clip.hs b/Sound/SC3/UGen/Record/Clip.hs
--- a/Sound/SC3/UGen/Record/Clip.hs
+++ b/Sound/SC3/UGen/Record/Clip.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Clip = Clip {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 clip :: Clip
 clip = Clip {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Clipper32.hs b/Sound/SC3/UGen/Record/Clipper32.hs
--- a/Sound/SC3/UGen/Record/Clipper32.hs
+++ b/Sound/SC3/UGen/Record/Clipper32.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Clipper32 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Clipper32 = Clipper32 {
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 clipper32 :: Clipper32
 clipper32 = Clipper32 {
-  input = 0.0,
+  in = 0.0,
   lo = -0.8,
   hi = 0.8
   }
diff --git a/Sound/SC3/UGen/Record/Clipper4.hs b/Sound/SC3/UGen/Record/Clipper4.hs
--- a/Sound/SC3/UGen/Record/Clipper4.hs
+++ b/Sound/SC3/UGen/Record/Clipper4.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Clipper4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Clipper4 = Clipper4 {
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 clipper4 :: Clipper4
 clipper4 = Clipper4 {
-  input = 0.0,
+  in = 0.0,
   lo = -0.8,
   hi = 0.8
   }
diff --git a/Sound/SC3/UGen/Record/Clipper8.hs b/Sound/SC3/UGen/Record/Clipper8.hs
--- a/Sound/SC3/UGen/Record/Clipper8.hs
+++ b/Sound/SC3/UGen/Record/Clipper8.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Clipper8 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Clipper8 = Clipper8 {
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 clipper8 :: Clipper8
 clipper8 = Clipper8 {
-  input = 0.0,
+  in = 0.0,
   lo = -0.8,
   hi = 0.8
   }
diff --git a/Sound/SC3/UGen/Record/CoinGate.hs b/Sound/SC3/UGen/Record/CoinGate.hs
--- a/Sound/SC3/UGen/Record/CoinGate.hs
+++ b/Sound/SC3/UGen/Record/CoinGate.hs
@@ -5,13 +5,13 @@
 data CoinGate = CoinGate {
   rate :: S.Rate,
   prob :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 coinGate :: CoinGate
 coinGate = CoinGate {
   rate = S.AR,
   prob = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkCoinGate :: CoinGate -> S.UGen
 mkCoinGate (CoinGate r a' b') = S.mkOsc r "CoinGate" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/CombC.hs b/Sound/SC3/UGen/Record/CombC.hs
--- a/Sound/SC3/UGen/Record/CombC.hs
+++ b/Sound/SC3/UGen/Record/CombC.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data CombC = CombC {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
@@ -12,7 +12,7 @@
 combC :: CombC
 combC = CombC {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
   decaytime = 1.0
diff --git a/Sound/SC3/UGen/Record/CombL.hs b/Sound/SC3/UGen/Record/CombL.hs
--- a/Sound/SC3/UGen/Record/CombL.hs
+++ b/Sound/SC3/UGen/Record/CombL.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data CombL = CombL {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
@@ -12,7 +12,7 @@
 combL :: CombL
 combL = CombL {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
   decaytime = 1.0
diff --git a/Sound/SC3/UGen/Record/CombLP.hs b/Sound/SC3/UGen/Record/CombLP.hs
--- a/Sound/SC3/UGen/Record/CombLP.hs
+++ b/Sound/SC3/UGen/Record/CombLP.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.CombLP where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data CombLP = CombLP {
-  input :: S.UGen,
+  in :: S.UGen,
   gate :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 combLP :: CombLP
 combLP = CombLP {
-  input = 0.0,
+  in = 0.0,
   gate = 1.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
diff --git a/Sound/SC3/UGen/Record/CombN.hs b/Sound/SC3/UGen/Record/CombN.hs
--- a/Sound/SC3/UGen/Record/CombN.hs
+++ b/Sound/SC3/UGen/Record/CombN.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data CombN = CombN {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
   decaytime :: S.UGen
@@ -12,7 +12,7 @@
 combN :: CombN
 combN = CombN {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
   decaytime = 1.0
diff --git a/Sound/SC3/UGen/Record/Compander.hs b/Sound/SC3/UGen/Record/Compander.hs
--- a/Sound/SC3/UGen/Record/Compander.hs
+++ b/Sound/SC3/UGen/Record/Compander.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Compander = Compander {
-  input :: S.UGen,
+  in :: S.UGen,
   control :: S.UGen,
   thresh :: S.UGen,
   slopeBelow :: S.UGen,
@@ -13,7 +13,7 @@
   } deriving (Show)
 compander :: Compander
 compander = Compander {
-  input = 0.0,
+  in = 0.0,
   control = 0.0,
   thresh = 0.5,
   slopeBelow = 1.0,
diff --git a/Sound/SC3/UGen/Record/CompanderD.hs b/Sound/SC3/UGen/Record/CompanderD.hs
--- a/Sound/SC3/UGen/Record/CompanderD.hs
+++ b/Sound/SC3/UGen/Record/CompanderD.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data CompanderD = CompanderD {
-  input :: S.UGen,
+  in :: S.UGen,
   thresh :: S.UGen,
   slopeBelow :: S.UGen,
   slopeAbove :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 companderD :: CompanderD
 companderD = CompanderD {
-  input = 0.0,
+  in = 0.0,
   thresh = 0.5,
   slopeBelow = 1.0,
   slopeAbove = 1.0,
diff --git a/Sound/SC3/UGen/Record/Concat.hs b/Sound/SC3/UGen/Record/Concat.hs
--- a/Sound/SC3/UGen/Record/Concat.hs
+++ b/Sound/SC3/UGen/Record/Concat.hs
@@ -1,4 +1,4 @@
--- | Concatenative Cross-Synthesis on Live Streams
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Concat where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Concat2.hs b/Sound/SC3/UGen/Record/Concat2.hs
--- a/Sound/SC3/UGen/Record/Concat2.hs
+++ b/Sound/SC3/UGen/Record/Concat2.hs
@@ -1,4 +1,4 @@
--- | Concatenative Cross-Synthesis on Live Streams
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Concat2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Convolution.hs b/Sound/SC3/UGen/Record/Convolution.hs
--- a/Sound/SC3/UGen/Record/Convolution.hs
+++ b/Sound/SC3/UGen/Record/Convolution.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Convolution = Convolution {
-  input :: S.UGen,
+  in :: S.UGen,
   kernel :: S.UGen,
   framesize :: S.UGen
   } deriving (Show)
 convolution :: Convolution
 convolution = Convolution {
-  input = 0.0,
+  in = 0.0,
   kernel = 0.0,
   framesize = 512.0
   }
diff --git a/Sound/SC3/UGen/Record/Convolution2.hs b/Sound/SC3/UGen/Record/Convolution2.hs
--- a/Sound/SC3/UGen/Record/Convolution2.hs
+++ b/Sound/SC3/UGen/Record/Convolution2.hs
@@ -3,14 +3,14 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Convolution2 = Convolution2 {
-  input :: S.UGen,
+  in :: S.UGen,
   kernel :: S.UGen,
   trigger :: S.UGen,
   framesize :: S.UGen
   } deriving (Show)
 convolution2 :: Convolution2
 convolution2 = Convolution2 {
-  input = 0.0,
+  in = 0.0,
   kernel = 0.0,
   trigger = 0.0,
   framesize = 2048.0
diff --git a/Sound/SC3/UGen/Record/Convolution2L.hs b/Sound/SC3/UGen/Record/Convolution2L.hs
--- a/Sound/SC3/UGen/Record/Convolution2L.hs
+++ b/Sound/SC3/UGen/Record/Convolution2L.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Convolution2L = Convolution2L {
-  input :: S.UGen,
+  in :: S.UGen,
   kernel :: S.UGen,
   trigger :: S.UGen,
   framesize :: S.UGen,
@@ -11,7 +11,7 @@
   } deriving (Show)
 convolution2L :: Convolution2L
 convolution2L = Convolution2L {
-  input = 0.0,
+  in = 0.0,
   kernel = 0.0,
   trigger = 0.0,
   framesize = 2048.0,
diff --git a/Sound/SC3/UGen/Record/Convolution3.hs b/Sound/SC3/UGen/Record/Convolution3.hs
--- a/Sound/SC3/UGen/Record/Convolution3.hs
+++ b/Sound/SC3/UGen/Record/Convolution3.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data Convolution3 = Convolution3 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   kernel :: S.UGen,
   trigger :: S.UGen,
   framesize :: S.UGen
@@ -12,7 +12,7 @@
 convolution3 :: Convolution3
 convolution3 = Convolution3 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   kernel = 0.0,
   trigger = 0.0,
   framesize = 2048.0
diff --git a/Sound/SC3/UGen/Record/Coyote.hs b/Sound/SC3/UGen/Record/Coyote.hs
--- a/Sound/SC3/UGen/Record/Coyote.hs
+++ b/Sound/SC3/UGen/Record/Coyote.hs
@@ -1,9 +1,9 @@
--- | an amplitude tracking based onset detector
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Coyote where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Coyote = Coyote {
-  input :: S.UGen,
+  in :: S.UGen,
   trackFall :: S.UGen,
   slowLag :: S.UGen,
   fastLag :: S.UGen,
@@ -13,7 +13,7 @@
   } deriving (Show)
 coyote :: Coyote
 coyote = Coyote {
-  input = 0.0,
+  in = 0.0,
   trackFall = 0.2,
   slowLag = 0.2,
   fastLag = 0.01,
diff --git a/Sound/SC3/UGen/Record/Crest.hs b/Sound/SC3/UGen/Record/Crest.hs
--- a/Sound/SC3/UGen/Record/Crest.hs
+++ b/Sound/SC3/UGen/Record/Crest.hs
@@ -1,15 +1,15 @@
--- | Measure the temporal crest factor of a signal
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Crest where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Crest = Crest {
-  input :: S.UGen,
+  in :: S.UGen,
   numsamps :: S.UGen,
   gate :: S.UGen
   } deriving (Show)
 crest :: Crest
 crest = Crest {
-  input = 0.0,
+  in = 0.0,
   numsamps = 400.0,
   gate = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/CrossoverDistortion.hs b/Sound/SC3/UGen/Record/CrossoverDistortion.hs
--- a/Sound/SC3/UGen/Record/CrossoverDistortion.hs
+++ b/Sound/SC3/UGen/Record/CrossoverDistortion.hs
@@ -1,15 +1,15 @@
--- | port of some ladspa plugins
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.CrossoverDistortion where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data CrossoverDistortion = CrossoverDistortion {
-  input :: S.UGen,
+  in :: S.UGen,
   amp :: S.UGen,
   smooth :: S.UGen
   } deriving (Show)
 crossoverDistortion :: CrossoverDistortion
 crossoverDistortion = CrossoverDistortion {
-  input = 0.0,
+  in = 0.0,
   amp = 0.5,
   smooth = 0.5
   }
diff --git a/Sound/SC3/UGen/Record/DC.hs b/Sound/SC3/UGen/Record/DC.hs
--- a/Sound/SC3/UGen/Record/DC.hs
+++ b/Sound/SC3/UGen/Record/DC.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data DC = DC {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 dC :: DC
 dC = DC {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkDC :: DC -> S.UGen
 mkDC (DC r a') = S.mkOsc r "DC" [a'] 1
diff --git a/Sound/SC3/UGen/Record/DFM1.hs b/Sound/SC3/UGen/Record/DFM1.hs
--- a/Sound/SC3/UGen/Record/DFM1.hs
+++ b/Sound/SC3/UGen/Record/DFM1.hs
@@ -1,22 +1,22 @@
--- | Digitally modelled analog filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DFM1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data DFM1 = DFM1 {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   res :: S.UGen,
   inputgain :: S.UGen,
-  type_ :: S.UGen,
+  type :: S.UGen,
   noiselevel :: S.UGen
   } deriving (Show)
 dFM1 :: DFM1
 dFM1 = DFM1 {
-  input = 0.0,
+  in = 0.0,
   freq = 1000.0,
   res = 0.1,
   inputgain = 1.0,
-  type_ = 0.0,
+  type = 0.0,
   noiselevel = 0.0003
   }
 mkDFM1 :: DFM1 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/DPW3Tri.hs b/Sound/SC3/UGen/Record/DPW3Tri.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/DPW3Tri.hs
@@ -0,0 +1,15 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.DPW3Tri where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data DPW3Tri = DPW3Tri {
+  freq :: S.UGen
+  } deriving (Show)
+dPW3Tri :: DPW3Tri
+dPW3Tri = DPW3Tri {
+  freq = 440.0
+  }
+mkDPW3Tri :: DPW3Tri -> S.UGen
+mkDPW3Tri (DPW3Tri  a') = S.mkOsc S.AR "DPW3Tri" [a'] 1
+instance Make DPW3Tri where
+  ugen = mkDPW3Tri
diff --git a/Sound/SC3/UGen/Record/DPW4Saw.hs b/Sound/SC3/UGen/Record/DPW4Saw.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/DPW4Saw.hs
@@ -0,0 +1,15 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.DPW4Saw where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data DPW4Saw = DPW4Saw {
+  freq :: S.UGen
+  } deriving (Show)
+dPW4Saw :: DPW4Saw
+dPW4Saw = DPW4Saw {
+  freq = 440.0
+  }
+mkDPW4Saw :: DPW4Saw -> S.UGen
+mkDPW4Saw (DPW4Saw  a') = S.mkOsc S.AR "DPW4Saw" [a'] 1
+instance Make DPW4Saw where
+  ugen = mkDPW4Saw
diff --git a/Sound/SC3/UGen/Record/DUGen.hs b/Sound/SC3/UGen/Record/DUGen.hs
--- a/Sound/SC3/UGen/Record/DUGen.hs
+++ b/Sound/SC3/UGen/Record/DUGen.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DUGen where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Dbrown.hs b/Sound/SC3/UGen/Record/Dbrown.hs
--- a/Sound/SC3/UGen/Record/Dbrown.hs
+++ b/Sound/SC3/UGen/Record/Dbrown.hs
@@ -6,14 +6,14 @@
   lo :: S.UGen,
   hi :: S.UGen,
   step :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 dbrown :: Dbrown
 dbrown = Dbrown {
   lo = 0.0,
   hi = 1.0,
   step = 0.01,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDbrown :: Dbrown -> S.UGen
 mkDbrown (Dbrown  a' b' c' d') = S.mkOsc S.DR "Dbrown" [a',b',c',d'] 1
diff --git a/Sound/SC3/UGen/Record/Dbrown2.hs b/Sound/SC3/UGen/Record/Dbrown2.hs
--- a/Sound/SC3/UGen/Record/Dbrown2.hs
+++ b/Sound/SC3/UGen/Record/Dbrown2.hs
@@ -1,4 +1,4 @@
--- | demand rate brownian movement with Gendyn distributions
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Dbrown2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -7,7 +7,7 @@
   hi :: S.UGen,
   step :: S.UGen,
   dist :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 dbrown2 :: Dbrown2
 dbrown2 = Dbrown2 {
@@ -15,7 +15,7 @@
   hi = 0.0,
   step = 0.0,
   dist = 0.0,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDbrown2 :: Dbrown2 -> S.UGen
 mkDbrown2 (Dbrown2  a' b' c' d' e') = S.mkOsc S.DR "Dbrown2" [a',b',c',d',e'] 1
diff --git a/Sound/SC3/UGen/Record/Decay.hs b/Sound/SC3/UGen/Record/Decay.hs
--- a/Sound/SC3/UGen/Record/Decay.hs
+++ b/Sound/SC3/UGen/Record/Decay.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Decay = Decay {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   decayTime :: S.UGen
   } deriving (Show)
 decay :: Decay
 decay = Decay {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   decayTime = 1.0
   }
 mkDecay :: Decay -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Decay2.hs b/Sound/SC3/UGen/Record/Decay2.hs
--- a/Sound/SC3/UGen/Record/Decay2.hs
+++ b/Sound/SC3/UGen/Record/Decay2.hs
@@ -1,17 +1,17 @@
--- | Exponential decay.
+-- | Exponential decay
 module Sound.SC3.UGen.Record.Decay2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Decay2 = Decay2 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   attackTime :: S.UGen,
   decayTime :: S.UGen
   } deriving (Show)
 decay2 :: Decay2
 decay2 = Decay2 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   attackTime = 0.01,
   decayTime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Decimator.hs b/Sound/SC3/UGen/Record/Decimator.hs
--- a/Sound/SC3/UGen/Record/Decimator.hs
+++ b/Sound/SC3/UGen/Record/Decimator.hs
@@ -1,16 +1,16 @@
--- | port of some ladspa plugins
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Decimator where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Decimator = Decimator {
-  input :: S.UGen,
-  rate_ :: S.UGen,
+  in :: S.UGen,
+  rate :: S.UGen,
   bits :: S.UGen
   } deriving (Show)
 decimator :: Decimator
 decimator = Decimator {
-  input = 0.0,
-  rate_ = 44100.0,
+  in = 0.0,
+  rate = 44100.0,
   bits = 24.0
   }
 mkDecimator :: Decimator -> S.UGen
diff --git a/Sound/SC3/UGen/Record/DegreeToKey.hs b/Sound/SC3/UGen/Record/DegreeToKey.hs
--- a/Sound/SC3/UGen/Record/DegreeToKey.hs
+++ b/Sound/SC3/UGen/Record/DegreeToKey.hs
@@ -5,14 +5,14 @@
 data DegreeToKey = DegreeToKey {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   octave :: S.UGen
   } deriving (Show)
 degreeToKey :: DegreeToKey
 degreeToKey = DegreeToKey {
   rate = S.AR,
   bufnum = 0.0,
-  input = 0.0,
+  in = 0.0,
   octave = 12.0
   }
 mkDegreeToKey :: DegreeToKey -> S.UGen
diff --git a/Sound/SC3/UGen/Record/DelTapWr.hs b/Sound/SC3/UGen/Record/DelTapWr.hs
--- a/Sound/SC3/UGen/Record/DelTapWr.hs
+++ b/Sound/SC3/UGen/Record/DelTapWr.hs
@@ -5,13 +5,13 @@
 data DelTapWr = DelTapWr {
   rate :: S.Rate,
   buffer :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 delTapWr :: DelTapWr
 delTapWr = DelTapWr {
   rate = S.AR,
   buffer = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkDelTapWr :: DelTapWr -> S.UGen
 mkDelTapWr (DelTapWr r a' b') = S.mkOsc r "DelTapWr" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/Delay1.hs b/Sound/SC3/UGen/Record/Delay1.hs
--- a/Sound/SC3/UGen/Record/Delay1.hs
+++ b/Sound/SC3/UGen/Record/Delay1.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data Delay1 = Delay1 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 delay1 :: Delay1
 delay1 = Delay1 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkDelay1 :: Delay1 -> S.UGen
 mkDelay1 (Delay1 r a') = S.mkOsc r "Delay1" [a'] 1
diff --git a/Sound/SC3/UGen/Record/Delay2.hs b/Sound/SC3/UGen/Record/Delay2.hs
--- a/Sound/SC3/UGen/Record/Delay2.hs
+++ b/Sound/SC3/UGen/Record/Delay2.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data Delay2 = Delay2 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 delay2 :: Delay2
 delay2 = Delay2 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkDelay2 :: Delay2 -> S.UGen
 mkDelay2 (Delay2 r a') = S.mkOsc r "Delay2" [a'] 1
diff --git a/Sound/SC3/UGen/Record/DelayC.hs b/Sound/SC3/UGen/Record/DelayC.hs
--- a/Sound/SC3/UGen/Record/DelayC.hs
+++ b/Sound/SC3/UGen/Record/DelayC.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data DelayC = DelayC {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen
   } deriving (Show)
 delayC :: DelayC
 delayC = DelayC {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2
   }
diff --git a/Sound/SC3/UGen/Record/DelayL.hs b/Sound/SC3/UGen/Record/DelayL.hs
--- a/Sound/SC3/UGen/Record/DelayL.hs
+++ b/Sound/SC3/UGen/Record/DelayL.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data DelayL = DelayL {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen
   } deriving (Show)
 delayL :: DelayL
 delayL = DelayL {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2
   }
diff --git a/Sound/SC3/UGen/Record/DelayN.hs b/Sound/SC3/UGen/Record/DelayN.hs
--- a/Sound/SC3/UGen/Record/DelayN.hs
+++ b/Sound/SC3/UGen/Record/DelayN.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data DelayN = DelayN {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen
   } deriving (Show)
 delayN :: DelayN
 delayN = DelayN {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   maxdelaytime = 0.2,
   delaytime = 0.2
   }
diff --git a/Sound/SC3/UGen/Record/DetaBlockerBuf.hs b/Sound/SC3/UGen/Record/DetaBlockerBuf.hs
--- a/Sound/SC3/UGen/Record/DetaBlockerBuf.hs
+++ b/Sound/SC3/UGen/Record/DetaBlockerBuf.hs
@@ -1,4 +1,4 @@
--- | A Demand UGen running an adapted BetaBlocker VChip
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DetaBlockerBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/DetectIndex.hs b/Sound/SC3/UGen/Record/DetectIndex.hs
--- a/Sound/SC3/UGen/Record/DetectIndex.hs
+++ b/Sound/SC3/UGen/Record/DetectIndex.hs
@@ -5,13 +5,13 @@
 data DetectIndex = DetectIndex {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 detectIndex :: DetectIndex
 detectIndex = DetectIndex {
   rate = S.AR,
   bufnum = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkDetectIndex :: DetectIndex -> S.UGen
 mkDetectIndex (DetectIndex r a' b') = S.mkOsc r "DetectIndex" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/DetectSilence.hs b/Sound/SC3/UGen/Record/DetectSilence.hs
--- a/Sound/SC3/UGen/Record/DetectSilence.hs
+++ b/Sound/SC3/UGen/Record/DetectSilence.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data DetectSilence = DetectSilence {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   amp :: S.UGen,
   time :: S.UGen,
   doneAction :: S.UGen
@@ -12,7 +12,7 @@
 detectSilence :: DetectSilence
 detectSilence = DetectSilence {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   amp = 0.0001,
   time = 0.1,
   doneAction = 0.0
diff --git a/Sound/SC3/UGen/Record/Dgauss.hs b/Sound/SC3/UGen/Record/Dgauss.hs
--- a/Sound/SC3/UGen/Record/Dgauss.hs
+++ b/Sound/SC3/UGen/Record/Dgauss.hs
@@ -1,17 +1,17 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Dgauss where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Dgauss = Dgauss {
   lo :: S.UGen,
   hi :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 dgauss :: Dgauss
 dgauss = Dgauss {
   lo = 0.0,
   hi = 0.0,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDgauss :: Dgauss -> S.UGen
 mkDgauss (Dgauss  a' b' c') = S.mkOsc S.DR "Dgauss" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/Dgeom.hs b/Sound/SC3/UGen/Record/Dgeom.hs
--- a/Sound/SC3/UGen/Record/Dgeom.hs
+++ b/Sound/SC3/UGen/Record/Dgeom.hs
@@ -5,13 +5,13 @@
 data Dgeom = Dgeom {
   start :: S.UGen,
   grow :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 dgeom :: Dgeom
 dgeom = Dgeom {
   start = 1.0,
   grow = 2.0,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDgeom :: Dgeom -> S.UGen
 mkDgeom (Dgeom  a' b' c') = S.mkOsc S.DR "Dgeom" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/Dibrown.hs b/Sound/SC3/UGen/Record/Dibrown.hs
--- a/Sound/SC3/UGen/Record/Dibrown.hs
+++ b/Sound/SC3/UGen/Record/Dibrown.hs
@@ -6,14 +6,14 @@
   lo :: S.UGen,
   hi :: S.UGen,
   step :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 dibrown :: Dibrown
 dibrown = Dibrown {
   lo = 0.0,
   hi = 1.0,
   step = 0.01,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDibrown :: Dibrown -> S.UGen
 mkDibrown (Dibrown  a' b' c' d') = S.mkOsc S.DR "Dibrown" [a',b',c',d'] 1
diff --git a/Sound/SC3/UGen/Record/Disintegrator.hs b/Sound/SC3/UGen/Record/Disintegrator.hs
--- a/Sound/SC3/UGen/Record/Disintegrator.hs
+++ b/Sound/SC3/UGen/Record/Disintegrator.hs
@@ -1,15 +1,15 @@
--- | port of some ladspa plugins
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Disintegrator where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Disintegrator = Disintegrator {
-  input :: S.UGen,
+  in :: S.UGen,
   probability :: S.UGen,
   multiplier :: S.UGen
   } deriving (Show)
 disintegrator :: Disintegrator
 disintegrator = Disintegrator {
-  input = 0.0,
+  in = 0.0,
   probability = 0.5,
   multiplier = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/DiskOut.hs b/Sound/SC3/UGen/Record/DiskOut.hs
--- a/Sound/SC3/UGen/Record/DiskOut.hs
+++ b/Sound/SC3/UGen/Record/DiskOut.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data DiskOut = DiskOut {
   bufnum :: S.UGen,
-  input :: S.UGen
+  channelsArray :: S.UGen
   } deriving (Show)
 diskOut :: DiskOut
 diskOut = DiskOut {
   bufnum = 0.0,
-  input = 0.0
+  channelsArray = 0.0
   }
 mkDiskOut :: DiskOut -> S.UGen
 mkDiskOut (DiskOut  a' b') = S.mkOsc S.AR "DiskOut" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/Diwhite.hs b/Sound/SC3/UGen/Record/Diwhite.hs
--- a/Sound/SC3/UGen/Record/Diwhite.hs
+++ b/Sound/SC3/UGen/Record/Diwhite.hs
@@ -5,13 +5,13 @@
 data Diwhite = Diwhite {
   lo :: S.UGen,
   hi :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 diwhite :: Diwhite
 diwhite = Diwhite {
   lo = 0.0,
   hi = 1.0,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDiwhite :: Diwhite -> S.UGen
 mkDiwhite (Diwhite  a' b' c') = S.mkOsc S.DR "Diwhite" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/Donce.hs b/Sound/SC3/UGen/Record/Donce.hs
--- a/Sound/SC3/UGen/Record/Donce.hs
+++ b/Sound/SC3/UGen/Record/Donce.hs
@@ -1,13 +1,13 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Donce where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Donce = Donce {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 donce :: Donce
 donce = Donce {
-  input = 0.0
+  in = 0.0
   }
 mkDonce :: Donce -> S.UGen
 mkDonce (Donce  a') = S.mkOsc S.DR "Donce" [a'] 1
diff --git a/Sound/SC3/UGen/Record/DoubleNestedAllpassC.hs b/Sound/SC3/UGen/Record/DoubleNestedAllpassC.hs
--- a/Sound/SC3/UGen/Record/DoubleNestedAllpassC.hs
+++ b/Sound/SC3/UGen/Record/DoubleNestedAllpassC.hs
@@ -1,9 +1,9 @@
--- | Nested Allpass filters as proposed by Vercoe and Pluckett
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DoubleNestedAllpassC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data DoubleNestedAllpassC = DoubleNestedAllpassC {
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelay1 :: S.UGen,
   delay1 :: S.UGen,
   gain1 :: S.UGen,
@@ -16,7 +16,7 @@
   } deriving (Show)
 doubleNestedAllpassC :: DoubleNestedAllpassC
 doubleNestedAllpassC = DoubleNestedAllpassC {
-  input = 0.0,
+  in = 0.0,
   maxdelay1 = 0.0047,
   delay1 = 0.0047,
   gain1 = 0.15,
diff --git a/Sound/SC3/UGen/Record/DoubleNestedAllpassL.hs b/Sound/SC3/UGen/Record/DoubleNestedAllpassL.hs
--- a/Sound/SC3/UGen/Record/DoubleNestedAllpassL.hs
+++ b/Sound/SC3/UGen/Record/DoubleNestedAllpassL.hs
@@ -1,9 +1,9 @@
--- | Nested Allpass filters as proposed by Vercoe and Pluckett
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DoubleNestedAllpassL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data DoubleNestedAllpassL = DoubleNestedAllpassL {
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelay1 :: S.UGen,
   delay1 :: S.UGen,
   gain1 :: S.UGen,
@@ -16,7 +16,7 @@
   } deriving (Show)
 doubleNestedAllpassL :: DoubleNestedAllpassL
 doubleNestedAllpassL = DoubleNestedAllpassL {
-  input = 0.0,
+  in = 0.0,
   maxdelay1 = 0.0047,
   delay1 = 0.0047,
   gain1 = 0.15,
diff --git a/Sound/SC3/UGen/Record/DoubleNestedAllpassN.hs b/Sound/SC3/UGen/Record/DoubleNestedAllpassN.hs
--- a/Sound/SC3/UGen/Record/DoubleNestedAllpassN.hs
+++ b/Sound/SC3/UGen/Record/DoubleNestedAllpassN.hs
@@ -1,9 +1,9 @@
--- | Nested Allpass filters as proposed by Vercoe and Pluckett
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DoubleNestedAllpassN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data DoubleNestedAllpassN = DoubleNestedAllpassN {
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelay1 :: S.UGen,
   delay1 :: S.UGen,
   gain1 :: S.UGen,
@@ -16,7 +16,7 @@
   } deriving (Show)
 doubleNestedAllpassN :: DoubleNestedAllpassN
 doubleNestedAllpassN = DoubleNestedAllpassN {
-  input = 0.0,
+  in = 0.0,
   maxdelay1 = 0.0047,
   delay1 = 0.0047,
   gain1 = 0.15,
diff --git a/Sound/SC3/UGen/Record/DoubleWell.hs b/Sound/SC3/UGen/Record/DoubleWell.hs
--- a/Sound/SC3/UGen/Record/DoubleWell.hs
+++ b/Sound/SC3/UGen/Record/DoubleWell.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DoubleWell where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/DoubleWell2.hs b/Sound/SC3/UGen/Record/DoubleWell2.hs
--- a/Sound/SC3/UGen/Record/DoubleWell2.hs
+++ b/Sound/SC3/UGen/Record/DoubleWell2.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DoubleWell2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/DoubleWell3.hs b/Sound/SC3/UGen/Record/DoubleWell3.hs
--- a/Sound/SC3/UGen/Record/DoubleWell3.hs
+++ b/Sound/SC3/UGen/Record/DoubleWell3.hs
@@ -1,10 +1,10 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DoubleWell3 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data DoubleWell3 = DoubleWell3 {
   reset :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   f :: S.UGen,
   delta :: S.UGen,
   initx :: S.UGen,
@@ -13,7 +13,7 @@
 doubleWell3 :: DoubleWell3
 doubleWell3 = DoubleWell3 {
   reset = 0.0,
-  rate_ = 0.01,
+  rate = 0.01,
   f = 0.0,
   delta = 0.25,
   initx = 0.0,
diff --git a/Sound/SC3/UGen/Record/Dpoll.hs b/Sound/SC3/UGen/Record/Dpoll.hs
--- a/Sound/SC3/UGen/Record/Dpoll.hs
+++ b/Sound/SC3/UGen/Record/Dpoll.hs
@@ -3,14 +3,14 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Dpoll = Dpoll {
-  input :: S.UGen,
+  in :: S.UGen,
   label :: S.UGen,
   run :: S.UGen,
   trigid :: S.UGen
   } deriving (Show)
 dpoll :: Dpoll
 dpoll = Dpoll {
-  input = 0.0,
+  in = 0.0,
   label = 0.0,
   run = 1.0,
   trigid = -1.0
diff --git a/Sound/SC3/UGen/Record/Dreset.hs b/Sound/SC3/UGen/Record/Dreset.hs
--- a/Sound/SC3/UGen/Record/Dreset.hs
+++ b/Sound/SC3/UGen/Record/Dreset.hs
@@ -3,12 +3,12 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Dreset = Dreset {
-  input :: S.UGen,
+  in :: S.UGen,
   reset :: S.UGen
   } deriving (Show)
 dreset :: Dreset
 dreset = Dreset {
-  input = 0.0,
+  in = 0.0,
   reset = 0.0
   }
 mkDreset :: Dreset -> S.UGen
diff --git a/Sound/SC3/UGen/Record/DriveNoise.hs b/Sound/SC3/UGen/Record/DriveNoise.hs
--- a/Sound/SC3/UGen/Record/DriveNoise.hs
+++ b/Sound/SC3/UGen/Record/DriveNoise.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.DriveNoise where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data DriveNoise = DriveNoise {
-  input :: S.UGen,
+  in :: S.UGen,
   amount :: S.UGen,
   multi :: S.UGen
   } deriving (Show)
 driveNoise :: DriveNoise
 driveNoise = DriveNoise {
-  input = 0.0,
+  in = 0.0,
   amount = 1.0,
   multi = 5.0
   }
diff --git a/Sound/SC3/UGen/Record/Dseries.hs b/Sound/SC3/UGen/Record/Dseries.hs
--- a/Sound/SC3/UGen/Record/Dseries.hs
+++ b/Sound/SC3/UGen/Record/Dseries.hs
@@ -5,13 +5,13 @@
 data Dseries = Dseries {
   start :: S.UGen,
   step :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 dseries :: Dseries
 dseries = Dseries {
   start = 1.0,
   step = 1.0,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDseries :: Dseries -> S.UGen
 mkDseries (Dseries  a' b' c') = S.mkOsc S.DR "Dseries" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/Dstutter.hs b/Sound/SC3/UGen/Record/Dstutter.hs
--- a/Sound/SC3/UGen/Record/Dstutter.hs
+++ b/Sound/SC3/UGen/Record/Dstutter.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data Dstutter = Dstutter {
   n :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 dstutter :: Dstutter
 dstutter = Dstutter {
   n = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkDstutter :: Dstutter -> S.UGen
 mkDstutter (Dstutter  a' b') = S.mkOsc S.DR "Dstutter" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/Dunique.hs b/Sound/SC3/UGen/Record/Dunique.hs
--- a/Sound/SC3/UGen/Record/Dunique.hs
+++ b/Sound/SC3/UGen/Record/Dunique.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Dunique where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Dwhite.hs b/Sound/SC3/UGen/Record/Dwhite.hs
--- a/Sound/SC3/UGen/Record/Dwhite.hs
+++ b/Sound/SC3/UGen/Record/Dwhite.hs
@@ -5,13 +5,13 @@
 data Dwhite = Dwhite {
   lo :: S.UGen,
   hi :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 dwhite :: Dwhite
 dwhite = Dwhite {
   lo = 0.0,
   hi = 1.0,
-  length_ = 100000000.0
+  length = 100000000.0
   }
 mkDwhite :: Dwhite -> S.UGen
 mkDwhite (Dwhite  a' b' c') = S.mkOsc S.DR "Dwhite" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/Dwrand.hs b/Sound/SC3/UGen/Record/Dwrand.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/Dwrand.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Sound.SC3.UGen.Record.Dwrand where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data Dwrand = Dwrand {
-  list :: S.UGen,
-  weights :: S.UGen,
-  repeats :: S.UGen
-  } deriving (Show)
-dwrand :: Dwrand
-dwrand = Dwrand {
-  list = 0.0,
-  weights = 0.0,
-  repeats = 1.0
-  }
-mkDwrand :: Dwrand -> S.UGen
-mkDwrand (Dwrand  a' b' c') = S.mkOsc S.DR "Dwrand" [a',b',c'] 1
-instance Make Dwrand where
-  ugen = mkDwrand
diff --git a/Sound/SC3/UGen/Record/EnvDetect.hs b/Sound/SC3/UGen/Record/EnvDetect.hs
--- a/Sound/SC3/UGen/Record/EnvDetect.hs
+++ b/Sound/SC3/UGen/Record/EnvDetect.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.EnvDetect where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data EnvDetect = EnvDetect {
-  input :: S.UGen,
+  in :: S.UGen,
   attack :: S.UGen,
   release :: S.UGen
   } deriving (Show)
 envDetect :: EnvDetect
 envDetect = EnvDetect {
-  input = 0.0,
+  in = 0.0,
   attack = 100.0,
   release = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/EnvFollow.hs b/Sound/SC3/UGen/Record/EnvFollow.hs
--- a/Sound/SC3/UGen/Record/EnvFollow.hs
+++ b/Sound/SC3/UGen/Record/EnvFollow.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.EnvFollow where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFT.hs b/Sound/SC3/UGen/Record/FFT.hs
--- a/Sound/SC3/UGen/Record/FFT.hs
+++ b/Sound/SC3/UGen/Record/FFT.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data FFT = FFT {
   buffer :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   hop :: S.UGen,
   wintype :: S.UGen,
   active :: S.UGen,
@@ -13,7 +13,7 @@
 fFT :: FFT
 fFT = FFT {
   buffer = 0.0,
-  input = 0.0,
+  in = 0.0,
   hop = 0.5,
   wintype = 0.0,
   active = 1.0,
diff --git a/Sound/SC3/UGen/Record/FFTCentroid.hs b/Sound/SC3/UGen/Record/FFTCentroid.hs
--- a/Sound/SC3/UGen/Record/FFTCentroid.hs
+++ b/Sound/SC3/UGen/Record/FFTCentroid.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTCentroid where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTComplexDev.hs b/Sound/SC3/UGen/Record/FFTComplexDev.hs
--- a/Sound/SC3/UGen/Record/FFTComplexDev.hs
+++ b/Sound/SC3/UGen/Record/FFTComplexDev.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTComplexDev where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTCrest.hs b/Sound/SC3/UGen/Record/FFTCrest.hs
--- a/Sound/SC3/UGen/Record/FFTCrest.hs
+++ b/Sound/SC3/UGen/Record/FFTCrest.hs
@@ -1,4 +1,4 @@
--- | Spectral crest measure
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTCrest where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTDiffMags.hs b/Sound/SC3/UGen/Record/FFTDiffMags.hs
--- a/Sound/SC3/UGen/Record/FFTDiffMags.hs
+++ b/Sound/SC3/UGen/Record/FFTDiffMags.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTDiffMags where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTFlux.hs b/Sound/SC3/UGen/Record/FFTFlux.hs
--- a/Sound/SC3/UGen/Record/FFTFlux.hs
+++ b/Sound/SC3/UGen/Record/FFTFlux.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTFlux where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTFluxPos.hs b/Sound/SC3/UGen/Record/FFTFluxPos.hs
--- a/Sound/SC3/UGen/Record/FFTFluxPos.hs
+++ b/Sound/SC3/UGen/Record/FFTFluxPos.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTFluxPos where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTInterleave.hs b/Sound/SC3/UGen/Record/FFTInterleave.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/FFTInterleave.hs
+++ /dev/null
@@ -1,17 +0,0 @@
--- | (not documented)
-module Sound.SC3.UGen.Record.FFTInterleave where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data FFTInterleave = FFTInterleave {
-  chain1 :: S.UGen,
-  chain2 :: S.UGen
-  } deriving (Show)
-fFTInterleave :: FFTInterleave
-fFTInterleave = FFTInterleave {
-  chain1 = 0.0,
-  chain2 = 0.0
-  }
-mkFFTInterleave :: FFTInterleave -> S.UGen
-mkFFTInterleave (FFTInterleave  a' b') = S.mkOsc S.KR "FFTInterleave" [a',b'] 1
-instance Make FFTInterleave where
-  ugen = mkFFTInterleave
diff --git a/Sound/SC3/UGen/Record/FFTMKL.hs b/Sound/SC3/UGen/Record/FFTMKL.hs
--- a/Sound/SC3/UGen/Record/FFTMKL.hs
+++ b/Sound/SC3/UGen/Record/FFTMKL.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTMKL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTPeak.hs b/Sound/SC3/UGen/Record/FFTPeak.hs
--- a/Sound/SC3/UGen/Record/FFTPeak.hs
+++ b/Sound/SC3/UGen/Record/FFTPeak.hs
@@ -1,4 +1,4 @@
--- | Find peak value in an FFT frame
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTPeak where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTPhaseDev.hs b/Sound/SC3/UGen/Record/FFTPhaseDev.hs
--- a/Sound/SC3/UGen/Record/FFTPhaseDev.hs
+++ b/Sound/SC3/UGen/Record/FFTPhaseDev.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTPhaseDev where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTPower.hs b/Sound/SC3/UGen/Record/FFTPower.hs
--- a/Sound/SC3/UGen/Record/FFTPower.hs
+++ b/Sound/SC3/UGen/Record/FFTPower.hs
@@ -1,4 +1,4 @@
--- | Instantaneous spectral power
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTPower where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTSlope.hs b/Sound/SC3/UGen/Record/FFTSlope.hs
--- a/Sound/SC3/UGen/Record/FFTSlope.hs
+++ b/Sound/SC3/UGen/Record/FFTSlope.hs
@@ -1,4 +1,4 @@
--- | Spectral slope
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTSlope where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTSpread.hs b/Sound/SC3/UGen/Record/FFTSpread.hs
--- a/Sound/SC3/UGen/Record/FFTSpread.hs
+++ b/Sound/SC3/UGen/Record/FFTSpread.hs
@@ -1,4 +1,4 @@
--- | Spectral spread
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FFTSpread where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FFTTriggered.hs b/Sound/SC3/UGen/Record/FFTTriggered.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/FFTTriggered.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- | (not documented)
-module Sound.SC3.UGen.Record.FFTTriggered where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data FFTTriggered = FFTTriggered {
-  buffer :: S.UGen,
-  input :: S.UGen,
-  trig :: S.UGen,
-  overlaplimit :: S.UGen
-  } deriving (Show)
-fFTTriggered :: FFTTriggered
-fFTTriggered = FFTTriggered {
-  buffer = 0.0,
-  input = 0.0,
-  trig = 0.0,
-  overlaplimit = 0.5
-  }
-mkFFTTriggered :: FFTTriggered -> S.UGen
-mkFFTTriggered (FFTTriggered  a' b' c' d') = S.mkOsc S.KR "FFTTriggered" [a',b',c',d'] 1
-instance Make FFTTriggered where
-  ugen = mkFFTTriggered
diff --git a/Sound/SC3/UGen/Record/FM7.hs b/Sound/SC3/UGen/Record/FM7.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/FM7.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.FM7 where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data FM7 = FM7 {
+  ctlMatrix :: S.UGen,
+  modMatrix :: S.UGen
+  } deriving (Show)
+fM7 :: FM7
+fM7 = FM7 {
+  ctlMatrix = 0.0,
+  modMatrix = 0.0
+  }
+mkFM7 :: FM7 -> S.UGen
+mkFM7 (FM7  a' b') = S.mkOsc S.AR "FM7" [a',b'] 6
+instance Make FM7 where
+  ugen = mkFM7
diff --git a/Sound/SC3/UGen/Record/FMGrain.hs b/Sound/SC3/UGen/Record/FMGrain.hs
--- a/Sound/SC3/UGen/Record/FMGrain.hs
+++ b/Sound/SC3/UGen/Record/FMGrain.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMGrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FMGrainB.hs b/Sound/SC3/UGen/Record/FMGrainB.hs
--- a/Sound/SC3/UGen/Record/FMGrainB.hs
+++ b/Sound/SC3/UGen/Record/FMGrainB.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMGrainB where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FMGrainBBF.hs b/Sound/SC3/UGen/Record/FMGrainBBF.hs
--- a/Sound/SC3/UGen/Record/FMGrainBBF.hs
+++ b/Sound/SC3/UGen/Record/FMGrainBBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMGrainBBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FMGrainBF.hs b/Sound/SC3/UGen/Record/FMGrainBF.hs
--- a/Sound/SC3/UGen/Record/FMGrainBF.hs
+++ b/Sound/SC3/UGen/Record/FMGrainBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMGrainBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FMGrainI.hs b/Sound/SC3/UGen/Record/FMGrainI.hs
--- a/Sound/SC3/UGen/Record/FMGrainI.hs
+++ b/Sound/SC3/UGen/Record/FMGrainI.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMGrainI where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FMGrainIBF.hs b/Sound/SC3/UGen/Record/FMGrainIBF.hs
--- a/Sound/SC3/UGen/Record/FMGrainIBF.hs
+++ b/Sound/SC3/UGen/Record/FMGrainIBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMGrainIBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FMHDecode1.hs b/Sound/SC3/UGen/Record/FMHDecode1.hs
--- a/Sound/SC3/UGen/Record/FMHDecode1.hs
+++ b/Sound/SC3/UGen/Record/FMHDecode1.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMHDecode1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FMHEncode0.hs b/Sound/SC3/UGen/Record/FMHEncode0.hs
--- a/Sound/SC3/UGen/Record/FMHEncode0.hs
+++ b/Sound/SC3/UGen/Record/FMHEncode0.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMHEncode0 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FMHEncode0 = FMHEncode0 {
-  input :: S.UGen,
+  in :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
   gain :: S.UGen
   } deriving (Show)
 fMHEncode0 :: FMHEncode0
 fMHEncode0 = FMHEncode0 {
-  input = 0.0,
+  in = 0.0,
   azimuth = 0.0,
   elevation = 0.0,
   gain = 1.0
diff --git a/Sound/SC3/UGen/Record/FMHEncode1.hs b/Sound/SC3/UGen/Record/FMHEncode1.hs
--- a/Sound/SC3/UGen/Record/FMHEncode1.hs
+++ b/Sound/SC3/UGen/Record/FMHEncode1.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMHEncode1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FMHEncode1 = FMHEncode1 {
-  input :: S.UGen,
+  in :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
   rho :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 fMHEncode1 :: FMHEncode1
 fMHEncode1 = FMHEncode1 {
-  input = 0.0,
+  in = 0.0,
   azimuth = 0.0,
   elevation = 0.0,
   rho = 1.0,
diff --git a/Sound/SC3/UGen/Record/FMHEncode2.hs b/Sound/SC3/UGen/Record/FMHEncode2.hs
--- a/Sound/SC3/UGen/Record/FMHEncode2.hs
+++ b/Sound/SC3/UGen/Record/FMHEncode2.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FMHEncode2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FMHEncode2 = FMHEncode2 {
-  input :: S.UGen,
+  in :: S.UGen,
   point_x :: S.UGen,
   point_y :: S.UGen,
   elevation :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 fMHEncode2 :: FMHEncode2
 fMHEncode2 = FMHEncode2 {
-  input = 0.0,
+  in = 0.0,
   point_x = 0.0,
   point_y = 0.0,
   elevation = 0.0,
diff --git a/Sound/SC3/UGen/Record/FOS.hs b/Sound/SC3/UGen/Record/FOS.hs
--- a/Sound/SC3/UGen/Record/FOS.hs
+++ b/Sound/SC3/UGen/Record/FOS.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data FOS = FOS {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   a0 :: S.UGen,
   a1 :: S.UGen,
   b1 :: S.UGen
@@ -12,7 +12,7 @@
 fOS :: FOS
 fOS = FOS {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   a0 = 0.0,
   a1 = 0.0,
   b1 = 0.0
diff --git a/Sound/SC3/UGen/Record/FeatureSave.hs b/Sound/SC3/UGen/Record/FeatureSave.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/FeatureSave.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.FeatureSave where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data FeatureSave = FeatureSave {
+  features :: S.UGen,
+  trig :: S.UGen
+  } deriving (Show)
+featureSave :: FeatureSave
+featureSave = FeatureSave {
+  features = 0.0,
+  trig = 0.0
+  }
+mkFeatureSave :: FeatureSave -> S.UGen
+mkFeatureSave (FeatureSave  a' b') = S.mkOsc S.KR "FeatureSave" [a',b'] 1
+instance Make FeatureSave where
+  ugen = mkFeatureSave
diff --git a/Sound/SC3/UGen/Record/Fhn2DC.hs b/Sound/SC3/UGen/Record/Fhn2DC.hs
--- a/Sound/SC3/UGen/Record/Fhn2DC.hs
+++ b/Sound/SC3/UGen/Record/Fhn2DC.hs
@@ -1,4 +1,4 @@
--- | FitzHughNagumo Neuron Firing Oscillator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Fhn2DC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Fhn2DL.hs b/Sound/SC3/UGen/Record/Fhn2DL.hs
--- a/Sound/SC3/UGen/Record/Fhn2DL.hs
+++ b/Sound/SC3/UGen/Record/Fhn2DL.hs
@@ -1,4 +1,4 @@
--- | FitzHughNagumo Neuron Firing Oscillator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Fhn2DL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Fhn2DN.hs b/Sound/SC3/UGen/Record/Fhn2DN.hs
--- a/Sound/SC3/UGen/Record/Fhn2DN.hs
+++ b/Sound/SC3/UGen/Record/Fhn2DN.hs
@@ -1,4 +1,4 @@
--- | FitzHughNagumo Neuron Firing Oscillator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Fhn2DN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FhnTrig.hs b/Sound/SC3/UGen/Record/FhnTrig.hs
--- a/Sound/SC3/UGen/Record/FhnTrig.hs
+++ b/Sound/SC3/UGen/Record/FhnTrig.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FhnTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FincoSprottL.hs b/Sound/SC3/UGen/Record/FincoSprottL.hs
--- a/Sound/SC3/UGen/Record/FincoSprottL.hs
+++ b/Sound/SC3/UGen/Record/FincoSprottL.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FincoSprottL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FincoSprottM.hs b/Sound/SC3/UGen/Record/FincoSprottM.hs
--- a/Sound/SC3/UGen/Record/FincoSprottM.hs
+++ b/Sound/SC3/UGen/Record/FincoSprottM.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FincoSprottM where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FincoSprottS.hs b/Sound/SC3/UGen/Record/FincoSprottS.hs
--- a/Sound/SC3/UGen/Record/FincoSprottS.hs
+++ b/Sound/SC3/UGen/Record/FincoSprottS.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FincoSprottS where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FitzHughNagumo.hs b/Sound/SC3/UGen/Record/FitzHughNagumo.hs
--- a/Sound/SC3/UGen/Record/FitzHughNagumo.hs
+++ b/Sound/SC3/UGen/Record/FitzHughNagumo.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FitzHughNagumo where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/FoaAsymmetry.hs b/Sound/SC3/UGen/Record/FoaAsymmetry.hs
--- a/Sound/SC3/UGen/Record/FoaAsymmetry.hs
+++ b/Sound/SC3/UGen/Record/FoaAsymmetry.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) asymmetry transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaAsymmetry where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaAsymmetry = FoaAsymmetry {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaAsymmetry :: FoaAsymmetry
 foaAsymmetry = FoaAsymmetry {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaAsymmetry :: FoaAsymmetry -> S.UGen
-mkFoaAsymmetry (FoaAsymmetry  a' b' c' d' e') = S.mkOsc S.AR "FoaAsymmetry" [a',b',c',d',e'] 4
+mkFoaAsymmetry (FoaAsymmetry  a' b') = S.mkOsc S.AR "FoaAsymmetry" [a',b'] 4
 instance Make FoaAsymmetry where
   ugen = mkFoaAsymmetry
diff --git a/Sound/SC3/UGen/Record/FoaDirectO.hs b/Sound/SC3/UGen/Record/FoaDirectO.hs
--- a/Sound/SC3/UGen/Record/FoaDirectO.hs
+++ b/Sound/SC3/UGen/Record/FoaDirectO.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) directivity transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaDirectO where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaDirectO = FoaDirectO {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaDirectO :: FoaDirectO
 foaDirectO = FoaDirectO {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaDirectO :: FoaDirectO -> S.UGen
-mkFoaDirectO (FoaDirectO  a' b' c' d' e') = S.mkOsc S.AR "FoaDirectO" [a',b',c',d',e'] 4
+mkFoaDirectO (FoaDirectO  a' b') = S.mkOsc S.AR "FoaDirectO" [a',b'] 4
 instance Make FoaDirectO where
   ugen = mkFoaDirectO
diff --git a/Sound/SC3/UGen/Record/FoaDirectX.hs b/Sound/SC3/UGen/Record/FoaDirectX.hs
--- a/Sound/SC3/UGen/Record/FoaDirectX.hs
+++ b/Sound/SC3/UGen/Record/FoaDirectX.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) directivity transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaDirectX where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaDirectX = FoaDirectX {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaDirectX :: FoaDirectX
 foaDirectX = FoaDirectX {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaDirectX :: FoaDirectX -> S.UGen
-mkFoaDirectX (FoaDirectX  a' b' c' d' e') = S.mkOsc S.AR "FoaDirectX" [a',b',c',d',e'] 4
+mkFoaDirectX (FoaDirectX  a' b') = S.mkOsc S.AR "FoaDirectX" [a',b'] 4
 instance Make FoaDirectX where
   ugen = mkFoaDirectX
diff --git a/Sound/SC3/UGen/Record/FoaDirectY.hs b/Sound/SC3/UGen/Record/FoaDirectY.hs
--- a/Sound/SC3/UGen/Record/FoaDirectY.hs
+++ b/Sound/SC3/UGen/Record/FoaDirectY.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) directivity transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaDirectY where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaDirectY = FoaDirectY {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaDirectY :: FoaDirectY
 foaDirectY = FoaDirectY {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaDirectY :: FoaDirectY -> S.UGen
-mkFoaDirectY (FoaDirectY  a' b' c' d' e') = S.mkOsc S.AR "FoaDirectY" [a',b',c',d',e'] 4
+mkFoaDirectY (FoaDirectY  a' b') = S.mkOsc S.AR "FoaDirectY" [a',b'] 4
 instance Make FoaDirectY where
   ugen = mkFoaDirectY
diff --git a/Sound/SC3/UGen/Record/FoaDirectZ.hs b/Sound/SC3/UGen/Record/FoaDirectZ.hs
--- a/Sound/SC3/UGen/Record/FoaDirectZ.hs
+++ b/Sound/SC3/UGen/Record/FoaDirectZ.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) directivity transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaDirectZ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaDirectZ = FoaDirectZ {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaDirectZ :: FoaDirectZ
 foaDirectZ = FoaDirectZ {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaDirectZ :: FoaDirectZ -> S.UGen
-mkFoaDirectZ (FoaDirectZ  a' b' c' d' e') = S.mkOsc S.AR "FoaDirectZ" [a',b',c',d',e'] 4
+mkFoaDirectZ (FoaDirectZ  a' b') = S.mkOsc S.AR "FoaDirectZ" [a',b'] 4
 instance Make FoaDirectZ where
   ugen = mkFoaDirectZ
diff --git a/Sound/SC3/UGen/Record/FoaDominateX.hs b/Sound/SC3/UGen/Record/FoaDominateX.hs
--- a/Sound/SC3/UGen/Record/FoaDominateX.hs
+++ b/Sound/SC3/UGen/Record/FoaDominateX.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) dominance transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaDominateX where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaDominateX = FoaDominateX {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   gain :: S.UGen
   } deriving (Show)
 foaDominateX :: FoaDominateX
 foaDominateX = FoaDominateX {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   gain = 0.0
   }
 mkFoaDominateX :: FoaDominateX -> S.UGen
-mkFoaDominateX (FoaDominateX  a' b' c' d' e') = S.mkOsc S.AR "FoaDominateX" [a',b',c',d',e'] 4
+mkFoaDominateX (FoaDominateX  a' b') = S.mkOsc S.AR "FoaDominateX" [a',b'] 4
 instance Make FoaDominateX where
   ugen = mkFoaDominateX
diff --git a/Sound/SC3/UGen/Record/FoaDominateY.hs b/Sound/SC3/UGen/Record/FoaDominateY.hs
--- a/Sound/SC3/UGen/Record/FoaDominateY.hs
+++ b/Sound/SC3/UGen/Record/FoaDominateY.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) dominance transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaDominateY where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaDominateY = FoaDominateY {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   gain :: S.UGen
   } deriving (Show)
 foaDominateY :: FoaDominateY
 foaDominateY = FoaDominateY {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   gain = 0.0
   }
 mkFoaDominateY :: FoaDominateY -> S.UGen
-mkFoaDominateY (FoaDominateY  a' b' c' d' e') = S.mkOsc S.AR "FoaDominateY" [a',b',c',d',e'] 4
+mkFoaDominateY (FoaDominateY  a' b') = S.mkOsc S.AR "FoaDominateY" [a',b'] 4
 instance Make FoaDominateY where
   ugen = mkFoaDominateY
diff --git a/Sound/SC3/UGen/Record/FoaDominateZ.hs b/Sound/SC3/UGen/Record/FoaDominateZ.hs
--- a/Sound/SC3/UGen/Record/FoaDominateZ.hs
+++ b/Sound/SC3/UGen/Record/FoaDominateZ.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) dominance transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaDominateZ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaDominateZ = FoaDominateZ {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   gain :: S.UGen
   } deriving (Show)
 foaDominateZ :: FoaDominateZ
 foaDominateZ = FoaDominateZ {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   gain = 0.0
   }
 mkFoaDominateZ :: FoaDominateZ -> S.UGen
-mkFoaDominateZ (FoaDominateZ  a' b' c' d' e') = S.mkOsc S.AR "FoaDominateZ" [a',b',c',d',e'] 4
+mkFoaDominateZ (FoaDominateZ  a' b') = S.mkOsc S.AR "FoaDominateZ" [a',b'] 4
 instance Make FoaDominateZ where
   ugen = mkFoaDominateZ
diff --git a/Sound/SC3/UGen/Record/FoaFocusX.hs b/Sound/SC3/UGen/Record/FoaFocusX.hs
--- a/Sound/SC3/UGen/Record/FoaFocusX.hs
+++ b/Sound/SC3/UGen/Record/FoaFocusX.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) focus transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaFocusX where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaFocusX = FoaFocusX {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaFocusX :: FoaFocusX
 foaFocusX = FoaFocusX {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaFocusX :: FoaFocusX -> S.UGen
-mkFoaFocusX (FoaFocusX  a' b' c' d' e') = S.mkOsc S.AR "FoaFocusX" [a',b',c',d',e'] 4
+mkFoaFocusX (FoaFocusX  a' b') = S.mkOsc S.AR "FoaFocusX" [a',b'] 4
 instance Make FoaFocusX where
   ugen = mkFoaFocusX
diff --git a/Sound/SC3/UGen/Record/FoaFocusY.hs b/Sound/SC3/UGen/Record/FoaFocusY.hs
--- a/Sound/SC3/UGen/Record/FoaFocusY.hs
+++ b/Sound/SC3/UGen/Record/FoaFocusY.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) focus transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaFocusY where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaFocusY = FoaFocusY {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaFocusY :: FoaFocusY
 foaFocusY = FoaFocusY {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaFocusY :: FoaFocusY -> S.UGen
-mkFoaFocusY (FoaFocusY  a' b' c' d' e') = S.mkOsc S.AR "FoaFocusY" [a',b',c',d',e'] 4
+mkFoaFocusY (FoaFocusY  a' b') = S.mkOsc S.AR "FoaFocusY" [a',b'] 4
 instance Make FoaFocusY where
   ugen = mkFoaFocusY
diff --git a/Sound/SC3/UGen/Record/FoaFocusZ.hs b/Sound/SC3/UGen/Record/FoaFocusZ.hs
--- a/Sound/SC3/UGen/Record/FoaFocusZ.hs
+++ b/Sound/SC3/UGen/Record/FoaFocusZ.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) focus transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaFocusZ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaFocusZ = FoaFocusZ {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaFocusZ :: FoaFocusZ
 foaFocusZ = FoaFocusZ {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaFocusZ :: FoaFocusZ -> S.UGen
-mkFoaFocusZ (FoaFocusZ  a' b' c' d' e') = S.mkOsc S.AR "FoaFocusZ" [a',b',c',d',e'] 4
+mkFoaFocusZ (FoaFocusZ  a' b') = S.mkOsc S.AR "FoaFocusZ" [a',b'] 4
 instance Make FoaFocusZ where
   ugen = mkFoaFocusZ
diff --git a/Sound/SC3/UGen/Record/FoaNFC.hs b/Sound/SC3/UGen/Record/FoaNFC.hs
--- a/Sound/SC3/UGen/Record/FoaNFC.hs
+++ b/Sound/SC3/UGen/Record/FoaNFC.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) nearfield compensation filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaNFC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaNFC = FoaNFC {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   distance :: S.UGen
   } deriving (Show)
 foaNFC :: FoaNFC
 foaNFC = FoaNFC {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   distance = 1.0
   }
 mkFoaNFC :: FoaNFC -> S.UGen
-mkFoaNFC (FoaNFC  a' b' c' d' e') = S.mkOsc S.AR "FoaNFC" [a',b',c',d',e'] 4
+mkFoaNFC (FoaNFC  a' b') = S.mkOsc S.AR "FoaNFC" [a',b'] 4
 instance Make FoaNFC where
   ugen = mkFoaNFC
diff --git a/Sound/SC3/UGen/Record/FoaPanB.hs b/Sound/SC3/UGen/Record/FoaPanB.hs
--- a/Sound/SC3/UGen/Record/FoaPanB.hs
+++ b/Sound/SC3/UGen/Record/FoaPanB.hs
@@ -1,15 +1,15 @@
--- | First Order Ambisonic (FOA) panner
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPanB where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPanB = FoaPanB {
-  input :: S.UGen,
+  in :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen
   } deriving (Show)
 foaPanB :: FoaPanB
 foaPanB = FoaPanB {
-  input = 0.0,
+  in = 0.0,
   azimuth = 0.0,
   elevation = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/FoaPressX.hs b/Sound/SC3/UGen/Record/FoaPressX.hs
--- a/Sound/SC3/UGen/Record/FoaPressX.hs
+++ b/Sound/SC3/UGen/Record/FoaPressX.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) press transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPressX where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPressX = FoaPressX {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaPressX :: FoaPressX
 foaPressX = FoaPressX {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaPressX :: FoaPressX -> S.UGen
-mkFoaPressX (FoaPressX  a' b' c' d' e') = S.mkOsc S.AR "FoaPressX" [a',b',c',d',e'] 4
+mkFoaPressX (FoaPressX  a' b') = S.mkOsc S.AR "FoaPressX" [a',b'] 4
 instance Make FoaPressX where
   ugen = mkFoaPressX
diff --git a/Sound/SC3/UGen/Record/FoaPressY.hs b/Sound/SC3/UGen/Record/FoaPressY.hs
--- a/Sound/SC3/UGen/Record/FoaPressY.hs
+++ b/Sound/SC3/UGen/Record/FoaPressY.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) press transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPressY where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPressY = FoaPressY {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaPressY :: FoaPressY
 foaPressY = FoaPressY {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaPressY :: FoaPressY -> S.UGen
-mkFoaPressY (FoaPressY  a' b' c' d' e') = S.mkOsc S.AR "FoaPressY" [a',b',c',d',e'] 4
+mkFoaPressY (FoaPressY  a' b') = S.mkOsc S.AR "FoaPressY" [a',b'] 4
 instance Make FoaPressY where
   ugen = mkFoaPressY
diff --git a/Sound/SC3/UGen/Record/FoaPressZ.hs b/Sound/SC3/UGen/Record/FoaPressZ.hs
--- a/Sound/SC3/UGen/Record/FoaPressZ.hs
+++ b/Sound/SC3/UGen/Record/FoaPressZ.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) press transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPressZ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPressZ = FoaPressZ {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaPressZ :: FoaPressZ
 foaPressZ = FoaPressZ {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaPressZ :: FoaPressZ -> S.UGen
-mkFoaPressZ (FoaPressZ  a' b' c' d' e') = S.mkOsc S.AR "FoaPressZ" [a',b',c',d',e'] 4
+mkFoaPressZ (FoaPressZ  a' b') = S.mkOsc S.AR "FoaPressZ" [a',b'] 4
 instance Make FoaPressZ where
   ugen = mkFoaPressZ
diff --git a/Sound/SC3/UGen/Record/FoaProximity.hs b/Sound/SC3/UGen/Record/FoaProximity.hs
--- a/Sound/SC3/UGen/Record/FoaProximity.hs
+++ b/Sound/SC3/UGen/Record/FoaProximity.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) proximity effect filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaProximity where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaProximity = FoaProximity {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   distance :: S.UGen
   } deriving (Show)
 foaProximity :: FoaProximity
 foaProximity = FoaProximity {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   distance = 1.0
   }
 mkFoaProximity :: FoaProximity -> S.UGen
-mkFoaProximity (FoaProximity  a' b' c' d' e') = S.mkOsc S.AR "FoaProximity" [a',b',c',d',e'] 4
+mkFoaProximity (FoaProximity  a' b') = S.mkOsc S.AR "FoaProximity" [a',b'] 4
 instance Make FoaProximity where
   ugen = mkFoaProximity
diff --git a/Sound/SC3/UGen/Record/FoaPsychoShelf.hs b/Sound/SC3/UGen/Record/FoaPsychoShelf.hs
--- a/Sound/SC3/UGen/Record/FoaPsychoShelf.hs
+++ b/Sound/SC3/UGen/Record/FoaPsychoShelf.hs
@@ -1,27 +1,21 @@
--- | First Order Ambisonic (FOA) psychoacoustic shelf filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPsychoShelf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPsychoShelf = FoaPsychoShelf {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   k0 :: S.UGen,
   k1 :: S.UGen
   } deriving (Show)
 foaPsychoShelf :: FoaPsychoShelf
 foaPsychoShelf = FoaPsychoShelf {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   freq = 400.0,
   k0 = 0.0,
   k1 = 0.0
   }
 mkFoaPsychoShelf :: FoaPsychoShelf -> S.UGen
-mkFoaPsychoShelf (FoaPsychoShelf  a' b' c' d' e' f' g') = S.mkOsc S.AR "FoaPsychoShelf" [a',b',c',d',e',f',g'] 4
+mkFoaPsychoShelf (FoaPsychoShelf  a' b' c' d') = S.mkOsc S.AR "FoaPsychoShelf" [a',b',c',d'] 4
 instance Make FoaPsychoShelf where
   ugen = mkFoaPsychoShelf
diff --git a/Sound/SC3/UGen/Record/FoaPushX.hs b/Sound/SC3/UGen/Record/FoaPushX.hs
--- a/Sound/SC3/UGen/Record/FoaPushX.hs
+++ b/Sound/SC3/UGen/Record/FoaPushX.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) push transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPushX where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPushX = FoaPushX {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaPushX :: FoaPushX
 foaPushX = FoaPushX {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaPushX :: FoaPushX -> S.UGen
-mkFoaPushX (FoaPushX  a' b' c' d' e') = S.mkOsc S.AR "FoaPushX" [a',b',c',d',e'] 4
+mkFoaPushX (FoaPushX  a' b') = S.mkOsc S.AR "FoaPushX" [a',b'] 4
 instance Make FoaPushX where
   ugen = mkFoaPushX
diff --git a/Sound/SC3/UGen/Record/FoaPushY.hs b/Sound/SC3/UGen/Record/FoaPushY.hs
--- a/Sound/SC3/UGen/Record/FoaPushY.hs
+++ b/Sound/SC3/UGen/Record/FoaPushY.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) push transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPushY where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPushY = FoaPushY {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaPushY :: FoaPushY
 foaPushY = FoaPushY {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaPushY :: FoaPushY -> S.UGen
-mkFoaPushY (FoaPushY  a' b' c' d' e') = S.mkOsc S.AR "FoaPushY" [a',b',c',d',e'] 4
+mkFoaPushY (FoaPushY  a' b') = S.mkOsc S.AR "FoaPushY" [a',b'] 4
 instance Make FoaPushY where
   ugen = mkFoaPushY
diff --git a/Sound/SC3/UGen/Record/FoaPushZ.hs b/Sound/SC3/UGen/Record/FoaPushZ.hs
--- a/Sound/SC3/UGen/Record/FoaPushZ.hs
+++ b/Sound/SC3/UGen/Record/FoaPushZ.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) push transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaPushZ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaPushZ = FoaPushZ {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaPushZ :: FoaPushZ
 foaPushZ = FoaPushZ {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaPushZ :: FoaPushZ -> S.UGen
-mkFoaPushZ (FoaPushZ  a' b' c' d' e') = S.mkOsc S.AR "FoaPushZ" [a',b',c',d',e'] 4
+mkFoaPushZ (FoaPushZ  a' b') = S.mkOsc S.AR "FoaPushZ" [a',b'] 4
 instance Make FoaPushZ where
   ugen = mkFoaPushZ
diff --git a/Sound/SC3/UGen/Record/FoaRotate.hs b/Sound/SC3/UGen/Record/FoaRotate.hs
--- a/Sound/SC3/UGen/Record/FoaRotate.hs
+++ b/Sound/SC3/UGen/Record/FoaRotate.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) rotation transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaRotate where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaRotate = FoaRotate {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaRotate :: FoaRotate
 foaRotate = FoaRotate {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaRotate :: FoaRotate -> S.UGen
-mkFoaRotate (FoaRotate  a' b' c' d' e') = S.mkOsc S.AR "FoaRotate" [a',b',c',d',e'] 4
+mkFoaRotate (FoaRotate  a' b') = S.mkOsc S.AR "FoaRotate" [a',b'] 4
 instance Make FoaRotate where
   ugen = mkFoaRotate
diff --git a/Sound/SC3/UGen/Record/FoaTilt.hs b/Sound/SC3/UGen/Record/FoaTilt.hs
--- a/Sound/SC3/UGen/Record/FoaTilt.hs
+++ b/Sound/SC3/UGen/Record/FoaTilt.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) rotation transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaTilt where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaTilt = FoaTilt {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaTilt :: FoaTilt
 foaTilt = FoaTilt {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaTilt :: FoaTilt -> S.UGen
-mkFoaTilt (FoaTilt  a' b' c' d' e') = S.mkOsc S.AR "FoaTilt" [a',b',c',d',e'] 4
+mkFoaTilt (FoaTilt  a' b') = S.mkOsc S.AR "FoaTilt" [a',b'] 4
 instance Make FoaTilt where
   ugen = mkFoaTilt
diff --git a/Sound/SC3/UGen/Record/FoaTumble.hs b/Sound/SC3/UGen/Record/FoaTumble.hs
--- a/Sound/SC3/UGen/Record/FoaTumble.hs
+++ b/Sound/SC3/UGen/Record/FoaTumble.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) rotation transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaTumble where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaTumble = FoaTumble {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaTumble :: FoaTumble
 foaTumble = FoaTumble {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaTumble :: FoaTumble -> S.UGen
-mkFoaTumble (FoaTumble  a' b' c' d' e') = S.mkOsc S.AR "FoaTumble" [a',b',c',d',e'] 4
+mkFoaTumble (FoaTumble  a' b') = S.mkOsc S.AR "FoaTumble" [a',b'] 4
 instance Make FoaTumble where
   ugen = mkFoaTumble
diff --git a/Sound/SC3/UGen/Record/FoaZoomX.hs b/Sound/SC3/UGen/Record/FoaZoomX.hs
--- a/Sound/SC3/UGen/Record/FoaZoomX.hs
+++ b/Sound/SC3/UGen/Record/FoaZoomX.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) zoom transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaZoomX where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaZoomX = FoaZoomX {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaZoomX :: FoaZoomX
 foaZoomX = FoaZoomX {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaZoomX :: FoaZoomX -> S.UGen
-mkFoaZoomX (FoaZoomX  a' b' c' d' e') = S.mkOsc S.AR "FoaZoomX" [a',b',c',d',e'] 4
+mkFoaZoomX (FoaZoomX  a' b') = S.mkOsc S.AR "FoaZoomX" [a',b'] 4
 instance Make FoaZoomX where
   ugen = mkFoaZoomX
diff --git a/Sound/SC3/UGen/Record/FoaZoomY.hs b/Sound/SC3/UGen/Record/FoaZoomY.hs
--- a/Sound/SC3/UGen/Record/FoaZoomY.hs
+++ b/Sound/SC3/UGen/Record/FoaZoomY.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) zoom transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaZoomY where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaZoomY = FoaZoomY {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaZoomY :: FoaZoomY
 foaZoomY = FoaZoomY {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaZoomY :: FoaZoomY -> S.UGen
-mkFoaZoomY (FoaZoomY  a' b' c' d' e') = S.mkOsc S.AR "FoaZoomY" [a',b',c',d',e'] 4
+mkFoaZoomY (FoaZoomY  a' b') = S.mkOsc S.AR "FoaZoomY" [a',b'] 4
 instance Make FoaZoomY where
   ugen = mkFoaZoomY
diff --git a/Sound/SC3/UGen/Record/FoaZoomZ.hs b/Sound/SC3/UGen/Record/FoaZoomZ.hs
--- a/Sound/SC3/UGen/Record/FoaZoomZ.hs
+++ b/Sound/SC3/UGen/Record/FoaZoomZ.hs
@@ -1,23 +1,17 @@
--- | First Order Ambisonic (FOA) zoom transformer
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FoaZoomZ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FoaZoomZ = FoaZoomZ {
-  w :: S.UGen,
-  x :: S.UGen,
-  y :: S.UGen,
-  z :: S.UGen,
+  in :: S.UGen,
   angle :: S.UGen
   } deriving (Show)
 foaZoomZ :: FoaZoomZ
 foaZoomZ = FoaZoomZ {
-  w = 0.0,
-  x = 0.0,
-  y = 0.0,
-  z = 0.0,
+  in = 0.0,
   angle = 0.0
   }
 mkFoaZoomZ :: FoaZoomZ -> S.UGen
-mkFoaZoomZ (FoaZoomZ  a' b' c' d' e') = S.mkOsc S.AR "FoaZoomZ" [a',b',c',d',e'] 4
+mkFoaZoomZ (FoaZoomZ  a' b') = S.mkOsc S.AR "FoaZoomZ" [a',b'] 4
 instance Make FoaZoomZ where
   ugen = mkFoaZoomZ
diff --git a/Sound/SC3/UGen/Record/Fold.hs b/Sound/SC3/UGen/Record/Fold.hs
--- a/Sound/SC3/UGen/Record/Fold.hs
+++ b/Sound/SC3/UGen/Record/Fold.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Fold = Fold {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 fold :: Fold
 fold = Fold {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Formlet.hs b/Sound/SC3/UGen/Record/Formlet.hs
--- a/Sound/SC3/UGen/Record/Formlet.hs
+++ b/Sound/SC3/UGen/Record/Formlet.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data Formlet = Formlet {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   attacktime :: S.UGen,
   decaytime :: S.UGen
@@ -12,7 +12,7 @@
 formlet :: Formlet
 formlet = Formlet {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   attacktime = 1.0,
   decaytime = 1.0
diff --git a/Sound/SC3/UGen/Record/FrameCompare.hs b/Sound/SC3/UGen/Record/FrameCompare.hs
--- a/Sound/SC3/UGen/Record/FrameCompare.hs
+++ b/Sound/SC3/UGen/Record/FrameCompare.hs
@@ -1,4 +1,4 @@
--- | calculates spectral MSE distance of two fft chains
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.FrameCompare where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Free.hs b/Sound/SC3/UGen/Record/Free.hs
--- a/Sound/SC3/UGen/Record/Free.hs
+++ b/Sound/SC3/UGen/Record/Free.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data Free = Free {
   trig :: S.UGen,
-  id_ :: S.UGen
+  id :: S.UGen
   } deriving (Show)
 free :: Free
 free = Free {
   trig = 0.0,
-  id_ = 0.0
+  id = 0.0
   }
 mkFree :: Free -> S.UGen
 mkFree (Free  a' b') = S.mkOsc S.KR "Free" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/FreeSelf.hs b/Sound/SC3/UGen/Record/FreeSelf.hs
--- a/Sound/SC3/UGen/Record/FreeSelf.hs
+++ b/Sound/SC3/UGen/Record/FreeSelf.hs
@@ -3,11 +3,11 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FreeSelf = FreeSelf {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 freeSelf :: FreeSelf
 freeSelf = FreeSelf {
-  input = 0.0
+  in = 0.0
   }
 mkFreeSelf :: FreeSelf -> S.UGen
 mkFreeSelf (FreeSelf  a') = S.mkOsc S.KR "FreeSelf" [a'] 1
diff --git a/Sound/SC3/UGen/Record/FreeVerb.hs b/Sound/SC3/UGen/Record/FreeVerb.hs
--- a/Sound/SC3/UGen/Record/FreeVerb.hs
+++ b/Sound/SC3/UGen/Record/FreeVerb.hs
@@ -3,14 +3,14 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FreeVerb = FreeVerb {
-  input :: S.UGen,
+  in :: S.UGen,
   mix :: S.UGen,
   room :: S.UGen,
   damp :: S.UGen
   } deriving (Show)
 freeVerb :: FreeVerb
 freeVerb = FreeVerb {
-  input = 0.0,
+  in = 0.0,
   mix = 0.33,
   room = 0.5,
   damp = 0.5
diff --git a/Sound/SC3/UGen/Record/FreeVerb2.hs b/Sound/SC3/UGen/Record/FreeVerb2.hs
--- a/Sound/SC3/UGen/Record/FreeVerb2.hs
+++ b/Sound/SC3/UGen/Record/FreeVerb2.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FreeVerb2 = FreeVerb2 {
-  input :: S.UGen,
+  in :: S.UGen,
   in2 :: S.UGen,
   mix :: S.UGen,
   room :: S.UGen,
@@ -11,7 +11,7 @@
   } deriving (Show)
 freeVerb2 :: FreeVerb2
 freeVerb2 = FreeVerb2 {
-  input = 0.0,
+  in = 0.0,
   in2 = 0.0,
   mix = 0.33,
   room = 0.5,
diff --git a/Sound/SC3/UGen/Record/FreqShift.hs b/Sound/SC3/UGen/Record/FreqShift.hs
--- a/Sound/SC3/UGen/Record/FreqShift.hs
+++ b/Sound/SC3/UGen/Record/FreqShift.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data FreqShift = FreqShift {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   phase :: S.UGen
   } deriving (Show)
 freqShift :: FreqShift
 freqShift = FreqShift {
-  input = 0.0,
+  in = 0.0,
   freq = 0.0,
   phase = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/Friction.hs b/Sound/SC3/UGen/Record/Friction.hs
--- a/Sound/SC3/UGen/Record/Friction.hs
+++ b/Sound/SC3/UGen/Record/Friction.hs
@@ -1,11 +1,11 @@
--- | A physical model of a system with dry-friction. A chaotic filter.
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Friction where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Friction = Friction {
   rate :: S.Rate,
-  input :: S.UGen,
-  friction_ :: S.UGen,
+  in :: S.UGen,
+  friction :: S.UGen,
   spring :: S.UGen,
   damp :: S.UGen,
   mass :: S.UGen,
@@ -14,8 +14,8 @@
 friction :: Friction
 friction = Friction {
   rate = S.AR,
-  input = 0.0,
-  friction_ = 0.5,
+  in = 0.0,
+  friction = 0.5,
   spring = 0.414,
   damp = 0.313,
   mass = 0.1,
diff --git a/Sound/SC3/UGen/Record/GVerb.hs b/Sound/SC3/UGen/Record/GVerb.hs
--- a/Sound/SC3/UGen/Record/GVerb.hs
+++ b/Sound/SC3/UGen/Record/GVerb.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data GVerb = GVerb {
-  input :: S.UGen,
+  in :: S.UGen,
   roomsize :: S.UGen,
   revtime :: S.UGen,
   damping :: S.UGen,
@@ -16,7 +16,7 @@
   } deriving (Show)
 gVerb :: GVerb
 gVerb = GVerb {
-  input = 0.0,
+  in = 0.0,
   roomsize = 10.0,
   revtime = 3.0,
   damping = 0.5,
diff --git a/Sound/SC3/UGen/Record/Gammatone.hs b/Sound/SC3/UGen/Record/Gammatone.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Gammatone.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Gammatone where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Gammatone = Gammatone {
+  input :: S.UGen,
+  centrefrequency :: S.UGen,
+  bandwidth :: S.UGen
+  } deriving (Show)
+gammatone :: Gammatone
+gammatone = Gammatone {
+  input = 0.0,
+  centrefrequency = 440.0,
+  bandwidth = 200.0
+  }
+mkGammatone :: Gammatone -> S.UGen
+mkGammatone (Gammatone  a' b' c') = S.mkOsc S.AR "Gammatone" [a',b',c'] 1
+instance Make Gammatone where
+  ugen = mkGammatone
diff --git a/Sound/SC3/UGen/Record/Gate.hs b/Sound/SC3/UGen/Record/Gate.hs
--- a/Sound/SC3/UGen/Record/Gate.hs
+++ b/Sound/SC3/UGen/Record/Gate.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Gate = Gate {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen
   } deriving (Show)
 gate :: Gate
 gate = Gate {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0
   }
 mkGate :: Gate -> S.UGen
diff --git a/Sound/SC3/UGen/Record/GaussClass.hs b/Sound/SC3/UGen/Record/GaussClass.hs
--- a/Sound/SC3/UGen/Record/GaussClass.hs
+++ b/Sound/SC3/UGen/Record/GaussClass.hs
@@ -1,15 +1,15 @@
--- | Gaussian classifier
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.GaussClass where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data GaussClass = GaussClass {
-  input :: S.UGen,
+  in :: S.UGen,
   bufnum :: S.UGen,
   gate :: S.UGen
   } deriving (Show)
 gaussClass :: GaussClass
 gaussClass = GaussClass {
-  input = 0.0,
+  in = 0.0,
   bufnum = 0.0,
   gate = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/GaussTrig.hs b/Sound/SC3/UGen/Record/GaussTrig.hs
--- a/Sound/SC3/UGen/Record/GaussTrig.hs
+++ b/Sound/SC3/UGen/Record/GaussTrig.hs
@@ -1,4 +1,4 @@
--- | impulses around a certain frequency
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.GaussTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Gbman2DC.hs b/Sound/SC3/UGen/Record/Gbman2DC.hs
--- a/Sound/SC3/UGen/Record/Gbman2DC.hs
+++ b/Sound/SC3/UGen/Record/Gbman2DC.hs
@@ -1,4 +1,4 @@
--- | gingerbreadman map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Gbman2DC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Gbman2DL.hs b/Sound/SC3/UGen/Record/Gbman2DL.hs
--- a/Sound/SC3/UGen/Record/Gbman2DL.hs
+++ b/Sound/SC3/UGen/Record/Gbman2DL.hs
@@ -1,4 +1,4 @@
--- | gingerbreadman map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Gbman2DL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Gbman2DN.hs b/Sound/SC3/UGen/Record/Gbman2DN.hs
--- a/Sound/SC3/UGen/Record/Gbman2DN.hs
+++ b/Sound/SC3/UGen/Record/Gbman2DN.hs
@@ -1,4 +1,4 @@
--- | gingerbreadman map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Gbman2DN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/GbmanTrig.hs b/Sound/SC3/UGen/Record/GbmanTrig.hs
--- a/Sound/SC3/UGen/Record/GbmanTrig.hs
+++ b/Sound/SC3/UGen/Record/GbmanTrig.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.GbmanTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Gendy4.hs b/Sound/SC3/UGen/Record/Gendy4.hs
--- a/Sound/SC3/UGen/Record/Gendy4.hs
+++ b/Sound/SC3/UGen/Record/Gendy4.hs
@@ -1,4 +1,4 @@
--- | Dynamic stochastic synthesis generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Gendy4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Gendy5.hs b/Sound/SC3/UGen/Record/Gendy5.hs
--- a/Sound/SC3/UGen/Record/Gendy5.hs
+++ b/Sound/SC3/UGen/Record/Gendy5.hs
@@ -1,4 +1,4 @@
--- | Dynamic stochastic synthesis generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Gendy5 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Getenv.hs b/Sound/SC3/UGen/Record/Getenv.hs
--- a/Sound/SC3/UGen/Record/Getenv.hs
+++ b/Sound/SC3/UGen/Record/Getenv.hs
@@ -1,4 +1,4 @@
--- | Read (numeric) shell environment variables into a synth
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Getenv where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/GlitchBPF.hs b/Sound/SC3/UGen/Record/GlitchBPF.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/GlitchBPF.hs
@@ -0,0 +1,21 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.GlitchBPF where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data GlitchBPF = GlitchBPF {
+  rate :: S.Rate,
+  in :: S.UGen,
+  freq :: S.UGen,
+  rq :: S.UGen
+  } deriving (Show)
+glitchBPF :: GlitchBPF
+glitchBPF = GlitchBPF {
+  rate = S.AR,
+  in = 0.0,
+  freq = 440.0,
+  rq = 1.0
+  }
+mkGlitchBPF :: GlitchBPF -> S.UGen
+mkGlitchBPF (GlitchBPF r a' b' c') = S.mkOsc r "GlitchBPF" [a',b',c'] 1
+instance Make GlitchBPF where
+  ugen = mkGlitchBPF
diff --git a/Sound/SC3/UGen/Record/GlitchBRF.hs b/Sound/SC3/UGen/Record/GlitchBRF.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/GlitchBRF.hs
@@ -0,0 +1,21 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.GlitchBRF where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data GlitchBRF = GlitchBRF {
+  rate :: S.Rate,
+  in :: S.UGen,
+  freq :: S.UGen,
+  rq :: S.UGen
+  } deriving (Show)
+glitchBRF :: GlitchBRF
+glitchBRF = GlitchBRF {
+  rate = S.AR,
+  in = 0.0,
+  freq = 440.0,
+  rq = 1.0
+  }
+mkGlitchBRF :: GlitchBRF -> S.UGen
+mkGlitchBRF (GlitchBRF r a' b' c') = S.mkOsc r "GlitchBRF" [a',b',c'] 1
+instance Make GlitchBRF where
+  ugen = mkGlitchBRF
diff --git a/Sound/SC3/UGen/Record/GlitchHPF.hs b/Sound/SC3/UGen/Record/GlitchHPF.hs
--- a/Sound/SC3/UGen/Record/GlitchHPF.hs
+++ b/Sound/SC3/UGen/Record/GlitchHPF.hs
@@ -1,16 +1,16 @@
--- | backward compatibility
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.GlitchHPF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data GlitchHPF = GlitchHPF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen
   } deriving (Show)
 glitchHPF :: GlitchHPF
 glitchHPF = GlitchHPF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0
   }
 mkGlitchHPF :: GlitchHPF -> S.UGen
diff --git a/Sound/SC3/UGen/Record/GlitchRHPF.hs b/Sound/SC3/UGen/Record/GlitchRHPF.hs
--- a/Sound/SC3/UGen/Record/GlitchRHPF.hs
+++ b/Sound/SC3/UGen/Record/GlitchRHPF.hs
@@ -1,17 +1,17 @@
--- | backward compatibility
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.GlitchRHPF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data GlitchRHPF = GlitchRHPF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 glitchRHPF :: GlitchRHPF
 glitchRHPF = GlitchRHPF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Goertzel.hs b/Sound/SC3/UGen/Record/Goertzel.hs
--- a/Sound/SC3/UGen/Record/Goertzel.hs
+++ b/Sound/SC3/UGen/Record/Goertzel.hs
@@ -1,16 +1,16 @@
--- | Calculate a single DFT bin, to detect presence of a frequency
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Goertzel where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Goertzel = Goertzel {
-  input :: S.UGen,
+  in :: S.UGen,
   bufsize :: S.UGen,
   freq :: S.UGen,
   hop :: S.UGen
   } deriving (Show)
 goertzel :: Goertzel
 goertzel = Goertzel {
-  input = 0.0,
+  in = 0.0,
   bufsize = 1024.0,
   freq = 0.0,
   hop = 1.0
diff --git a/Sound/SC3/UGen/Record/GrainBuf.hs b/Sound/SC3/UGen/Record/GrainBuf.hs
--- a/Sound/SC3/UGen/Record/GrainBuf.hs
+++ b/Sound/SC3/UGen/Record/GrainBuf.hs
@@ -6,7 +6,7 @@
   trigger :: S.UGen,
   dur :: S.UGen,
   sndbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   pos :: S.UGen,
   interp :: S.UGen,
   pan :: S.UGen,
@@ -18,7 +18,7 @@
   trigger = 0.0,
   dur = 1.0,
   sndbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   pos = 0.0,
   interp = 2.0,
   pan = 0.0,
diff --git a/Sound/SC3/UGen/Record/GrainIn.hs b/Sound/SC3/UGen/Record/GrainIn.hs
--- a/Sound/SC3/UGen/Record/GrainIn.hs
+++ b/Sound/SC3/UGen/Record/GrainIn.hs
@@ -5,7 +5,7 @@
 data GrainIn = GrainIn {
   trigger :: S.UGen,
   dur :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   pan :: S.UGen,
   envbufnum :: S.UGen,
   maxGrains :: S.UGen
@@ -14,7 +14,7 @@
 grainIn = GrainIn {
   trigger = 0.0,
   dur = 1.0,
-  input = 0.0,
+  in = 0.0,
   pan = 0.0,
   envbufnum = -1.0,
   maxGrains = 512.0
diff --git a/Sound/SC3/UGen/Record/GravityGrid.hs b/Sound/SC3/UGen/Record/GravityGrid.hs
--- a/Sound/SC3/UGen/Record/GravityGrid.hs
+++ b/Sound/SC3/UGen/Record/GravityGrid.hs
@@ -1,10 +1,10 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.GravityGrid where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data GravityGrid = GravityGrid {
   reset :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   newx :: S.UGen,
   newy :: S.UGen,
   bufnum :: S.UGen
@@ -12,7 +12,7 @@
 gravityGrid :: GravityGrid
 gravityGrid = GravityGrid {
   reset = 0.0,
-  rate_ = 0.1,
+  rate = 0.1,
   newx = 0.0,
   newy = 0.0,
   bufnum = 0.0
diff --git a/Sound/SC3/UGen/Record/GravityGrid2.hs b/Sound/SC3/UGen/Record/GravityGrid2.hs
--- a/Sound/SC3/UGen/Record/GravityGrid2.hs
+++ b/Sound/SC3/UGen/Record/GravityGrid2.hs
@@ -1,10 +1,10 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.GravityGrid2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data GravityGrid2 = GravityGrid2 {
   reset :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   newx :: S.UGen,
   newy :: S.UGen,
   bufnum :: S.UGen
@@ -12,7 +12,7 @@
 gravityGrid2 :: GravityGrid2
 gravityGrid2 = GravityGrid2 {
   reset = 0.0,
-  rate_ = 0.1,
+  rate = 0.1,
   newx = 0.0,
   newy = 0.0,
   bufnum = 0.0
diff --git a/Sound/SC3/UGen/Record/HPF.hs b/Sound/SC3/UGen/Record/HPF.hs
--- a/Sound/SC3/UGen/Record/HPF.hs
+++ b/Sound/SC3/UGen/Record/HPF.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data HPF = HPF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen
   } deriving (Show)
 hPF :: HPF
 hPF = HPF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0
   }
 mkHPF :: HPF -> S.UGen
diff --git a/Sound/SC3/UGen/Record/HPZ1.hs b/Sound/SC3/UGen/Record/HPZ1.hs
--- a/Sound/SC3/UGen/Record/HPZ1.hs
+++ b/Sound/SC3/UGen/Record/HPZ1.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data HPZ1 = HPZ1 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 hPZ1 :: HPZ1
 hPZ1 = HPZ1 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkHPZ1 :: HPZ1 -> S.UGen
 mkHPZ1 (HPZ1 r a') = S.mkOsc r "HPZ1" [a'] 1
diff --git a/Sound/SC3/UGen/Record/HPZ2.hs b/Sound/SC3/UGen/Record/HPZ2.hs
--- a/Sound/SC3/UGen/Record/HPZ2.hs
+++ b/Sound/SC3/UGen/Record/HPZ2.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data HPZ2 = HPZ2 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 hPZ2 :: HPZ2
 hPZ2 = HPZ2 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkHPZ2 :: HPZ2 -> S.UGen
 mkHPZ2 (HPZ2 r a') = S.mkOsc r "HPZ2" [a'] 1
diff --git a/Sound/SC3/UGen/Record/HairCell.hs b/Sound/SC3/UGen/Record/HairCell.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/HairCell.hs
@@ -0,0 +1,25 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.HairCell where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data HairCell = HairCell {
+  rate :: S.Rate,
+  input :: S.UGen,
+  spontaneousrate :: S.UGen,
+  boostrate :: S.UGen,
+  restorerate :: S.UGen,
+  loss :: S.UGen
+  } deriving (Show)
+hairCell :: HairCell
+hairCell = HairCell {
+  rate = S.AR,
+  input = 0.0,
+  spontaneousrate = 0.0,
+  boostrate = 200.0,
+  restorerate = 1000.0,
+  loss = 0.99
+  }
+mkHairCell :: HairCell -> S.UGen
+mkHairCell (HairCell r a' b' c' d' e') = S.mkOsc r "HairCell" [a',b',c',d',e'] 1
+instance Make HairCell where
+  ugen = mkHairCell
diff --git a/Sound/SC3/UGen/Record/Hasher.hs b/Sound/SC3/UGen/Record/Hasher.hs
--- a/Sound/SC3/UGen/Record/Hasher.hs
+++ b/Sound/SC3/UGen/Record/Hasher.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data Hasher = Hasher {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 hasher :: Hasher
 hasher = Hasher {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkHasher :: Hasher -> S.UGen
 mkHasher (Hasher r a') = S.mkOsc r "Hasher" [a'] 1
diff --git a/Sound/SC3/UGen/Record/Henon2DC.hs b/Sound/SC3/UGen/Record/Henon2DC.hs
--- a/Sound/SC3/UGen/Record/Henon2DC.hs
+++ b/Sound/SC3/UGen/Record/Henon2DC.hs
@@ -1,4 +1,4 @@
--- | henon map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Henon2DC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Henon2DL.hs b/Sound/SC3/UGen/Record/Henon2DL.hs
--- a/Sound/SC3/UGen/Record/Henon2DL.hs
+++ b/Sound/SC3/UGen/Record/Henon2DL.hs
@@ -1,4 +1,4 @@
--- | henon map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Henon2DL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Henon2DN.hs b/Sound/SC3/UGen/Record/Henon2DN.hs
--- a/Sound/SC3/UGen/Record/Henon2DN.hs
+++ b/Sound/SC3/UGen/Record/Henon2DN.hs
@@ -1,4 +1,4 @@
--- | henon map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Henon2DN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/HenonTrig.hs b/Sound/SC3/UGen/Record/HenonTrig.hs
--- a/Sound/SC3/UGen/Record/HenonTrig.hs
+++ b/Sound/SC3/UGen/Record/HenonTrig.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.HenonTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Hilbert.hs b/Sound/SC3/UGen/Record/Hilbert.hs
--- a/Sound/SC3/UGen/Record/Hilbert.hs
+++ b/Sound/SC3/UGen/Record/Hilbert.hs
@@ -3,11 +3,11 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Hilbert = Hilbert {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 hilbert :: Hilbert
 hilbert = Hilbert {
-  input = 0.0
+  in = 0.0
   }
 mkHilbert :: Hilbert -> S.UGen
 mkHilbert (Hilbert  a') = S.mkOsc S.AR "Hilbert" [a'] 2
diff --git a/Sound/SC3/UGen/Record/HilbertFIR.hs b/Sound/SC3/UGen/Record/HilbertFIR.hs
--- a/Sound/SC3/UGen/Record/HilbertFIR.hs
+++ b/Sound/SC3/UGen/Record/HilbertFIR.hs
@@ -3,12 +3,12 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data HilbertFIR = HilbertFIR {
-  input :: S.UGen,
+  in :: S.UGen,
   buffer :: S.UGen
   } deriving (Show)
 hilbertFIR :: HilbertFIR
 hilbertFIR = HilbertFIR {
-  input = 0.0,
+  in = 0.0,
   buffer = 0.0
   }
 mkHilbertFIR :: HilbertFIR -> S.UGen
diff --git a/Sound/SC3/UGen/Record/ICepstrum.hs b/Sound/SC3/UGen/Record/ICepstrum.hs
--- a/Sound/SC3/UGen/Record/ICepstrum.hs
+++ b/Sound/SC3/UGen/Record/ICepstrum.hs
@@ -1,4 +1,4 @@
--- | Transform a cepstrum back to a spectrum
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ICepstrum where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/IEnvGen.hs b/Sound/SC3/UGen/Record/IEnvGen.hs
--- a/Sound/SC3/UGen/Record/IEnvGen.hs
+++ b/Sound/SC3/UGen/Record/IEnvGen.hs
@@ -1,16 +1,16 @@
--- | Envelope generator for polling values from an InterplEnv
+-- | Envelope generator for polling values from an Env
 module Sound.SC3.UGen.Record.IEnvGen where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data IEnvGen = IEnvGen {
   rate :: S.Rate,
-  ienvelope :: S.UGen,
+  envelope :: S.UGen,
   index :: S.UGen
   } deriving (Show)
 iEnvGen :: IEnvGen
 iEnvGen = IEnvGen {
   rate = S.AR,
-  ienvelope = 0.0,
+  envelope = 0.0,
   index = 0.0
   }
 mkIEnvGen :: IEnvGen -> S.UGen
diff --git a/Sound/SC3/UGen/Record/IIRFilter.hs b/Sound/SC3/UGen/Record/IIRFilter.hs
--- a/Sound/SC3/UGen/Record/IIRFilter.hs
+++ b/Sound/SC3/UGen/Record/IIRFilter.hs
@@ -1,15 +1,15 @@
--- | 24db/oct rolloff, 4nd order resonant Low Pass Filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.IIRFilter where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data IIRFilter = IIRFilter {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 iIRFilter :: IIRFilter
 iIRFilter = IIRFilter {
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/InGrain.hs b/Sound/SC3/UGen/Record/InGrain.hs
--- a/Sound/SC3/UGen/Record/InGrain.hs
+++ b/Sound/SC3/UGen/Record/InGrain.hs
@@ -1,17 +1,17 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.InGrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data InGrain = InGrain {
   trigger :: S.UGen,
   dur :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 inGrain :: InGrain
 inGrain = InGrain {
   trigger = 0.0,
   dur = 1.0,
-  input = 0.0
+  in = 0.0
   }
 mkInGrain :: InGrain -> S.UGen
 mkInGrain (InGrain  a' b' c') = S.mkOsc S.AR "InGrain" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/InGrainB.hs b/Sound/SC3/UGen/Record/InGrainB.hs
--- a/Sound/SC3/UGen/Record/InGrainB.hs
+++ b/Sound/SC3/UGen/Record/InGrainB.hs
@@ -1,18 +1,18 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.InGrainB where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data InGrainB = InGrainB {
   trigger :: S.UGen,
   dur :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   envbuf :: S.UGen
   } deriving (Show)
 inGrainB :: InGrainB
 inGrainB = InGrainB {
   trigger = 0.0,
   dur = 1.0,
-  input = 0.0,
+  in = 0.0,
   envbuf = 0.0
   }
 mkInGrainB :: InGrainB -> S.UGen
diff --git a/Sound/SC3/UGen/Record/InGrainBBF.hs b/Sound/SC3/UGen/Record/InGrainBBF.hs
--- a/Sound/SC3/UGen/Record/InGrainBBF.hs
+++ b/Sound/SC3/UGen/Record/InGrainBBF.hs
@@ -1,11 +1,11 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.InGrainBBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data InGrainBBF = InGrainBBF {
   trigger :: S.UGen,
   dur :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   envbuf :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
@@ -16,7 +16,7 @@
 inGrainBBF = InGrainBBF {
   trigger = 0.0,
   dur = 1.0,
-  input = 0.0,
+  in = 0.0,
   envbuf = 0.0,
   azimuth = 0.0,
   elevation = 0.0,
diff --git a/Sound/SC3/UGen/Record/InGrainBF.hs b/Sound/SC3/UGen/Record/InGrainBF.hs
--- a/Sound/SC3/UGen/Record/InGrainBF.hs
+++ b/Sound/SC3/UGen/Record/InGrainBF.hs
@@ -1,11 +1,11 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.InGrainBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data InGrainBF = InGrainBF {
   trigger :: S.UGen,
   dur :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
   rho :: S.UGen,
@@ -15,7 +15,7 @@
 inGrainBF = InGrainBF {
   trigger = 0.0,
   dur = 1.0,
-  input = 0.0,
+  in = 0.0,
   azimuth = 0.0,
   elevation = 0.0,
   rho = 1.0,
diff --git a/Sound/SC3/UGen/Record/InGrainI.hs b/Sound/SC3/UGen/Record/InGrainI.hs
--- a/Sound/SC3/UGen/Record/InGrainI.hs
+++ b/Sound/SC3/UGen/Record/InGrainI.hs
@@ -1,11 +1,11 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.InGrainI where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data InGrainI = InGrainI {
   trigger :: S.UGen,
   dur :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   envbuf1 :: S.UGen,
   envbuf2 :: S.UGen,
   ifac :: S.UGen
@@ -14,7 +14,7 @@
 inGrainI = InGrainI {
   trigger = 0.0,
   dur = 1.0,
-  input = 0.0,
+  in = 0.0,
   envbuf1 = 0.0,
   envbuf2 = 0.0,
   ifac = 0.5
diff --git a/Sound/SC3/UGen/Record/InGrainIBF.hs b/Sound/SC3/UGen/Record/InGrainIBF.hs
--- a/Sound/SC3/UGen/Record/InGrainIBF.hs
+++ b/Sound/SC3/UGen/Record/InGrainIBF.hs
@@ -1,11 +1,11 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.InGrainIBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data InGrainIBF = InGrainIBF {
   trigger :: S.UGen,
   dur :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   envbuf1 :: S.UGen,
   envbuf2 :: S.UGen,
   ifac :: S.UGen,
@@ -18,7 +18,7 @@
 inGrainIBF = InGrainIBF {
   trigger = 0.0,
   dur = 1.0,
-  input = 0.0,
+  in = 0.0,
   envbuf1 = 0.0,
   envbuf2 = 0.0,
   ifac = 0.5,
diff --git a/Sound/SC3/UGen/Record/InRange.hs b/Sound/SC3/UGen/Record/InRange.hs
--- a/Sound/SC3/UGen/Record/InRange.hs
+++ b/Sound/SC3/UGen/Record/InRange.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data InRange = InRange {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 inRange :: InRange
 inRange = InRange {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Index.hs b/Sound/SC3/UGen/Record/Index.hs
--- a/Sound/SC3/UGen/Record/Index.hs
+++ b/Sound/SC3/UGen/Record/Index.hs
@@ -5,13 +5,13 @@
 data Index = Index {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 index :: Index
 index = Index {
   rate = S.AR,
   bufnum = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkIndex :: Index -> S.UGen
 mkIndex (Index r a' b') = S.mkOsc r "Index" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/IndexInBetween.hs b/Sound/SC3/UGen/Record/IndexInBetween.hs
--- a/Sound/SC3/UGen/Record/IndexInBetween.hs
+++ b/Sound/SC3/UGen/Record/IndexInBetween.hs
@@ -5,13 +5,13 @@
 data IndexInBetween = IndexInBetween {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 indexInBetween :: IndexInBetween
 indexInBetween = IndexInBetween {
   rate = S.AR,
   bufnum = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkIndexInBetween :: IndexInBetween -> S.UGen
 mkIndexInBetween (IndexInBetween r a' b') = S.mkOsc r "IndexInBetween" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/IndexL.hs b/Sound/SC3/UGen/Record/IndexL.hs
--- a/Sound/SC3/UGen/Record/IndexL.hs
+++ b/Sound/SC3/UGen/Record/IndexL.hs
@@ -5,13 +5,13 @@
 data IndexL = IndexL {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 indexL :: IndexL
 indexL = IndexL {
   rate = S.AR,
   bufnum = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkIndexL :: IndexL -> S.UGen
 mkIndexL (IndexL r a' b') = S.mkOsc r "IndexL" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/InsideOut.hs b/Sound/SC3/UGen/Record/InsideOut.hs
--- a/Sound/SC3/UGen/Record/InsideOut.hs
+++ b/Sound/SC3/UGen/Record/InsideOut.hs
@@ -1,15 +1,15 @@
--- | Distortion by subtracting magnitude from 1
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.InsideOut where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data InsideOut = InsideOut {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 insideOut :: InsideOut
 insideOut = InsideOut {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkInsideOut :: InsideOut -> S.UGen
 mkInsideOut (InsideOut r a') = S.mkOsc r "InsideOut" [a'] 1
diff --git a/Sound/SC3/UGen/Record/Instruction.hs b/Sound/SC3/UGen/Record/Instruction.hs
--- a/Sound/SC3/UGen/Record/Instruction.hs
+++ b/Sound/SC3/UGen/Record/Instruction.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Instruction where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Integrator.hs b/Sound/SC3/UGen/Record/Integrator.hs
--- a/Sound/SC3/UGen/Record/Integrator.hs
+++ b/Sound/SC3/UGen/Record/Integrator.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Integrator = Integrator {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   coef :: S.UGen
   } deriving (Show)
 integrator :: Integrator
 integrator = Integrator {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   coef = 1.0
   }
 mkIntegrator :: Integrator -> S.UGen
diff --git a/Sound/SC3/UGen/Record/JoshGrain.hs b/Sound/SC3/UGen/Record/JoshGrain.hs
--- a/Sound/SC3/UGen/Record/JoshGrain.hs
+++ b/Sound/SC3/UGen/Record/JoshGrain.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.JoshGrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/JoshMultiOutGrain.hs b/Sound/SC3/UGen/Record/JoshMultiOutGrain.hs
--- a/Sound/SC3/UGen/Record/JoshMultiOutGrain.hs
+++ b/Sound/SC3/UGen/Record/JoshMultiOutGrain.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.JoshMultiOutGrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/K2A.hs b/Sound/SC3/UGen/Record/K2A.hs
--- a/Sound/SC3/UGen/Record/K2A.hs
+++ b/Sound/SC3/UGen/Record/K2A.hs
@@ -3,11 +3,11 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data K2A = K2A {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 k2A :: K2A
 k2A = K2A {
-  input = 0.0
+  in = 0.0
   }
 mkK2A :: K2A -> S.UGen
 mkK2A (K2A  a') = S.mkOsc S.AR "K2A" [a'] 1
diff --git a/Sound/SC3/UGen/Record/KMeansRT.hs b/Sound/SC3/UGen/Record/KMeansRT.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/KMeansRT.hs
@@ -0,0 +1,25 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.KMeansRT where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data KMeansRT = KMeansRT {
+  bufnum :: S.UGen,
+  inputdata :: S.UGen,
+  k :: S.UGen,
+  gate :: S.UGen,
+  reset :: S.UGen,
+  learn :: S.UGen
+  } deriving (Show)
+kMeansRT :: KMeansRT
+kMeansRT = KMeansRT {
+  bufnum = 0.0,
+  inputdata = 0.0,
+  k = 5.0,
+  gate = 1.0,
+  reset = 0.0,
+  learn = 1.0
+  }
+mkKMeansRT :: KMeansRT -> S.UGen
+mkKMeansRT (KMeansRT  a' b' c' d' e' f') = S.mkOsc S.KR "KMeansRT" [a',b',c',d',e',f'] 1
+instance Make KMeansRT where
+  ugen = mkKMeansRT
diff --git a/Sound/SC3/UGen/Record/KmeansToBPSet1.hs b/Sound/SC3/UGen/Record/KmeansToBPSet1.hs
--- a/Sound/SC3/UGen/Record/KmeansToBPSet1.hs
+++ b/Sound/SC3/UGen/Record/KmeansToBPSet1.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.KmeansToBPSet1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LFBrownNoise0.hs b/Sound/SC3/UGen/Record/LFBrownNoise0.hs
--- a/Sound/SC3/UGen/Record/LFBrownNoise0.hs
+++ b/Sound/SC3/UGen/Record/LFBrownNoise0.hs
@@ -1,4 +1,4 @@
--- | random walk step
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LFBrownNoise0 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LFBrownNoise1.hs b/Sound/SC3/UGen/Record/LFBrownNoise1.hs
--- a/Sound/SC3/UGen/Record/LFBrownNoise1.hs
+++ b/Sound/SC3/UGen/Record/LFBrownNoise1.hs
@@ -1,4 +1,4 @@
--- | random walk linear interp
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LFBrownNoise1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LFBrownNoise2.hs b/Sound/SC3/UGen/Record/LFBrownNoise2.hs
--- a/Sound/SC3/UGen/Record/LFBrownNoise2.hs
+++ b/Sound/SC3/UGen/Record/LFBrownNoise2.hs
@@ -1,4 +1,4 @@
--- | random walk cubic interp
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LFBrownNoise2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LPCAnalyzer.hs b/Sound/SC3/UGen/Record/LPCAnalyzer.hs
--- a/Sound/SC3/UGen/Record/LPCAnalyzer.hs
+++ b/Sound/SC3/UGen/Record/LPCAnalyzer.hs
@@ -1,4 +1,4 @@
--- | Live Linear Predictive Coding Analysis and Resynthesis
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LPCAnalyzer where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LPCError.hs b/Sound/SC3/UGen/Record/LPCError.hs
--- a/Sound/SC3/UGen/Record/LPCError.hs
+++ b/Sound/SC3/UGen/Record/LPCError.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LPCError where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LPCSynth.hs b/Sound/SC3/UGen/Record/LPCSynth.hs
--- a/Sound/SC3/UGen/Record/LPCSynth.hs
+++ b/Sound/SC3/UGen/Record/LPCSynth.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LPCSynth where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LPCVals.hs b/Sound/SC3/UGen/Record/LPCVals.hs
--- a/Sound/SC3/UGen/Record/LPCVals.hs
+++ b/Sound/SC3/UGen/Record/LPCVals.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LPCVals where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LPF.hs b/Sound/SC3/UGen/Record/LPF.hs
--- a/Sound/SC3/UGen/Record/LPF.hs
+++ b/Sound/SC3/UGen/Record/LPF.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data LPF = LPF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen
   } deriving (Show)
 lPF :: LPF
 lPF = LPF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0
   }
 mkLPF :: LPF -> S.UGen
diff --git a/Sound/SC3/UGen/Record/LPF1.hs b/Sound/SC3/UGen/Record/LPF1.hs
--- a/Sound/SC3/UGen/Record/LPF1.hs
+++ b/Sound/SC3/UGen/Record/LPF1.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LPF1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data LPF1 = LPF1 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen
   } deriving (Show)
 lPF1 :: LPF1
 lPF1 = LPF1 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 1000.0
   }
 mkLPF1 :: LPF1 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/LPF18.hs b/Sound/SC3/UGen/Record/LPF18.hs
--- a/Sound/SC3/UGen/Record/LPF18.hs
+++ b/Sound/SC3/UGen/Record/LPF18.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LPF18 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data LPF18 = LPF18 {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   res :: S.UGen,
   dist :: S.UGen
   } deriving (Show)
 lPF18 :: LPF18
 lPF18 = LPF18 {
-  input = 0.0,
+  in = 0.0,
   freq = 100.0,
   res = 1.0,
   dist = 0.4
diff --git a/Sound/SC3/UGen/Record/LPFVS6.hs b/Sound/SC3/UGen/Record/LPFVS6.hs
--- a/Sound/SC3/UGen/Record/LPFVS6.hs
+++ b/Sound/SC3/UGen/Record/LPFVS6.hs
@@ -1,17 +1,17 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LPFVS6 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data LPFVS6 = LPFVS6 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   slope :: S.UGen
   } deriving (Show)
 lPFVS6 :: LPFVS6
 lPFVS6 = LPFVS6 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 1000.0,
   slope = 0.5
   }
diff --git a/Sound/SC3/UGen/Record/LPZ1.hs b/Sound/SC3/UGen/Record/LPZ1.hs
--- a/Sound/SC3/UGen/Record/LPZ1.hs
+++ b/Sound/SC3/UGen/Record/LPZ1.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data LPZ1 = LPZ1 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 lPZ1 :: LPZ1
 lPZ1 = LPZ1 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkLPZ1 :: LPZ1 -> S.UGen
 mkLPZ1 (LPZ1 r a') = S.mkOsc r "LPZ1" [a'] 1
diff --git a/Sound/SC3/UGen/Record/LPZ2.hs b/Sound/SC3/UGen/Record/LPZ2.hs
--- a/Sound/SC3/UGen/Record/LPZ2.hs
+++ b/Sound/SC3/UGen/Record/LPZ2.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data LPZ2 = LPZ2 {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 lPZ2 :: LPZ2
 lPZ2 = LPZ2 {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkLPZ2 :: LPZ2 -> S.UGen
 mkLPZ2 (LPZ2 r a') = S.mkOsc r "LPZ2" [a'] 1
diff --git a/Sound/SC3/UGen/Record/LTI.hs b/Sound/SC3/UGen/Record/LTI.hs
--- a/Sound/SC3/UGen/Record/LTI.hs
+++ b/Sound/SC3/UGen/Record/LTI.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LTI where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Lag.hs b/Sound/SC3/UGen/Record/Lag.hs
--- a/Sound/SC3/UGen/Record/Lag.hs
+++ b/Sound/SC3/UGen/Record/Lag.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Lag = Lag {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTime :: S.UGen
   } deriving (Show)
 lag :: Lag
 lag = Lag {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTime = 0.1
   }
 mkLag :: Lag -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Lag2.hs b/Sound/SC3/UGen/Record/Lag2.hs
--- a/Sound/SC3/UGen/Record/Lag2.hs
+++ b/Sound/SC3/UGen/Record/Lag2.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Lag2 = Lag2 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTime :: S.UGen
   } deriving (Show)
 lag2 :: Lag2
 lag2 = Lag2 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTime = 0.1
   }
 mkLag2 :: Lag2 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Lag2UD.hs b/Sound/SC3/UGen/Record/Lag2UD.hs
--- a/Sound/SC3/UGen/Record/Lag2UD.hs
+++ b/Sound/SC3/UGen/Record/Lag2UD.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Lag2UD = Lag2UD {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTimeU :: S.UGen,
   lagTimeD :: S.UGen
   } deriving (Show)
 lag2UD :: Lag2UD
 lag2UD = Lag2UD {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTimeU = 0.1,
   lagTimeD = 0.1
   }
diff --git a/Sound/SC3/UGen/Record/Lag3.hs b/Sound/SC3/UGen/Record/Lag3.hs
--- a/Sound/SC3/UGen/Record/Lag3.hs
+++ b/Sound/SC3/UGen/Record/Lag3.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Lag3 = Lag3 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTime :: S.UGen
   } deriving (Show)
 lag3 :: Lag3
 lag3 = Lag3 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTime = 0.1
   }
 mkLag3 :: Lag3 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Lag3UD.hs b/Sound/SC3/UGen/Record/Lag3UD.hs
--- a/Sound/SC3/UGen/Record/Lag3UD.hs
+++ b/Sound/SC3/UGen/Record/Lag3UD.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Lag3UD = Lag3UD {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTimeU :: S.UGen,
   lagTimeD :: S.UGen
   } deriving (Show)
 lag3UD :: Lag3UD
 lag3UD = Lag3UD {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTimeU = 0.1,
   lagTimeD = 0.1
   }
diff --git a/Sound/SC3/UGen/Record/LagUD.hs b/Sound/SC3/UGen/Record/LagUD.hs
--- a/Sound/SC3/UGen/Record/LagUD.hs
+++ b/Sound/SC3/UGen/Record/LagUD.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data LagUD = LagUD {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTimeU :: S.UGen,
   lagTimeD :: S.UGen
   } deriving (Show)
 lagUD :: LagUD
 lagUD = LagUD {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTimeU = 0.1,
   lagTimeD = 0.1
   }
diff --git a/Sound/SC3/UGen/Record/LastValue.hs b/Sound/SC3/UGen/Record/LastValue.hs
--- a/Sound/SC3/UGen/Record/LastValue.hs
+++ b/Sound/SC3/UGen/Record/LastValue.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data LastValue = LastValue {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   diff :: S.UGen
   } deriving (Show)
 lastValue :: LastValue
 lastValue = LastValue {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   diff = 0.01
   }
 mkLastValue :: LastValue -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Latch.hs b/Sound/SC3/UGen/Record/Latch.hs
--- a/Sound/SC3/UGen/Record/Latch.hs
+++ b/Sound/SC3/UGen/Record/Latch.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Latch = Latch {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen
   } deriving (Show)
 latch :: Latch
 latch = Latch {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0
   }
 mkLatch :: Latch -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Latoocarfian2DC.hs b/Sound/SC3/UGen/Record/Latoocarfian2DC.hs
--- a/Sound/SC3/UGen/Record/Latoocarfian2DC.hs
+++ b/Sound/SC3/UGen/Record/Latoocarfian2DC.hs
@@ -1,4 +1,4 @@
--- | latoocarfian 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Latoocarfian2DC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Latoocarfian2DL.hs b/Sound/SC3/UGen/Record/Latoocarfian2DL.hs
--- a/Sound/SC3/UGen/Record/Latoocarfian2DL.hs
+++ b/Sound/SC3/UGen/Record/Latoocarfian2DL.hs
@@ -1,4 +1,4 @@
--- | latoocarfian 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Latoocarfian2DL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Latoocarfian2DN.hs b/Sound/SC3/UGen/Record/Latoocarfian2DN.hs
--- a/Sound/SC3/UGen/Record/Latoocarfian2DN.hs
+++ b/Sound/SC3/UGen/Record/Latoocarfian2DN.hs
@@ -1,4 +1,4 @@
--- | latoocarfian 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Latoocarfian2DN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LatoocarfianTrig.hs b/Sound/SC3/UGen/Record/LatoocarfianTrig.hs
--- a/Sound/SC3/UGen/Record/LatoocarfianTrig.hs
+++ b/Sound/SC3/UGen/Record/LatoocarfianTrig.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LatoocarfianTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LeakDC.hs b/Sound/SC3/UGen/Record/LeakDC.hs
--- a/Sound/SC3/UGen/Record/LeakDC.hs
+++ b/Sound/SC3/UGen/Record/LeakDC.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data LeakDC = LeakDC {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   coef :: S.UGen
   } deriving (Show)
 leakDC :: LeakDC
 leakDC = LeakDC {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   coef = 0.995
   }
 mkLeakDC :: LeakDC -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Limiter.hs b/Sound/SC3/UGen/Record/Limiter.hs
--- a/Sound/SC3/UGen/Record/Limiter.hs
+++ b/Sound/SC3/UGen/Record/Limiter.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Limiter = Limiter {
-  input :: S.UGen,
+  in :: S.UGen,
   level :: S.UGen,
   dur :: S.UGen
   } deriving (Show)
 limiter :: Limiter
 limiter = Limiter {
-  input = 0.0,
+  in = 0.0,
   level = 1.0,
   dur = 0.01
   }
diff --git a/Sound/SC3/UGen/Record/LinExp.hs b/Sound/SC3/UGen/Record/LinExp.hs
--- a/Sound/SC3/UGen/Record/LinExp.hs
+++ b/Sound/SC3/UGen/Record/LinExp.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data LinExp = LinExp {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   srclo :: S.UGen,
   srchi :: S.UGen,
   dstlo :: S.UGen,
@@ -13,7 +13,7 @@
 linExp :: LinExp
 linExp = LinExp {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   srclo = 0.0,
   srchi = 1.0,
   dstlo = 1.0,
diff --git a/Sound/SC3/UGen/Record/LinLin.hs b/Sound/SC3/UGen/Record/LinLin.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/LinLin.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Sound.SC3.UGen.Record.LinLin where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data LinLin = LinLin {
-  rate :: S.Rate,
-  input :: S.UGen,
-  srclo :: S.UGen,
-  srchi :: S.UGen,
-  dstlo :: S.UGen,
-  dsthi :: S.UGen
-  } deriving (Show)
-linLin :: LinLin
-linLin = LinLin {
-  rate = S.AR,
-  input = 0.0,
-  srclo = 0.0,
-  srchi = 1.0,
-  dstlo = 1.0,
-  dsthi = 2.0
-  }
-mkLinLin :: LinLin -> S.UGen
-mkLinLin (LinLin r a' b' c' d' e') = S.mkOsc r "LinLin" [a',b',c',d',e'] 1
-instance Make LinLin where
-  ugen = mkLinLin
diff --git a/Sound/SC3/UGen/Record/LinPan2.hs b/Sound/SC3/UGen/Record/LinPan2.hs
--- a/Sound/SC3/UGen/Record/LinPan2.hs
+++ b/Sound/SC3/UGen/Record/LinPan2.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data LinPan2 = LinPan2 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   pos :: S.UGen,
   level :: S.UGen
   } deriving (Show)
 linPan2 :: LinPan2
 linPan2 = LinPan2 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   pos = 0.0,
   level = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/ListDUGen.hs b/Sound/SC3/UGen/Record/ListDUGen.hs
--- a/Sound/SC3/UGen/Record/ListDUGen.hs
+++ b/Sound/SC3/UGen/Record/ListDUGen.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ListDUGen where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/ListTrig.hs b/Sound/SC3/UGen/Record/ListTrig.hs
--- a/Sound/SC3/UGen/Record/ListTrig.hs
+++ b/Sound/SC3/UGen/Record/ListTrig.hs
@@ -1,4 +1,4 @@
--- | Emit a sequence of triggers at specified time offsets
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ListTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/ListTrig2.hs b/Sound/SC3/UGen/Record/ListTrig2.hs
--- a/Sound/SC3/UGen/Record/ListTrig2.hs
+++ b/Sound/SC3/UGen/Record/ListTrig2.hs
@@ -1,4 +1,4 @@
--- | Emit a sequence of triggers at specified time offsets
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ListTrig2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LocalIn.hs b/Sound/SC3/UGen/Record/LocalIn.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/LocalIn.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Sound.SC3.UGen.Record.LocalIn where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data LocalIn = LocalIn {
-  rate :: S.Rate,
-  numChannels :: S.UGen,
-  default_ :: S.UGen
-  } deriving (Show)
-localIn :: LocalIn
-localIn = LocalIn {
-  rate = S.AR,
-  numChannels = 1.0,
-  default_ = 0.0
-  }
-mkLocalIn :: LocalIn -> S.UGen
-mkLocalIn (LocalIn r a' b') = S.mkOsc r "LocalIn" [a',b'] 1
-instance Make LocalIn where
-  ugen = mkLocalIn
diff --git a/Sound/SC3/UGen/Record/LocalOut.hs b/Sound/SC3/UGen/Record/LocalOut.hs
--- a/Sound/SC3/UGen/Record/LocalOut.hs
+++ b/Sound/SC3/UGen/Record/LocalOut.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data LocalOut = LocalOut {
   rate :: S.Rate,
-  input :: S.UGen
+  channelsArray :: S.UGen
   } deriving (Show)
 localOut :: LocalOut
 localOut = LocalOut {
   rate = S.AR,
-  input = 0.0
+  channelsArray = 0.0
   }
 mkLocalOut :: LocalOut -> S.UGen
 mkLocalOut (LocalOut r a') = S.mkOsc r "LocalOut" [a'] 1
diff --git a/Sound/SC3/UGen/Record/Logger.hs b/Sound/SC3/UGen/Record/Logger.hs
--- a/Sound/SC3/UGen/Record/Logger.hs
+++ b/Sound/SC3/UGen/Record/Logger.hs
@@ -1,4 +1,4 @@
--- | Store values to a buffer, whenever triggered
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Logger where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Logistic.hs b/Sound/SC3/UGen/Record/Logistic.hs
--- a/Sound/SC3/UGen/Record/Logistic.hs
+++ b/Sound/SC3/UGen/Record/Logistic.hs
@@ -6,14 +6,14 @@
   rate :: S.Rate,
   chaosParam :: S.UGen,
   freq :: S.UGen,
-  init_ :: S.UGen
+  init :: S.UGen
   } deriving (Show)
 logistic :: Logistic
 logistic = Logistic {
   rate = S.AR,
   chaosParam = 3.0,
   freq = 1000.0,
-  init_ = 0.5
+  init = 0.5
   }
 mkLogistic :: Logistic -> S.UGen
 mkLogistic (Logistic r a' b' c') = S.mkOsc r "Logistic" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/LoopBuf.hs b/Sound/SC3/UGen/Record/LoopBuf.hs
--- a/Sound/SC3/UGen/Record/LoopBuf.hs
+++ b/Sound/SC3/UGen/Record/LoopBuf.hs
@@ -1,10 +1,10 @@
--- | sample looping oscillator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LoopBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data LoopBuf = LoopBuf {
   bufnum :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   gate :: S.UGen,
   startPos :: S.UGen,
   startLoop :: S.UGen,
@@ -14,7 +14,7 @@
 loopBuf :: LoopBuf
 loopBuf = LoopBuf {
   bufnum = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   gate = 1.0,
   startPos = 0.0,
   startLoop = 0.0,
diff --git a/Sound/SC3/UGen/Record/Lorenz2DC.hs b/Sound/SC3/UGen/Record/Lorenz2DC.hs
--- a/Sound/SC3/UGen/Record/Lorenz2DC.hs
+++ b/Sound/SC3/UGen/Record/Lorenz2DC.hs
@@ -1,4 +1,4 @@
--- | lorenz 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Lorenz2DC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Lorenz2DL.hs b/Sound/SC3/UGen/Record/Lorenz2DL.hs
--- a/Sound/SC3/UGen/Record/Lorenz2DL.hs
+++ b/Sound/SC3/UGen/Record/Lorenz2DL.hs
@@ -1,4 +1,4 @@
--- | lorenz 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Lorenz2DL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Lorenz2DN.hs b/Sound/SC3/UGen/Record/Lorenz2DN.hs
--- a/Sound/SC3/UGen/Record/Lorenz2DN.hs
+++ b/Sound/SC3/UGen/Record/Lorenz2DN.hs
@@ -1,4 +1,4 @@
--- | lorenz 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Lorenz2DN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/LorenzTrig.hs b/Sound/SC3/UGen/Record/LorenzTrig.hs
--- a/Sound/SC3/UGen/Record/LorenzTrig.hs
+++ b/Sound/SC3/UGen/Record/LorenzTrig.hs
@@ -1,4 +1,4 @@
--- | lorenz chaotic trigger generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.LorenzTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/MCLDChaosGen.hs b/Sound/SC3/UGen/Record/MCLDChaosGen.hs
--- a/Sound/SC3/UGen/Record/MCLDChaosGen.hs
+++ b/Sound/SC3/UGen/Record/MCLDChaosGen.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MCLDChaosGen where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/MZPokey.hs b/Sound/SC3/UGen/Record/MZPokey.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/MZPokey.hs
@@ -0,0 +1,31 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.MZPokey where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data MZPokey = MZPokey {
+  audf1 :: S.UGen,
+  audc1 :: S.UGen,
+  audf2 :: S.UGen,
+  audc2 :: S.UGen,
+  audf3 :: S.UGen,
+  audc3 :: S.UGen,
+  audf4 :: S.UGen,
+  audc4 :: S.UGen,
+  audctl :: S.UGen
+  } deriving (Show)
+mZPokey :: MZPokey
+mZPokey = MZPokey {
+  audf1 = 0.0,
+  audc1 = 0.0,
+  audf2 = 0.0,
+  audc2 = 0.0,
+  audf3 = 0.0,
+  audc3 = 0.0,
+  audf4 = 0.0,
+  audc4 = 0.0,
+  audctl = 0.0
+  }
+mkMZPokey :: MZPokey -> S.UGen
+mkMZPokey (MZPokey  a' b' c' d' e' f' g' h' i') = S.mkOsc S.AR "MZPokey" [a',b',c',d',e',f',g',h',i'] 1
+instance Make MZPokey where
+  ugen = mkMZPokey
diff --git a/Sound/SC3/UGen/Record/MantissaMask.hs b/Sound/SC3/UGen/Record/MantissaMask.hs
--- a/Sound/SC3/UGen/Record/MantissaMask.hs
+++ b/Sound/SC3/UGen/Record/MantissaMask.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data MantissaMask = MantissaMask {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   bits :: S.UGen
   } deriving (Show)
 mantissaMask :: MantissaMask
 mantissaMask = MantissaMask {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   bits = 3.0
   }
 mkMantissaMask :: MantissaMask -> S.UGen
diff --git a/Sound/SC3/UGen/Record/MarkovSynth.hs b/Sound/SC3/UGen/Record/MarkovSynth.hs
--- a/Sound/SC3/UGen/Record/MarkovSynth.hs
+++ b/Sound/SC3/UGen/Record/MarkovSynth.hs
@@ -1,16 +1,16 @@
--- | First order Markov Chain implementation for audio signals
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MarkovSynth where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data MarkovSynth = MarkovSynth {
-  input :: S.UGen,
+  in :: S.UGen,
   isRecording :: S.UGen,
   waitTime :: S.UGen,
   tableSize :: S.UGen
   } deriving (Show)
 markovSynth :: MarkovSynth
 markovSynth = MarkovSynth {
-  input = 0.0,
+  in = 0.0,
   isRecording = 1.0,
   waitTime = 2.0,
   tableSize = 10.0
diff --git a/Sound/SC3/UGen/Record/Max.hs b/Sound/SC3/UGen/Record/Max.hs
--- a/Sound/SC3/UGen/Record/Max.hs
+++ b/Sound/SC3/UGen/Record/Max.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Max where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Max = Max {
-  input :: S.UGen,
+  in :: S.UGen,
   numsamp :: S.UGen
   } deriving (Show)
 max :: Max
 max = Max {
-  input = 0.0,
+  in = 0.0,
   numsamp = 64.0
   }
 mkMax :: Max -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Maxamp.hs b/Sound/SC3/UGen/Record/Maxamp.hs
--- a/Sound/SC3/UGen/Record/Maxamp.hs
+++ b/Sound/SC3/UGen/Record/Maxamp.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Maxamp where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Maxamp = Maxamp {
-  input :: S.UGen,
+  in :: S.UGen,
   numSamps :: S.UGen
   } deriving (Show)
 maxamp :: Maxamp
 maxamp = Maxamp {
-  input = 0.0,
+  in = 0.0,
   numSamps = 1000.0
   }
 mkMaxamp :: Maxamp -> S.UGen
diff --git a/Sound/SC3/UGen/Record/MdaPiano.hs b/Sound/SC3/UGen/Record/MdaPiano.hs
--- a/Sound/SC3/UGen/Record/MdaPiano.hs
+++ b/Sound/SC3/UGen/Record/MdaPiano.hs
@@ -1,4 +1,4 @@
--- | Piano synthesiser
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MdaPiano where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/MeanTriggered.hs b/Sound/SC3/UGen/Record/MeanTriggered.hs
--- a/Sound/SC3/UGen/Record/MeanTriggered.hs
+++ b/Sound/SC3/UGen/Record/MeanTriggered.hs
@@ -1,19 +1,19 @@
--- | Mean of recent values, triggered
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MeanTriggered where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data MeanTriggered = MeanTriggered {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 meanTriggered :: MeanTriggered
 meanTriggered = MeanTriggered {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0,
-  length_ = 10.0
+  length = 10.0
   }
 mkMeanTriggered :: MeanTriggered -> S.UGen
 mkMeanTriggered (MeanTriggered r a' b' c') = S.mkOsc r "MeanTriggered" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/Meddis.hs b/Sound/SC3/UGen/Record/Meddis.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Meddis.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Meddis where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Meddis = Meddis {
+  rate :: S.Rate,
+  input :: S.UGen
+  } deriving (Show)
+meddis :: Meddis
+meddis = Meddis {
+  rate = S.AR,
+  input = 0.0
+  }
+mkMeddis :: Meddis -> S.UGen
+mkMeddis (Meddis r a') = S.mkOsc r "Meddis" [a'] 1
+instance Make Meddis where
+  ugen = mkMeddis
diff --git a/Sound/SC3/UGen/Record/Median.hs b/Sound/SC3/UGen/Record/Median.hs
--- a/Sound/SC3/UGen/Record/Median.hs
+++ b/Sound/SC3/UGen/Record/Median.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Median = Median {
   rate :: S.Rate,
-  length_ :: S.UGen,
-  input :: S.UGen
+  length :: S.UGen,
+  in :: S.UGen
   } deriving (Show)
 median :: Median
 median = Median {
   rate = S.AR,
-  length_ = 3.0,
-  input = 0.0
+  length = 3.0,
+  in = 0.0
   }
 mkMedian :: Median -> S.UGen
 mkMedian (Median r a' b') = S.mkOsc r "Median" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/MedianTriggered.hs b/Sound/SC3/UGen/Record/MedianTriggered.hs
--- a/Sound/SC3/UGen/Record/MedianTriggered.hs
+++ b/Sound/SC3/UGen/Record/MedianTriggered.hs
@@ -1,19 +1,19 @@
--- | Median of recent values, triggered
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MedianTriggered where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data MedianTriggered = MedianTriggered {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen,
-  length_ :: S.UGen
+  length :: S.UGen
   } deriving (Show)
 medianTriggered :: MedianTriggered
 medianTriggered = MedianTriggered {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0,
-  length_ = 10.0
+  length = 10.0
   }
 mkMedianTriggered :: MedianTriggered -> S.UGen
 mkMedianTriggered (MedianTriggered r a' b' c') = S.mkOsc r "MedianTriggered" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/MembraneCircle.hs b/Sound/SC3/UGen/Record/MembraneCircle.hs
--- a/Sound/SC3/UGen/Record/MembraneCircle.hs
+++ b/Sound/SC3/UGen/Record/MembraneCircle.hs
@@ -1,4 +1,4 @@
--- | Waveguide mesh physical models of drum membranes
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MembraneCircle where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/MembraneHexagon.hs b/Sound/SC3/UGen/Record/MembraneHexagon.hs
--- a/Sound/SC3/UGen/Record/MembraneHexagon.hs
+++ b/Sound/SC3/UGen/Record/MembraneHexagon.hs
@@ -1,4 +1,4 @@
--- | Waveguide mesh physical models of drum membranes
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MembraneHexagon where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Metro.hs b/Sound/SC3/UGen/Record/Metro.hs
--- a/Sound/SC3/UGen/Record/Metro.hs
+++ b/Sound/SC3/UGen/Record/Metro.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Metro where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/MidEQ.hs b/Sound/SC3/UGen/Record/MidEQ.hs
--- a/Sound/SC3/UGen/Record/MidEQ.hs
+++ b/Sound/SC3/UGen/Record/MidEQ.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data MidEQ = MidEQ {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen,
   db :: S.UGen
@@ -12,7 +12,7 @@
 midEQ :: MidEQ
 midEQ = MidEQ {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 1.0,
   db = 0.0
diff --git a/Sound/SC3/UGen/Record/MonoGrain.hs b/Sound/SC3/UGen/Record/MonoGrain.hs
--- a/Sound/SC3/UGen/Record/MonoGrain.hs
+++ b/Sound/SC3/UGen/Record/MonoGrain.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MonoGrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data MonoGrain = MonoGrain {
-  input :: S.UGen,
+  in :: S.UGen,
   winsize :: S.UGen,
   grainrate :: S.UGen,
   winrandpct :: S.UGen
   } deriving (Show)
 monoGrain :: MonoGrain
 monoGrain = MonoGrain {
-  input = 0.0,
+  in = 0.0,
   winsize = 0.1,
   grainrate = 10.0,
   winrandpct = 0.0
diff --git a/Sound/SC3/UGen/Record/MonoGrainBF.hs b/Sound/SC3/UGen/Record/MonoGrainBF.hs
--- a/Sound/SC3/UGen/Record/MonoGrainBF.hs
+++ b/Sound/SC3/UGen/Record/MonoGrainBF.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MonoGrainBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data MonoGrainBF = MonoGrainBF {
-  input :: S.UGen,
+  in :: S.UGen,
   winsize :: S.UGen,
   grainrate :: S.UGen,
   winrandpct :: S.UGen,
@@ -15,7 +15,7 @@
   } deriving (Show)
 monoGrainBF :: MonoGrainBF
 monoGrainBF = MonoGrainBF {
-  input = 0.0,
+  in = 0.0,
   winsize = 0.1,
   grainrate = 10.0,
   winrandpct = 0.0,
diff --git a/Sound/SC3/UGen/Record/MoogFF.hs b/Sound/SC3/UGen/Record/MoogFF.hs
--- a/Sound/SC3/UGen/Record/MoogFF.hs
+++ b/Sound/SC3/UGen/Record/MoogFF.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data MoogFF = MoogFF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   gain :: S.UGen,
   reset :: S.UGen
@@ -12,7 +12,7 @@
 moogFF :: MoogFF
 moogFF = MoogFF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 100.0,
   gain = 2.0,
   reset = 0.0
diff --git a/Sound/SC3/UGen/Record/MoogLadder.hs b/Sound/SC3/UGen/Record/MoogLadder.hs
--- a/Sound/SC3/UGen/Record/MoogLadder.hs
+++ b/Sound/SC3/UGen/Record/MoogLadder.hs
@@ -1,17 +1,17 @@
--- | Moog Filter Emulation
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MoogLadder where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data MoogLadder = MoogLadder {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   ffreq :: S.UGen,
   res :: S.UGen
   } deriving (Show)
 moogLadder :: MoogLadder
 moogLadder = MoogLadder {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   ffreq = 440.0,
   res = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/MoogVCF.hs b/Sound/SC3/UGen/Record/MoogVCF.hs
--- a/Sound/SC3/UGen/Record/MoogVCF.hs
+++ b/Sound/SC3/UGen/Record/MoogVCF.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.MoogVCF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data MoogVCF = MoogVCF {
-  input :: S.UGen,
+  in :: S.UGen,
   fco :: S.UGen,
   res :: S.UGen
   } deriving (Show)
 moogVCF :: MoogVCF
 moogVCF = MoogVCF {
-  input = 0.0,
+  in = 0.0,
   fco = 0.0,
   res = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/NL.hs b/Sound/SC3/UGen/Record/NL.hs
--- a/Sound/SC3/UGen/Record/NL.hs
+++ b/Sound/SC3/UGen/Record/NL.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/NL2.hs b/Sound/SC3/UGen/Record/NL2.hs
--- a/Sound/SC3/UGen/Record/NL2.hs
+++ b/Sound/SC3/UGen/Record/NL2.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NL2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/NLFiltC.hs b/Sound/SC3/UGen/Record/NLFiltC.hs
--- a/Sound/SC3/UGen/Record/NLFiltC.hs
+++ b/Sound/SC3/UGen/Record/NLFiltC.hs
@@ -1,4 +1,4 @@
--- | Non-linear Filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NLFiltC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/NLFiltL.hs b/Sound/SC3/UGen/Record/NLFiltL.hs
--- a/Sound/SC3/UGen/Record/NLFiltL.hs
+++ b/Sound/SC3/UGen/Record/NLFiltL.hs
@@ -1,4 +1,4 @@
--- | Non-linear Filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NLFiltL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/NLFiltN.hs b/Sound/SC3/UGen/Record/NLFiltN.hs
--- a/Sound/SC3/UGen/Record/NLFiltN.hs
+++ b/Sound/SC3/UGen/Record/NLFiltN.hs
@@ -1,4 +1,4 @@
--- | Non-linear Filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NLFiltN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/NTube.hs b/Sound/SC3/UGen/Record/NTube.hs
--- a/Sound/SC3/UGen/Record/NTube.hs
+++ b/Sound/SC3/UGen/Record/NTube.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NTube where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/NeedleRect.hs b/Sound/SC3/UGen/Record/NeedleRect.hs
--- a/Sound/SC3/UGen/Record/NeedleRect.hs
+++ b/Sound/SC3/UGen/Record/NeedleRect.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NeedleRect where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data NeedleRect = NeedleRect {
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   imgWidth :: S.UGen,
   imgHeight :: S.UGen,
   rectX :: S.UGen,
@@ -13,7 +13,7 @@
   } deriving (Show)
 needleRect :: NeedleRect
 needleRect = NeedleRect {
-  rate_ = 1.0,
+  rate = 1.0,
   imgWidth = 100.0,
   imgHeight = 100.0,
   rectX = 0.0,
diff --git a/Sound/SC3/UGen/Record/Nes2.hs b/Sound/SC3/UGen/Record/Nes2.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Nes2.hs
@@ -0,0 +1,53 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Nes2 where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Nes2 = Nes2 {
+  trig :: S.UGen,
+  a0 :: S.UGen,
+  a1 :: S.UGen,
+  a2 :: S.UGen,
+  a3 :: S.UGen,
+  b0 :: S.UGen,
+  b1 :: S.UGen,
+  b2 :: S.UGen,
+  b3 :: S.UGen,
+  c0 :: S.UGen,
+  c2 :: S.UGen,
+  c3 :: S.UGen,
+  d0 :: S.UGen,
+  d2 :: S.UGen,
+  d3 :: S.UGen,
+  e0 :: S.UGen,
+  e1 :: S.UGen,
+  e2 :: S.UGen,
+  e3 :: S.UGen,
+  smask :: S.UGen
+  } deriving (Show)
+nes2 :: Nes2
+nes2 = Nes2 {
+  trig = 0.0,
+  a0 = 0.0,
+  a1 = 0.0,
+  a2 = 0.0,
+  a3 = 0.0,
+  b0 = 0.0,
+  b1 = 0.0,
+  b2 = 0.0,
+  b3 = 0.0,
+  c0 = 0.0,
+  c2 = 0.0,
+  c3 = 0.0,
+  d0 = 0.0,
+  d2 = 0.0,
+  d3 = 0.0,
+  e0 = 0.0,
+  e1 = 0.0,
+  e2 = 0.0,
+  e3 = 0.0,
+  smask = 0.0
+  }
+mkNes2 :: Nes2 -> S.UGen
+mkNes2 (Nes2  a' b' c' d' e' f' g' h' i' j' k' l' m' n' o' p' q' r' s' t') = S.mkOsc S.AR "Nes2" [a',b',c',d',e',f',g',h',i',j',k',l',m',n',o',p',q',r',s',t'] 1
+instance Make Nes2 where
+  ugen = mkNes2
diff --git a/Sound/SC3/UGen/Record/NestedAllpassC.hs b/Sound/SC3/UGen/Record/NestedAllpassC.hs
--- a/Sound/SC3/UGen/Record/NestedAllpassC.hs
+++ b/Sound/SC3/UGen/Record/NestedAllpassC.hs
@@ -1,9 +1,9 @@
--- | Nested Allpass filters as proposed by Vercoe and Pluckett
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NestedAllpassC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data NestedAllpassC = NestedAllpassC {
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelay1 :: S.UGen,
   delay1 :: S.UGen,
   gain1 :: S.UGen,
@@ -13,7 +13,7 @@
   } deriving (Show)
 nestedAllpassC :: NestedAllpassC
 nestedAllpassC = NestedAllpassC {
-  input = 0.0,
+  in = 0.0,
   maxdelay1 = 0.036,
   delay1 = 0.036,
   gain1 = 0.08,
diff --git a/Sound/SC3/UGen/Record/NestedAllpassL.hs b/Sound/SC3/UGen/Record/NestedAllpassL.hs
--- a/Sound/SC3/UGen/Record/NestedAllpassL.hs
+++ b/Sound/SC3/UGen/Record/NestedAllpassL.hs
@@ -1,9 +1,9 @@
--- | Nested Allpass filters as proposed by Vercoe and Pluckett
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NestedAllpassL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data NestedAllpassL = NestedAllpassL {
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelay1 :: S.UGen,
   delay1 :: S.UGen,
   gain1 :: S.UGen,
@@ -13,7 +13,7 @@
   } deriving (Show)
 nestedAllpassL :: NestedAllpassL
 nestedAllpassL = NestedAllpassL {
-  input = 0.0,
+  in = 0.0,
   maxdelay1 = 0.036,
   delay1 = 0.036,
   gain1 = 0.08,
diff --git a/Sound/SC3/UGen/Record/NestedAllpassN.hs b/Sound/SC3/UGen/Record/NestedAllpassN.hs
--- a/Sound/SC3/UGen/Record/NestedAllpassN.hs
+++ b/Sound/SC3/UGen/Record/NestedAllpassN.hs
@@ -1,9 +1,9 @@
--- | Nested Allpass filters as proposed by Vercoe and Pluckett
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.NestedAllpassN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data NestedAllpassN = NestedAllpassN {
-  input :: S.UGen,
+  in :: S.UGen,
   maxdelay1 :: S.UGen,
   delay1 :: S.UGen,
   gain1 :: S.UGen,
@@ -13,7 +13,7 @@
   } deriving (Show)
 nestedAllpassN :: NestedAllpassN
 nestedAllpassN = NestedAllpassN {
-  input = 0.0,
+  in = 0.0,
   maxdelay1 = 0.036,
   delay1 = 0.036,
   gain1 = 0.08,
diff --git a/Sound/SC3/UGen/Record/Normalizer.hs b/Sound/SC3/UGen/Record/Normalizer.hs
--- a/Sound/SC3/UGen/Record/Normalizer.hs
+++ b/Sound/SC3/UGen/Record/Normalizer.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Normalizer = Normalizer {
-  input :: S.UGen,
+  in :: S.UGen,
   level :: S.UGen,
   dur :: S.UGen
   } deriving (Show)
 normalizer :: Normalizer
 normalizer = Normalizer {
-  input = 0.0,
+  in = 0.0,
   level = 1.0,
   dur = 0.01
   }
diff --git a/Sound/SC3/UGen/Record/OSFold4.hs b/Sound/SC3/UGen/Record/OSFold4.hs
--- a/Sound/SC3/UGen/Record/OSFold4.hs
+++ b/Sound/SC3/UGen/Record/OSFold4.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.OSFold4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data OSFold4 = OSFold4 {
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 oSFold4 :: OSFold4
 oSFold4 = OSFold4 {
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/OSFold8.hs b/Sound/SC3/UGen/Record/OSFold8.hs
--- a/Sound/SC3/UGen/Record/OSFold8.hs
+++ b/Sound/SC3/UGen/Record/OSFold8.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.OSFold8 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data OSFold8 = OSFold8 {
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 oSFold8 :: OSFold8
 oSFold8 = OSFold8 {
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/OSTrunc4.hs b/Sound/SC3/UGen/Record/OSTrunc4.hs
--- a/Sound/SC3/UGen/Record/OSTrunc4.hs
+++ b/Sound/SC3/UGen/Record/OSTrunc4.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.OSTrunc4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data OSTrunc4 = OSTrunc4 {
-  input :: S.UGen,
+  in :: S.UGen,
   quant :: S.UGen
   } deriving (Show)
 oSTrunc4 :: OSTrunc4
 oSTrunc4 = OSTrunc4 {
-  input = 0.0,
+  in = 0.0,
   quant = 0.5
   }
 mkOSTrunc4 :: OSTrunc4 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/OSTrunc8.hs b/Sound/SC3/UGen/Record/OSTrunc8.hs
--- a/Sound/SC3/UGen/Record/OSTrunc8.hs
+++ b/Sound/SC3/UGen/Record/OSTrunc8.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.OSTrunc8 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data OSTrunc8 = OSTrunc8 {
-  input :: S.UGen,
+  in :: S.UGen,
   quant :: S.UGen
   } deriving (Show)
 oSTrunc8 :: OSTrunc8
 oSTrunc8 = OSTrunc8 {
-  input = 0.0,
+  in = 0.0,
   quant = 0.5
   }
 mkOSTrunc8 :: OSTrunc8 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/OSWrap4.hs b/Sound/SC3/UGen/Record/OSWrap4.hs
--- a/Sound/SC3/UGen/Record/OSWrap4.hs
+++ b/Sound/SC3/UGen/Record/OSWrap4.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.OSWrap4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data OSWrap4 = OSWrap4 {
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 oSWrap4 :: OSWrap4
 oSWrap4 = OSWrap4 {
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/OSWrap8.hs b/Sound/SC3/UGen/Record/OSWrap8.hs
--- a/Sound/SC3/UGen/Record/OSWrap8.hs
+++ b/Sound/SC3/UGen/Record/OSWrap8.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.OSWrap8 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data OSWrap8 = OSWrap8 {
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 oSWrap8 :: OSWrap8
 oSWrap8 = OSWrap8 {
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/OffsetOut.hs b/Sound/SC3/UGen/Record/OffsetOut.hs
--- a/Sound/SC3/UGen/Record/OffsetOut.hs
+++ b/Sound/SC3/UGen/Record/OffsetOut.hs
@@ -5,13 +5,13 @@
 data OffsetOut = OffsetOut {
   rate :: S.Rate,
   bus :: S.UGen,
-  input :: S.UGen
+  channelsArray :: S.UGen
   } deriving (Show)
 offsetOut :: OffsetOut
 offsetOut = OffsetOut {
   rate = S.AR,
   bus = 0.0,
-  input = 0.0
+  channelsArray = 0.0
   }
 mkOffsetOut :: OffsetOut -> S.UGen
 mkOffsetOut (OffsetOut r a' b') = S.mkOsc r "OffsetOut" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/OnePole.hs b/Sound/SC3/UGen/Record/OnePole.hs
--- a/Sound/SC3/UGen/Record/OnePole.hs
+++ b/Sound/SC3/UGen/Record/OnePole.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data OnePole = OnePole {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   coef :: S.UGen
   } deriving (Show)
 onePole :: OnePole
 onePole = OnePole {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   coef = 0.5
   }
 mkOnePole :: OnePole -> S.UGen
diff --git a/Sound/SC3/UGen/Record/OneZero.hs b/Sound/SC3/UGen/Record/OneZero.hs
--- a/Sound/SC3/UGen/Record/OneZero.hs
+++ b/Sound/SC3/UGen/Record/OneZero.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data OneZero = OneZero {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   coef :: S.UGen
   } deriving (Show)
 oneZero :: OneZero
 oneZero = OneZero {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   coef = 0.5
   }
 mkOneZero :: OneZero -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Onsets.hs b/Sound/SC3/UGen/Record/Onsets.hs
--- a/Sound/SC3/UGen/Record/Onsets.hs
+++ b/Sound/SC3/UGen/Record/Onsets.hs
@@ -7,7 +7,7 @@
   threshold :: S.UGen,
   odftype :: S.UGen,
   relaxtime :: S.UGen,
-  floor_ :: S.UGen,
+  floor :: S.UGen,
   mingap :: S.UGen,
   medianspan :: S.UGen,
   whtype :: S.UGen,
@@ -19,7 +19,7 @@
   threshold = 0.5,
   odftype = 3.0,
   relaxtime = 1.0,
-  floor_ = 0.1,
+  floor = 0.1,
   mingap = 10.0,
   medianspan = 11.0,
   whtype = 1.0,
diff --git a/Sound/SC3/UGen/Record/Oregonator.hs b/Sound/SC3/UGen/Record/Oregonator.hs
--- a/Sound/SC3/UGen/Record/Oregonator.hs
+++ b/Sound/SC3/UGen/Record/Oregonator.hs
@@ -1,10 +1,10 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Oregonator where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Oregonator = Oregonator {
   reset :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   epsilon :: S.UGen,
   mu :: S.UGen,
   q :: S.UGen,
@@ -15,7 +15,7 @@
 oregonator :: Oregonator
 oregonator = Oregonator {
   reset = 0.0,
-  rate_ = 0.01,
+  rate = 0.01,
   epsilon = 1.0,
   mu = 1.0,
   q = 1.0,
diff --git a/Sound/SC3/UGen/Record/Out.hs b/Sound/SC3/UGen/Record/Out.hs
--- a/Sound/SC3/UGen/Record/Out.hs
+++ b/Sound/SC3/UGen/Record/Out.hs
@@ -5,13 +5,13 @@
 data Out = Out {
   rate :: S.Rate,
   bus :: S.UGen,
-  input :: S.UGen
+  channelsArray :: S.UGen
   } deriving (Show)
 out :: Out
 out = Out {
   rate = S.AR,
   bus = 0.0,
-  input = 0.0
+  channelsArray = 0.0
   }
 mkOut :: Out -> S.UGen
 mkOut (Out r a' b') = S.mkOsc r "Out" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/PVInfo.hs b/Sound/SC3/UGen/Record/PVInfo.hs
--- a/Sound/SC3/UGen/Record/PVInfo.hs
+++ b/Sound/SC3/UGen/Record/PVInfo.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PVInfo where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PVSynth.hs b/Sound/SC3/UGen/Record/PVSynth.hs
--- a/Sound/SC3/UGen/Record/PVSynth.hs
+++ b/Sound/SC3/UGen/Record/PVSynth.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PVSynth where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_BinBufRd.hs b/Sound/SC3/UGen/Record/PV_BinBufRd.hs
--- a/Sound/SC3/UGen/Record/PV_BinBufRd.hs
+++ b/Sound/SC3/UGen/Record/PV_BinBufRd.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_BinBufRd where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_BinDelay.hs b/Sound/SC3/UGen/Record/PV_BinDelay.hs
--- a/Sound/SC3/UGen/Record/PV_BinDelay.hs
+++ b/Sound/SC3/UGen/Record/PV_BinDelay.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_BinDelay where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_BinFilter.hs b/Sound/SC3/UGen/Record/PV_BinFilter.hs
--- a/Sound/SC3/UGen/Record/PV_BinFilter.hs
+++ b/Sound/SC3/UGen/Record/PV_BinFilter.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_BinFilter where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_BinPlayBuf.hs b/Sound/SC3/UGen/Record/PV_BinPlayBuf.hs
--- a/Sound/SC3/UGen/Record/PV_BinPlayBuf.hs
+++ b/Sound/SC3/UGen/Record/PV_BinPlayBuf.hs
@@ -1,11 +1,11 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_BinPlayBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PV_BinPlayBuf = PV_BinPlayBuf {
   buffer :: S.UGen,
   playbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   offset :: S.UGen,
   binStart :: S.UGen,
   binSkip :: S.UGen,
@@ -17,7 +17,7 @@
 pV_BinPlayBuf = PV_BinPlayBuf {
   buffer = 0.0,
   playbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   offset = 0.0,
   binStart = 0.0,
   binSkip = 1.0,
diff --git a/Sound/SC3/UGen/Record/PV_BinShift.hs b/Sound/SC3/UGen/Record/PV_BinShift.hs
--- a/Sound/SC3/UGen/Record/PV_BinShift.hs
+++ b/Sound/SC3/UGen/Record/PV_BinShift.hs
@@ -5,15 +5,17 @@
 data PV_BinShift = PV_BinShift {
   buffer :: S.UGen,
   stretch :: S.UGen,
-  shift :: S.UGen
+  shift :: S.UGen,
+  interp :: S.UGen
   } deriving (Show)
 pV_BinShift :: PV_BinShift
 pV_BinShift = PV_BinShift {
   buffer = 0.0,
   stretch = 1.0,
-  shift = 0.0
+  shift = 0.0,
+  interp = 0.0
   }
 mkPV_BinShift :: PV_BinShift -> S.UGen
-mkPV_BinShift (PV_BinShift  a' b' c') = S.mkOsc S.KR "PV_BinShift" [a',b',c'] 1
+mkPV_BinShift (PV_BinShift  a' b' c' d') = S.mkOsc S.KR "PV_BinShift" [a',b',c',d'] 1
 instance Make PV_BinShift where
   ugen = mkPV_BinShift
diff --git a/Sound/SC3/UGen/Record/PV_BufRd.hs b/Sound/SC3/UGen/Record/PV_BufRd.hs
--- a/Sound/SC3/UGen/Record/PV_BufRd.hs
+++ b/Sound/SC3/UGen/Record/PV_BufRd.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_BufRd where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_CommonMag.hs b/Sound/SC3/UGen/Record/PV_CommonMag.hs
--- a/Sound/SC3/UGen/Record/PV_CommonMag.hs
+++ b/Sound/SC3/UGen/Record/PV_CommonMag.hs
@@ -1,4 +1,4 @@
--- | returns common magnitudes
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_CommonMag where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_CommonMul.hs b/Sound/SC3/UGen/Record/PV_CommonMul.hs
--- a/Sound/SC3/UGen/Record/PV_CommonMul.hs
+++ b/Sound/SC3/UGen/Record/PV_CommonMul.hs
@@ -1,4 +1,4 @@
--- | multiplies common magnitudes
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_CommonMul where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_Compander.hs b/Sound/SC3/UGen/Record/PV_Compander.hs
--- a/Sound/SC3/UGen/Record/PV_Compander.hs
+++ b/Sound/SC3/UGen/Record/PV_Compander.hs
@@ -1,4 +1,4 @@
--- | simple spectral compression/expansion
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_Compander where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_Cutoff.hs b/Sound/SC3/UGen/Record/PV_Cutoff.hs
--- a/Sound/SC3/UGen/Record/PV_Cutoff.hs
+++ b/Sound/SC3/UGen/Record/PV_Cutoff.hs
@@ -1,4 +1,4 @@
--- | zero bins with interpolation
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_Cutoff where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_DiffMags.hs b/Sound/SC3/UGen/Record/PV_DiffMags.hs
--- a/Sound/SC3/UGen/Record/PV_DiffMags.hs
+++ b/Sound/SC3/UGen/Record/PV_DiffMags.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_DiffMags where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_EvenBin.hs b/Sound/SC3/UGen/Record/PV_EvenBin.hs
--- a/Sound/SC3/UGen/Record/PV_EvenBin.hs
+++ b/Sound/SC3/UGen/Record/PV_EvenBin.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_EvenBin where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_ExtractRepeat.hs b/Sound/SC3/UGen/Record/PV_ExtractRepeat.hs
--- a/Sound/SC3/UGen/Record/PV_ExtractRepeat.hs
+++ b/Sound/SC3/UGen/Record/PV_ExtractRepeat.hs
@@ -1,4 +1,4 @@
--- | extract a repeating loop out from audio
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_ExtractRepeat where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_Freeze.hs b/Sound/SC3/UGen/Record/PV_Freeze.hs
--- a/Sound/SC3/UGen/Record/PV_Freeze.hs
+++ b/Sound/SC3/UGen/Record/PV_Freeze.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_Freeze where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_FreqBuffer.hs b/Sound/SC3/UGen/Record/PV_FreqBuffer.hs
--- a/Sound/SC3/UGen/Record/PV_FreqBuffer.hs
+++ b/Sound/SC3/UGen/Record/PV_FreqBuffer.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_FreqBuffer where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_Invert.hs b/Sound/SC3/UGen/Record/PV_Invert.hs
--- a/Sound/SC3/UGen/Record/PV_Invert.hs
+++ b/Sound/SC3/UGen/Record/PV_Invert.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_Invert where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagBuffer.hs b/Sound/SC3/UGen/Record/PV_MagBuffer.hs
--- a/Sound/SC3/UGen/Record/PV_MagBuffer.hs
+++ b/Sound/SC3/UGen/Record/PV_MagBuffer.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagBuffer where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagExp.hs b/Sound/SC3/UGen/Record/PV_MagExp.hs
--- a/Sound/SC3/UGen/Record/PV_MagExp.hs
+++ b/Sound/SC3/UGen/Record/PV_MagExp.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagExp where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagGate.hs b/Sound/SC3/UGen/Record/PV_MagGate.hs
--- a/Sound/SC3/UGen/Record/PV_MagGate.hs
+++ b/Sound/SC3/UGen/Record/PV_MagGate.hs
@@ -1,4 +1,4 @@
--- | reduces magnitudes above or below thresh
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagGate where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagLog.hs b/Sound/SC3/UGen/Record/PV_MagLog.hs
--- a/Sound/SC3/UGen/Record/PV_MagLog.hs
+++ b/Sound/SC3/UGen/Record/PV_MagLog.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagLog where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagMap.hs b/Sound/SC3/UGen/Record/PV_MagMap.hs
--- a/Sound/SC3/UGen/Record/PV_MagMap.hs
+++ b/Sound/SC3/UGen/Record/PV_MagMap.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagMap where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagMinus.hs b/Sound/SC3/UGen/Record/PV_MagMinus.hs
--- a/Sound/SC3/UGen/Record/PV_MagMinus.hs
+++ b/Sound/SC3/UGen/Record/PV_MagMinus.hs
@@ -1,4 +1,4 @@
--- | subtract spectral energy
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagMinus where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagMulAdd.hs b/Sound/SC3/UGen/Record/PV_MagMulAdd.hs
--- a/Sound/SC3/UGen/Record/PV_MagMulAdd.hs
+++ b/Sound/SC3/UGen/Record/PV_MagMulAdd.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagMulAdd where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagScale.hs b/Sound/SC3/UGen/Record/PV_MagScale.hs
--- a/Sound/SC3/UGen/Record/PV_MagScale.hs
+++ b/Sound/SC3/UGen/Record/PV_MagScale.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagScale where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagSmooth.hs b/Sound/SC3/UGen/Record/PV_MagSmooth.hs
--- a/Sound/SC3/UGen/Record/PV_MagSmooth.hs
+++ b/Sound/SC3/UGen/Record/PV_MagSmooth.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagSmooth where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MagSubtract.hs b/Sound/SC3/UGen/Record/PV_MagSubtract.hs
--- a/Sound/SC3/UGen/Record/PV_MagSubtract.hs
+++ b/Sound/SC3/UGen/Record/PV_MagSubtract.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MagSubtract where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MaxMagN.hs b/Sound/SC3/UGen/Record/PV_MaxMagN.hs
--- a/Sound/SC3/UGen/Record/PV_MaxMagN.hs
+++ b/Sound/SC3/UGen/Record/PV_MaxMagN.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MaxMagN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_MinMagN.hs b/Sound/SC3/UGen/Record/PV_MinMagN.hs
--- a/Sound/SC3/UGen/Record/PV_MinMagN.hs
+++ b/Sound/SC3/UGen/Record/PV_MinMagN.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_MinMagN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_Morph.hs b/Sound/SC3/UGen/Record/PV_Morph.hs
--- a/Sound/SC3/UGen/Record/PV_Morph.hs
+++ b/Sound/SC3/UGen/Record/PV_Morph.hs
@@ -1,4 +1,4 @@
--- | one kind of spectral morphing
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_Morph where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_NoiseSynthF.hs b/Sound/SC3/UGen/Record/PV_NoiseSynthF.hs
--- a/Sound/SC3/UGen/Record/PV_NoiseSynthF.hs
+++ b/Sound/SC3/UGen/Record/PV_NoiseSynthF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_NoiseSynthF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_NoiseSynthP.hs b/Sound/SC3/UGen/Record/PV_NoiseSynthP.hs
--- a/Sound/SC3/UGen/Record/PV_NoiseSynthP.hs
+++ b/Sound/SC3/UGen/Record/PV_NoiseSynthP.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_NoiseSynthP where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_OddBin.hs b/Sound/SC3/UGen/Record/PV_OddBin.hs
--- a/Sound/SC3/UGen/Record/PV_OddBin.hs
+++ b/Sound/SC3/UGen/Record/PV_OddBin.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_OddBin where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_PartialSynthF.hs b/Sound/SC3/UGen/Record/PV_PartialSynthF.hs
--- a/Sound/SC3/UGen/Record/PV_PartialSynthF.hs
+++ b/Sound/SC3/UGen/Record/PV_PartialSynthF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_PartialSynthF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_PartialSynthP.hs b/Sound/SC3/UGen/Record/PV_PartialSynthP.hs
--- a/Sound/SC3/UGen/Record/PV_PartialSynthP.hs
+++ b/Sound/SC3/UGen/Record/PV_PartialSynthP.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_PartialSynthP where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_PhaseShift.hs b/Sound/SC3/UGen/Record/PV_PhaseShift.hs
--- a/Sound/SC3/UGen/Record/PV_PhaseShift.hs
+++ b/Sound/SC3/UGen/Record/PV_PhaseShift.hs
@@ -4,14 +4,16 @@
 import Sound.SC3.UGen.Record
 data PV_PhaseShift = PV_PhaseShift {
   buffer :: S.UGen,
-  shift :: S.UGen
+  shift :: S.UGen,
+  integrate :: S.UGen
   } deriving (Show)
 pV_PhaseShift :: PV_PhaseShift
 pV_PhaseShift = PV_PhaseShift {
   buffer = 0.0,
-  shift = 0.0
+  shift = 0.0,
+  integrate = 0.0
   }
 mkPV_PhaseShift :: PV_PhaseShift -> S.UGen
-mkPV_PhaseShift (PV_PhaseShift  a' b') = S.mkOsc S.KR "PV_PhaseShift" [a',b'] 1
+mkPV_PhaseShift (PV_PhaseShift  a' b' c') = S.mkOsc S.KR "PV_PhaseShift" [a',b',c'] 1
 instance Make PV_PhaseShift where
   ugen = mkPV_PhaseShift
diff --git a/Sound/SC3/UGen/Record/PV_PitchShift.hs b/Sound/SC3/UGen/Record/PV_PitchShift.hs
--- a/Sound/SC3/UGen/Record/PV_PitchShift.hs
+++ b/Sound/SC3/UGen/Record/PV_PitchShift.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_PitchShift where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_PlayBuf.hs b/Sound/SC3/UGen/Record/PV_PlayBuf.hs
--- a/Sound/SC3/UGen/Record/PV_PlayBuf.hs
+++ b/Sound/SC3/UGen/Record/PV_PlayBuf.hs
@@ -1,11 +1,11 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_PlayBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PV_PlayBuf = PV_PlayBuf {
   buffer :: S.UGen,
   playbuf :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   offset :: S.UGen,
   loop :: S.UGen
   } deriving (Show)
@@ -13,7 +13,7 @@
 pV_PlayBuf = PV_PlayBuf {
   buffer = 0.0,
   playbuf = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   offset = 0.0,
   loop = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/PV_RecordBuf.hs b/Sound/SC3/UGen/Record/PV_RecordBuf.hs
--- a/Sound/SC3/UGen/Record/PV_RecordBuf.hs
+++ b/Sound/SC3/UGen/Record/PV_RecordBuf.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_RecordBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_SoftWipe.hs b/Sound/SC3/UGen/Record/PV_SoftWipe.hs
--- a/Sound/SC3/UGen/Record/PV_SoftWipe.hs
+++ b/Sound/SC3/UGen/Record/PV_SoftWipe.hs
@@ -1,4 +1,4 @@
--- | combine low and high bins from two inputs with interpolation
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_SoftWipe where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_SpectralEnhance.hs b/Sound/SC3/UGen/Record/PV_SpectralEnhance.hs
--- a/Sound/SC3/UGen/Record/PV_SpectralEnhance.hs
+++ b/Sound/SC3/UGen/Record/PV_SpectralEnhance.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_SpectralEnhance where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/PV_SpectralMap.hs b/Sound/SC3/UGen/Record/PV_SpectralMap.hs
--- a/Sound/SC3/UGen/Record/PV_SpectralMap.hs
+++ b/Sound/SC3/UGen/Record/PV_SpectralMap.hs
@@ -1,11 +1,11 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_SpectralMap where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PV_SpectralMap = PV_SpectralMap {
   buffer :: S.UGen,
   specBuffer :: S.UGen,
-  floor_ :: S.UGen,
+  floor :: S.UGen,
   freeze :: S.UGen,
   mode :: S.UGen,
   norm :: S.UGen,
@@ -15,7 +15,7 @@
 pV_SpectralMap = PV_SpectralMap {
   buffer = 0.0,
   specBuffer = 0.0,
-  floor_ = 0.0,
+  floor = 0.0,
   freeze = 0.0,
   mode = 0.0,
   norm = 0.0,
diff --git a/Sound/SC3/UGen/Record/PV_Whiten.hs b/Sound/SC3/UGen/Record/PV_Whiten.hs
--- a/Sound/SC3/UGen/Record/PV_Whiten.hs
+++ b/Sound/SC3/UGen/Record/PV_Whiten.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_Whiten where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   chain :: S.UGen,
   trackbufnum :: S.UGen,
   relaxtime :: S.UGen,
-  floor_ :: S.UGen,
+  floor :: S.UGen,
   smear :: S.UGen,
   bindownsample :: S.UGen
   } deriving (Show)
@@ -15,7 +15,7 @@
   chain = 0.0,
   trackbufnum = 0.0,
   relaxtime = 2.0,
-  floor_ = 0.1,
+  floor = 0.1,
   smear = 0.0,
   bindownsample = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/PV_XFade.hs b/Sound/SC3/UGen/Record/PV_XFade.hs
--- a/Sound/SC3/UGen/Record/PV_XFade.hs
+++ b/Sound/SC3/UGen/Record/PV_XFade.hs
@@ -1,4 +1,4 @@
--- | one kind of spectral morphing
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PV_XFade where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Pan2.hs b/Sound/SC3/UGen/Record/Pan2.hs
--- a/Sound/SC3/UGen/Record/Pan2.hs
+++ b/Sound/SC3/UGen/Record/Pan2.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Pan2 = Pan2 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   pos :: S.UGen,
   level :: S.UGen
   } deriving (Show)
 pan2 :: Pan2
 pan2 = Pan2 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   pos = 0.0,
   level = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Pan4.hs b/Sound/SC3/UGen/Record/Pan4.hs
--- a/Sound/SC3/UGen/Record/Pan4.hs
+++ b/Sound/SC3/UGen/Record/Pan4.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data Pan4 = Pan4 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   xpos :: S.UGen,
   ypos :: S.UGen,
   level :: S.UGen
@@ -12,7 +12,7 @@
 pan4 :: Pan4
 pan4 = Pan4 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   xpos = 0.0,
   ypos = 0.0,
   level = 1.0
diff --git a/Sound/SC3/UGen/Record/PanAz.hs b/Sound/SC3/UGen/Record/PanAz.hs
--- a/Sound/SC3/UGen/Record/PanAz.hs
+++ b/Sound/SC3/UGen/Record/PanAz.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data PanAz = PanAz {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   pos :: S.UGen,
   level :: S.UGen,
   width :: S.UGen,
@@ -13,7 +13,7 @@
 panAz :: PanAz
 panAz = PanAz {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   pos = 0.0,
   level = 1.0,
   width = 2.0,
diff --git a/Sound/SC3/UGen/Record/PanB.hs b/Sound/SC3/UGen/Record/PanB.hs
--- a/Sound/SC3/UGen/Record/PanB.hs
+++ b/Sound/SC3/UGen/Record/PanB.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data PanB = PanB {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
   gain :: S.UGen
@@ -12,7 +12,7 @@
 panB :: PanB
 panB = PanB {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   azimuth = 0.0,
   elevation = 0.0,
   gain = 1.0
diff --git a/Sound/SC3/UGen/Record/PanB2.hs b/Sound/SC3/UGen/Record/PanB2.hs
--- a/Sound/SC3/UGen/Record/PanB2.hs
+++ b/Sound/SC3/UGen/Record/PanB2.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data PanB2 = PanB2 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   azimuth :: S.UGen,
   gain :: S.UGen
   } deriving (Show)
 panB2 :: PanB2
 panB2 = PanB2 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   azimuth = 0.0,
   gain = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/PanX.hs b/Sound/SC3/UGen/Record/PanX.hs
--- a/Sound/SC3/UGen/Record/PanX.hs
+++ b/Sound/SC3/UGen/Record/PanX.hs
@@ -1,10 +1,10 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PanX where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PanX = PanX {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   pos :: S.UGen,
   level :: S.UGen,
   width :: S.UGen
@@ -12,7 +12,7 @@
 panX :: PanX
 panX = PanX {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   pos = 0.0,
   level = 1.0,
   width = 2.0
diff --git a/Sound/SC3/UGen/Record/PanX2D.hs b/Sound/SC3/UGen/Record/PanX2D.hs
--- a/Sound/SC3/UGen/Record/PanX2D.hs
+++ b/Sound/SC3/UGen/Record/PanX2D.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PanX2D where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,7 +6,7 @@
   rate :: S.Rate,
   numChansX :: S.UGen,
   numChansY :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   posX :: S.UGen,
   posY :: S.UGen,
   level :: S.UGen,
@@ -18,7 +18,7 @@
   rate = S.AR,
   numChansX = 0.0,
   numChansY = 0.0,
-  input = 0.0,
+  in = 0.0,
   posX = 0.0,
   posY = 0.0,
   level = 1.0,
diff --git a/Sound/SC3/UGen/Record/Panner.hs b/Sound/SC3/UGen/Record/Panner.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/Panner.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Sound.SC3.UGen.Record.Panner where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data Panner = Panner {
-  maxSize :: S.UGen
-  } deriving (Show)
-panner :: Panner
-panner = Panner {
-  maxSize = 0.0
-  }
-mkPanner :: Panner -> S.UGen
-mkPanner (Panner  a') = S.mkOsc S.AR "Panner" [a'] 1
-instance Make Panner where
-  ugen = mkPanner
diff --git a/Sound/SC3/UGen/Record/PartConv.hs b/Sound/SC3/UGen/Record/PartConv.hs
--- a/Sound/SC3/UGen/Record/PartConv.hs
+++ b/Sound/SC3/UGen/Record/PartConv.hs
@@ -3,13 +3,13 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PartConv = PartConv {
-  input :: S.UGen,
+  in :: S.UGen,
   fftsize :: S.UGen,
   irbufnum :: S.UGen
   } deriving (Show)
 partConv :: PartConv
 partConv = PartConv {
-  input = 0.0,
+  in = 0.0,
   fftsize = 0.0,
   irbufnum = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/Pause.hs b/Sound/SC3/UGen/Record/Pause.hs
--- a/Sound/SC3/UGen/Record/Pause.hs
+++ b/Sound/SC3/UGen/Record/Pause.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data Pause = Pause {
   gate :: S.UGen,
-  id_ :: S.UGen
+  id :: S.UGen
   } deriving (Show)
 pause :: Pause
 pause = Pause {
   gate = 0.0,
-  id_ = 0.0
+  id = 0.0
   }
 mkPause :: Pause -> S.UGen
 mkPause (Pause  a' b') = S.mkOsc S.KR "Pause" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/PauseSelf.hs b/Sound/SC3/UGen/Record/PauseSelf.hs
--- a/Sound/SC3/UGen/Record/PauseSelf.hs
+++ b/Sound/SC3/UGen/Record/PauseSelf.hs
@@ -3,11 +3,11 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PauseSelf = PauseSelf {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 pauseSelf :: PauseSelf
 pauseSelf = PauseSelf {
-  input = 0.0
+  in = 0.0
   }
 mkPauseSelf :: PauseSelf -> S.UGen
 mkPauseSelf (PauseSelf  a') = S.mkOsc S.KR "PauseSelf" [a'] 1
diff --git a/Sound/SC3/UGen/Record/Peak.hs b/Sound/SC3/UGen/Record/Peak.hs
--- a/Sound/SC3/UGen/Record/Peak.hs
+++ b/Sound/SC3/UGen/Record/Peak.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Peak = Peak {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen
   } deriving (Show)
 peak :: Peak
 peak = Peak {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0
   }
 mkPeak :: Peak -> S.UGen
diff --git a/Sound/SC3/UGen/Record/PeakEQ2.hs b/Sound/SC3/UGen/Record/PeakEQ2.hs
--- a/Sound/SC3/UGen/Record/PeakEQ2.hs
+++ b/Sound/SC3/UGen/Record/PeakEQ2.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PeakEQ2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PeakEQ2 = PeakEQ2 {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rs :: S.UGen,
   db :: S.UGen
   } deriving (Show)
 peakEQ2 :: PeakEQ2
 peakEQ2 = PeakEQ2 {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rs = 1.0,
   db = 0.0
diff --git a/Sound/SC3/UGen/Record/PeakEQ4.hs b/Sound/SC3/UGen/Record/PeakEQ4.hs
--- a/Sound/SC3/UGen/Record/PeakEQ4.hs
+++ b/Sound/SC3/UGen/Record/PeakEQ4.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PeakEQ4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PeakEQ4 = PeakEQ4 {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rs :: S.UGen,
   db :: S.UGen
   } deriving (Show)
 peakEQ4 :: PeakEQ4
 peakEQ4 = PeakEQ4 {
-  input = 0.0,
+  in = 0.0,
   freq = 1200.0,
   rs = 1.0,
   db = 0.0
diff --git a/Sound/SC3/UGen/Record/PeakFollower.hs b/Sound/SC3/UGen/Record/PeakFollower.hs
--- a/Sound/SC3/UGen/Record/PeakFollower.hs
+++ b/Sound/SC3/UGen/Record/PeakFollower.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data PeakFollower = PeakFollower {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   decay :: S.UGen
   } deriving (Show)
 peakFollower :: PeakFollower
 peakFollower = PeakFollower {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   decay = 0.999
   }
 mkPeakFollower :: PeakFollower -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Perlin3.hs b/Sound/SC3/UGen/Record/Perlin3.hs
--- a/Sound/SC3/UGen/Record/Perlin3.hs
+++ b/Sound/SC3/UGen/Record/Perlin3.hs
@@ -1,4 +1,4 @@
--- | 3D Perlin Noise
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Perlin3 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Phasor.hs b/Sound/SC3/UGen/Record/Phasor.hs
--- a/Sound/SC3/UGen/Record/Phasor.hs
+++ b/Sound/SC3/UGen/Record/Phasor.hs
@@ -5,7 +5,7 @@
 data Phasor = Phasor {
   rate :: S.Rate,
   trig :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   start :: S.UGen,
   end :: S.UGen,
   resetPos :: S.UGen
@@ -14,7 +14,7 @@
 phasor = Phasor {
   rate = S.AR,
   trig = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   start = 0.0,
   end = 1.0,
   resetPos = 0.0
diff --git a/Sound/SC3/UGen/Record/Pitch.hs b/Sound/SC3/UGen/Record/Pitch.hs
--- a/Sound/SC3/UGen/Record/Pitch.hs
+++ b/Sound/SC3/UGen/Record/Pitch.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Pitch = Pitch {
-  input :: S.UGen,
+  in :: S.UGen,
   initFreq :: S.UGen,
   minFreq :: S.UGen,
   maxFreq :: S.UGen,
@@ -17,7 +17,7 @@
   } deriving (Show)
 pitch :: Pitch
 pitch = Pitch {
-  input = 0.0,
+  in = 0.0,
   initFreq = 440.0,
   minFreq = 60.0,
   maxFreq = 4000.0,
diff --git a/Sound/SC3/UGen/Record/PitchShift.hs b/Sound/SC3/UGen/Record/PitchShift.hs
--- a/Sound/SC3/UGen/Record/PitchShift.hs
+++ b/Sound/SC3/UGen/Record/PitchShift.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PitchShift = PitchShift {
-  input :: S.UGen,
+  in :: S.UGen,
   windowSize :: S.UGen,
   pitchRatio :: S.UGen,
   pitchDispersion :: S.UGen,
@@ -11,7 +11,7 @@
   } deriving (Show)
 pitchShift :: PitchShift
 pitchShift = PitchShift {
-  input = 0.0,
+  in = 0.0,
   windowSize = 0.2,
   pitchRatio = 1.0,
   pitchDispersion = 0.0,
diff --git a/Sound/SC3/UGen/Record/PlaneTree.hs b/Sound/SC3/UGen/Record/PlaneTree.hs
--- a/Sound/SC3/UGen/Record/PlaneTree.hs
+++ b/Sound/SC3/UGen/Record/PlaneTree.hs
@@ -1,16 +1,16 @@
--- | Tree classifier using (hyper)planes – UGen or language-side
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PlaneTree where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PlaneTree = PlaneTree {
   treebuf :: S.UGen,
-  input :: S.UGen,
+  in :: S.UGen,
   gate :: S.UGen
   } deriving (Show)
 planeTree :: PlaneTree
 planeTree = PlaneTree {
   treebuf = 0.0,
-  input = 0.0,
+  in = 0.0,
   gate = 1.0
   }
 mkPlaneTree :: PlaneTree -> S.UGen
diff --git a/Sound/SC3/UGen/Record/PlayBuf.hs b/Sound/SC3/UGen/Record/PlayBuf.hs
--- a/Sound/SC3/UGen/Record/PlayBuf.hs
+++ b/Sound/SC3/UGen/Record/PlayBuf.hs
@@ -5,7 +5,7 @@
 data PlayBuf = PlayBuf {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   trigger :: S.UGen,
   startPos :: S.UGen,
   loop :: S.UGen,
@@ -15,7 +15,7 @@
 playBuf = PlayBuf {
   rate = S.AR,
   bufnum = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   trigger = 1.0,
   startPos = 0.0,
   loop = 0.0,
diff --git a/Sound/SC3/UGen/Record/Pluck.hs b/Sound/SC3/UGen/Record/Pluck.hs
--- a/Sound/SC3/UGen/Record/Pluck.hs
+++ b/Sound/SC3/UGen/Record/Pluck.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Pluck = Pluck {
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen,
   maxdelaytime :: S.UGen,
   delaytime :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 pluck :: Pluck
 pluck = Pluck {
-  input = 0.0,
+  in = 0.0,
   trig = 1.0,
   maxdelaytime = 0.2,
   delaytime = 0.2,
diff --git a/Sound/SC3/UGen/Record/Pokey.hs b/Sound/SC3/UGen/Record/Pokey.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Pokey.hs
@@ -0,0 +1,31 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Pokey where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Pokey = Pokey {
+  audf1 :: S.UGen,
+  audc1 :: S.UGen,
+  audf2 :: S.UGen,
+  audc2 :: S.UGen,
+  audf3 :: S.UGen,
+  audc3 :: S.UGen,
+  audf4 :: S.UGen,
+  audc4 :: S.UGen,
+  audctl :: S.UGen
+  } deriving (Show)
+pokey :: Pokey
+pokey = Pokey {
+  audf1 = 0.0,
+  audc1 = 0.0,
+  audf2 = 0.0,
+  audc2 = 0.0,
+  audf3 = 0.0,
+  audc3 = 0.0,
+  audf4 = 0.0,
+  audc4 = 0.0,
+  audctl = 0.0
+  }
+mkPokey :: Pokey -> S.UGen
+mkPokey (Pokey  a' b' c' d' e' f' g' h' i') = S.mkOsc S.AR "Pokey" [a',b',c',d',e',f',g',h',i'] 1
+instance Make Pokey where
+  ugen = mkPokey
diff --git a/Sound/SC3/UGen/Record/PosRatio.hs b/Sound/SC3/UGen/Record/PosRatio.hs
--- a/Sound/SC3/UGen/Record/PosRatio.hs
+++ b/Sound/SC3/UGen/Record/PosRatio.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PosRatio where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PosRatio = PosRatio {
-  input :: S.UGen,
+  in :: S.UGen,
   period :: S.UGen,
   thresh :: S.UGen
   } deriving (Show)
 posRatio :: PosRatio
 posRatio = PosRatio {
-  input = 0.0,
+  in = 0.0,
   period = 100.0,
   thresh = 0.1
   }
diff --git a/Sound/SC3/UGen/Record/PrintVal.hs b/Sound/SC3/UGen/Record/PrintVal.hs
--- a/Sound/SC3/UGen/Record/PrintVal.hs
+++ b/Sound/SC3/UGen/Record/PrintVal.hs
@@ -1,17 +1,17 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.PrintVal where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data PrintVal = PrintVal {
-  input :: S.UGen,
+  in :: S.UGen,
   numblocks :: S.UGen,
-  id_ :: S.UGen
+  id :: S.UGen
   } deriving (Show)
 printVal :: PrintVal
 printVal = PrintVal {
-  input = 0.0,
+  in = 0.0,
   numblocks = 100.0,
-  id_ = 0.0
+  id = 0.0
   }
 mkPrintVal :: PrintVal -> S.UGen
 mkPrintVal (PrintVal  a' b' c') = S.mkOsc S.KR "PrintVal" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/PulseDivider.hs b/Sound/SC3/UGen/Record/PulseDivider.hs
--- a/Sound/SC3/UGen/Record/PulseDivider.hs
+++ b/Sound/SC3/UGen/Record/PulseDivider.hs
@@ -5,14 +5,14 @@
 data PulseDivider = PulseDivider {
   rate :: S.Rate,
   trig :: S.UGen,
-  div_ :: S.UGen,
+  div :: S.UGen,
   start :: S.UGen
   } deriving (Show)
 pulseDivider :: PulseDivider
 pulseDivider = PulseDivider {
   rate = S.AR,
   trig = 0.0,
-  div_ = 2.0,
+  div = 2.0,
   start = 0.0
   }
 mkPulseDivider :: PulseDivider -> S.UGen
diff --git a/Sound/SC3/UGen/Record/PureUGen.hs b/Sound/SC3/UGen/Record/PureUGen.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/PureUGen.hs
@@ -0,0 +1,15 @@
+-- | Pure UGen
+module Sound.SC3.UGen.Record.PureUGen where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data PureUGen = PureUGen {
+  maxSize :: S.UGen
+  } deriving (Show)
+pureUGen :: PureUGen
+pureUGen = PureUGen {
+  maxSize = 0.0
+  }
+mkPureUGen :: PureUGen -> S.UGen
+mkPureUGen (PureUGen  a') = S.mkOsc S.AR "PureUGen" [a'] 1
+instance Make PureUGen where
+  ugen = mkPureUGen
diff --git a/Sound/SC3/UGen/Record/Qitch.hs b/Sound/SC3/UGen/Record/Qitch.hs
--- a/Sound/SC3/UGen/Record/Qitch.hs
+++ b/Sound/SC3/UGen/Record/Qitch.hs
@@ -1,9 +1,9 @@
--- | constant Q transform pitch follower
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Qitch where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Qitch = Qitch {
-  input :: S.UGen,
+  in :: S.UGen,
   databufnum :: S.UGen,
   ampThreshold :: S.UGen,
   algoflag :: S.UGen,
@@ -13,7 +13,7 @@
   } deriving (Show)
 qitch :: Qitch
 qitch = Qitch {
-  input = 0.0,
+  in = 0.0,
   databufnum = 0.0,
   ampThreshold = 0.01,
   algoflag = 1.0,
diff --git a/Sound/SC3/UGen/Record/RDelayMap.hs b/Sound/SC3/UGen/Record/RDelayMap.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RDelayMap.hs
@@ -0,0 +1,23 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RDelayMap where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RDelayMap = RDelayMap {
+  rate :: S.Rate,
+  bufnum :: S.UGen,
+  in :: S.UGen,
+  dynamic :: S.UGen,
+  spec :: S.UGen
+  } deriving (Show)
+rDelayMap :: RDelayMap
+rDelayMap = RDelayMap {
+  rate = S.AR,
+  bufnum = 0.0,
+  in = 0.0,
+  dynamic = 0.0,
+  spec = 0.0
+  }
+mkRDelayMap :: RDelayMap -> S.UGen
+mkRDelayMap (RDelayMap r a' b' c' d') = S.mkOsc r "RDelayMap" [a',b',c',d'] 1
+instance Make RDelayMap where
+  ugen = mkRDelayMap
diff --git a/Sound/SC3/UGen/Record/RDelaySet.hs b/Sound/SC3/UGen/Record/RDelaySet.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RDelaySet.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RDelaySet where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RDelaySet = RDelaySet {
+  rate :: S.Rate,
+  in :: S.UGen,
+  spec :: S.UGen
+  } deriving (Show)
+rDelaySet :: RDelaySet
+rDelaySet = RDelaySet {
+  rate = S.AR,
+  in = 0.0,
+  spec = 0.0
+  }
+mkRDelaySet :: RDelaySet -> S.UGen
+mkRDelaySet (RDelaySet r a' b') = S.mkOsc r "RDelaySet" [a',b'] 1
+instance Make RDelaySet where
+  ugen = mkRDelaySet
diff --git a/Sound/SC3/UGen/Record/RDelaySetB.hs b/Sound/SC3/UGen/Record/RDelaySetB.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RDelaySetB.hs
@@ -0,0 +1,21 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RDelaySetB where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RDelaySetB = RDelaySetB {
+  rate :: S.Rate,
+  bufnum :: S.UGen,
+  in :: S.UGen,
+  spec :: S.UGen
+  } deriving (Show)
+rDelaySetB :: RDelaySetB
+rDelaySetB = RDelaySetB {
+  rate = S.AR,
+  bufnum = 0.0,
+  in = 0.0,
+  spec = 0.0
+  }
+mkRDelaySetB :: RDelaySetB -> S.UGen
+mkRDelaySetB (RDelaySetB r a' b' c') = S.mkOsc r "RDelaySetB" [a',b',c'] 1
+instance Make RDelaySetB where
+  ugen = mkRDelaySetB
diff --git a/Sound/SC3/UGen/Record/RFreezer.hs b/Sound/SC3/UGen/Record/RFreezer.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RFreezer.hs
@@ -0,0 +1,37 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RFreezer where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RFreezer = RFreezer {
+  rate :: S.Rate,
+  bufnum :: S.UGen,
+  left :: S.UGen,
+  right :: S.UGen,
+  gain :: S.UGen,
+  increment :: S.UGen,
+  incrementOffset :: S.UGen,
+  incrementRandom :: S.UGen,
+  rightRandom :: S.UGen,
+  syncPhaseTrigger :: S.UGen,
+  randomizePhaseTrigger :: S.UGen,
+  numberOfLoops :: S.UGen
+  } deriving (Show)
+rFreezer :: RFreezer
+rFreezer = RFreezer {
+  rate = S.AR,
+  bufnum = 0.0,
+  left = 0.0,
+  right = 1.0,
+  gain = 1.0,
+  increment = 1.0,
+  incrementOffset = 0.0,
+  incrementRandom = 0.0,
+  rightRandom = 0.0,
+  syncPhaseTrigger = 0.0,
+  randomizePhaseTrigger = 0.0,
+  numberOfLoops = 4.0
+  }
+mkRFreezer :: RFreezer -> S.UGen
+mkRFreezer (RFreezer r a' b' c' d' e' f' g' h' i' j' k') = S.mkOsc r "RFreezer" [a',b',c',d',e',f',g',h',i',j',k'] 1
+instance Make RFreezer where
+  ugen = mkRFreezer
diff --git a/Sound/SC3/UGen/Record/RHPF.hs b/Sound/SC3/UGen/Record/RHPF.hs
--- a/Sound/SC3/UGen/Record/RHPF.hs
+++ b/Sound/SC3/UGen/Record/RHPF.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data RHPF = RHPF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 rHPF :: RHPF
 rHPF = RHPF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/RLPF.hs b/Sound/SC3/UGen/Record/RLPF.hs
--- a/Sound/SC3/UGen/Record/RLPF.hs
+++ b/Sound/SC3/UGen/Record/RLPF.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data RLPF = RLPF {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen
   } deriving (Show)
 rLPF :: RLPF
 rLPF = RLPF {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/RLPFD.hs b/Sound/SC3/UGen/Record/RLPFD.hs
--- a/Sound/SC3/UGen/Record/RLPFD.hs
+++ b/Sound/SC3/UGen/Record/RLPFD.hs
@@ -1,10 +1,10 @@
--- | TB303 Filter Emulation
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RLPFD where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data RLPFD = RLPFD {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   ffreq :: S.UGen,
   res :: S.UGen,
   dist :: S.UGen
@@ -12,7 +12,7 @@
 rLPFD :: RLPFD
 rLPFD = RLPFD {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   ffreq = 440.0,
   res = 0.0,
   dist = 0.0
diff --git a/Sound/SC3/UGen/Record/RLoopSet.hs b/Sound/SC3/UGen/Record/RLoopSet.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RLoopSet.hs
@@ -0,0 +1,27 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RLoopSet where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RLoopSet = RLoopSet {
+  rate :: S.Rate,
+  bufnum :: S.UGen,
+  left :: S.UGen,
+  right :: S.UGen,
+  gain :: S.UGen,
+  increment :: S.UGen,
+  spec :: S.UGen
+  } deriving (Show)
+rLoopSet :: RLoopSet
+rLoopSet = RLoopSet {
+  rate = S.AR,
+  bufnum = 0.0,
+  left = 0.0,
+  right = 1.0,
+  gain = 1.0,
+  increment = 1.0,
+  spec = 0.0
+  }
+mkRLoopSet :: RLoopSet -> S.UGen
+mkRLoopSet (RLoopSet r a' b' c' d' e' f') = S.mkOsc r "RLoopSet" [a',b',c',d',e',f'] 1
+instance Make RLoopSet where
+  ugen = mkRLoopSet
diff --git a/Sound/SC3/UGen/Record/RMAFoodChainL.hs b/Sound/SC3/UGen/Record/RMAFoodChainL.hs
--- a/Sound/SC3/UGen/Record/RMAFoodChainL.hs
+++ b/Sound/SC3/UGen/Record/RMAFoodChainL.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RMAFoodChainL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/RMEQ.hs b/Sound/SC3/UGen/Record/RMEQ.hs
--- a/Sound/SC3/UGen/Record/RMEQ.hs
+++ b/Sound/SC3/UGen/Record/RMEQ.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RMEQ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data RMEQ = RMEQ {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen,
   k :: S.UGen
   } deriving (Show)
 rMEQ :: RMEQ
 rMEQ = RMEQ {
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 0.1,
   k = 0.0
diff --git a/Sound/SC3/UGen/Record/RMEQSuite.hs b/Sound/SC3/UGen/Record/RMEQSuite.hs
--- a/Sound/SC3/UGen/Record/RMEQSuite.hs
+++ b/Sound/SC3/UGen/Record/RMEQSuite.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RMEQSuite where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/RMShelf.hs b/Sound/SC3/UGen/Record/RMShelf.hs
--- a/Sound/SC3/UGen/Record/RMShelf.hs
+++ b/Sound/SC3/UGen/Record/RMShelf.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RMShelf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data RMShelf = RMShelf {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   k :: S.UGen
   } deriving (Show)
 rMShelf :: RMShelf
 rMShelf = RMShelf {
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   k = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/RMShelf2.hs b/Sound/SC3/UGen/Record/RMShelf2.hs
--- a/Sound/SC3/UGen/Record/RMShelf2.hs
+++ b/Sound/SC3/UGen/Record/RMShelf2.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RMShelf2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data RMShelf2 = RMShelf2 {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   k :: S.UGen
   } deriving (Show)
 rMShelf2 :: RMShelf2
 rMShelf2 = RMShelf2 {
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   k = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/RPlayTrace.hs b/Sound/SC3/UGen/Record/RPlayTrace.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RPlayTrace.hs
@@ -0,0 +1,23 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RPlayTrace where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RPlayTrace = RPlayTrace {
+  rate :: S.Rate,
+  bufnum :: S.UGen,
+  degree :: S.UGen,
+  rate :: S.UGen,
+  axis :: S.UGen
+  } deriving (Show)
+rPlayTrace :: RPlayTrace
+rPlayTrace = RPlayTrace {
+  rate = S.AR,
+  bufnum = 0.0,
+  degree = 4.0,
+  rate = 0.0,
+  axis = 1.0
+  }
+mkRPlayTrace :: RPlayTrace -> S.UGen
+mkRPlayTrace (RPlayTrace r a' b' c' d') = S.mkOsc r "RPlayTrace" [a',b',c',d'] 1
+instance Make RPlayTrace where
+  ugen = mkRPlayTrace
diff --git a/Sound/SC3/UGen/Record/RShufflerB.hs b/Sound/SC3/UGen/Record/RShufflerB.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RShufflerB.hs
@@ -0,0 +1,55 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RShufflerB where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RShufflerB = RShufflerB {
+  rate :: S.Rate,
+  bufnum :: S.UGen,
+  readLocationMinima :: S.UGen,
+  readLocationMaxima :: S.UGen,
+  readIncrementMinima :: S.UGen,
+  readIncrementMaxima :: S.UGen,
+  durationMinima :: S.UGen,
+  durationMaxima :: S.UGen,
+  envelopeAmplitudeMinima :: S.UGen,
+  envelopeAmplitudeMaxima :: S.UGen,
+  envelopeShapeMinima :: S.UGen,
+  envelopeShapeMaxima :: S.UGen,
+  envelopeSkewMinima :: S.UGen,
+  envelopeSkewMaxima :: S.UGen,
+  stereoLocationMinima :: S.UGen,
+  stereoLocationMaxima :: S.UGen,
+  interOffsetTimeMinima :: S.UGen,
+  interOffsetTimeMaxima :: S.UGen,
+  ftableReadLocationIncrement :: S.UGen,
+  readIncrementQuanta :: S.UGen,
+  interOffsetTimeQuanta :: S.UGen
+  } deriving (Show)
+rShufflerB :: RShufflerB
+rShufflerB = RShufflerB {
+  rate = S.AR,
+  bufnum = 0.0,
+  readLocationMinima = 0.01,
+  readLocationMaxima = 0.02,
+  readIncrementMinima = 1.0,
+  readIncrementMaxima = 1.0,
+  durationMinima = 0.2,
+  durationMaxima = 0.2,
+  envelopeAmplitudeMinima = 0.5,
+  envelopeAmplitudeMaxima = 0.5,
+  envelopeShapeMinima = 0.5,
+  envelopeShapeMaxima = 0.5,
+  envelopeSkewMinima = 0.5,
+  envelopeSkewMaxima = 0.5,
+  stereoLocationMinima = 0.5,
+  stereoLocationMaxima = 0.5,
+  interOffsetTimeMinima = 0.05,
+  interOffsetTimeMaxima = 0.01,
+  ftableReadLocationIncrement = 1.0,
+  readIncrementQuanta = 0.0,
+  interOffsetTimeQuanta = 0.0
+  }
+mkRShufflerB :: RShufflerB -> S.UGen
+mkRShufflerB (RShufflerB r a' b' c' d' e' f' g' h' i' j' k' l' m' n' o' p' q' r' s' t') = S.mkOsc r "RShufflerB" [a',b',c',d',e',f',g',h',i',j',k',l',m',n',o',p',q',r',s',t'] 2
+instance Make RShufflerB where
+  ugen = mkRShufflerB
diff --git a/Sound/SC3/UGen/Record/RShufflerL.hs b/Sound/SC3/UGen/Record/RShufflerL.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RShufflerL.hs
@@ -0,0 +1,21 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RShufflerL where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RShufflerL = RShufflerL {
+  rate :: S.Rate,
+  in :: S.UGen,
+  fragmentSize :: S.UGen,
+  maxDelay :: S.UGen
+  } deriving (Show)
+rShufflerL :: RShufflerL
+rShufflerL = RShufflerL {
+  rate = S.AR,
+  in = 0.0,
+  fragmentSize = 0.01,
+  maxDelay = 0.01
+  }
+mkRShufflerL :: RShufflerL -> S.UGen
+mkRShufflerL (RShufflerL r a' b' c') = S.mkOsc r "RShufflerL" [a',b',c'] 1
+instance Make RShufflerL where
+  ugen = mkRShufflerL
diff --git a/Sound/SC3/UGen/Record/RTraceRd.hs b/Sound/SC3/UGen/Record/RTraceRd.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RTraceRd.hs
@@ -0,0 +1,23 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RTraceRd where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RTraceRd = RTraceRd {
+  rate :: S.Rate,
+  bufnum :: S.UGen,
+  degree :: S.UGen,
+  index :: S.UGen,
+  axis :: S.UGen
+  } deriving (Show)
+rTraceRd :: RTraceRd
+rTraceRd = RTraceRd {
+  rate = S.AR,
+  bufnum = 0.0,
+  degree = 4.0,
+  index = 0.0,
+  axis = 1.0
+  }
+mkRTraceRd :: RTraceRd -> S.UGen
+mkRTraceRd (RTraceRd r a' b' c' d') = S.mkOsc r "RTraceRd" [a',b',c',d'] 1
+instance Make RTraceRd where
+  ugen = mkRTraceRd
diff --git a/Sound/SC3/UGen/Record/RTraceRdX.hs b/Sound/SC3/UGen/Record/RTraceRdX.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RTraceRdX.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RTraceRdX where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RTraceRdX = RTraceRdX {
+  bufnum :: S.UGen,
+  degree :: S.UGen,
+  index :: S.UGen
+  } deriving (Show)
+rTraceRdX :: RTraceRdX
+rTraceRdX = RTraceRdX {
+  bufnum = 0.0,
+  degree = 4.0,
+  index = 0.0
+  }
+mkRTraceRdX :: RTraceRdX -> S.UGen
+mkRTraceRdX (RTraceRdX  a' b' c') = S.mkOsc S.KR "RTraceRdX" [a',b',c'] 1
+instance Make RTraceRdX where
+  ugen = mkRTraceRdX
diff --git a/Sound/SC3/UGen/Record/RTraceRdY.hs b/Sound/SC3/UGen/Record/RTraceRdY.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RTraceRdY.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RTraceRdY where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RTraceRdY = RTraceRdY {
+  bufnum :: S.UGen,
+  degree :: S.UGen,
+  index :: S.UGen
+  } deriving (Show)
+rTraceRdY :: RTraceRdY
+rTraceRdY = RTraceRdY {
+  bufnum = 0.0,
+  degree = 4.0,
+  index = 0.0
+  }
+mkRTraceRdY :: RTraceRdY -> S.UGen
+mkRTraceRdY (RTraceRdY  a' b' c') = S.mkOsc S.KR "RTraceRdY" [a',b',c'] 1
+instance Make RTraceRdY where
+  ugen = mkRTraceRdY
diff --git a/Sound/SC3/UGen/Record/RTraceRdZ.hs b/Sound/SC3/UGen/Record/RTraceRdZ.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RTraceRdZ.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RTraceRdZ where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RTraceRdZ = RTraceRdZ {
+  bufnum :: S.UGen,
+  degree :: S.UGen,
+  index :: S.UGen
+  } deriving (Show)
+rTraceRdZ :: RTraceRdZ
+rTraceRdZ = RTraceRdZ {
+  bufnum = 0.0,
+  degree = 4.0,
+  index = 0.0
+  }
+mkRTraceRdZ :: RTraceRdZ -> S.UGen
+mkRTraceRdZ (RTraceRdZ  a' b' c') = S.mkOsc S.KR "RTraceRdZ" [a',b',c'] 1
+instance Make RTraceRdZ where
+  ugen = mkRTraceRdZ
diff --git a/Sound/SC3/UGen/Record/Ramp.hs b/Sound/SC3/UGen/Record/Ramp.hs
--- a/Sound/SC3/UGen/Record/Ramp.hs
+++ b/Sound/SC3/UGen/Record/Ramp.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Ramp = Ramp {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lagTime :: S.UGen
   } deriving (Show)
 ramp :: Ramp
 ramp = Ramp {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lagTime = 0.1
   }
 mkRamp :: Ramp -> S.UGen
diff --git a/Sound/SC3/UGen/Record/RandID.hs b/Sound/SC3/UGen/Record/RandID.hs
--- a/Sound/SC3/UGen/Record/RandID.hs
+++ b/Sound/SC3/UGen/Record/RandID.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data RandID = RandID {
   rate :: S.Rate,
-  id_ :: S.UGen
+  id :: S.UGen
   } deriving (Show)
 randID :: RandID
 randID = RandID {
   rate = S.AR,
-  id_ = 0.0
+  id = 0.0
   }
 mkRandID :: RandID -> S.UGen
 mkRandID (RandID r a') = S.mkOsc r "RandID" [a'] 1
diff --git a/Sound/SC3/UGen/Record/RedDPCMdecode.hs b/Sound/SC3/UGen/Record/RedDPCMdecode.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RedDPCMdecode.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RedDPCMdecode where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RedDPCMdecode = RedDPCMdecode {
+  rate :: S.Rate,
+  in :: S.UGen
+  } deriving (Show)
+redDPCMdecode :: RedDPCMdecode
+redDPCMdecode = RedDPCMdecode {
+  rate = S.AR,
+  in = 0.0
+  }
+mkRedDPCMdecode :: RedDPCMdecode -> S.UGen
+mkRedDPCMdecode (RedDPCMdecode r a') = S.mkOsc r "RedDPCMdecode" [a'] 1
+instance Make RedDPCMdecode where
+  ugen = mkRedDPCMdecode
diff --git a/Sound/SC3/UGen/Record/RedDPCMencode.hs b/Sound/SC3/UGen/Record/RedDPCMencode.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RedDPCMencode.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RedDPCMencode where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RedDPCMencode = RedDPCMencode {
+  rate :: S.Rate,
+  in :: S.UGen,
+  round :: S.UGen
+  } deriving (Show)
+redDPCMencode :: RedDPCMencode
+redDPCMencode = RedDPCMencode {
+  rate = S.AR,
+  in = 0.0,
+  round = 0.0
+  }
+mkRedDPCMencode :: RedDPCMencode -> S.UGen
+mkRedDPCMencode (RedDPCMencode r a' b') = S.mkOsc r "RedDPCMencode" [a',b'] 1
+instance Make RedDPCMencode where
+  ugen = mkRedDPCMencode
diff --git a/Sound/SC3/UGen/Record/RedLbyl.hs b/Sound/SC3/UGen/Record/RedLbyl.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RedLbyl.hs
@@ -0,0 +1,21 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RedLbyl where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RedLbyl = RedLbyl {
+  rate :: S.Rate,
+  in :: S.UGen,
+  thresh :: S.UGen,
+  samples :: S.UGen
+  } deriving (Show)
+redLbyl :: RedLbyl
+redLbyl = RedLbyl {
+  rate = S.AR,
+  in = 0.0,
+  thresh = 0.5,
+  samples = 2.0
+  }
+mkRedLbyl :: RedLbyl -> S.UGen
+mkRedLbyl (RedLbyl r a' b' c') = S.mkOsc r "RedLbyl" [a',b',c'] 1
+instance Make RedLbyl where
+  ugen = mkRedLbyl
diff --git a/Sound/SC3/UGen/Record/RedNoise.hs b/Sound/SC3/UGen/Record/RedNoise.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RedNoise.hs
@@ -0,0 +1,17 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RedNoise where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RedNoise = RedNoise {
+  rate :: S.Rate,
+  clock :: S.UGen
+  } deriving (Show)
+redNoise :: RedNoise
+redNoise = RedNoise {
+  rate = S.AR,
+  clock = 0.0
+  }
+mkRedNoise :: RedNoise -> S.UGen
+mkRedNoise (RedNoise r a') = S.mkOsc r "RedNoise" [a'] 1
+instance Make RedNoise where
+  ugen = mkRedNoise
diff --git a/Sound/SC3/UGen/Record/RedPhasor.hs b/Sound/SC3/UGen/Record/RedPhasor.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RedPhasor.hs
@@ -0,0 +1,29 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RedPhasor where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RedPhasor = RedPhasor {
+  rate :: S.Rate,
+  trig :: S.UGen,
+  rate :: S.UGen,
+  start :: S.UGen,
+  end :: S.UGen,
+  loop :: S.UGen,
+  loopstart :: S.UGen,
+  loopend :: S.UGen
+  } deriving (Show)
+redPhasor :: RedPhasor
+redPhasor = RedPhasor {
+  rate = S.AR,
+  trig = 0.0,
+  rate = 1.0,
+  start = 0.0,
+  end = 1.0,
+  loop = 0.0,
+  loopstart = 0.0,
+  loopend = 1.0
+  }
+mkRedPhasor :: RedPhasor -> S.UGen
+mkRedPhasor (RedPhasor r a' b' c' d' e' f' g') = S.mkOsc r "RedPhasor" [a',b',c',d',e',f',g'] 1
+instance Make RedPhasor where
+  ugen = mkRedPhasor
diff --git a/Sound/SC3/UGen/Record/RedPhasor2.hs b/Sound/SC3/UGen/Record/RedPhasor2.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/RedPhasor2.hs
@@ -0,0 +1,29 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.RedPhasor2 where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data RedPhasor2 = RedPhasor2 {
+  rate :: S.Rate,
+  trig :: S.UGen,
+  rate :: S.UGen,
+  start :: S.UGen,
+  end :: S.UGen,
+  loop :: S.UGen,
+  loopstart :: S.UGen,
+  loopend :: S.UGen
+  } deriving (Show)
+redPhasor2 :: RedPhasor2
+redPhasor2 = RedPhasor2 {
+  rate = S.AR,
+  trig = 0.0,
+  rate = 1.0,
+  start = 0.0,
+  end = 1.0,
+  loop = 0.0,
+  loopstart = 0.0,
+  loopend = 1.0
+  }
+mkRedPhasor2 :: RedPhasor2 -> S.UGen
+mkRedPhasor2 (RedPhasor2 r a' b' c' d' e' f' g') = S.mkOsc r "RedPhasor2" [a',b',c',d',e',f',g'] 1
+instance Make RedPhasor2 where
+  ugen = mkRedPhasor2
diff --git a/Sound/SC3/UGen/Record/RegaliaMitraEQ.hs b/Sound/SC3/UGen/Record/RegaliaMitraEQ.hs
--- a/Sound/SC3/UGen/Record/RegaliaMitraEQ.hs
+++ b/Sound/SC3/UGen/Record/RegaliaMitraEQ.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RegaliaMitraEQ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data RegaliaMitraEQ = RegaliaMitraEQ {
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   rq :: S.UGen,
   k :: S.UGen
   } deriving (Show)
 regaliaMitraEQ :: RegaliaMitraEQ
 regaliaMitraEQ = RegaliaMitraEQ {
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   rq = 0.1,
   k = 0.0
diff --git a/Sound/SC3/UGen/Record/ReplaceOut.hs b/Sound/SC3/UGen/Record/ReplaceOut.hs
--- a/Sound/SC3/UGen/Record/ReplaceOut.hs
+++ b/Sound/SC3/UGen/Record/ReplaceOut.hs
@@ -5,13 +5,13 @@
 data ReplaceOut = ReplaceOut {
   rate :: S.Rate,
   bus :: S.UGen,
-  input :: S.UGen
+  channelsArray :: S.UGen
   } deriving (Show)
 replaceOut :: ReplaceOut
 replaceOut = ReplaceOut {
   rate = S.AR,
   bus = 0.0,
-  input = 0.0
+  channelsArray = 0.0
   }
 mkReplaceOut :: ReplaceOut -> S.UGen
 mkReplaceOut (ReplaceOut r a' b') = S.mkOsc r "ReplaceOut" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/Resonz.hs b/Sound/SC3/UGen/Record/Resonz.hs
--- a/Sound/SC3/UGen/Record/Resonz.hs
+++ b/Sound/SC3/UGen/Record/Resonz.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Resonz = Resonz {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   bwr :: S.UGen
   } deriving (Show)
 resonz :: Resonz
 resonz = Resonz {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   bwr = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Ringz.hs b/Sound/SC3/UGen/Record/Ringz.hs
--- a/Sound/SC3/UGen/Record/Ringz.hs
+++ b/Sound/SC3/UGen/Record/Ringz.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Ringz = Ringz {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   decaytime :: S.UGen
   } deriving (Show)
 ringz :: Ringz
 ringz = Ringz {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   decaytime = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/RosslerL.hs b/Sound/SC3/UGen/Record/RosslerL.hs
--- a/Sound/SC3/UGen/Record/RosslerL.hs
+++ b/Sound/SC3/UGen/Record/RosslerL.hs
@@ -1,4 +1,4 @@
--- | Rossler chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RosslerL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/RosslerResL.hs b/Sound/SC3/UGen/Record/RosslerResL.hs
--- a/Sound/SC3/UGen/Record/RosslerResL.hs
+++ b/Sound/SC3/UGen/Record/RosslerResL.hs
@@ -1,9 +1,9 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.RosslerResL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data RosslerResL = RosslerResL {
-  input :: S.UGen,
+  in :: S.UGen,
   stiff :: S.UGen,
   freq :: S.UGen,
   a :: S.UGen,
@@ -16,7 +16,7 @@
   } deriving (Show)
 rosslerResL :: RosslerResL
 rosslerResL = RosslerResL {
-  input = 0.0,
+  in = 0.0,
   stiff = 1.0,
   freq = 22050.0,
   a = 0.2,
diff --git a/Sound/SC3/UGen/Record/Rotate.hs b/Sound/SC3/UGen/Record/Rotate.hs
--- a/Sound/SC3/UGen/Record/Rotate.hs
+++ b/Sound/SC3/UGen/Record/Rotate.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Rotate where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -7,7 +7,7 @@
   x :: S.UGen,
   y :: S.UGen,
   z :: S.UGen,
-  rotate_ :: S.UGen
+  rotate :: S.UGen
   } deriving (Show)
 rotate :: Rotate
 rotate = Rotate {
@@ -15,7 +15,7 @@
   x = 0.0,
   y = 0.0,
   z = 0.0,
-  rotate_ = 0.0
+  rotate = 0.0
   }
 mkRotate :: Rotate -> S.UGen
 mkRotate (Rotate  a' b' c' d' e') = S.mkOsc S.AR "Rotate" [a',b',c',d',e'] 4
diff --git a/Sound/SC3/UGen/Record/RunningMax.hs b/Sound/SC3/UGen/Record/RunningMax.hs
--- a/Sound/SC3/UGen/Record/RunningMax.hs
+++ b/Sound/SC3/UGen/Record/RunningMax.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data RunningMax = RunningMax {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen
   } deriving (Show)
 runningMax :: RunningMax
 runningMax = RunningMax {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0
   }
 mkRunningMax :: RunningMax -> S.UGen
diff --git a/Sound/SC3/UGen/Record/RunningMin.hs b/Sound/SC3/UGen/Record/RunningMin.hs
--- a/Sound/SC3/UGen/Record/RunningMin.hs
+++ b/Sound/SC3/UGen/Record/RunningMin.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data RunningMin = RunningMin {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen
   } deriving (Show)
 runningMin :: RunningMin
 runningMin = RunningMin {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   trig = 0.0
   }
 mkRunningMin :: RunningMin -> S.UGen
diff --git a/Sound/SC3/UGen/Record/RunningSum.hs b/Sound/SC3/UGen/Record/RunningSum.hs
--- a/Sound/SC3/UGen/Record/RunningSum.hs
+++ b/Sound/SC3/UGen/Record/RunningSum.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data RunningSum = RunningSum {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   numsamp :: S.UGen
   } deriving (Show)
 runningSum :: RunningSum
 runningSum = RunningSum {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   numsamp = 40.0
   }
 mkRunningSum :: RunningSum -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SID6581f.hs b/Sound/SC3/UGen/Record/SID6581f.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/SID6581f.hs
@@ -0,0 +1,65 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.SID6581f where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data SID6581f = SID6581f {
+  freqLo0 :: S.UGen,
+  freqHi0 :: S.UGen,
+  pwLo0 :: S.UGen,
+  pwHi0 :: S.UGen,
+  ctrl0 :: S.UGen,
+  atkDcy0 :: S.UGen,
+  susRel0 :: S.UGen,
+  freqLo1 :: S.UGen,
+  freqHi1 :: S.UGen,
+  pwLo1 :: S.UGen,
+  pwHi1 :: S.UGen,
+  ctrl1 :: S.UGen,
+  atkDcy1 :: S.UGen,
+  susRel1 :: S.UGen,
+  freqLo2 :: S.UGen,
+  freqHi2 :: S.UGen,
+  pwLo2 :: S.UGen,
+  pwHi2 :: S.UGen,
+  ctrl2 :: S.UGen,
+  atkDcy2 :: S.UGen,
+  susRel2 :: S.UGen,
+  fcLo :: S.UGen,
+  fcHi :: S.UGen,
+  resFilt :: S.UGen,
+  modeVol :: S.UGen,
+  rate :: S.UGen
+  } deriving (Show)
+sID6581f :: SID6581f
+sID6581f = SID6581f {
+  freqLo0 = 0.0,
+  freqHi0 = 0.0,
+  pwLo0 = 0.0,
+  pwHi0 = 0.0,
+  ctrl0 = 0.0,
+  atkDcy0 = 0.0,
+  susRel0 = 0.0,
+  freqLo1 = 0.0,
+  freqHi1 = 0.0,
+  pwLo1 = 0.0,
+  pwHi1 = 0.0,
+  ctrl1 = 0.0,
+  atkDcy1 = 0.0,
+  susRel1 = 0.0,
+  freqLo2 = 0.0,
+  freqHi2 = 0.0,
+  pwLo2 = 0.0,
+  pwHi2 = 0.0,
+  ctrl2 = 0.0,
+  atkDcy2 = 0.0,
+  susRel2 = 0.0,
+  fcLo = 0.0,
+  fcHi = 0.0,
+  resFilt = 0.0,
+  modeVol = 0.0,
+  rate = 1.0
+  }
+mkSID6581f :: SID6581f -> S.UGen
+mkSID6581f (SID6581f  a' b' c' d' e' f' g' h' i' j' k' l' m' n' o' p' q' r' s' t' u' v' w' x' y' z') = S.mkOsc S.AR "SID6581f" [a',b',c',d',e',f',g',h',i',j',k',l',m',n',o',p',q',r',s',t',u',v',w',x',y',z'] 1
+instance Make SID6581f where
+  ugen = mkSID6581f
diff --git a/Sound/SC3/UGen/Record/SLOnset.hs b/Sound/SC3/UGen/Record/SLOnset.hs
--- a/Sound/SC3/UGen/Record/SLOnset.hs
+++ b/Sound/SC3/UGen/Record/SLOnset.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SLOnset where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SMS.hs b/Sound/SC3/UGen/Record/SMS.hs
--- a/Sound/SC3/UGen/Record/SMS.hs
+++ b/Sound/SC3/UGen/Record/SMS.hs
@@ -1,4 +1,4 @@
--- | Spectral Modeling Synthesis
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SMS where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SN76489.hs b/Sound/SC3/UGen/Record/SN76489.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/SN76489.hs
@@ -0,0 +1,31 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.SN76489 where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data SN76489 = SN76489 {
+  tone0 :: S.UGen,
+  tone1 :: S.UGen,
+  tone2 :: S.UGen,
+  noise :: S.UGen,
+  vol0 :: S.UGen,
+  vol1 :: S.UGen,
+  vol2 :: S.UGen,
+  vol3 :: S.UGen,
+  rate :: S.UGen
+  } deriving (Show)
+sN76489 :: SN76489
+sN76489 = SN76489 {
+  tone0 = 512.0,
+  tone1 = 0.0,
+  tone2 = 0.0,
+  noise = 0.0,
+  vol0 = 15.0,
+  vol1 = 0.0,
+  vol2 = 0.0,
+  vol3 = 0.0,
+  rate = 1.0
+  }
+mkSN76489 :: SN76489 -> S.UGen
+mkSN76489 (SN76489  a' b' c' d' e' f' g' h' i') = S.mkOsc S.AR "SN76489" [a',b',c',d',e',f',g',h',i'] 1
+instance Make SN76489 where
+  ugen = mkSN76489
diff --git a/Sound/SC3/UGen/Record/SOMAreaWr.hs b/Sound/SC3/UGen/Record/SOMAreaWr.hs
--- a/Sound/SC3/UGen/Record/SOMAreaWr.hs
+++ b/Sound/SC3/UGen/Record/SOMAreaWr.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SOMAreaWr where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SOMRd.hs b/Sound/SC3/UGen/Record/SOMRd.hs
--- a/Sound/SC3/UGen/Record/SOMRd.hs
+++ b/Sound/SC3/UGen/Record/SOMRd.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SOMRd where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SOMTrain.hs b/Sound/SC3/UGen/Record/SOMTrain.hs
--- a/Sound/SC3/UGen/Record/SOMTrain.hs
+++ b/Sound/SC3/UGen/Record/SOMTrain.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SOMTrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SOS.hs b/Sound/SC3/UGen/Record/SOS.hs
--- a/Sound/SC3/UGen/Record/SOS.hs
+++ b/Sound/SC3/UGen/Record/SOS.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data SOS = SOS {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   a0 :: S.UGen,
   a1 :: S.UGen,
   a2 :: S.UGen,
@@ -14,7 +14,7 @@
 sOS :: SOS
 sOS = SOS {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   a0 = 0.0,
   a1 = 0.0,
   a2 = 0.0,
diff --git a/Sound/SC3/UGen/Record/SVF.hs b/Sound/SC3/UGen/Record/SVF.hs
--- a/Sound/SC3/UGen/Record/SVF.hs
+++ b/Sound/SC3/UGen/Record/SVF.hs
@@ -1,4 +1,4 @@
--- | 12db/Oct State Variable Filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SVF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SawDPW.hs b/Sound/SC3/UGen/Record/SawDPW.hs
--- a/Sound/SC3/UGen/Record/SawDPW.hs
+++ b/Sound/SC3/UGen/Record/SawDPW.hs
@@ -1,4 +1,4 @@
--- | super-efficient sawtooth oscillator with low aliasing
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SawDPW where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Schmidt.hs b/Sound/SC3/UGen/Record/Schmidt.hs
--- a/Sound/SC3/UGen/Record/Schmidt.hs
+++ b/Sound/SC3/UGen/Record/Schmidt.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Schmidt = Schmidt {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 schmidt :: Schmidt
 schmidt = Schmidt {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/ScopeOut2.hs b/Sound/SC3/UGen/Record/ScopeOut2.hs
--- a/Sound/SC3/UGen/Record/ScopeOut2.hs
+++ b/Sound/SC3/UGen/Record/ScopeOut2.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.ScopeOut2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SendTrig.hs b/Sound/SC3/UGen/Record/SendTrig.hs
--- a/Sound/SC3/UGen/Record/SendTrig.hs
+++ b/Sound/SC3/UGen/Record/SendTrig.hs
@@ -4,15 +4,15 @@
 import Sound.SC3.UGen.Record
 data SendTrig = SendTrig {
   rate :: S.Rate,
-  input :: S.UGen,
-  id_ :: S.UGen,
+  in :: S.UGen,
+  id :: S.UGen,
   value :: S.UGen
   } deriving (Show)
 sendTrig :: SendTrig
 sendTrig = SendTrig {
   rate = S.AR,
-  input = 0.0,
-  id_ = 0.0,
+  in = 0.0,
+  id = 0.0,
   value = 0.0
   }
 mkSendTrig :: SendTrig -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SensoryDissonance.hs b/Sound/SC3/UGen/Record/SensoryDissonance.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/SensoryDissonance.hs
@@ -0,0 +1,23 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.SensoryDissonance where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data SensoryDissonance = SensoryDissonance {
+  fft :: S.UGen,
+  maxpeaks :: S.UGen,
+  peakthreshold :: S.UGen,
+  norm :: S.UGen,
+  clamp :: S.UGen
+  } deriving (Show)
+sensoryDissonance :: SensoryDissonance
+sensoryDissonance = SensoryDissonance {
+  fft = 0.0,
+  maxpeaks = 100.0,
+  peakthreshold = 0.1,
+  norm = 0.0,
+  clamp = 1.0
+  }
+mkSensoryDissonance :: SensoryDissonance -> S.UGen
+mkSensoryDissonance (SensoryDissonance  a' b' c' d' e') = S.mkOsc S.KR "SensoryDissonance" [a',b',c',d',e'] 1
+instance Make SensoryDissonance where
+  ugen = mkSensoryDissonance
diff --git a/Sound/SC3/UGen/Record/SetBuf.hs b/Sound/SC3/UGen/Record/SetBuf.hs
--- a/Sound/SC3/UGen/Record/SetBuf.hs
+++ b/Sound/SC3/UGen/Record/SetBuf.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SetBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Shaper.hs b/Sound/SC3/UGen/Record/Shaper.hs
--- a/Sound/SC3/UGen/Record/Shaper.hs
+++ b/Sound/SC3/UGen/Record/Shaper.hs
@@ -5,13 +5,13 @@
 data Shaper = Shaper {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 shaper :: Shaper
 shaper = Shaper {
   rate = S.AR,
   bufnum = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkShaper :: Shaper -> S.UGen
 mkShaper (Shaper r a' b') = S.mkOsc r "Shaper" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/SharedIn.hs b/Sound/SC3/UGen/Record/SharedIn.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/SharedIn.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Sound.SC3.UGen.Record.SharedIn where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data SharedIn = SharedIn {
-  bus :: S.UGen,
-  numChannels :: S.UGen
-  } deriving (Show)
-sharedIn :: SharedIn
-sharedIn = SharedIn {
-  bus = 0.0,
-  numChannels = 1.0
-  }
-mkSharedIn :: SharedIn -> S.UGen
-mkSharedIn (SharedIn  a' b') = S.mkOsc S.KR "SharedIn" [a',b'] 1
-instance Make SharedIn where
-  ugen = mkSharedIn
diff --git a/Sound/SC3/UGen/Record/SharedOut.hs b/Sound/SC3/UGen/Record/SharedOut.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/SharedOut.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Sound.SC3.UGen.Record.SharedOut where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data SharedOut = SharedOut {
-  bus :: S.UGen,
-  input :: S.UGen
-  } deriving (Show)
-sharedOut :: SharedOut
-sharedOut = SharedOut {
-  bus = 0.0,
-  input = 0.0
-  }
-mkSharedOut :: SharedOut -> S.UGen
-mkSharedOut (SharedOut  a' b') = S.mkOsc S.KR "SharedOut" [a',b'] 1
-instance Make SharedOut where
-  ugen = mkSharedOut
diff --git a/Sound/SC3/UGen/Record/Sieve1.hs b/Sound/SC3/UGen/Record/Sieve1.hs
--- a/Sound/SC3/UGen/Record/Sieve1.hs
+++ b/Sound/SC3/UGen/Record/Sieve1.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Sieve1 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Silent.hs b/Sound/SC3/UGen/Record/Silent.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/Silent.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Sound.SC3.UGen.Record.Silent where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data Silent = Silent {
-  numChannels :: S.UGen
-  } deriving (Show)
-silent :: Silent
-silent = Silent {
-  numChannels = 1.0
-  }
-mkSilent :: Silent -> S.UGen
-mkSilent (Silent  a') = S.mkOsc S.AR "Silent" [a'] 1
-instance Make Silent where
-  ugen = mkSilent
diff --git a/Sound/SC3/UGen/Record/SinGrain.hs b/Sound/SC3/UGen/Record/SinGrain.hs
--- a/Sound/SC3/UGen/Record/SinGrain.hs
+++ b/Sound/SC3/UGen/Record/SinGrain.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SinGrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SinGrainB.hs b/Sound/SC3/UGen/Record/SinGrainB.hs
--- a/Sound/SC3/UGen/Record/SinGrainB.hs
+++ b/Sound/SC3/UGen/Record/SinGrainB.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SinGrainB where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SinGrainBBF.hs b/Sound/SC3/UGen/Record/SinGrainBBF.hs
--- a/Sound/SC3/UGen/Record/SinGrainBBF.hs
+++ b/Sound/SC3/UGen/Record/SinGrainBBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SinGrainBBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SinGrainBF.hs b/Sound/SC3/UGen/Record/SinGrainBF.hs
--- a/Sound/SC3/UGen/Record/SinGrainBF.hs
+++ b/Sound/SC3/UGen/Record/SinGrainBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SinGrainBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SinGrainI.hs b/Sound/SC3/UGen/Record/SinGrainI.hs
--- a/Sound/SC3/UGen/Record/SinGrainI.hs
+++ b/Sound/SC3/UGen/Record/SinGrainI.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SinGrainI where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SinGrainIBF.hs b/Sound/SC3/UGen/Record/SinGrainIBF.hs
--- a/Sound/SC3/UGen/Record/SinGrainIBF.hs
+++ b/Sound/SC3/UGen/Record/SinGrainIBF.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SinGrainIBF where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SinTone.hs b/Sound/SC3/UGen/Record/SinTone.hs
--- a/Sound/SC3/UGen/Record/SinTone.hs
+++ b/Sound/SC3/UGen/Record/SinTone.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SinTone where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SineShaper.hs b/Sound/SC3/UGen/Record/SineShaper.hs
--- a/Sound/SC3/UGen/Record/SineShaper.hs
+++ b/Sound/SC3/UGen/Record/SineShaper.hs
@@ -1,14 +1,14 @@
--- | port of some ladspa plugins
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SineShaper where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SineShaper = SineShaper {
-  input :: S.UGen,
+  in :: S.UGen,
   limit :: S.UGen
   } deriving (Show)
 sineShaper :: SineShaper
 sineShaper = SineShaper {
-  input = 0.0,
+  in = 0.0,
   limit = 1.0
   }
 mkSineShaper :: SineShaper -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SkipNeedle.hs b/Sound/SC3/UGen/Record/SkipNeedle.hs
--- a/Sound/SC3/UGen/Record/SkipNeedle.hs
+++ b/Sound/SC3/UGen/Record/SkipNeedle.hs
@@ -1,16 +1,16 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SkipNeedle where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SkipNeedle = SkipNeedle {
   range :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   offset :: S.UGen
   } deriving (Show)
 skipNeedle :: SkipNeedle
 skipNeedle = SkipNeedle {
   range = 44100.0,
-  rate_ = 10.0,
+  rate = 10.0,
   offset = 0.0
   }
 mkSkipNeedle :: SkipNeedle -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Slew.hs b/Sound/SC3/UGen/Record/Slew.hs
--- a/Sound/SC3/UGen/Record/Slew.hs
+++ b/Sound/SC3/UGen/Record/Slew.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Slew = Slew {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   up :: S.UGen,
   dn :: S.UGen
   } deriving (Show)
 slew :: Slew
 slew = Slew {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   up = 1.0,
   dn = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/Slope.hs b/Sound/SC3/UGen/Record/Slope.hs
--- a/Sound/SC3/UGen/Record/Slope.hs
+++ b/Sound/SC3/UGen/Record/Slope.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data Slope = Slope {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 slope :: Slope
 slope = Slope {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkSlope :: Slope -> S.UGen
 mkSlope (Slope r a') = S.mkOsc r "Slope" [a'] 1
diff --git a/Sound/SC3/UGen/Record/Slub.hs b/Sound/SC3/UGen/Record/Slub.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Slub.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.Slub where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Slub = Slub {
+  rate :: S.Rate,
+  trig :: S.UGen,
+  spike :: S.UGen
+  } deriving (Show)
+slub :: Slub
+slub = Slub {
+  rate = S.AR,
+  trig = 0.0,
+  spike = 4.04
+  }
+mkSlub :: Slub -> S.UGen
+mkSlub (Slub r a' b') = S.mkOsc r "Slub" [a',b'] 1
+instance Make Slub where
+  ugen = mkSlub
diff --git a/Sound/SC3/UGen/Record/SmoothDecimator.hs b/Sound/SC3/UGen/Record/SmoothDecimator.hs
--- a/Sound/SC3/UGen/Record/SmoothDecimator.hs
+++ b/Sound/SC3/UGen/Record/SmoothDecimator.hs
@@ -1,16 +1,16 @@
--- | port of some ladspa plugins
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SmoothDecimator where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SmoothDecimator = SmoothDecimator {
-  input :: S.UGen,
-  rate_ :: S.UGen,
+  in :: S.UGen,
+  rate :: S.UGen,
   smoothing :: S.UGen
   } deriving (Show)
 smoothDecimator :: SmoothDecimator
 smoothDecimator = SmoothDecimator {
-  input = 0.0,
-  rate_ = 44100.0,
+  in = 0.0,
+  rate = 44100.0,
   smoothing = 0.5
   }
 mkSmoothDecimator :: SmoothDecimator -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SoftClipAmp.hs b/Sound/SC3/UGen/Record/SoftClipAmp.hs
--- a/Sound/SC3/UGen/Record/SoftClipAmp.hs
+++ b/Sound/SC3/UGen/Record/SoftClipAmp.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SoftClipAmp where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SoftClipAmp = SoftClipAmp {
-  input :: S.UGen,
+  in :: S.UGen,
   pregain :: S.UGen
   } deriving (Show)
 softClipAmp :: SoftClipAmp
 softClipAmp = SoftClipAmp {
-  input = 0.0,
+  in = 0.0,
   pregain = 1.0
   }
 mkSoftClipAmp :: SoftClipAmp -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SoftClipAmp4.hs b/Sound/SC3/UGen/Record/SoftClipAmp4.hs
--- a/Sound/SC3/UGen/Record/SoftClipAmp4.hs
+++ b/Sound/SC3/UGen/Record/SoftClipAmp4.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SoftClipAmp4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SoftClipAmp4 = SoftClipAmp4 {
-  input :: S.UGen,
+  in :: S.UGen,
   pregain :: S.UGen
   } deriving (Show)
 softClipAmp4 :: SoftClipAmp4
 softClipAmp4 = SoftClipAmp4 {
-  input = 0.0,
+  in = 0.0,
   pregain = 1.0
   }
 mkSoftClipAmp4 :: SoftClipAmp4 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SoftClipAmp8.hs b/Sound/SC3/UGen/Record/SoftClipAmp8.hs
--- a/Sound/SC3/UGen/Record/SoftClipAmp8.hs
+++ b/Sound/SC3/UGen/Record/SoftClipAmp8.hs
@@ -1,14 +1,14 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SoftClipAmp8 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SoftClipAmp8 = SoftClipAmp8 {
-  input :: S.UGen,
+  in :: S.UGen,
   pregain :: S.UGen
   } deriving (Show)
 softClipAmp8 :: SoftClipAmp8
 softClipAmp8 = SoftClipAmp8 {
-  input = 0.0,
+  in = 0.0,
   pregain = 1.0
   }
 mkSoftClipAmp8 :: SoftClipAmp8 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SoftClipper4.hs b/Sound/SC3/UGen/Record/SoftClipper4.hs
--- a/Sound/SC3/UGen/Record/SoftClipper4.hs
+++ b/Sound/SC3/UGen/Record/SoftClipper4.hs
@@ -1,13 +1,13 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SoftClipper4 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SoftClipper4 = SoftClipper4 {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 softClipper4 :: SoftClipper4
 softClipper4 = SoftClipper4 {
-  input = 0.0
+  in = 0.0
   }
 mkSoftClipper4 :: SoftClipper4 -> S.UGen
 mkSoftClipper4 (SoftClipper4  a') = S.mkOsc S.AR "SoftClipper4" [a'] 1
diff --git a/Sound/SC3/UGen/Record/SoftClipper8.hs b/Sound/SC3/UGen/Record/SoftClipper8.hs
--- a/Sound/SC3/UGen/Record/SoftClipper8.hs
+++ b/Sound/SC3/UGen/Record/SoftClipper8.hs
@@ -1,13 +1,13 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SoftClipper8 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SoftClipper8 = SoftClipper8 {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 softClipper8 :: SoftClipper8
 softClipper8 = SoftClipper8 {
-  input = 0.0
+  in = 0.0
   }
 mkSoftClipper8 :: SoftClipper8 -> S.UGen
 mkSoftClipper8 (SoftClipper8  a') = S.mkOsc S.AR "SoftClipper8" [a'] 1
diff --git a/Sound/SC3/UGen/Record/SortBuf.hs b/Sound/SC3/UGen/Record/SortBuf.hs
--- a/Sound/SC3/UGen/Record/SortBuf.hs
+++ b/Sound/SC3/UGen/Record/SortBuf.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SortBuf where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/SpectralEntropy.hs b/Sound/SC3/UGen/Record/SpectralEntropy.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/SpectralEntropy.hs
@@ -0,0 +1,19 @@
+-- | (Undocumented class)
+module Sound.SC3.UGen.Record.SpectralEntropy where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data SpectralEntropy = SpectralEntropy {
+  fft :: S.UGen,
+  fftsize :: S.UGen,
+  numbands :: S.UGen
+  } deriving (Show)
+spectralEntropy :: SpectralEntropy
+spectralEntropy = SpectralEntropy {
+  fft = 0.0,
+  fftsize = 2048.0,
+  numbands = 1.0
+  }
+mkSpectralEntropy :: SpectralEntropy -> S.UGen
+mkSpectralEntropy (SpectralEntropy  a' b' c') = S.mkOsc S.KR "SpectralEntropy" [a',b',c'] 1
+instance Make SpectralEntropy where
+  ugen = mkSpectralEntropy
diff --git a/Sound/SC3/UGen/Record/Splay.hs b/Sound/SC3/UGen/Record/Splay.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/Splay.hs
@@ -0,0 +1,25 @@
+-- | Splay spreads an array of channels across the stereo field
+module Sound.SC3.UGen.Record.Splay where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data Splay = Splay {
+  rate :: S.Rate,
+  inArray :: S.UGen,
+  spread :: S.UGen,
+  level :: S.UGen,
+  center :: S.UGen,
+  levelComp :: S.UGen
+  } deriving (Show)
+splay :: Splay
+splay = Splay {
+  rate = S.AR,
+  inArray = 0.0,
+  spread = 1.0,
+  level = 1.0,
+  center = 0.0,
+  levelComp = 1.0
+  }
+mkSplay :: Splay -> S.UGen
+mkSplay (Splay r a' b' c' d' e') = S.mkOsc r "Splay" [a',b',c',d',e'] 1
+instance Make Splay where
+  ugen = mkSplay
diff --git a/Sound/SC3/UGen/Record/SplayAz.hs b/Sound/SC3/UGen/Record/SplayAz.hs
new file mode 100644
--- /dev/null
+++ b/Sound/SC3/UGen/Record/SplayAz.hs
@@ -0,0 +1,29 @@
+-- | Spreads an array of channels across a ring of channels
+module Sound.SC3.UGen.Record.SplayAz where
+import qualified Sound.SC3.UGen as S
+import Sound.SC3.UGen.Record
+data SplayAz = SplayAz {
+  rate :: S.Rate,
+  inArray :: S.UGen,
+  spread :: S.UGen,
+  level :: S.UGen,
+  width :: S.UGen,
+  center :: S.UGen,
+  orientation :: S.UGen,
+  levelComp :: S.UGen
+  } deriving (Show)
+splayAz :: SplayAz
+splayAz = SplayAz {
+  rate = S.AR,
+  inArray = 0.0,
+  spread = 1.0,
+  level = 1.0,
+  width = 2.0,
+  center = 0.0,
+  orientation = 0.5,
+  levelComp = 1.0
+  }
+mkSplayAz :: SplayAz -> S.UGen
+mkSplayAz (SplayAz r a' b' c' d' e' f' g') = S.mkOsc r "SplayAz" [a',b',c',d',e',f',g'] 1
+instance Make SplayAz where
+  ugen = mkSplayAz
diff --git a/Sound/SC3/UGen/Record/Spreader.hs b/Sound/SC3/UGen/Record/Spreader.hs
--- a/Sound/SC3/UGen/Record/Spreader.hs
+++ b/Sound/SC3/UGen/Record/Spreader.hs
@@ -1,15 +1,15 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Spreader where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Spreader = Spreader {
-  input :: S.UGen,
+  in :: S.UGen,
   theta :: S.UGen,
   filtsPerOctave :: S.UGen
   } deriving (Show)
 spreader :: Spreader
 spreader = Spreader {
-  input = 0.0,
+  in = 0.0,
   theta = 1.5707963267949,
   filtsPerOctave = 8.0
   }
diff --git a/Sound/SC3/UGen/Record/Spring.hs b/Sound/SC3/UGen/Record/Spring.hs
--- a/Sound/SC3/UGen/Record/Spring.hs
+++ b/Sound/SC3/UGen/Record/Spring.hs
@@ -4,15 +4,15 @@
 import Sound.SC3.UGen.Record
 data Spring = Spring {
   rate :: S.Rate,
-  input :: S.UGen,
-  spring_ :: S.UGen,
+  in :: S.UGen,
+  spring :: S.UGen,
   damp :: S.UGen
   } deriving (Show)
 spring :: Spring
 spring = Spring {
   rate = S.AR,
-  input = 0.0,
-  spring_ = 1.0,
+  in = 0.0,
+  spring = 1.0,
   damp = 0.0
   }
 mkSpring :: Spring -> S.UGen
diff --git a/Sound/SC3/UGen/Record/SpruceBudworm.hs b/Sound/SC3/UGen/Record/SpruceBudworm.hs
--- a/Sound/SC3/UGen/Record/SpruceBudworm.hs
+++ b/Sound/SC3/UGen/Record/SpruceBudworm.hs
@@ -1,10 +1,10 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SpruceBudworm where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SpruceBudworm = SpruceBudworm {
   reset :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   k1 :: S.UGen,
   k2 :: S.UGen,
   alpha :: S.UGen,
@@ -17,7 +17,7 @@
 spruceBudworm :: SpruceBudworm
 spruceBudworm = SpruceBudworm {
   reset = 0.0,
-  rate_ = 0.1,
+  rate = 0.1,
   k1 = 27.9,
   k2 = 1.5,
   alpha = 0.1,
diff --git a/Sound/SC3/UGen/Record/Squiz.hs b/Sound/SC3/UGen/Record/Squiz.hs
--- a/Sound/SC3/UGen/Record/Squiz.hs
+++ b/Sound/SC3/UGen/Record/Squiz.hs
@@ -1,10 +1,10 @@
--- | Wave squeezer. Maybe a kind of pitch shifter.
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Squiz where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Squiz = Squiz {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   pitchratio :: S.UGen,
   zcperchunk :: S.UGen,
   memlen :: S.UGen
@@ -12,7 +12,7 @@
 squiz :: Squiz
 squiz = Squiz {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   pitchratio = 2.0,
   zcperchunk = 1.0,
   memlen = 0.1
diff --git a/Sound/SC3/UGen/Record/Standard2DC.hs b/Sound/SC3/UGen/Record/Standard2DC.hs
--- a/Sound/SC3/UGen/Record/Standard2DC.hs
+++ b/Sound/SC3/UGen/Record/Standard2DC.hs
@@ -1,4 +1,4 @@
--- | standard map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Standard2DC where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Standard2DL.hs b/Sound/SC3/UGen/Record/Standard2DL.hs
--- a/Sound/SC3/UGen/Record/Standard2DL.hs
+++ b/Sound/SC3/UGen/Record/Standard2DL.hs
@@ -1,4 +1,4 @@
--- | standard map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Standard2DL where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Standard2DN.hs b/Sound/SC3/UGen/Record/Standard2DN.hs
--- a/Sound/SC3/UGen/Record/Standard2DN.hs
+++ b/Sound/SC3/UGen/Record/Standard2DN.hs
@@ -1,4 +1,4 @@
--- | standard map 2D chaotic generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Standard2DN where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StandardTrig.hs b/Sound/SC3/UGen/Record/StandardTrig.hs
--- a/Sound/SC3/UGen/Record/StandardTrig.hs
+++ b/Sound/SC3/UGen/Record/StandardTrig.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StandardTrig where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Stepper.hs b/Sound/SC3/UGen/Record/Stepper.hs
--- a/Sound/SC3/UGen/Record/Stepper.hs
+++ b/Sound/SC3/UGen/Record/Stepper.hs
@@ -6,8 +6,8 @@
   rate :: S.Rate,
   trig :: S.UGen,
   reset :: S.UGen,
-  min_ :: S.UGen,
-  max_ :: S.UGen,
+  min :: S.UGen,
+  max :: S.UGen,
   step :: S.UGen,
   resetval :: S.UGen
   } deriving (Show)
@@ -16,8 +16,8 @@
   rate = S.AR,
   trig = 0.0,
   reset = 0.0,
-  min_ = 0.0,
-  max_ = 7.0,
+  min = 0.0,
+  max = 7.0,
   step = 1.0,
   resetval = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/StereoConvolution2L.hs b/Sound/SC3/UGen/Record/StereoConvolution2L.hs
--- a/Sound/SC3/UGen/Record/StereoConvolution2L.hs
+++ b/Sound/SC3/UGen/Record/StereoConvolution2L.hs
@@ -3,7 +3,7 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data StereoConvolution2L = StereoConvolution2L {
-  input :: S.UGen,
+  in :: S.UGen,
   kernelL :: S.UGen,
   kernelR :: S.UGen,
   trigger :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 stereoConvolution2L :: StereoConvolution2L
 stereoConvolution2L = StereoConvolution2L {
-  input = 0.0,
+  in = 0.0,
   kernelL = 0.0,
   kernelR = 0.0,
   trigger = 0.0,
diff --git a/Sound/SC3/UGen/Record/StkBandedWG.hs b/Sound/SC3/UGen/Record/StkBandedWG.hs
--- a/Sound/SC3/UGen/Record/StkBandedWG.hs
+++ b/Sound/SC3/UGen/Record/StkBandedWG.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkBandedWG where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkBeeThree.hs b/Sound/SC3/UGen/Record/StkBeeThree.hs
--- a/Sound/SC3/UGen/Record/StkBeeThree.hs
+++ b/Sound/SC3/UGen/Record/StkBeeThree.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkBeeThree where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkBlowHole.hs b/Sound/SC3/UGen/Record/StkBlowHole.hs
--- a/Sound/SC3/UGen/Record/StkBlowHole.hs
+++ b/Sound/SC3/UGen/Record/StkBlowHole.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkBlowHole where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkBowed.hs b/Sound/SC3/UGen/Record/StkBowed.hs
--- a/Sound/SC3/UGen/Record/StkBowed.hs
+++ b/Sound/SC3/UGen/Record/StkBowed.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkBowed where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkClarinet.hs b/Sound/SC3/UGen/Record/StkClarinet.hs
--- a/Sound/SC3/UGen/Record/StkClarinet.hs
+++ b/Sound/SC3/UGen/Record/StkClarinet.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkClarinet where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkFlute.hs b/Sound/SC3/UGen/Record/StkFlute.hs
--- a/Sound/SC3/UGen/Record/StkFlute.hs
+++ b/Sound/SC3/UGen/Record/StkFlute.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkFlute where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkMandolin.hs b/Sound/SC3/UGen/Record/StkMandolin.hs
--- a/Sound/SC3/UGen/Record/StkMandolin.hs
+++ b/Sound/SC3/UGen/Record/StkMandolin.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkMandolin where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkModalBar.hs b/Sound/SC3/UGen/Record/StkModalBar.hs
--- a/Sound/SC3/UGen/Record/StkModalBar.hs
+++ b/Sound/SC3/UGen/Record/StkModalBar.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkModalBar where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkMoog.hs b/Sound/SC3/UGen/Record/StkMoog.hs
--- a/Sound/SC3/UGen/Record/StkMoog.hs
+++ b/Sound/SC3/UGen/Record/StkMoog.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkMoog where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkPluck.hs b/Sound/SC3/UGen/Record/StkPluck.hs
--- a/Sound/SC3/UGen/Record/StkPluck.hs
+++ b/Sound/SC3/UGen/Record/StkPluck.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkPluck where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkSaxofony.hs b/Sound/SC3/UGen/Record/StkSaxofony.hs
--- a/Sound/SC3/UGen/Record/StkSaxofony.hs
+++ b/Sound/SC3/UGen/Record/StkSaxofony.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkSaxofony where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkShakers.hs b/Sound/SC3/UGen/Record/StkShakers.hs
--- a/Sound/SC3/UGen/Record/StkShakers.hs
+++ b/Sound/SC3/UGen/Record/StkShakers.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkShakers where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/StkVoicForm.hs b/Sound/SC3/UGen/Record/StkVoicForm.hs
--- a/Sound/SC3/UGen/Record/StkVoicForm.hs
+++ b/Sound/SC3/UGen/Record/StkVoicForm.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.StkVoicForm where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Streson.hs b/Sound/SC3/UGen/Record/Streson.hs
--- a/Sound/SC3/UGen/Record/Streson.hs
+++ b/Sound/SC3/UGen/Record/Streson.hs
@@ -1,4 +1,4 @@
--- | String resonance filter
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Streson where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Summer.hs b/Sound/SC3/UGen/Record/Summer.hs
--- a/Sound/SC3/UGen/Record/Summer.hs
+++ b/Sound/SC3/UGen/Record/Summer.hs
@@ -1,4 +1,4 @@
--- | Pulse counter with floating point steps
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Summer where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Sweep.hs b/Sound/SC3/UGen/Record/Sweep.hs
--- a/Sound/SC3/UGen/Record/Sweep.hs
+++ b/Sound/SC3/UGen/Record/Sweep.hs
@@ -5,13 +5,13 @@
 data Sweep = Sweep {
   rate :: S.Rate,
   trig :: S.UGen,
-  rate_ :: S.UGen
+  rate :: S.UGen
   } deriving (Show)
 sweep :: Sweep
 sweep = Sweep {
   rate = S.AR,
   trig = 0.0,
-  rate_ = 1.0
+  rate = 1.0
   }
 mkSweep :: Sweep -> S.UGen
 mkSweep (Sweep r a' b') = S.mkOsc r "Sweep" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/SwitchDelay.hs b/Sound/SC3/UGen/Record/SwitchDelay.hs
--- a/Sound/SC3/UGen/Record/SwitchDelay.hs
+++ b/Sound/SC3/UGen/Record/SwitchDelay.hs
@@ -1,9 +1,9 @@
--- | feedback delay line implementing switch-and-ramp buffer jumping
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.SwitchDelay where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data SwitchDelay = SwitchDelay {
-  input :: S.UGen,
+  in :: S.UGen,
   drylevel :: S.UGen,
   wetlevel :: S.UGen,
   delaytime :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 switchDelay :: SwitchDelay
 switchDelay = SwitchDelay {
-  input = 0.0,
+  in = 0.0,
   drylevel = 1.0,
   wetlevel = 1.0,
   delaytime = 1.0,
diff --git a/Sound/SC3/UGen/Record/T2A.hs b/Sound/SC3/UGen/Record/T2A.hs
--- a/Sound/SC3/UGen/Record/T2A.hs
+++ b/Sound/SC3/UGen/Record/T2A.hs
@@ -3,12 +3,12 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data T2A = T2A {
-  input :: S.UGen,
+  in :: S.UGen,
   offset :: S.UGen
   } deriving (Show)
 t2A :: T2A
 t2A = T2A {
-  input = 0.0,
+  in = 0.0,
   offset = 0.0
   }
 mkT2A :: T2A -> S.UGen
diff --git a/Sound/SC3/UGen/Record/T2K.hs b/Sound/SC3/UGen/Record/T2K.hs
--- a/Sound/SC3/UGen/Record/T2K.hs
+++ b/Sound/SC3/UGen/Record/T2K.hs
@@ -3,11 +3,11 @@
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data T2K = T2K {
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 t2K :: T2K
 t2K = T2K {
-  input = 0.0
+  in = 0.0
   }
 mkT2K :: T2K -> S.UGen
 mkT2K (T2K  a') = S.mkOsc S.KR "T2K" [a'] 1
diff --git a/Sound/SC3/UGen/Record/TBall.hs b/Sound/SC3/UGen/Record/TBall.hs
--- a/Sound/SC3/UGen/Record/TBall.hs
+++ b/Sound/SC3/UGen/Record/TBall.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data TBall = TBall {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   g :: S.UGen,
   damp :: S.UGen,
   friction :: S.UGen
@@ -12,7 +12,7 @@
 tBall :: TBall
 tBall = TBall {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   g = 10.0,
   damp = 0.0,
   friction = 0.01
diff --git a/Sound/SC3/UGen/Record/TBetaRand.hs b/Sound/SC3/UGen/Record/TBetaRand.hs
--- a/Sound/SC3/UGen/Record/TBetaRand.hs
+++ b/Sound/SC3/UGen/Record/TBetaRand.hs
@@ -1,4 +1,4 @@
--- | triggered beta random distribution
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TBetaRand where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/TBrownRand.hs b/Sound/SC3/UGen/Record/TBrownRand.hs
--- a/Sound/SC3/UGen/Record/TBrownRand.hs
+++ b/Sound/SC3/UGen/Record/TBrownRand.hs
@@ -1,4 +1,4 @@
--- | triggered random walk generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TBrownRand where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/TDelay.hs b/Sound/SC3/UGen/Record/TDelay.hs
--- a/Sound/SC3/UGen/Record/TDelay.hs
+++ b/Sound/SC3/UGen/Record/TDelay.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data TDelay = TDelay {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   dur :: S.UGen
   } deriving (Show)
 tDelay :: TDelay
 tDelay = TDelay {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   dur = 0.1
   }
 mkTDelay :: TDelay -> S.UGen
diff --git a/Sound/SC3/UGen/Record/TGaussRand.hs b/Sound/SC3/UGen/Record/TGaussRand.hs
--- a/Sound/SC3/UGen/Record/TGaussRand.hs
+++ b/Sound/SC3/UGen/Record/TGaussRand.hs
@@ -1,4 +1,4 @@
--- | triggered gaussian random distribution
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TGaussRand where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/TGrains.hs b/Sound/SC3/UGen/Record/TGrains.hs
--- a/Sound/SC3/UGen/Record/TGrains.hs
+++ b/Sound/SC3/UGen/Record/TGrains.hs
@@ -5,7 +5,7 @@
 data TGrains = TGrains {
   trigger :: S.UGen,
   bufnum :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   centerPos :: S.UGen,
   dur :: S.UGen,
   pan :: S.UGen,
@@ -16,7 +16,7 @@
 tGrains = TGrains {
   trigger = 0.0,
   bufnum = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   centerPos = 0.0,
   dur = 0.1,
   pan = 0.0,
diff --git a/Sound/SC3/UGen/Record/TGrains2.hs b/Sound/SC3/UGen/Record/TGrains2.hs
--- a/Sound/SC3/UGen/Record/TGrains2.hs
+++ b/Sound/SC3/UGen/Record/TGrains2.hs
@@ -1,11 +1,11 @@
--- | buffer granulator with linear att/dec
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TGrains2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data TGrains2 = TGrains2 {
   trigger :: S.UGen,
   bufnum :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   centerPos :: S.UGen,
   dur :: S.UGen,
   pan :: S.UGen,
@@ -18,7 +18,7 @@
 tGrains2 = TGrains2 {
   trigger = 0.0,
   bufnum = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   centerPos = 0.0,
   dur = 0.1,
   pan = 0.0,
diff --git a/Sound/SC3/UGen/Record/TGrains3.hs b/Sound/SC3/UGen/Record/TGrains3.hs
--- a/Sound/SC3/UGen/Record/TGrains3.hs
+++ b/Sound/SC3/UGen/Record/TGrains3.hs
@@ -1,11 +1,11 @@
--- | buffer granulator with user envelope
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TGrains3 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data TGrains3 = TGrains3 {
   trigger :: S.UGen,
   bufnum :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   centerPos :: S.UGen,
   dur :: S.UGen,
   pan :: S.UGen,
@@ -19,7 +19,7 @@
 tGrains3 = TGrains3 {
   trigger = 0.0,
   bufnum = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   centerPos = 0.0,
   dur = 0.1,
   pan = 0.0,
diff --git a/Sound/SC3/UGen/Record/TPV.hs b/Sound/SC3/UGen/Record/TPV.hs
--- a/Sound/SC3/UGen/Record/TPV.hs
+++ b/Sound/SC3/UGen/Record/TPV.hs
@@ -1,4 +1,4 @@
--- | Tracking Phase Vocoder
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TPV where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/TTendency.hs b/Sound/SC3/UGen/Record/TTendency.hs
--- a/Sound/SC3/UGen/Record/TTendency.hs
+++ b/Sound/SC3/UGen/Record/TTendency.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TTendency where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/TWChoose.hs b/Sound/SC3/UGen/Record/TWChoose.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/TWChoose.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- | Randomly select one of several inputs
-module Sound.SC3.UGen.Record.TWChoose where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data TWChoose = TWChoose {
-  rate :: S.Rate,
-  trig :: S.UGen,
-  array :: S.UGen,
-  weights :: S.UGen,
-  normalize :: S.UGen
-  } deriving (Show)
-tWChoose :: TWChoose
-tWChoose = TWChoose {
-  rate = S.AR,
-  trig = 0.0,
-  array = 0.0,
-  weights = 0.0,
-  normalize = 0.0
-  }
-mkTWChoose :: TWChoose -> S.UGen
-mkTWChoose (TWChoose r a' b' c' d') = S.mkOsc r "TWChoose" [a',b',c',d'] 1
-instance Make TWChoose where
-  ugen = mkTWChoose
diff --git a/Sound/SC3/UGen/Record/TWindex.hs b/Sound/SC3/UGen/Record/TWindex.hs
--- a/Sound/SC3/UGen/Record/TWindex.hs
+++ b/Sound/SC3/UGen/Record/TWindex.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data TWindex = TWindex {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   array :: S.UGen,
   normalize :: S.UGen
   } deriving (Show)
 tWindex :: TWindex
 tWindex = TWindex {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   array = 0.0,
   normalize = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/Tartini.hs b/Sound/SC3/UGen/Record/Tartini.hs
--- a/Sound/SC3/UGen/Record/Tartini.hs
+++ b/Sound/SC3/UGen/Record/Tartini.hs
@@ -1,9 +1,9 @@
--- | pitch tracker
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Tartini where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data Tartini = Tartini {
-  input :: S.UGen,
+  in :: S.UGen,
   threshold :: S.UGen,
   n :: S.UGen,
   k :: S.UGen,
@@ -12,7 +12,7 @@
   } deriving (Show)
 tartini :: Tartini
 tartini = Tartini {
-  input = 0.0,
+  in = 0.0,
   threshold = 0.93,
   n = 2048.0,
   k = 0.0,
diff --git a/Sound/SC3/UGen/Record/TermanWang.hs b/Sound/SC3/UGen/Record/TermanWang.hs
--- a/Sound/SC3/UGen/Record/TermanWang.hs
+++ b/Sound/SC3/UGen/Record/TermanWang.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TermanWang where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Tilt.hs b/Sound/SC3/UGen/Record/Tilt.hs
--- a/Sound/SC3/UGen/Record/Tilt.hs
+++ b/Sound/SC3/UGen/Record/Tilt.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Tilt where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -7,7 +7,7 @@
   x :: S.UGen,
   y :: S.UGen,
   z :: S.UGen,
-  tilt_ :: S.UGen
+  tilt :: S.UGen
   } deriving (Show)
 tilt :: Tilt
 tilt = Tilt {
@@ -15,7 +15,7 @@
   x = 0.0,
   y = 0.0,
   z = 0.0,
-  tilt_ = 0.0
+  tilt = 0.0
   }
 mkTilt :: Tilt -> S.UGen
 mkTilt (Tilt  a' b' c' d' e') = S.mkOsc S.AR "Tilt" [a',b',c',d',e'] 4
diff --git a/Sound/SC3/UGen/Record/Trig.hs b/Sound/SC3/UGen/Record/Trig.hs
--- a/Sound/SC3/UGen/Record/Trig.hs
+++ b/Sound/SC3/UGen/Record/Trig.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Trig = Trig {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   dur :: S.UGen
   } deriving (Show)
 trig :: Trig
 trig = Trig {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   dur = 0.1
   }
 mkTrig :: Trig -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Trig1.hs b/Sound/SC3/UGen/Record/Trig1.hs
--- a/Sound/SC3/UGen/Record/Trig1.hs
+++ b/Sound/SC3/UGen/Record/Trig1.hs
@@ -4,13 +4,13 @@
 import Sound.SC3.UGen.Record
 data Trig1 = Trig1 {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   dur :: S.UGen
   } deriving (Show)
 trig1 :: Trig1
 trig1 = Trig1 {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   dur = 0.1
   }
 mkTrig1 :: Trig1 -> S.UGen
diff --git a/Sound/SC3/UGen/Record/TrigAvg.hs b/Sound/SC3/UGen/Record/TrigAvg.hs
--- a/Sound/SC3/UGen/Record/TrigAvg.hs
+++ b/Sound/SC3/UGen/Record/TrigAvg.hs
@@ -1,14 +1,14 @@
--- | triggered signal averager
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TrigAvg where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data TrigAvg = TrigAvg {
-  input :: S.UGen,
+  in :: S.UGen,
   trig :: S.UGen
   } deriving (Show)
 trigAvg :: TrigAvg
 trigAvg = TrigAvg {
-  input = 0.0,
+  in = 0.0,
   trig = 0.0
   }
 mkTrigAvg :: TrigAvg -> S.UGen
diff --git a/Sound/SC3/UGen/Record/Tumble.hs b/Sound/SC3/UGen/Record/Tumble.hs
--- a/Sound/SC3/UGen/Record/Tumble.hs
+++ b/Sound/SC3/UGen/Record/Tumble.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.Tumble where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/TwoPole.hs b/Sound/SC3/UGen/Record/TwoPole.hs
--- a/Sound/SC3/UGen/Record/TwoPole.hs
+++ b/Sound/SC3/UGen/Record/TwoPole.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data TwoPole = TwoPole {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   radius :: S.UGen
   } deriving (Show)
 twoPole :: TwoPole
 twoPole = TwoPole {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   radius = 0.8
   }
diff --git a/Sound/SC3/UGen/Record/TwoTube.hs b/Sound/SC3/UGen/Record/TwoTube.hs
--- a/Sound/SC3/UGen/Record/TwoTube.hs
+++ b/Sound/SC3/UGen/Record/TwoTube.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.TwoTube where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/TwoZero.hs b/Sound/SC3/UGen/Record/TwoZero.hs
--- a/Sound/SC3/UGen/Record/TwoZero.hs
+++ b/Sound/SC3/UGen/Record/TwoZero.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data TwoZero = TwoZero {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   freq :: S.UGen,
   radius :: S.UGen
   } deriving (Show)
 twoZero :: TwoZero
 twoZero = TwoZero {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   freq = 440.0,
   radius = 0.8
   }
diff --git a/Sound/SC3/UGen/Record/UHJ2B.hs b/Sound/SC3/UGen/Record/UHJ2B.hs
--- a/Sound/SC3/UGen/Record/UHJ2B.hs
+++ b/Sound/SC3/UGen/Record/UHJ2B.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.UHJ2B where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/VBAP.hs b/Sound/SC3/UGen/Record/VBAP.hs
--- a/Sound/SC3/UGen/Record/VBAP.hs
+++ b/Sound/SC3/UGen/Record/VBAP.hs
@@ -1,10 +1,10 @@
--- | Vector Base Amplitude Panner
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.VBAP where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data VBAP = VBAP {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   bufnum :: S.UGen,
   azimuth :: S.UGen,
   elevation :: S.UGen,
@@ -13,7 +13,7 @@
 vBAP :: VBAP
 vBAP = VBAP {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   bufnum = 0.0,
   azimuth = 0.0,
   elevation = 1.0,
diff --git a/Sound/SC3/UGen/Record/VDiskIn.hs b/Sound/SC3/UGen/Record/VDiskIn.hs
--- a/Sound/SC3/UGen/Record/VDiskIn.hs
+++ b/Sound/SC3/UGen/Record/VDiskIn.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data VDiskIn = VDiskIn {
   bufnum :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   loop :: S.UGen,
   sendID :: S.UGen
   } deriving (Show)
 vDiskIn :: VDiskIn
 vDiskIn = VDiskIn {
   bufnum = 0.0,
-  rate_ = 1.0,
+  rate = 1.0,
   loop = 0.0,
   sendID = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/VMScan2D.hs b/Sound/SC3/UGen/Record/VMScan2D.hs
--- a/Sound/SC3/UGen/Record/VMScan2D.hs
+++ b/Sound/SC3/UGen/Record/VMScan2D.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.VMScan2D where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/VOSIM.hs b/Sound/SC3/UGen/Record/VOSIM.hs
--- a/Sound/SC3/UGen/Record/VOSIM.hs
+++ b/Sound/SC3/UGen/Record/VOSIM.hs
@@ -1,4 +1,4 @@
--- | vosim pulse generator
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.VOSIM where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/VarLag.hs b/Sound/SC3/UGen/Record/VarLag.hs
--- a/Sound/SC3/UGen/Record/VarLag.hs
+++ b/Sound/SC3/UGen/Record/VarLag.hs
@@ -4,7 +4,7 @@
 import Sound.SC3.UGen.Record
 data VarLag = VarLag {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   time :: S.UGen,
   curvature :: S.UGen,
   warp :: S.UGen,
@@ -13,7 +13,7 @@
 varLag :: VarLag
 varLag = VarLag {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   time = 0.1,
   curvature = 0.0,
   warp = 5.0,
diff --git a/Sound/SC3/UGen/Record/Vibrato.hs b/Sound/SC3/UGen/Record/Vibrato.hs
--- a/Sound/SC3/UGen/Record/Vibrato.hs
+++ b/Sound/SC3/UGen/Record/Vibrato.hs
@@ -5,7 +5,7 @@
 data Vibrato = Vibrato {
   rate :: S.Rate,
   freq :: S.UGen,
-  rate_ :: S.UGen,
+  rate :: S.UGen,
   depth :: S.UGen,
   delay :: S.UGen,
   onset :: S.UGen,
@@ -17,7 +17,7 @@
 vibrato = Vibrato {
   rate = S.AR,
   freq = 440.0,
-  rate_ = 6.0,
+  rate = 6.0,
   depth = 0.02,
   delay = 0.0,
   onset = 0.0,
diff --git a/Sound/SC3/UGen/Record/WAmp.hs b/Sound/SC3/UGen/Record/WAmp.hs
--- a/Sound/SC3/UGen/Record/WAmp.hs
+++ b/Sound/SC3/UGen/Record/WAmp.hs
@@ -1,14 +1,14 @@
--- | windowed amplitude follower
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WAmp where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data WAmp = WAmp {
-  input :: S.UGen,
+  in :: S.UGen,
   winSize :: S.UGen
   } deriving (Show)
 wAmp :: WAmp
 wAmp = WAmp {
-  input = 0.0,
+  in = 0.0,
   winSize = 0.1
   }
 mkWAmp :: WAmp -> S.UGen
diff --git a/Sound/SC3/UGen/Record/WalshHadamard.hs b/Sound/SC3/UGen/Record/WalshHadamard.hs
--- a/Sound/SC3/UGen/Record/WalshHadamard.hs
+++ b/Sound/SC3/UGen/Record/WalshHadamard.hs
@@ -1,4 +1,4 @@
--- | decomposition into square waves, and reconstruction
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WalshHadamard where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/WarpZ.hs b/Sound/SC3/UGen/Record/WarpZ.hs
--- a/Sound/SC3/UGen/Record/WarpZ.hs
+++ b/Sound/SC3/UGen/Record/WarpZ.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WarpZ where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/WaveLoss.hs b/Sound/SC3/UGen/Record/WaveLoss.hs
--- a/Sound/SC3/UGen/Record/WaveLoss.hs
+++ b/Sound/SC3/UGen/Record/WaveLoss.hs
@@ -1,19 +1,19 @@
--- | Lose bits of your waves
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WaveLoss where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
 data WaveLoss = WaveLoss {
   rate :: S.Rate,
-  input :: S.UGen,
-  drop_ :: S.UGen,
+  in :: S.UGen,
+  drop :: S.UGen,
   outof :: S.UGen,
   mode :: S.UGen
   } deriving (Show)
 waveLoss :: WaveLoss
 waveLoss = WaveLoss {
   rate = S.AR,
-  input = 0.0,
-  drop_ = 20.0,
+  in = 0.0,
+  drop = 20.0,
   outof = 40.0,
   mode = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/WaveTerrain.hs b/Sound/SC3/UGen/Record/WaveTerrain.hs
--- a/Sound/SC3/UGen/Record/WaveTerrain.hs
+++ b/Sound/SC3/UGen/Record/WaveTerrain.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WaveTerrain where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/WaveletDaub.hs b/Sound/SC3/UGen/Record/WaveletDaub.hs
--- a/Sound/SC3/UGen/Record/WaveletDaub.hs
+++ b/Sound/SC3/UGen/Record/WaveletDaub.hs
@@ -1,4 +1,4 @@
--- | decomposition into Daub4 wavelets, and reconstruction
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WaveletDaub where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/WeaklyNonlinear.hs b/Sound/SC3/UGen/Record/WeaklyNonlinear.hs
--- a/Sound/SC3/UGen/Record/WeaklyNonlinear.hs
+++ b/Sound/SC3/UGen/Record/WeaklyNonlinear.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WeaklyNonlinear where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/WeaklyNonlinear2.hs b/Sound/SC3/UGen/Record/WeaklyNonlinear2.hs
--- a/Sound/SC3/UGen/Record/WeaklyNonlinear2.hs
+++ b/Sound/SC3/UGen/Record/WeaklyNonlinear2.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WeaklyNonlinear2 where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/WidthFirstUGen.hs b/Sound/SC3/UGen/Record/WidthFirstUGen.hs
--- a/Sound/SC3/UGen/Record/WidthFirstUGen.hs
+++ b/Sound/SC3/UGen/Record/WidthFirstUGen.hs
@@ -1,4 +1,4 @@
--- | (not documented)
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WidthFirstUGen where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
diff --git a/Sound/SC3/UGen/Record/Wrap.hs b/Sound/SC3/UGen/Record/Wrap.hs
--- a/Sound/SC3/UGen/Record/Wrap.hs
+++ b/Sound/SC3/UGen/Record/Wrap.hs
@@ -4,14 +4,14 @@
 import Sound.SC3.UGen.Record
 data Wrap = Wrap {
   rate :: S.Rate,
-  input :: S.UGen,
+  in :: S.UGen,
   lo :: S.UGen,
   hi :: S.UGen
   } deriving (Show)
 wrap :: Wrap
 wrap = Wrap {
   rate = S.AR,
-  input = 0.0,
+  in = 0.0,
   lo = 0.0,
   hi = 1.0
   }
diff --git a/Sound/SC3/UGen/Record/WrapIndex.hs b/Sound/SC3/UGen/Record/WrapIndex.hs
--- a/Sound/SC3/UGen/Record/WrapIndex.hs
+++ b/Sound/SC3/UGen/Record/WrapIndex.hs
@@ -5,13 +5,13 @@
 data WrapIndex = WrapIndex {
   rate :: S.Rate,
   bufnum :: S.UGen,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 wrapIndex :: WrapIndex
 wrapIndex = WrapIndex {
   rate = S.AR,
   bufnum = 0.0,
-  input = 0.0
+  in = 0.0
   }
 mkWrapIndex :: WrapIndex -> S.UGen
 mkWrapIndex (WrapIndex r a' b') = S.mkOsc r "WrapIndex" [a',b'] 1
diff --git a/Sound/SC3/UGen/Record/WrapSummer.hs b/Sound/SC3/UGen/Record/WrapSummer.hs
--- a/Sound/SC3/UGen/Record/WrapSummer.hs
+++ b/Sound/SC3/UGen/Record/WrapSummer.hs
@@ -1,4 +1,4 @@
--- | Pulse counter with floating point steps
+-- | (Undocumented class)
 module Sound.SC3.UGen.Record.WrapSummer where
 import qualified Sound.SC3.UGen as S
 import Sound.SC3.UGen.Record
@@ -6,8 +6,8 @@
   rate :: S.Rate,
   trig :: S.UGen,
   step :: S.UGen,
-  min_ :: S.UGen,
-  max_ :: S.UGen,
+  min :: S.UGen,
+  max :: S.UGen,
   reset :: S.UGen,
   resetval :: S.UGen
   } deriving (Show)
@@ -16,8 +16,8 @@
   rate = S.AR,
   trig = 0.0,
   step = 1.0,
-  min_ = 0.0,
-  max_ = 1.0,
+  min = 0.0,
+  max = 1.0,
   reset = 0.0,
   resetval = 0.0
   }
diff --git a/Sound/SC3/UGen/Record/XFade.hs b/Sound/SC3/UGen/Record/XFade.hs
deleted file mode 100644
--- a/Sound/SC3/UGen/Record/XFade.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Sound.SC3.UGen.Record.XFade where
-import qualified Sound.SC3.UGen as S
-import Sound.SC3.UGen.Record
-data XFade = XFade {
-  maxSize :: S.UGen
-  } deriving (Show)
-xFade :: XFade
-xFade = XFade {
-  maxSize = 0.0
-  }
-mkXFade :: XFade -> S.UGen
-mkXFade (XFade  a') = S.mkOsc S.AR "XFade" [a'] 1
-instance Make XFade where
-  ugen = mkXFade
diff --git a/Sound/SC3/UGen/Record/XOut.hs b/Sound/SC3/UGen/Record/XOut.hs
--- a/Sound/SC3/UGen/Record/XOut.hs
+++ b/Sound/SC3/UGen/Record/XOut.hs
@@ -6,14 +6,14 @@
   rate :: S.Rate,
   bus :: S.UGen,
   xfade :: S.UGen,
-  input :: S.UGen
+  channelsArray :: S.UGen
   } deriving (Show)
 xOut :: XOut
 xOut = XOut {
   rate = S.AR,
   bus = 0.0,
   xfade = 0.0,
-  input = 0.0
+  channelsArray = 0.0
   }
 mkXOut :: XOut -> S.UGen
 mkXOut (XOut r a' b' c') = S.mkOsc r "XOut" [a',b',c'] 1
diff --git a/Sound/SC3/UGen/Record/ZeroCrossing.hs b/Sound/SC3/UGen/Record/ZeroCrossing.hs
--- a/Sound/SC3/UGen/Record/ZeroCrossing.hs
+++ b/Sound/SC3/UGen/Record/ZeroCrossing.hs
@@ -4,12 +4,12 @@
 import Sound.SC3.UGen.Record
 data ZeroCrossing = ZeroCrossing {
   rate :: S.Rate,
-  input :: S.UGen
+  in :: S.UGen
   } deriving (Show)
 zeroCrossing :: ZeroCrossing
 zeroCrossing = ZeroCrossing {
   rate = S.AR,
-  input = 0.0
+  in = 0.0
   }
 mkZeroCrossing :: ZeroCrossing -> S.UGen
 mkZeroCrossing (ZeroCrossing r a') = S.mkOsc r "ZeroCrossing" [a'] 1
diff --git a/hsc3-rec.cabal b/hsc3-rec.cabal
--- a/hsc3-rec.cabal
+++ b/hsc3-rec.cabal
@@ -1,16 +1,16 @@
 Name:              hsc3-rec
-Version:           0.12
+Version:           0.14
 Synopsis:          Haskell SuperCollider Record Variants
 Description:       hsc3-rec provides record variants of the
                    unit generator constructors at hsc3.
 License:           GPL
 Category:          Sound
-Copyright:         (c) Rohan Drape and others, 2008-2012
+Copyright:         (c) Rohan Drape and others, 2008-2013
 Author:            Rohan Drape
 Maintainer:        rd@slavepianos.org
 Stability:         Experimental
-Homepage:          http://slavepianos.org/rd/?t=hsc3-rec
-Tested-With:       GHC == 7.0.4
+Homepage:          http://rd.slavepianos.org/?t=hsc3-rec
+Tested-With:       GHC == 7.6.1
 Build-Type:        Simple
 Cabal-Version:     >= 1.8
 
@@ -22,7 +22,7 @@
 
 Library
   Build-Depends:   base == 4.*,
-                   hsc3 == 0.12.*
+                   hsc3 == 0.14.*
   GHC-Options:     -Wall -fwarn-tabs
   Exposed-modules: Sound.SC3.UGen.Record
                    -- the lines below are generated by running
@@ -44,6 +44,8 @@
                    Sound.SC3.UGen.Record.APF
                    Sound.SC3.UGen.Record.ArrayMax
                    Sound.SC3.UGen.Record.ArrayMin
+                   Sound.SC3.UGen.Record.Astrocade
+                   Sound.SC3.UGen.Record.Atari2600
                    Sound.SC3.UGen.Record.AtsAmp
                    Sound.SC3.UGen.Record.AtsBand
                    Sound.SC3.UGen.Record.AtsFreq
@@ -56,6 +58,7 @@
                    Sound.SC3.UGen.Record.AudioControl
                    Sound.SC3.UGen.Record.AudioMSG
                    Sound.SC3.UGen.Record.AverageOutput
+                   Sound.SC3.UGen.Record.AY8910
                    Sound.SC3.UGen.Record.AY
                    Sound.SC3.UGen.Record.B2A
                    Sound.SC3.UGen.Record.B2Ster
@@ -69,6 +72,8 @@
                    Sound.SC3.UGen.Record.BBlockerBuf
                    Sound.SC3.UGen.Record.BeatTrack2
                    Sound.SC3.UGen.Record.BeatTrack
+                   Sound.SC3.UGen.Record.Beep
+                   Sound.SC3.UGen.Record.BeepU
                    Sound.SC3.UGen.Record.BEQSuite
                    Sound.SC3.UGen.Record.BFDecode1
                    Sound.SC3.UGen.Record.BFDecoder
@@ -83,6 +88,10 @@
                    Sound.SC3.UGen.Record.BiPanB2
                    Sound.SC3.UGen.Record.BLBufRd
                    Sound.SC3.UGen.Record.Blip
+                   Sound.SC3.UGen.Record.BlitB3
+                   Sound.SC3.UGen.Record.BlitB3Saw
+                   Sound.SC3.UGen.Record.BlitB3Square
+                   Sound.SC3.UGen.Record.BlitB3Tri
                    Sound.SC3.UGen.Record.BLowPass
                    Sound.SC3.UGen.Record.BLowShelf
                    Sound.SC3.UGen.Record.BMoog
@@ -123,6 +132,7 @@
                    Sound.SC3.UGen.Record.Changed
                    Sound.SC3.UGen.Record.ChaosGen
                    Sound.SC3.UGen.Record.CheckBadValues
+                   Sound.SC3.UGen.Record.Chromagram
                    Sound.SC3.UGen.Record.ChuaL
                    Sound.SC3.UGen.Record.CircleRamp
                    Sound.SC3.UGen.Record.ClearBuf
@@ -191,6 +201,8 @@
                    Sound.SC3.UGen.Record.DoubleWell3
                    Sound.SC3.UGen.Record.DoubleWell
                    Sound.SC3.UGen.Record.Dpoll
+                   Sound.SC3.UGen.Record.DPW3Tri
+                   Sound.SC3.UGen.Record.DPW4Saw
                    Sound.SC3.UGen.Record.Drand
                    Sound.SC3.UGen.Record.Dreset
                    Sound.SC3.UGen.Record.DriveNoise
@@ -207,7 +219,6 @@
                    Sound.SC3.UGen.Record.Dust
                    Sound.SC3.UGen.Record.Duty
                    Sound.SC3.UGen.Record.Dwhite
-                   Sound.SC3.UGen.Record.Dwrand
                    Sound.SC3.UGen.Record.Dxrand
                    Sound.SC3.UGen.Record.DynKlang
                    Sound.SC3.UGen.Record.DynKlank
@@ -218,6 +229,7 @@
                    Sound.SC3.UGen.Record.FBSineC
                    Sound.SC3.UGen.Record.FBSineL
                    Sound.SC3.UGen.Record.FBSineN
+                   Sound.SC3.UGen.Record.FeatureSave
                    Sound.SC3.UGen.Record.FFTCentroid
                    Sound.SC3.UGen.Record.FFTComplexDev
                    Sound.SC3.UGen.Record.FFTCrest
@@ -225,14 +237,12 @@
                    Sound.SC3.UGen.Record.FFTFlux
                    Sound.SC3.UGen.Record.FFTFluxPos
                    Sound.SC3.UGen.Record.FFT
-                   Sound.SC3.UGen.Record.FFTInterleave
                    Sound.SC3.UGen.Record.FFTMKL
                    Sound.SC3.UGen.Record.FFTPeak
                    Sound.SC3.UGen.Record.FFTPhaseDev
                    Sound.SC3.UGen.Record.FFTPower
                    Sound.SC3.UGen.Record.FFTSlope
                    Sound.SC3.UGen.Record.FFTSpread
-                   Sound.SC3.UGen.Record.FFTTriggered
                    Sound.SC3.UGen.Record.FFTTrigger
                    Sound.SC3.UGen.Record.Fhn2DC
                    Sound.SC3.UGen.Record.Fhn2DL
@@ -243,6 +253,7 @@
                    Sound.SC3.UGen.Record.FincoSprottM
                    Sound.SC3.UGen.Record.FincoSprottS
                    Sound.SC3.UGen.Record.FitzHughNagumo
+                   Sound.SC3.UGen.Record.FM7
                    Sound.SC3.UGen.Record.FMGrainBBF
                    Sound.SC3.UGen.Record.FMGrainBF
                    Sound.SC3.UGen.Record.FMGrainB
@@ -293,6 +304,7 @@
                    Sound.SC3.UGen.Record.FreqShift
                    Sound.SC3.UGen.Record.Friction
                    Sound.SC3.UGen.Record.FSinOsc
+                   Sound.SC3.UGen.Record.Gammatone
                    Sound.SC3.UGen.Record.Gate
                    Sound.SC3.UGen.Record.GaussClass
                    Sound.SC3.UGen.Record.GaussTrig
@@ -308,6 +320,8 @@
                    Sound.SC3.UGen.Record.Gendy4
                    Sound.SC3.UGen.Record.Gendy5
                    Sound.SC3.UGen.Record.Getenv
+                   Sound.SC3.UGen.Record.GlitchBPF
+                   Sound.SC3.UGen.Record.GlitchBRF
                    Sound.SC3.UGen.Record.GlitchHPF
                    Sound.SC3.UGen.Record.GlitchRHPF
                    Sound.SC3.UGen.Record.Goertzel
@@ -318,6 +332,7 @@
                    Sound.SC3.UGen.Record.GravityGrid2
                    Sound.SC3.UGen.Record.GravityGrid
                    Sound.SC3.UGen.Record.GVerb
+                   Sound.SC3.UGen.Record.HairCell
                    Sound.SC3.UGen.Record.Hasher
                    Sound.SC3.UGen.Record.Henon2DC
                    Sound.SC3.UGen.Record.Henon2DL
@@ -361,6 +376,7 @@
                    Sound.SC3.UGen.Record.KeyTrack
                    Sound.SC3.UGen.Record.Klang
                    Sound.SC3.UGen.Record.Klank
+                   Sound.SC3.UGen.Record.KMeansRT
                    Sound.SC3.UGen.Record.KmeansToBPSet1
                    Sound.SC3.UGen.Record.Lag2
                    Sound.SC3.UGen.Record.Lag2UD
@@ -405,14 +421,12 @@
                    Sound.SC3.UGen.Record.Line
                    Sound.SC3.UGen.Record.Linen
                    Sound.SC3.UGen.Record.LinExp
-                   Sound.SC3.UGen.Record.LinLin
                    Sound.SC3.UGen.Record.LinPan2
                    Sound.SC3.UGen.Record.LinRand
                    Sound.SC3.UGen.Record.LinXFade2
                    Sound.SC3.UGen.Record.ListDUGen
                    Sound.SC3.UGen.Record.ListTrig2
                    Sound.SC3.UGen.Record.ListTrig
-                   Sound.SC3.UGen.Record.LocalIn
                    Sound.SC3.UGen.Record.LocalOut
                    Sound.SC3.UGen.Record.Logger
                    Sound.SC3.UGen.Record.Logistic
@@ -441,6 +455,7 @@
                    Sound.SC3.UGen.Record.MCLDChaosGen
                    Sound.SC3.UGen.Record.MdaPiano
                    Sound.SC3.UGen.Record.MeanTriggered
+                   Sound.SC3.UGen.Record.Meddis
                    Sound.SC3.UGen.Record.Median
                    Sound.SC3.UGen.Record.MedianTriggered
                    Sound.SC3.UGen.Record.MembraneCircle
@@ -458,7 +473,9 @@
                    Sound.SC3.UGen.Record.MouseX
                    Sound.SC3.UGen.Record.MouseY
                    Sound.SC3.UGen.Record.MultiOutUGen
+                   Sound.SC3.UGen.Record.MZPokey
                    Sound.SC3.UGen.Record.NeedleRect
+                   Sound.SC3.UGen.Record.Nes2
                    Sound.SC3.UGen.Record.NestedAllpassC
                    Sound.SC3.UGen.Record.NestedAllpassL
                    Sound.SC3.UGen.Record.NestedAllpassN
@@ -489,7 +506,6 @@
                    Sound.SC3.UGen.Record.PanAz
                    Sound.SC3.UGen.Record.PanB2
                    Sound.SC3.UGen.Record.PanB
-                   Sound.SC3.UGen.Record.Panner
                    Sound.SC3.UGen.Record.PanX2D
                    Sound.SC3.UGen.Record.PanX
                    Sound.SC3.UGen.Record.PartConv
@@ -507,12 +523,14 @@
                    Sound.SC3.UGen.Record.PlaneTree
                    Sound.SC3.UGen.Record.PlayBuf
                    Sound.SC3.UGen.Record.Pluck
+                   Sound.SC3.UGen.Record.Pokey
                    Sound.SC3.UGen.Record.PosRatio
                    Sound.SC3.UGen.Record.PrintVal
                    Sound.SC3.UGen.Record.PSinGrain
                    Sound.SC3.UGen.Record.PulseCount
                    Sound.SC3.UGen.Record.PulseDivider
                    Sound.SC3.UGen.Record.Pulse
+                   Sound.SC3.UGen.Record.PureUGen
                    Sound.SC3.UGen.Record.PV_Add
                    Sound.SC3.UGen.Record.PV_BinBufRd
                    Sound.SC3.UGen.Record.PV_BinDelay
@@ -599,12 +617,23 @@
                    Sound.SC3.UGen.Record.Rand
                    Sound.SC3.UGen.Record.RandID
                    Sound.SC3.UGen.Record.RandSeed
+                   Sound.SC3.UGen.Record.RDelayMap
+                   Sound.SC3.UGen.Record.RDelaySetB
+                   Sound.SC3.UGen.Record.RDelaySet
                    Sound.SC3.UGen.Record.RecordBuf
+                   Sound.SC3.UGen.Record.RedDPCMdecode
+                   Sound.SC3.UGen.Record.RedDPCMencode
+                   Sound.SC3.UGen.Record.RedLbyl
+                   Sound.SC3.UGen.Record.RedNoise
+                   Sound.SC3.UGen.Record.RedPhasor2
+                   Sound.SC3.UGen.Record.RedPhasor
                    Sound.SC3.UGen.Record.RegaliaMitraEQ
                    Sound.SC3.UGen.Record.ReplaceOut
                    Sound.SC3.UGen.Record.Resonz
+                   Sound.SC3.UGen.Record.RFreezer
                    Sound.SC3.UGen.Record.RHPF
                    Sound.SC3.UGen.Record.Ringz
+                   Sound.SC3.UGen.Record.RLoopSet
                    Sound.SC3.UGen.Record.RLPFD
                    Sound.SC3.UGen.Record.RLPF
                    Sound.SC3.UGen.Record.RMAFoodChainL
@@ -616,6 +645,13 @@
                    Sound.SC3.UGen.Record.RosslerResL
                    Sound.SC3.UGen.Record.Rotate2
                    Sound.SC3.UGen.Record.Rotate
+                   Sound.SC3.UGen.Record.RPlayTrace
+                   Sound.SC3.UGen.Record.RShufflerB
+                   Sound.SC3.UGen.Record.RShufflerL
+                   Sound.SC3.UGen.Record.RTraceRd
+                   Sound.SC3.UGen.Record.RTraceRdX
+                   Sound.SC3.UGen.Record.RTraceRdY
+                   Sound.SC3.UGen.Record.RTraceRdZ
                    Sound.SC3.UGen.Record.RunningMax
                    Sound.SC3.UGen.Record.RunningMin
                    Sound.SC3.UGen.Record.RunningSum
@@ -626,13 +662,12 @@
                    Sound.SC3.UGen.Record.ScopeOut
                    Sound.SC3.UGen.Record.Select
                    Sound.SC3.UGen.Record.SendTrig
+                   Sound.SC3.UGen.Record.SensoryDissonance
                    Sound.SC3.UGen.Record.SetBuf
                    Sound.SC3.UGen.Record.SetResetFF
                    Sound.SC3.UGen.Record.Shaper
-                   Sound.SC3.UGen.Record.SharedIn
-                   Sound.SC3.UGen.Record.SharedOut
+                   Sound.SC3.UGen.Record.SID6581f
                    Sound.SC3.UGen.Record.Sieve1
-                   Sound.SC3.UGen.Record.Silent
                    Sound.SC3.UGen.Record.SineShaper
                    Sound.SC3.UGen.Record.SinGrainBBF
                    Sound.SC3.UGen.Record.SinGrainBF
@@ -647,8 +682,10 @@
                    Sound.SC3.UGen.Record.Slew
                    Sound.SC3.UGen.Record.SLOnset
                    Sound.SC3.UGen.Record.Slope
+                   Sound.SC3.UGen.Record.Slub
                    Sound.SC3.UGen.Record.SmoothDecimator
                    Sound.SC3.UGen.Record.SMS
+                   Sound.SC3.UGen.Record.SN76489
                    Sound.SC3.UGen.Record.SoftClipAmp4
                    Sound.SC3.UGen.Record.SoftClipAmp8
                    Sound.SC3.UGen.Record.SoftClipAmp
@@ -662,6 +699,9 @@
                    Sound.SC3.UGen.Record.SpecCentroid
                    Sound.SC3.UGen.Record.SpecFlatness
                    Sound.SC3.UGen.Record.SpecPcile
+                   Sound.SC3.UGen.Record.SpectralEntropy
+                   Sound.SC3.UGen.Record.SplayAz
+                   Sound.SC3.UGen.Record.Splay
                    Sound.SC3.UGen.Record.Spreader
                    Sound.SC3.UGen.Record.Spring
                    Sound.SC3.UGen.Record.SpruceBudworm
@@ -720,7 +760,6 @@
                    Sound.SC3.UGen.Record.Trig
                    Sound.SC3.UGen.Record.TTendency
                    Sound.SC3.UGen.Record.Tumble
-                   Sound.SC3.UGen.Record.TWChoose
                    Sound.SC3.UGen.Record.TWindex
                    Sound.SC3.UGen.Record.TwoPole
                    Sound.SC3.UGen.Record.TwoTube
@@ -750,7 +789,6 @@
                    Sound.SC3.UGen.Record.WrapIndex
                    Sound.SC3.UGen.Record.WrapSummer
                    Sound.SC3.UGen.Record.XFade2
-                   Sound.SC3.UGen.Record.XFade
                    Sound.SC3.UGen.Record.XLine
                    Sound.SC3.UGen.Record.XOut
                    Sound.SC3.UGen.Record.ZeroCrossing
diff --git a/mk/build.hs b/mk/build.hs
--- a/mk/build.hs
+++ b/mk/build.hs
@@ -2,6 +2,7 @@
 import Sound.SC3.UGen.Rate {- hsc3 -}
 import qualified Sound.SC3.UGen.DB.Data as D {- hsc3-db -}
 import qualified Sound.SC3.UGen.DB.Record as D
+import qualified Sound.SC3.UGen.DB.Rename as D
 import System.FilePath {- filepath -}
 import Text.Printf
 
@@ -19,11 +20,13 @@
       [] -> D.ugen_default_rate u
       _ -> undefined
 
+--u_input_nm u k = D.input_name (D.ugen_inputs u !! k)
+
 -- List of field names and types.
 inputs_of :: D.U -> [(String, String)]
 inputs_of u =
     let is = D.ugen_inputs u
-        bs = zip (map (input_name u) is) (repeat "S.UGen")
+        bs = zip (map D.input_name is) (repeat "S.UGen")
     in if needs_rate u
        then ("rate", "S.Rate") : bs
        else bs
@@ -60,12 +63,12 @@
 gen_defaults :: D.U -> [String]
 gen_defaults u =
     let (D.U n _ r _ is _ _ _) = u
-        nm = rename_ugen (downcase_first_char n)
+        nm = D.rename_ugen (downcase_first_char n)
         pre = [ printf "%s :: %s" nm n
               , printf "%s = %s {" nm n]
         post = [ "  }" ]
         opt = if needs_rate u then [printf "  rate = S.%s," (show r)] else []
-        f i = printf "  %s = %f" (input_name u i) (D.input_default i)
+        f i = printf "  %s = %f" (D.input_name i) (D.input_default i)
     in pre ++ opt ++ with_comma (map f is) ++ post
 
 -- Generate a list of variable names (a,b..)
