diff --git a/csound-expression.cabal b/csound-expression.cabal
--- a/csound-expression.cabal
+++ b/csound-expression.cabal
@@ -1,5 +1,5 @@
 Name:          csound-expression
-Version:       1.0.3
+Version:       1.0.4
 Cabal-Version: >= 1.6
 License:       BSD3
 License-file:  LICENSE
diff --git a/src/Csound/Exp.hs b/src/Csound/Exp.hs
--- a/src/Csound/Exp.hs
+++ b/src/Csound/Exp.hs
@@ -212,7 +212,7 @@
     | Ceil | Floor | Frac | Round | IntOp
     | Abs | ExpOp | Log | Log10 | Logbtwo | Sqrt    
     | Ampdb | Ampdbfs | Dbamp | Dbfsamp 
-    | Cpspch
+    | Cent | Cpsmidinn | Cpsoct | Cpspch | Octave | Octcps | Octmidinn | Octpch | Pchmidinn | Pchoct | Semitone
     deriving (Show, Eq, Ord)
 
 -------------------------------------------------------
diff --git a/src/Csound/Exp/Wrapper.hs b/src/Csound/Exp/Wrapper.hs
--- a/src/Csound/Exp/Wrapper.hs
+++ b/src/Csound/Exp/Wrapper.hs
@@ -161,7 +161,7 @@
 tabMap es ps = M.fromList $ zip (nub $ (concat $ mapM (getScoreTabs =<< ) ps) ++ (getInstrTabs =<< es)) [1 ..]
     
 getInstrTabs :: E -> [LowTab]
-getInstrTabs = cata $ \re -> case fmap fromPrimOr $ ratedExpExp re of    
+getInstrTabs = cata $ \re -> (maybe [] id $ ratedExpDepends re) ++ case fmap fromPrimOr $ ratedExpExp re of    
     ExpPrim p -> getPrimTabs p
     Tfm _ as -> concat as
     ConvertRate _ _ a -> a
diff --git a/src/Csound/Opcode/Data.hs b/src/Csound/Opcode/Data.hs
--- a/src/Csound/Opcode/Data.hs
+++ b/src/Csound/Opcode/Data.hs
@@ -46,7 +46,7 @@
     ampdb, ampdbfs, dbamp, dbfsamp,
 
     -- ** Pitch conversions
-    cpspch,
+    cent, cpsmidinn, cpsoct, cpspch, octave, octcps, octmidinn, octpch, pchmidinn, pchoct, semitone,
 
     -- ** Integer and fractional parts
     fracD, floorD, ceilD, intD, roundD,
@@ -374,14 +374,22 @@
 -- amplitude conversions
 
 -- | Floating number types: 'Sig' or 'D'.
-class Val a => Nums a 
-instance Nums Sig
-instance Nums D
+class Val a => Nums a where
+    isSig :: a -> Bool 
+    
+instance Nums Sig where isSig = const True
+instance Nums D   where isSig = const False
 
 conv :: Nums a => NumOp -> a -> a
 conv op a = noRate $ ExpNum $ PreInline op [toPrimOr $ toE a]
 
+convKr :: Nums a => NumOp -> a -> a
+convKr op a = conv op $ phi a
+    where phi
+            | isSig a = setRate Kr 
+            | otherwise = id
 
+
 -- | Returns the amplitude equivalent of the decibel value x. Thus:
 --
 -- *    60 dB = 1000
@@ -420,7 +428,7 @@
 -- doc: <http://www.csounds.com/manual/html/dbamp.html>
 
 dbamp :: Nums a => a -> a
-dbamp = conv Dbamp
+dbamp = convKr Dbamp
 
 -- | Returns the decibel equivalent of the raw amplitude x, relative to full scale amplitude. Full scale is assumed to be 16 bit. New is Csound version 4.10. 
 --
@@ -428,18 +436,100 @@
 --
 -- doc: <http://www.csounds.com/manual/html/dbfsamp.html>
 dbfsamp :: Nums a => a -> a 
-dbfsamp = conv Dbfsamp 
+dbfsamp = convKr Dbfsamp 
 
 ------------------------------------------------------------------------------------------
 -- pitch conversions
 
