package main; import java.io.BufferedReader; import javax.swing.JSplitPane; class Header { // .pch info private String version; private int kbrangemin, kbrangemax, velrangemin, velrangemax, bendrange; private int portatime, portamento, requestedvoices; private int octaveshift, seperator; private int voiceretriggerpoly, voiceretriggercommon; private int v13, v14, v15, v16; private int redvisible, bluevisible, yellowvisible, grayvisible; private int greenvisible, purplevisible, whitevisible; // .pch info private PatchData patchData = null; Header(PatchData patchData) { version = "Nord Modular patch 3.0"; kbrangemin = 0; kbrangemax = 127; velrangemin = 0; velrangemax = 127; bendrange = 2; portatime = 0; portamento = 0; requestedvoices = 1; seperator = 600; octaveshift = 2; voiceretriggerpoly = 1; voiceretriggercommon = 1; v13 = 1; v14 = 1; v15 = 1; v16 = 1; redvisible = 1; bluevisible = 1; yellowvisible = 1; grayvisible = 1; greenvisible = 1; purplevisible = 1; whitevisible = 1; this.patchData = patchData; } public String getVersion() { return version; } public int getSeperator() { return seperator; } public void setSeperator(int newSeperator) { seperator = newSeperator; } public void readHeader(BufferedReader pchFile) { String[] sa = new String[22]; try { version = pchFile.readLine().substring(8); sa = pchFile.readLine().split(" "); kbrangemin = Integer.parseInt(sa[0]); kbrangemax = Integer.parseInt(sa[1]); velrangemin = Integer.parseInt(sa[2]); velrangemax = Integer.parseInt(sa[3]); bendrange = Integer.parseInt(sa[4]); portatime = Integer.parseInt(sa[5]); portamento = Integer.parseInt(sa[6]); requestedvoices = Integer.parseInt(sa[7]); seperator = Integer.parseInt(sa[8]); octaveshift = Integer.parseInt(sa[9]); voiceretriggerpoly = Integer.parseInt(sa[10]); voiceretriggercommon =Integer.parseInt(sa[11]); v13 = Integer.parseInt(sa[12]); v14 = Integer.parseInt(sa[13]); v15 = Integer.parseInt(sa[14]); v16 = Integer.parseInt(sa[15]); redvisible = Integer.parseInt(sa[16]); bluevisible = Integer.parseInt(sa[17]); yellowvisible = Integer.parseInt(sa[18]); grayvisible = Integer.parseInt(sa[19]); greenvisible = Integer.parseInt(sa[20]); purplevisible = Integer.parseInt(sa[21]); whitevisible = Integer.parseInt(sa[22]); } catch(Exception e) { System.out.println(e); } } public StringBuffer createHeader(StringBuffer result, JSplitPane splitPane) { result.append("[Header]\r\n"); result.append("Version=" + version + "\r\n"); result.append("" + kbrangemin + ' ' + kbrangemax + ' ' + velrangemin + ' ' + velrangemax + ' ' + bendrange + ' ' + portatime + ' ' + portamento + ' ' + requestedvoices + ' ' + (splitPane.getDividerLocation()-1)+ ' ' + octaveshift + ' ' + voiceretriggerpoly + ' ' + voiceretriggercommon + ' ' + v13 + ' ' + v14 + ' ' + v15 + ' ' + v16 + ' ' + redvisible + ' ' + bluevisible + ' ' + yellowvisible + ' ' + grayvisible + ' ' + greenvisible + ' ' + purplevisible + ' ' + whitevisible + "\r\n"); result.append("[/Header]\r\n"); return result; } }