diff --git a/.git/COMMIT_EDITMSG b/.git/COMMIT_EDITMSG
new file mode 100644
--- /dev/null
+++ b/.git/COMMIT_EDITMSG
@@ -0,0 +1,1 @@
+Binary encoding fixes.
diff --git a/.git/FETCH_HEAD b/.git/FETCH_HEAD
--- a/.git/FETCH_HEAD
+++ b/.git/FETCH_HEAD
@@ -1,1 +1,1 @@
-ef06402d714aa53dae0ba9c74b68d8b4ddea1329		branch 'master' of https://github.com/Euterpea/Euterpea2
+02f0974406cb38a71a2bdfe8204e87bd0cd03892		branch 'master' of https://github.com/Euterpea/Euterpea2
diff --git a/.git/ORIG_HEAD b/.git/ORIG_HEAD
--- a/.git/ORIG_HEAD
+++ b/.git/ORIG_HEAD
@@ -1,1 +1,1 @@
-23b0fe619f7f91be4123ef976dd9284c11c1093a
+bd913f30e7561f8c842deaed7b028823aa822203
diff --git a/.git/index b/.git/index
Binary files a/.git/index and b/.git/index differ
diff --git a/.git/logs/HEAD b/.git/logs/HEAD
--- a/.git/logs/HEAD
+++ b/.git/logs/HEAD
@@ -1,2 +1,5 @@
 0000000000000000000000000000000000000000 23b0fe619f7f91be4123ef976dd9284c11c1093a Donya Quick <donyaquick@gmail.com> 1495035254 -0700	clone: from https://github.com/Euterpea/Euterpea2.git
 23b0fe619f7f91be4123ef976dd9284c11c1093a ef06402d714aa53dae0ba9c74b68d8b4ddea1329 Donya Quick <donyaquick@gmail.com> 1496256684 -0500	pull --no-rebase --progress origin: Fast-forward
+ef06402d714aa53dae0ba9c74b68d8b4ddea1329 957f3714d66fa6bd059f71b91a1e725b1d2e08a5 Donya Quick <donyaquick@gmail.com> 1499191363 -0400	commit: Misc changes
+957f3714d66fa6bd059f71b91a1e725b1d2e08a5 bd913f30e7561f8c842deaed7b028823aa822203 Donya Quick <donyaquick@gmail.com> 1499192677 -0400	commit: Binary encoding fixes.
+bd913f30e7561f8c842deaed7b028823aa822203 02f0974406cb38a71a2bdfe8204e87bd0cd03892 Donya Quick <donyaquick@gmail.com> 1503766667 -0400	pull --no-rebase --progress origin: Fast-forward
diff --git a/.git/logs/refs/heads/master b/.git/logs/refs/heads/master
--- a/.git/logs/refs/heads/master
+++ b/.git/logs/refs/heads/master
@@ -1,2 +1,5 @@
 0000000000000000000000000000000000000000 23b0fe619f7f91be4123ef976dd9284c11c1093a Donya Quick <donyaquick@gmail.com> 1495035254 -0700	clone: from https://github.com/Euterpea/Euterpea2.git
 23b0fe619f7f91be4123ef976dd9284c11c1093a ef06402d714aa53dae0ba9c74b68d8b4ddea1329 Donya Quick <donyaquick@gmail.com> 1496256684 -0500	pull --no-rebase --progress origin: Fast-forward
