062.txt The Cakewalk "INS" Instrument Definition Format ------------------------------------------------ The best way to learn is by following an example. The Instrument Definition file format which Cakewalk uses is not well documented in its manual ;(. It essentially contains the following sections, except for "*" which were only added since v6.0. .Patch Names .Note Names .Controller Names .RPN Names* .NRPN Names* .Instrument Definititions All subsections must have their _names_ delimited by brackets (left "[" and right "]"). Any _references_ to names (i.e. following the "=" sign) from another section must be an exact match in upper/lower case and spelling. The use of an asterisk ("*") between brackets may be used as a wildcard to match all (bank/program change) values not otherwise defined. Default ranges may be defined by either "0..127" or "1..128" but those that _are_ defined _always_ use 0 offsets. In the "Patches" section, the 0 Program Change offset is always used for entries from 0-127 vice 1-128. The "BasedOn=" statement allows reference to another named Patch set of data for use as a basis for another group of Program Changes. Those not used will be refered to be number only. In the "Instruments Definitions" section the following subsections for each _named_ subsection are allowed. UsesNotesAsControllers=1 Control= NRPN= BankSelMethod= Patch[#]= Key[#,%]= Drum[#,%]=1 The "#" are replaced with the corresponding Bank Select Controllers' composite values. For example if the BS MSB=80 and the BS LSB=0, then the composite value (in this case for the JV/XP User Bank) would be 10240. The formula is 128*MSB+LSB = the Bank values. The "%" are replaced with the corresponding Program Change values from the "Patches" section, again using a 0 offset range from 0-127 instead of a 1 offset range from 1-128. The BankSelMethod can range from 0, the default which is "normal" and _not_ required; or if equal to 1 then only the Bank Controller MSB (CC00) is used and defined; or if equal to 2 then only the LSB (CC32) is used and defined; or if equal to 3 then only Program Changes are used and defined. Examples: The Digitech DSP-2101 uses 3; the Oberheim 1000 uses 2; the Akai SG01v uses 1; the Roland JV/XPs use 0 and therefore do _not_ require the statement. The value of 1 for he "UsesNotesAsControllers" subsection normally defaults to 0 and is not used, but available if applicable as for the Mackie OTTO-1604. The value of 1 for the "Drum" subsection indicates that Cakewalk's Drum Grid Editor in the Piano Roll Window is to be used. A value of 0 is the default and is not required when/if applicable, that is for all other normally "pitched" instruments. If you can fully understand the content format and syntax of the MASTER.INS file, manipulation of the data for your requirements is comparitively easy, just very tedious especially for those JV/XP users with an 8 expansion SLOT loaded JV-2080 . Also in v6.0 and above (I don't remember about v5.0), the _named_ subsections must be in _alphabetical_ order. For any Cakewalk user who would like a copy of my "jvxp.ins" file which they can either cut/paste or "import" into their MASTER.INS file, let me know. My file is the most comprehensive that I know of, as I have a very practical reason to keep it so, since I have 10 expansion boards but can only use 8 at a time between my JV-1080 and XP-50. When I get a JV-2080, my immediate needs can be filled ;-) And when I get the newest Hip Hop Collection board hopefully in April, I'll be correspondingly updating the file and the list members as to the boards waveform/patch contents. ------------- Benjamin Tubb AIM: brtubb brtubb@cybertron.com http://home.cybertron.com/~brtubb/jvxp.html "Music creates order out of chaos; for rhythm imposes unanimity upon the divergent, melody imposes continuity upon the disjoin- ted, and harmony imposes compatibility upon the incongruous." - Yehudi Menuhin, from "Theme and Variations"