+-- | Calculates a factor to raise/lower a frequency by a given amount of cents. 
+--
+-- > cent(x) (no rate restriction)
+--
+-- doc: <http://www.csounds.com/manual/html/cent.html>
+cent :: Nums a => a -> a
+cent = conv Cent
+
+-- | Converts a Midi note number value to cycles-per-second. 
+--
+-- > cpsmidinn (MidiNoteNumber)  (init- or control-rate args only)
+--
+-- doc: <http://www.csounds.com/manual/html/cpsmidinn.html>
+cpsmidinn :: Nums a => a -> a
+cpsmidinn = convKr Cpsmidinn
+
+-- | Converts an octave-point-decimal value to cycles-per-second. 
+--
+-- > cpsoct(oct) (no rate restriction)
+--
+-- doc: <http://www.csounds.com/manual/html/cpsoct.html>
+cpsoct :: Nums a => a -> a
+cpsoct = conv Cpsoct
+
 -- | Converts a pitch-class value to cycles-per-second. 
 --
 -- > cpspch (pch)  (init- or control-rate args only)
 --
 -- doc: <http://www.csounds.com/manual/html/cpspch.html>
 cpspch :: Nums a => a -> a
-cpspch = conv Cpspch
+cpspch = convKr Cpspch
+
+
+-- | Calculates a factor to raise/lower a frequency by a given amount of octaves. 
+--
+-- > octave(x) (no rate restriction)
+--
+-- doc: <http://www.csounds.com/manual/html/octave.html>
+octave :: Nums a => a -> a
+octave = conv Octave
+
+-- | Converts a cycles-per-second value to octave-point-decimal. 
+--
+-- > octcps (cps)  (init- or control-rate args only)
+--
+-- doc: <http://www.csounds.com/manual/html/octcps.html>
+octcps :: Nums a => a -> a
+octcps = convKr Octcps
+
+-- | Converts a Midi note number value to octave-point-decimal. 
+--
+-- > octmidinn (MidiNoteNumber)  (init- or control-rate args only)
+--
+-- doc: <http://www.csounds.com/manual/html/octmidinn.html>
+octmidinn :: Nums a => a -> a
+octmidinn = convKr Octmidinn
+
+
+-- | Converts a pitch-class value to octave-point-decimal. 
+--
+-- > octpch (pch)  (init- or control-rate args only)
+--
+-- doc: <http://www.csounds.com/manual/html/octpch.html>
+octpch :: Nums a => a -> a
+octpch = convKr Octpch
+
+-- | Converts a Midi note number value to octave point pitch-class units. 
+--
+-- > pchmidinn (MidiNoteNumber)  (init- or control-rate args only)
+--
+-- doc: <http://www.csounds.com/manual/html/pchmidinn.html>
+pchmidinn :: Nums a => a -> a
+pchmidinn = convKr Pchmidinn
+
+-- | Converts an octave-point-decimal value to pitch-class. 
+--
+-- > pchoct (oct)  (init- or control-rate args only)
+--
+-- doc: <http://www.csounds.com/manual/html/pchoct.html>
+pchoct :: Nums a => a -> a
+pchoct = convKr Pchoct
+
+-- | Calculates a factor to raise/lower a frequency by a given amount of semitones. 
+--
+-- > semitone(x) (no rate restriction)
+--
+-- doc: <http://www.csounds.com/manual/html/semitone.html>
+semitone :: Nums a => a -> a
+semitone = conv Semitone
 
 -----------------------------------------------------
 -- * Printing and Strings
diff --git a/src/Csound/Render/Pretty.hs b/src/Csound/Render/Pretty.hs
--- a/src/Csound/Render/Pretty.hs
+++ b/src/Csound/Render/Pretty.hs
@@ -188,36 +188,17 @@
     Mul -> bi "*"
     Div -> bi "/"
     Neg -> uno "-"    
-    Pow -> bi "^"
+    Pow -> bi "^"    
     Mod -> bi "%"
-    Sin -> fun "sin"
-    Cos -> fun "cos"
-    Sinh -> fun "sinh"    
-    Cosh -> fun "cosh"
-    Tan -> fun "tan"
-    Tanh -> fun "tanh"    
-    Sininv -> fun "sininv"
-    Cosinv -> fun "cosinv"
-    Taninv -> fun "taninv"        
-    Abs -> fun "abs"    
-    Ceil -> fun "ceil" 
+    
     ExpOp -> fun "exp"
-    Floor -> fun "floor" 
-    Frac -> fun "frac"
     IntOp -> fun "int" 
-    Log -> fun "log" 
-    Log10 -> fun "log10" 
-    Logbtwo -> fun "logbtwo" 
-    Round -> fun "round"
-    Sqrt -> fun "sqrt"    
-
-    Ampdb -> fun "ampdb" 
-    Ampdbfs -> fun "ampdbfs" 
-    Dbamp -> fun "dbamp"
-    Dbfsamp -> fun "dbfsamp"    
-    Cpspch -> fun "cpspch"
+    
+    x -> fun (firstLetterToLower $ show x)        
     where bi  = binaries
           uno = unaries
           fun = funcs
+          firstLetterToLower (x:xs) = toLower x : xs
+          
 
 
