diff --git a/Dirt.hs b/Dirt.hs
--- a/Dirt.hs
+++ b/Dirt.hs
@@ -47,14 +47,8 @@
                 }
 
 
-myip = readProcess "./getip.pl" [] []
-clockip = readProcess "./getclockip.pl" [] []
-
-dirtstream name = do localip <- myip
-                     remoteip <- clockip
-                     let uniqname = localip ++ "-" ++ name
-                     stream localip remoteip uniqname "127.0.0.1" 7771 dirt
-kstream name = stream "127.0.0.1" "127.0.0.1" name "127.0.0.1" 7771 kriole
+dirtstream name = stream "127.0.0.1" 7771 dirt
+kstream name = stream "127.0.0.1" 7771 kriole
 
 dirtToColour :: OscPattern -> Pattern ColourD
 dirtToColour p = s
diff --git a/Stream.hs b/Stream.hs
--- a/Stream.hs
+++ b/Stream.hs
@@ -6,9 +6,7 @@
 import Sound.OSC.FD
 import Sound.OpenSoundControl
 import Control.Applicative
---import Network.Netclock.Client
-import Tempo (Tempo, logicalTime)
-import TempoClient (clocked)
+import Tempo (Tempo, logicalTime, clocked)
 import Control.Concurrent
 import Control.Concurrent.MVar
 import Pattern
@@ -91,26 +89,25 @@
 applyShape' s m | hasRequired s m = Just $ Map.union m (defaultMap s)
                 | otherwise = Nothing
 
-start :: String -> String -> String -> String -> Int -> OscShape -> IO (MVar (OscPattern))
-start client server name address port shape
+start :: String -> Int -> OscShape -> IO (MVar (OscPattern))
+start address port shape
   = do patternM <- newMVar silence
        putStrLn $ "connecting " ++ (show address) ++ ":" ++ (show port)
        s <- openUDP address port
        putStrLn $ "connected "
        let ot = (onTick s shape patternM) :: Tempo -> Int -> IO ()
-       --forkIO $ clocked name client server 1 ot
-       forkIO $ clocked server ot
+       forkIO $ clocked ot
        return patternM
 
-stream :: String -> String -> String -> String -> Int -> OscShape -> IO (OscPattern -> IO ())
-stream client server name address port shape 
-  = do patternM <- start client server name address port shape
+stream :: String -> Int -> OscShape -> IO (OscPattern -> IO ())
+stream address port shape 
+  = do patternM <- start address port shape
        return $ \p -> do swapMVar patternM p
                          return ()
 
-streamcallback :: (OscPattern -> IO ()) -> String -> String -> String -> String -> Int -> OscShape -> IO (OscPattern -> IO ())
-streamcallback callback client server name address port shape 
-  = do f <- stream client server name address port shape
+streamcallback :: (OscPattern -> IO ()) -> String -> Int -> OscShape -> IO (OscPattern -> IO ())
+streamcallback callback server port shape 
+  = do f <- stream server port shape
        let f' p = do callback p
                      f p
        return f'
diff --git a/doc/tidal.pandoc b/doc/tidal.pandoc
--- a/doc/tidal.pandoc
+++ b/doc/tidal.pandoc
@@ -7,21 +7,80 @@
 Great Good" (which has a free online version). Or, you could just try
 learning enough by playing around with Tidal.
 
+## Installation
+
+Tidal is developed under Linux, and although it should be possible to
+run it under a different operating system, this has not yet been
+tried.
+
+### Installing Dirt
+
 Tidal does not include a synthesiser, but instead communicates with an
 external synthesiser using the Open Sound Control protocol. It has
-been developed for use with a particular synthesiser called
-"dirt". You'll need to run it with "jack audio".
+been developed for use with a particular software sampler called
+"dirt". You'll need to run it with "jack audio". Here's an example of
+the commands needed to compile it under a debian-derived linux
+distribution (including ubuntu and mint).
 
-Currently about the only interface to Tidal is the emacs editor. To
-install it you'll need to put two lines into your .emacs file like
-this, change ~/projects/tidal/ to the location of your tidal folder:
+    apt-get install build-essential libsndfile1-dev libsamplerate0-dev liblo-dev libjack-dev jackd git
+    git clone https://github.com/yaxu/Dirt.git
+    cd Dirt
+    make clean; make
 
+Then you'll have to start jack:
+
+    jackd -d alsa &
+
+If that doesn't work, you might well have something called
+"pulseaudio" in control of your sound. In that case, this should work:
+
+    /usr/bin/pasuspender -- jackd -d alsa &
+
+And finally you should be able to start dirt with this:
+
+    ./dirt &
+
+### Tidal
+
+
+Tidal is embedded in the Haskell language, so you'll have to install
+the haskell interpreter and some libraries, including tidal
+itself. Under debian, you'd install haskell like this:
+
+   sudo apt-get install ghc6 cabal-install
+
+Or otherwise you could grab it from http://www.haskell.org/platform/
+
+Once Haskell is installed, you can install tidal like this:
+   cabal install tidal
+
+### Emacs
+
+Currently about the only interface to Tidal is the emacs
+editor. Debian users can install emacs, along with its haskell
+front-end, this way:
+
+    sudo apt-get install emacs24 haskell-mode
+
+To install the emacs interface to tidal, you'll need to edit a
+configuration file in your home folder called `.emacs`. If it doesn't
+exist, create it. Then, add the following, replacing
+`~/projects/tidal` with the location of the `tidal.el` file.
+
   (add-to-list 'load-path "~/projects/tidal")
   (require 'tidal)
 
-Now open a new file in your tidal folder, called something like
+If tidal.el did not come with this document, you can grab it here:
+  https://raw.github.com/yaxu/Tidal/master/tidal.el
+
+### Testing, testing...
+
+Now start emacs, and open a new file called something like
 "helloworld.tidal". To start tidal, you type `Ctrl-C` then `Ctrl-S`.
 
+All being well you should now be able to start making some sounds,
+lets start with some simple sequences.
+
 ## Sequences
 
 Tidal starts with nine connections to the dirt synthesiser, named from
@@ -300,3 +359,8 @@
 
 Plus more to be discovered!
 
+# Acknowledgments
+
+Special thanks to l'ull cec (http://lullcec.org) and hangar
+(http://hangar.org) for supporting the documentation and release of
+tidal as part of the ADDICTED2RANDOM project.
diff --git a/doc/tidal.pdf b/doc/tidal.pdf
Binary files a/doc/tidal.pdf and b/doc/tidal.pdf differ
diff --git a/tidal.cabal b/tidal.cabal
--- a/tidal.cabal
+++ b/tidal.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.2
+Version:             0.2.1
 
 -- A short (one-line) description of the package.
 Synopsis:            Pattern language for improvised music
@@ -51,7 +51,7 @@
   Exposed-modules:     Strategies, Dirt, Pattern, Stream 
   
   -- Packages needed in order to build this package.
-  Build-depends: base < 5, process, parsec, hosc == 0.13, hashable, colour, containers, time, websockets, text, mtl
+  Build-depends: base < 5, process, parsec, hosc == 0.13, hashable, colour, containers, time, websockets, text, mtl, transformers
   
   -- Modules not exported by this package.
   -- Other-modules:       
