         str.appendContentsOf("                    <array>\n")
         return str
     }
-    static public func generateZone(id: Int, rootNote: Int, startNote: Int, endNote: Int, wavRef: Int = 268435457, offset: Int = 0) -> String {
+    static public func generateZone(id: Int, rootNote: Int, startNote: Int, endNote: Int, wavRef: Int = 268435457, offset: Int = 0, loopEnabled:Bool = false) -> String {
         let wavRefNum = wavRef+offset
         var str = ""
         str.appendContentsOf("                    <dict>\n")

        str.appendContentsOf("                    </array>\n")
        return str
    }
    static public func closeLayer() -> String {
        var str = ""
        str.appendContentsOf("                </dict>\n")

        return str
    }
    
    static public func generateLayer(connections: String, envelopes: String = "", filter: String = "", lfos: String = "", zones: String = "", layer: Int = 0, numVoices: Int = 16, ignoreNoteOff: Bool = false) -> String {
        var str = ""
        str.appendContentsOf(openLayer())
        str.appendContentsOf(openConnections())
