         templateStr.appendContentsOf("                        <key>type</key>\n")
         templateStr.appendContentsOf("                        <integer>40</integer>\n")
         templateStr.appendContentsOf("                    </dict>\n")
+        return templateStr
+    }
+    static public func generateID(id:Int = 0)->String{
+        var templateStr = ""
         templateStr.appendContentsOf("                    <key>ID</key>\n")
-        templateStr.appendContentsOf("                    <integer>0</integer>\n")
+        templateStr.appendContentsOf("                    <integer>\(id)</integer>\n")
         return templateStr
     }
     static public func openLFOs()->String{

        templateStr.appendContentsOf((envelopes == "" ? generateEnvelope() : envelopes))
        templateStr.appendContentsOf(closeEnvelopes())
        templateStr.appendContentsOf((filter == "" ? generateFilter() : filter))
        templateStr.appendContentsOf(openLFOs())
        templateStr.appendContentsOf((lfos == "" ? generateLFO() : lfos))
        templateStr.appendContentsOf(closeLFOs())

            presetXML.appendContentsOf((envelopes == "" ? generateEnvelope() : envelopes))
            presetXML.appendContentsOf(closeEnvelopes())
            presetXML.appendContentsOf((filter == "" ? generateFilter() : filter))
            presetXML.appendContentsOf(generateID())
            presetXML.appendContentsOf(openLFOs())
            presetXML.appendContentsOf((lfos == "" ? generateLFO() : lfos))
            presetXML.appendContentsOf(closeLFOs())