+ef06402d714aa53dae0ba9c74b68d8b4ddea1329 957f3714d66fa6bd059f71b91a1e725b1d2e08a5 Donya Quick <donyaquick@gmail.com> 1499191363 -0400	commit: Misc changes
+957f3714d66fa6bd059f71b91a1e725b1d2e08a5 bd913f30e7561f8c842deaed7b028823aa822203 Donya Quick <donyaquick@gmail.com> 1499192677 -0400	commit: Binary encoding fixes.
+bd913f30e7561f8c842deaed7b028823aa822203 02f0974406cb38a71a2bdfe8204e87bd0cd03892 Donya Quick <donyaquick@gmail.com> 1503766667 -0400	pull --no-rebase --progress origin: Fast-forward
diff --git a/.git/logs/refs/remotes/origin/master b/.git/logs/refs/remotes/origin/master
--- a/.git/logs/refs/remotes/origin/master
+++ b/.git/logs/refs/remotes/origin/master
@@ -1,1 +1,3 @@
 23b0fe619f7f91be4123ef976dd9284c11c1093a ef06402d714aa53dae0ba9c74b68d8b4ddea1329 Donya Quick <donyaquick@gmail.com> 1496256683 -0500	fetch --progress --prune origin: fast-forward
+ef06402d714aa53dae0ba9c74b68d8b4ddea1329 bd913f30e7561f8c842deaed7b028823aa822203 Donya Quick <donyaquick@gmail.com> 1499192681 -0400	update by push
+bd913f30e7561f8c842deaed7b028823aa822203 02f0974406cb38a71a2bdfe8204e87bd0cd03892 Donya Quick <donyaquick@gmail.com> 1503766664 -0400	fetch --progress --prune origin: fast-forward
diff --git a/.git/objects/02/f0974406cb38a71a2bdfe8204e87bd0cd03892 b/.git/objects/02/f0974406cb38a71a2bdfe8204e87bd0cd03892
new file mode 100644
--- /dev/null
+++ b/.git/objects/02/f0974406cb38a71a2bdfe8204e87bd0cd03892
@@ -0,0 +1,2 @@
+xÁn0D{ÎWøCVÕöÐcÁ$F
+·_´ç^zÑhfÒ2Ï£uøb*äF;anI£ú:äÐP|2£:nMA»Ú5¶8qCYEs<fò"LDè<ì¾lr\òýu-j{U«Ó¼AÐÇáDïLÿË¹®Z²tÀcÍbº»?2ÎGçÆ*6öã4Ú?£Ýá]öO&øÄÎÊ\QUWî¬^]
diff --git a/.git/objects/42/5353d295a19c6a399e02b515a85e0036be7e98 b/.git/objects/42/5353d295a19c6a399e02b515a85e0036be7e98
new file mode 100644
Binary files /dev/null and b/.git/objects/42/5353d295a19c6a399e02b515a85e0036be7e98 differ
diff --git a/.git/objects/44/f568871f65e55de26a74570d1c2c7cb3807108 b/.git/objects/44/f568871f65e55de26a74570d1c2c7cb3807108
new file mode 100644
Binary files /dev/null and b/.git/objects/44/f568871f65e55de26a74570d1c2c7cb3807108 differ
diff --git a/.git/objects/46/3f7f59329b9a5f8bdf4aa81f7eeffac86a9c79 b/.git/objects/46/3f7f59329b9a5f8bdf4aa81f7eeffac86a9c79
new file mode 100644
Binary files /dev/null and b/.git/objects/46/3f7f59329b9a5f8bdf4aa81f7eeffac86a9c79 differ
diff --git a/.git/objects/4c/e69816c36136d41f468bf686466b772a599da1 b/.git/objects/4c/e69816c36136d41f468bf686466b772a599da1
new file mode 100644
Binary files /dev/null and b/.git/objects/4c/e69816c36136d41f468bf686466b772a599da1 differ
diff --git a/.git/objects/75/9312bb8b687b8750bf60d89157b2f743492c0f b/.git/objects/75/9312bb8b687b8750bf60d89157b2f743492c0f
new file mode 100644
Binary files /dev/null and b/.git/objects/75/9312bb8b687b8750bf60d89157b2f743492c0f differ
diff --git a/.git/objects/89/bb679180ec64b2834e0a662ccc642e384bd1d1 b/.git/objects/89/bb679180ec64b2834e0a662ccc642e384bd1d1
new file mode 100644
Binary files /dev/null and b/.git/objects/89/bb679180ec64b2834e0a662ccc642e384bd1d1 differ
diff --git a/.git/objects/8f/a140281ee2f80eea601f0a6e9882faef292c1c b/.git/objects/8f/a140281ee2f80eea601f0a6e9882faef292c1c
new file mode 100644
Binary files /dev/null and b/.git/objects/8f/a140281ee2f80eea601f0a6e9882faef292c1c differ
diff --git a/.git/objects/95/7f3714d66fa6bd059f71b91a1e725b1d2e08a5 b/.git/objects/95/7f3714d66fa6bd059f71b91a1e725b1d2e08a5
new file mode 100644
Binary files /dev/null and b/.git/objects/95/7f3714d66fa6bd059f71b91a1e725b1d2e08a5 differ
diff --git a/.git/objects/9f/66bb45272eb441beabde0c9e3eb8ca0909560e b/.git/objects/9f/66bb45272eb441beabde0c9e3eb8ca0909560e
new file mode 100644
Binary files /dev/null and b/.git/objects/9f/66bb45272eb441beabde0c9e3eb8ca0909560e differ
diff --git a/.git/objects/ab/b50d7aa6249900fe22e523218f814ec5b1c0c8 b/.git/objects/ab/b50d7aa6249900fe22e523218f814ec5b1c0c8
new file mode 100644
Binary files /dev/null and b/.git/objects/ab/b50d7aa6249900fe22e523218f814ec5b1c0c8 differ
diff --git a/.git/objects/b4/4653878ead3d6a1487197e816f163cfb537ebb b/.git/objects/b4/4653878ead3d6a1487197e816f163cfb537ebb
new file mode 100644
Binary files /dev/null and b/.git/objects/b4/4653878ead3d6a1487197e816f163cfb537ebb differ
diff --git a/.git/objects/b9/6ef39325e119fad7c502c7e4b75402d16ff52b b/.git/objects/b9/6ef39325e119fad7c502c7e4b75402d16ff52b
new file mode 100644
--- /dev/null
+++ b/.git/objects/b9/6ef39325e119fad7c502c7e4b75402d16ff52b
@@ -0,0 +1,3 @@
+xU]o7ì3Å¾Åôá)R8E&bJëDMýÀá×wyäåHZ ßYäÆi¨#ow8;»KU.Tôôù?ýðÑO§³Ù3µÒ1Q½±lÎèäÙô·ì¶ÓÓ§ÏÕWÑ&>£6¥þl>ßl63Îõ¬¢kTÆþg\ükV;cÌD;|¾3`º¨àÁ~§²:LG&X¨'ëë9ö>Ò9ç<5¦O´Q¯:s!"[Çò îGòV}¨æ'×;Ì²7ÍÄ¨¬Ç·ê[qÈ!Ç·MúÑPê×Ú0Ä38]êìè"}Åb°5½nÙ7X\hKGòúV6cã<ø­¦wÙÖ·$KíéÊúÐÚL_!Roµõ	_Ôéñ³÷Ïâý²é´uâ_Zì3N6&ðÊOcÏ5J¦&§}uÃÄ]ÅÆ°!ëÁ,Þ²stR@éºá0pd=ÔíØäZ'â´7dø]è;öiBýî¬±¾!UÔ§N,m´×î°QÅ4èZâhöL9Öìö;ÜNaàâ~ë½F\¦ /Ëä´£>}IéH	¿r¤¯ÂÓ}ïìy,ÚXÃE»4äÎ×«	Ål®£[Û´û¨jõ"r6
+¥´kÂ`SÛAJ9: C$Ôem|A5{:øûÂ¹n¸z»<_¾(:¸°9h¢zÍ1Bvð(n}j{©<¤Î"RÛGJ­	f(C(ÝÇ)°!i´Òv%RËÚLùàûJ²¯ÅJÑÑ1>¨zp¬ðëªn.ª76]äîöwò,ÛÎV¶ãÅqs5@ËôüSõ*7'ÙR±5JX`¾mÈÎPÅ¨áírAEuabcÌ(½ð?Ï.J]~X­èýâÝÅúÏ5]-±zµ åßÿx¿8èAÑ{ÿÃ æª³I(¤v¹iøÃ( úÑîvÐ½Z@{´C[\£ØcKh;4ígU:«äGJáÑÝ¡þëò8L£b´sã¹¶ÏØ©OSÊMÆ÷ºCqÇHÞté
+Jd¬¡ý¾ÿô74>B¦
diff --git a/.git/objects/bd/913f30e7561f8c842deaed7b028823aa822203 b/.git/objects/bd/913f30e7561f8c842deaed7b028823aa822203
new file mode 100644
--- /dev/null
+++ b/.git/objects/bd/913f30e7561f8c842deaed7b028823aa822203
@@ -0,0 +1,2 @@
+xaj!FóÛSÌwÔB¥ÈFSIVÛÍí\¡ÿ¾÷àÁú²Ôf
+»±@v)¡(32¡²Áì%Íâ¬#F&õÃ«´Áú2y¤ì\a³¶¡xÅ1Ñ3[ÅÛøî+|õö`8o5]áßðûÞ§ËÂõ¶O}9Ró>4i­^öõqÈÿjõY¯z®í¥þÉ}¯ínL
diff --git a/.git/objects/c1/ce7c80babe62e96ed94b9f0a408ff1fa1fa8b0 b/.git/objects/c1/ce7c80babe62e96ed94b9f0a408ff1fa1fa8b0
new file mode 100644
Binary files /dev/null and b/.git/objects/c1/ce7c80babe62e96ed94b9f0a408ff1fa1fa8b0 differ
diff --git a/.git/objects/d4/e9a886282e7e315d542bc3b0208502d803f9e5 b/.git/objects/d4/e9a886282e7e315d542bc3b0208502d803f9e5
new file mode 100644
Binary files /dev/null and b/.git/objects/d4/e9a886282e7e315d542bc3b0208502d803f9e5 differ
diff --git a/.git/objects/d6/c9fe4be81a410e45321d76540ae1f4b80b1ba4 b/.git/objects/d6/c9fe4be81a410e45321d76540ae1f4b80b1ba4
new file mode 100644
Binary files /dev/null and b/.git/objects/d6/c9fe4be81a410e45321d76540ae1f4b80b1ba4 differ
diff --git a/.git/objects/e8/c5a5240e5527d9c7bd817744a3c0961ca5d8d5 b/.git/objects/e8/c5a5240e5527d9c7bd817744a3c0961ca5d8d5
new file mode 100644
Binary files /dev/null and b/.git/objects/e8/c5a5240e5527d9c7bd817744a3c0961ca5d8d5 differ
diff --git a/.git/refs/heads/master b/.git/refs/heads/master
--- a/.git/refs/heads/master
+++ b/.git/refs/heads/master
@@ -1,1 +1,1 @@
-ef06402d714aa53dae0ba9c74b68d8b4ddea1329
+02f0974406cb38a71a2bdfe8204e87bd0cd03892
diff --git a/.git/refs/remotes/origin/master b/.git/refs/remotes/origin/master
--- a/.git/refs/remotes/origin/master
+++ b/.git/refs/remotes/origin/master
@@ -1,1 +1,1 @@
-ef06402d714aa53dae0ba9c74b68d8b4ddea1329
+02f0974406cb38a71a2bdfe8204e87bd0cd03892
diff --git a/Euterpea.cabal b/Euterpea.cabal
--- a/Euterpea.cabal
+++ b/Euterpea.cabal
@@ -1,5 +1,5 @@
 name:           Euterpea
-version:        2.0.3
+version:        2.0.4
 Cabal-Version:  >= 1.8
 license:        BSD3
 license-file:	License
@@ -59,12 +59,12 @@
   build-depends:
         base >= 4 && < 5, 
         arrows == 0.4.4.1, 
-        array>=0.5.0.0 && <=0.5.1.1, 
-        deepseq>=1.3.0.2 && <=1.4.2.0, 
+        array>=0.5.0.0 && <=0.5.2.0, 
+        deepseq>=1.3.0.2 && <=1.4.3.0, 
         random>=1.0.1.1 && <=1.1,
         PortMidi==0.1.5.2, 
         HCodecs == 0.5, 
-        stm==2.4.2, 
+        stm==2.4.4.1, 
         containers>=0.5.5.1 && <=0.5.7.1, 
         bytestring>=0.10.4.0 && <= 0.10.9,
         heap >= 1.0 && < 2.0, 
diff --git a/Euterpea/IO/MIDI/ExportMidiFile.lhs b/Euterpea/IO/MIDI/ExportMidiFile.lhs
--- a/Euterpea/IO/MIDI/ExportMidiFile.lhs
+++ b/Euterpea/IO/MIDI/ExportMidiFile.lhs
@@ -165,9 +165,9 @@
 > to7Bits :: (Integral a, Show a) => a -> Byte.ByteString
 > to7Bits =  Byte.pack . map (fromIntegral . binStrToNum . reverse) .
 >            fixBinStrs . map (padTo 7 . reverse). reverse . 
->            breakBinStrs 7 . reverse . padTo 8 . numToBinStr
+>            breakBinStrs 7 . reverse . padTo 7 . numToBinStr
 
-Pad a binary string to be a multiple of 8 bits:
+Pad a binary string to be a multiple of i bits:
 
 > padTo :: Int -> String -> String
 > padTo i xs = if length xs `mod` i == 0 then xs else padTo i ('0':xs)
@@ -175,8 +175,7 @@
 Break a string into chunks of length i:
 
 > breakBinStrs :: Int -> String -> [String]
-> breakBinStrs i s = 
->     if length s <= i then [s] else take i s : breakBinStrs i (drop i s)
+> breakBinStrs i s = if length s <= i then [s] else take i s : breakBinStrs i (drop i s)
 
 Convert a number to a binary string:
 
diff --git a/Euterpea/Music.lhs b/Euterpea/Music.lhs
--- a/Euterpea/Music.lhs
+++ b/Euterpea/Music.lhs
@@ -35,7 +35,9 @@
 >        |  Custom      String			   --  for user-specified controls
 >   deriving (Show, Eq, Ord)
 
-> data Mode        = Major | Minor 
+> data Mode = Major | Minor | 
+>             Ionian | Dorian | Phrygian | Lydian | Mixolydian | Aeolian | Locrian | 
+>             CustomMode String
 >   deriving (Show, Eq, Ord)
 
 > data InstrumentName =
diff --git a/ReadMe.txt b/ReadMe.txt
--- a/ReadMe.txt
+++ b/ReadMe.txt
@@ -1,5 +1,6 @@
-Version 2.0.3
-Last modified: 27-Dec-2016
+Version 2.0.4
+Last modified: 04-July-2017
+Website: http://www.euterpea.com
  _____      _                             
 |  ___|    | |                            
 | |__ _   _| |_ ___ _ __ _ __   ___  __ _ 
@@ -29,10 +30,18 @@
 MIDI; and low-level audio processing, sound synthesis, and instrument 
 design.  
 
-See License for licensing information.
+See the License file for licensing information.
 
-Please send questions, comments, and bug reports to Donya Quick:
-donyaquick@gmail.com
+If you are experiencing a problem with Euterpea, please first check the 
+GitHub version of the library: https://github.com/Euterpea/Euterpea2
+Bugs still found in the GitHub version should be reported using the 
+issues page: https://github.com/Euterpea/Euterpea2/issues
 
-Installation instructions are available at:
-http://www.euterpea.com
+PULL REQUESTS WILL BE IGNORED. Bug fixes should be submitted through
+the issues page with a detailed explanation of the alterations.
+
+Please send any other questions and comments to Donya Quick 
+(donyaquick@gmail.com).
+
+Installation instructions and additional examples are available at
+the Euterpea website: http://www.euterpea.com
