• Create array using name from string?

    From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Tue May 28 02:06:41 2019
    From Newsgroup: comp.lang.javascript

    In todays programming it would be handy "for example using select option lists" to make the "select strings" be names of arrays.

    An example i "read a text file" hoding banknames each bank hold multiple instruments.

    It would be very convenient i somehow could make the connection, once i read out the banks from file, can i create a array using the dynamically read in name?

    The arrays will hold instruments but that is beyond the point.

    So question is given this string


    "One Two Three"

    And i read out the sub "One"

    How can i dynamically make an array named "One"
    so i can fill it up with instruments.

    Is it possible?
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Tue May 28 02:11:10 2019
    From Newsgroup: comp.lang.javascript

    Den tisdag 28 maj 2019 kl. 11:06:51 UTC+2 skrev Jonas Thörnvall:
    In todays programming it would be handy "for example using select option lists" to make the "select strings" be names of arrays.

    An example i "read a text file" hoding banknames each bank hold multiple instruments.

    It would be very convenient i somehow could make the connection, once i read out the banks from file, can i create a array using the dynamically read in name?

    The arrays will hold instruments but that is beyond the point.

    So question is given this string


    "One Two Three"

    And i read out the sub "One"

    How can i dynamically make an array named "One"
    so i can fill it up with instruments.

    Is it possible?
    So can i:
    Create an array named after content of string?
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From R.Wieser@address@not.available to comp.lang.javascript on Tue May 28 11:39:35 2019
    From Newsgroup: comp.lang.javascript

    Jonas,

    How can i dynamically make an array named "One"

    I think so. Take a look at the 'Eval' and 'Execute" commands

    https://stackoverflow.com/questions/29832173/vbscript-execute-and-eval-commands

    and maybe also 'ExecuteGlobal'

    https://icodealot.com/dynamic-methods-in-vbscript/

    In short, they are used to execute a dynamic script (read: stored in a provided string)

    Regards,
    Rudy Wieser


    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From R.Wieser@address@not.available to comp.lang.javascript on Tue May 28 12:02:55 2019
    From Newsgroup: comp.lang.javascript

    Jonas,

    Forget what I said. I just noticed that this is the javascript newsgroup, and not the VBScript one. My bad.

    Regards,
    Rudy Wieser


    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From dr.j.r.stockton@dr.j.r.stockton@gmail.com to comp.lang.javascript on Tue May 28 05:38:23 2019
    From Newsgroup: comp.lang.javascript

    On Tuesday, 28 May 2019 11:03:03 UTC+1, R.Wieser wrote:

    Forget what I said. I just noticed that this is the javascript newsgroup, and not the VBScript one. My bad.

    No matter - your reply only needed translation :-

    S = "Banana"
    eval("var " + S + " = [2, 9, +new Date()]")
    Banana // is now a three-element array

    --
    (c) John Stockton, near London, UK. Using Google Groups. |
    Mail: J.R.""""""""@physics.org - or as Reply-To, if any. |

    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Ben Bacarisse@ben.usenet@bsb.me.uk to comp.lang.javascript on Tue May 28 17:06:21 2019
    From Newsgroup: comp.lang.javascript

    dr.j.r.stockton@gmail.com writes:

    On Tuesday, 28 May 2019 11:03:03 UTC+1, R.Wieser wrote:

    Forget what I said. I just noticed that this is the javascript newsgroup, >> and not the VBScript one. My bad.

    No matter - your reply only needed translation :-

    S = "Banana"
    eval("var " + S + " = [2, 9, +new Date()]")
    Banana // is now a three-element array

    Mind you, it's worth pointing out, I think, that this sort of code is
    widely regarded as a Very Bad Thing. The OP is immune to such
    suggestions but there may be innocent learners reading this!

    --
    Ben.
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Thomas 'PointedEars' Lahn@PointedEars@web.de to comp.lang.javascript on Wed May 29 00:22:27 2019
    From Newsgroup: comp.lang.javascript

    Ben Bacarisse wrote:

    dr.j.r.stockton@gmail.com writes:
    On Tuesday, 28 May 2019 11:03:03 UTC+1, R.Wieser wrote:
    Forget what I said. I just noticed that this is the javascript
    newsgroup, and not the VBScript one. My bad.

    No matter - your reply only needed translation :-

    S = "Banana"
    eval("var " + S + " = [2, 9, +new Date()]")
    Banana // is now a three-element array

    Mind you, it's worth pointing out, I think, that this sort of code is
    widely regarded as a Very Bad Thing. The OP is immune to such
    suggestions but there may be innocent learners reading this!

    To elaborate, the posted code will *not work* in strict mode:

    1. “S” as posted is an undeclared identifier; this will throw a
    ReferenceError exception.

    2. If the first problem is fixed, the code will still not work as
    described because in strict mode declarations in eval execution context
    do not propagate to the calling context: a ReferenceError exception
    will be thrown on resolving “Banana” even though it would be declared
    in the eval context.

    In non-strict mode, the code will work to some extent but exhibit side
    effects such as overwriting properties of objects in the scope chain and may be prone to code injection because of eval().

    In addition, using eval() here is not only less efficient, but completely pointless (but I guess that was the point):

    var banana = [2, 9, +new Date()];

    “(new Date()).getTime()” is arguably less efficiently and less elegantly written, but more explicit and more efficiently processed, than “+new Date()”; the latter would be because evaluating it takes fewer detours through the ECMAScript algorithm jungle.

    Finally, I have replaced “Banana” with “banana” because it does not refer to
    a constructor here. (Unfortunately, regarding his code style Dr. Stockton appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    --
    PointedEars
    FAQ: <http://PointedEars.de/faq> | <http://PointedEars.de/es-matrix> <https://github.com/PointedEars> | <http://PointedEars.de/wsvn/>
    Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail. --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Wed May 29 00:07:00 2019
    From Newsgroup: comp.lang.javascript

    Den onsdag 29 maj 2019 kl. 00:22:33 UTC+2 skrev Thomas 'PointedEars' Lahn:
    Ben Bacarisse wrote:

    dr.j.r.stockton@gmail.com writes:
    On Tuesday, 28 May 2019 11:03:03 UTC+1, R.Wieser wrote:
    Forget what I said. I just noticed that this is the javascript
    newsgroup, and not the VBScript one. My bad.

    No matter - your reply only needed translation :-

    S = "Banana"
    eval("var " + S + " = [2, 9, +new Date()]")
    Banana // is now a three-element array

    Mind you, it's worth pointing out, I think, that this sort of code is widely regarded as a Very Bad Thing. The OP is immune to such
    suggestions but there may be innocent learners reading this!

    To elaborate, the posted code will *not work* in strict mode:

    1. “S” as posted is an undeclared identifier; this will throw a
    ReferenceError exception.

    2. If the first problem is fixed, the code will still not work as
    described because in strict mode declarations in eval execution context
    do not propagate to the calling context: a ReferenceError exception
    will be thrown on resolving “Banana” even though it would be declared
    in the eval context.

    In non-strict mode, the code will work to some extent but exhibit side effects such as overwriting properties of objects in the scope chain and may be prone to code injection because of eval().

    In addition, using eval() here is not only less efficient, but completely pointless (but I guess that was the point):

    var banana = [2, 9, +new Date()];

    “(new Date()).getTime()” is arguably less efficiently and less elegantly written, but more explicit and more efficiently processed, than “+new Date()”; the latter would be because evaluating it takes fewer detours through the ECMAScript algorithm jungle.

    Finally, I have replaced “Banana” with “banana” because it does not refer to
    a constructor here. (Unfortunately, regarding his code style Dr. Stockton appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    --
    PointedEars
    FAQ: <http://PointedEars.de/faq> | <http://PointedEars.de/es-matrix> <https://github.com/PointedEars> | <http://PointedEars.de/wsvn/>
    Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.
    I think you all missunderstood the question it is about generate, variables dynamically and give them the name of string content.
    I do not think it is possible but one never knows.
    This is useful when you read out a file, probably an AI agent would have tremendous use for such approach be able to create objects, arrays and variables from content.
    But also for anyone that read in a document and want to store it "on the fly" in a cohereent manner.
    This means the step of declaring things "object,structures,maps,variables" dynamically on the fly in the language.
    With the advent of AI i can almost guarantee that programming languages will hold this functionality in the future. Because one does not want to write a program to store some data in coherent manner.
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Wed May 29 00:15:42 2019
    From Newsgroup: comp.lang.javascript

    Den tisdag 28 maj 2019 kl. 14:38:34 UTC+2 skrev dr.j.r...@gmail.com:
    On Tuesday, 28 May 2019 11:03:03 UTC+1, R.Wieser wrote:

    Forget what I said. I just noticed that this is the javascript newsgroup,
    and not the VBScript one. My bad.

    No matter - your reply only needed translation :-

    S = "Banana"
    eval("var " + S + " = [2, 9, +new Date()]")
    Banana // is now a three-element array

    --
    (c) John Stockton, near London, UK. Using Google Groups. |
    Mail: J.R.""""""""@physics.org - or as Reply-To, if any. |

    Hello I am a sucker at reading out syntax.
    What does the follwing eval actually mean, it is not clear to me? eval("dynamic" + i + " = val[i]");

    Will it create an array named dynamic[] that can be accessed like any array? When you put forward a solution, it would be nice with some words accompanying it, so a syntax slob like me can understand what the code actually achieve?

    If it indeed do create a dynamic[] array, i will definitly use it.
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From R.Wieser@address@not.available to comp.lang.javascript on Wed May 29 09:35:33 2019
    From Newsgroup: comp.lang.javascript

    Jonas,

    What does the follwing eval actually mean, it is not clear to me? eval("dynamic" + i + " = val[i]");

    It will create a /variable/ with the name "dynamic" and whatever value(?) is in "i". Assuming that "i" contains 42 than the name will be "dynamic42". After that it will simply copy the contents of "val[i]" into it.

    Will it create an array named dynamic[] that can be accessed like any
    array?

    Nope.

    But that is easily solved. John has already shown how to create an array.
    The only thing you need to do is to remove the initialisation values from it (rewritten to match your example) :

    i=42
    eval("var dynamic" + i + " = []");

    (translates to 'var dynamic42 = []')

    or, to use Johns example, but without initializing the array.

    s = "banana"
    eval("var " + s + " = []");

    This will create an empty array with the name "banana", just like

    var banana = [];

    would.

    Hope that helps.

    Regards,
    Rudy Wieser


    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Evertjan.@exxjxw.hannivoort@inter.nl.net to comp.lang.javascript on Wed May 29 09:47:30 2019
    From Newsgroup: comp.lang.javascript

    <jonas.thornvall@gmail.com> wrote on 29 May 2019 in comp.lang.javascript:

    I think you all missunderstood the question

    Why would that be?

    --
    Evertjan.
    The Netherlands.
    (Please change the x'es to dots in my emailaddress)
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Wed May 29 01:16:05 2019
    From Newsgroup: comp.lang.javascript

    Den onsdag 29 maj 2019 kl. 09:35:46 UTC+2 skrev R.Wieser:
    Jonas,

    What does the follwing eval actually mean, it is not clear to me? eval("dynamic" + i + " = val[i]");

    It will create a /variable/ with the name "dynamic" and whatever value(?) is in "i". Assuming that "i" contains 42 than the name will be "dynamic42". After that it will simply copy the contents of "val[i]" into it.

    Will it create an array named dynamic[] that can be accessed like any array?

    Nope.

    But that is easily solved. John has already shown how to create an array. The only thing you need to do is to remove the initialisation values from it (rewritten to match your example) :

    i=42
    eval("var dynamic" + i + " = []");

    (translates to 'var dynamic42 = []')

    or, to use Johns example, but without initializing the array.

    s = "banana"
    eval("var " + s + " = []");

    This will create an empty array with the name "banana", just like

    var banana = [];

    would.

    Hope that helps.

    Regards,
    Rudy Wieser

    Ok thanks Rudy!
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Julio Di Egidio@julio@diegidio.name to comp.lang.javascript on Wed May 29 10:10:28 2019
    From Newsgroup: comp.lang.javascript

    On Wednesday, 29 May 2019 09:07:10 UTC+2, Jonas Thörnvall wrote:
    I think you all missunderstood the question it is about generate,
    variables dynamically and give them the name of string content.
    Which is an awful idea, as others were saying, and just means you (and
    whomever is seconding you with that eval) have no idea how JS works.
    Rather note that in JS objects already are essentially dictionaries, i.e.
    with arbitrary key names, so what you might do is:
    var data = {};
    data[NAME1] = ...;
    data[NAME2] = ...;
    Where NAME1, etc. are the names you get by splitting (string split) the
    input string. -- For all I could gather from your blathering...
    HTH,
    Julio
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Julio Di Egidio@julio@diegidio.name to comp.lang.javascript on Wed May 29 10:24:17 2019
    From Newsgroup: comp.lang.javascript

    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    Julio
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Cezary Tomczyk@cezary.tomczyk@gmail.com to comp.lang.javascript on Thu May 30 11:37:52 2019
    From Newsgroup: comp.lang.javascript

    On 29/05/2019 19:24, Julio Di Egidio wrote:
    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    What is then OO definition?

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Thomas 'PointedEars' Lahn@PointedEars@web.de to comp.lang.javascript on Thu May 30 12:35:47 2019
    From Newsgroup: comp.lang.javascript

    Cezary Tomczyk wrote:
    On 29/05/2019 19:24, Julio Di Egidio wrote:
    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote: >>> (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    What is then OO definition?

    Please do not feed the troll. (We have been over this /ad nauseam/.)

    <https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf>
    |
    | 4 Overview
    |
    | This section contains a non-normative overview of the ECMAScript language.
    |
    | ECMAScript is an object-oriented programming language for performing
    | computations and manipulating computational objects within a host
    | environment. []

    The languages that have JavaScript in their name are implementations of ECMAScript. (Do I really need to cite it?)


    PointedEars
    --
    realism: HTML 4.01 Strict
    evangelism: XHTML 1.0 Strict
    madness: XHTML 1.1 as application/xhtml+xml
    -- Bjoern Hoehrmann
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Julio Di Egidio@julio@diegidio.name to comp.lang.javascript on Thu May 30 03:43:24 2019
    From Newsgroup: comp.lang.javascript

    On Thursday, 30 May 2019 12:35:53 UTC+2, Thomas 'PointedEars' Lahn wrote:
    Cezary Tomczyk wrote:
    On 29/05/2019 19:24, Julio Di Egidio wrote:
    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote:
    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions >>> need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    What is then OO definition?

    Please do not feed the troll. (We have been over this /ad nauseam/.)

    You raise the issue and I am the troll??

    But I agree it's totally pointless discussing it with you:
    mind you, it was just "worth pointing out".

    Idiot.

    *Plonk*

    Julio
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Julio Di Egidio@julio@diegidio.name to comp.lang.javascript on Thu May 30 03:48:17 2019
    From Newsgroup: comp.lang.javascript

    On Thursday, 30 May 2019 12:35:53 UTC+2, Thomas 'PointedEars' Lahn wrote:
    Cezary Tomczyk wrote:
    On 29/05/2019 19:24, Julio Di Egidio wrote:
    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote:
    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions >>> need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    What is then OO definition?

    You should ask what is JS definition.

    And JS is functional, I've said it already.

    Do you know what functional is?

    If not, start by looking it up.

    HTH,

    Julio
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Michael Haufe (TNO)@tno@thenewobjective.com to comp.lang.javascript on Thu May 30 10:34:52 2019
    From Newsgroup: comp.lang.javascript

    Cezary Tomczyk wrote:
    On 29/05/2019 19:24, Julio Di Egidio wrote:
    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    What is then OO definition?

    The generally accepted definition of OOP is described by Benjamin Pierce in TAPL [1][2]. Namely:

    1. Multiple representations: The object dictates what code is
    executed, often at runtime using dynamic dispatch
    2. Encapsulation: Hiding of internal representation and providing a
    limited interface for access.
    3. Subtyping: Interface sharing
    4. Inheritance: Implementation sharing of shared interfaces.
    Generally done through classes or delegation
    5. Open recursion: The ability of a method to refer to other methods
    of itself before/after they are defined. (keyword 'this' in JS, 'self'
    in Python, 'my' in Perl, etc.)


    So JavaScript is "Object-Oriented" because it has a set of features in common with the definition of being Object Oriented.


    [1] <https://www.cis.upenn.edu/~bcpierce/tapl/>
    [2] See Chapter 18.1 <http://port70.net/~nsz/articles/book/pierce_types_and_programming_languages_2002.pdf>

    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Thu May 30 11:10:23 2019
    From Newsgroup: comp.lang.javascript

    Den onsdag 29 maj 2019 kl. 19:10:42 UTC+2 skrev Julio Di Egidio:
    On Wednesday, 29 May 2019 09:07:10 UTC+2, Jonas Thörnvall wrote:

    I think you all missunderstood the question it is about generate,
    variables dynamically and give them the name of string content.

    Which is an awful idea, as others were saying, and just means you (and whomever is seconding you with that eval) have no idea how JS works.

    Rather note that in JS objects already are essentially dictionaries, i.e. with arbitrary key names, so what you might do is:

    var data = {};
    data[NAME1] = ...;
    data[NAME2] = ...;

    Where NAME1, etc. are the names you get by splitting (string split) the
    input string. -- For all I could gather from your blathering...

    HTH,

    Julio
    Well i skipped the idea of somekind of object all together, first i split out the banks from document, then i split banks into an array "each element holding a bank", then i read out the bankname "first line" and after that i split each bank into an instrument array creating the option lists to select bank and instrument using innerHTML.
    The downside is i have to split and read in instruments everytime i change bank. The upside? i do not have to have all banks in memory or as an object. Well in i a way i have each bank is an array element, splitted again and again and again at bank change... Maybe not ideal but bankchange hardly a time critical event.
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Thu May 30 11:12:11 2019
    From Newsgroup: comp.lang.javascript

    Den onsdag 29 maj 2019 kl. 19:10:42 UTC+2 skrev Julio Di Egidio:
    On Wednesday, 29 May 2019 09:07:10 UTC+2, Jonas Thörnvall wrote:

    I think you all missunderstood the question it is about generate,
    variables dynamically and give them the name of string content.

    Which is an awful idea, as others were saying, and just means you (and whomever is seconding you with that eval) have no idea how JS works.

    Rather note that in JS objects already are essentially dictionaries, i.e. with arbitrary key names, so what you might do is:

    var data = {};
    data[NAME1] = ...;
    data[NAME2] = ...;

    Where NAME1, etc. are the names you get by splitting (string split) the
    input string. -- For all I could gather from your blathering...

    HTH,

    Julio
    Dealing with javascript objects i was on the virge give it all up, but simplicity and persistence won me over.
    function splitInstrumentFile(ATXT){
    bankName=[];
    var PatchStart = ATXT.indexOf(".Patch Names",0);
    var NoteStart = ATXT.indexOf(".Note Names",0);
    var allBANKS=ATXT.substring(PatchStart+12,NoteStart);
    listBanks(allBANKS);
    }
    function listBanks(allBANKS){
    console.log("Write out just the banks"+allBANKS);
    Abank = allBANKS.split("\n[");
    Abank.shift();
    for(i=0;i<Abank.length;i++){
    //alert(Abank[i]);
    getBankName(i);
    }
    //alert(bankName);
    bankOptionList();
    defaultBank=1;
    document.getElementById("selBank").selectedIndex = defaultBank;
    ListBankInstruments(defaultBank);
    }
    function getBankName(i){
    var ENDBANKNAME = Abank[i].indexOf("]",0);
    bankName[i]=Abank[i].substring(0,ENDBANKNAME);
    }
    function ListBankInstruments(current){
    //REMOVE EMPTY LINES FROM BANK
    Abank[current]=Abank[current].replace(/^\s*[\r]/gm,"");
    //SPLIT BANK INTO ARRAY OF INSTRUMENTS
    instName=Abank[current].split("\n");
    //REMOVE FIRST LINE "BANKNAME"
    instName.shift();
    //alert(instName);
    instOptionList();
    }
    function bankSelection(){
    current=document.getElementById("selBank").selectedIndex;
    ListBankInstruments(current);
    }
    function bankOptionList(){
    bankOptNames="";
    bankSelect ="<select id='selBank' onChange='bankSelection()'>\n";
    for (var r=0;r<bankName.length;r++){
    bankOption=bankName[r];
    //alert(bankName[r]);
    bankOptNames+="<option value="+r+"> "+r+" "+bankOption+"</option>\n";
    }
    bankOptEnd="</select> \n";
    bankOptionString=bankSelect+bankOptNames+bankOptEnd;
    //alert(bankOptionString); document.getElementById("bankOptList").innerHTML=bankOptionString;
    }
    function instOptionList(){
    instOptNames="";
    instSelect ="<select id='selInst' onChange='instSelection()'>\n";
    for (var r=0;r<instName.length;r++){
    instOption=instName[r];
    //alert(bankName[r]);
    instOptNames+="<option value="+r+"> "+instOption+"</option>\n";
    }
    instOptEnd="</select> \n";
    instOptionString=bankSelect+instOptNames+instOptEnd;
    //alert(instOptionString); document.getElementById("instOptList").innerHTML=instOptionString;
    }
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Thu May 30 11:22:55 2019
    From Newsgroup: comp.lang.javascript

    Den torsdag 30 maj 2019 kl. 20:12:21 UTC+2 skrev Jonas Thörnvall:
    Den onsdag 29 maj 2019 kl. 19:10:42 UTC+2 skrev Julio Di Egidio:
    On Wednesday, 29 May 2019 09:07:10 UTC+2, Jonas Thörnvall wrote:

    I think you all missunderstood the question it is about generate, variables dynamically and give them the name of string content.

    Which is an awful idea, as others were saying, and just means you (and whomever is seconding you with that eval) have no idea how JS works.

    Rather note that in JS objects already are essentially dictionaries, i.e. with arbitrary key names, so what you might do is:

    var data = {};
    data[NAME1] = ...;
    data[NAME2] = ...;

    Where NAME1, etc. are the names you get by splitting (string split) the input string. -- For all I could gather from your blathering...

    HTH,

    Julio

    Dealing with javascript objects i was on the virge give it all up, but simplicity and persistence won me over.

    function splitInstrumentFile(ATXT){
    bankName=[];
    var PatchStart = ATXT.indexOf(".Patch Names",0);
    var NoteStart = ATXT.indexOf(".Note Names",0);
    var allBANKS=ATXT.substring(PatchStart+12,NoteStart);
    listBanks(allBANKS);
    }

    function listBanks(allBANKS){
    console.log("Write out just the banks"+allBANKS);
    Abank = allBANKS.split("\n[");
    Abank.shift();
    for(i=0;i<Abank.length;i++){
    //alert(Abank[i]);
    getBankName(i);
    }
    //alert(bankName);
    bankOptionList();
    defaultBank=1;
    document.getElementById("selBank").selectedIndex = defaultBank;
    ListBankInstruments(defaultBank);
    }

    function getBankName(i){
    var ENDBANKNAME = Abank[i].indexOf("]",0);
    bankName[i]=Abank[i].substring(0,ENDBANKNAME);
    }

    function ListBankInstruments(current){
    //REMOVE EMPTY LINES FROM BANK
    Abank[current]=Abank[current].replace(/^\s*[\r]/gm,"");
    //SPLIT BANK INTO ARRAY OF INSTRUMENTS
    instName=Abank[current].split("\n");
    //REMOVE FIRST LINE "BANKNAME"
    instName.shift();
    //alert(instName);
    instOptionList();
    }

    function bankSelection(){
    current=document.getElementById("selBank").selectedIndex;
    ListBankInstruments(current);
    }

    function bankOptionList(){
    bankOptNames="";
    bankSelect ="<select id='selBank' onChange='bankSelection()'>\n";
    for (var r=0;r<bankName.length;r++){
    bankOption=bankName[r];
    //alert(bankName[r]);
    bankOptNames+="<option value="+r+"> "+r+" "+bankOption+"</option>\n";
    }
    bankOptEnd="</select> \n"; bankOptionString=bankSelect+bankOptNames+bankOptEnd; //alert(bankOptionString); document.getElementById("bankOptList").innerHTML=bankOptionString;
    }

    function instOptionList(){
    instOptNames="";
    instSelect ="<select id='selInst' onChange='instSelection()'>\n";
    for (var r=0;r<instName.length;r++){
    instOption=instName[r];
    //alert(bankName[r]);
    instOptNames+="<option value="+r+"> "+instOption+"</option>\n";
    }
    instOptEnd="</select> \n"; instOptionString=bankSelect+instOptNames+instOptEnd; //alert(instOptionString); document.getElementById("instOptList").innerHTML=instOptionString;
    }
    It would be fun to know how someone more knowledgeable would do it in principle. No need for perfect stringexclusion of lines just the gist of howto approach it with objects.
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Thu May 30 11:28:58 2019
    From Newsgroup: comp.lang.javascript

    Den torsdag 30 maj 2019 kl. 20:23:05 UTC+2 skrev Jonas Thörnvall:
    Den torsdag 30 maj 2019 kl. 20:12:21 UTC+2 skrev Jonas Thörnvall:
    Den onsdag 29 maj 2019 kl. 19:10:42 UTC+2 skrev Julio Di Egidio:
    On Wednesday, 29 May 2019 09:07:10 UTC+2, Jonas Thörnvall wrote:

    I think you all missunderstood the question it is about generate, variables dynamically and give them the name of string content.

    Which is an awful idea, as others were saying, and just means you (and whomever is seconding you with that eval) have no idea how JS works.

    Rather note that in JS objects already are essentially dictionaries, i.e. with arbitrary key names, so what you might do is:

    var data = {};
    data[NAME1] = ...;
    data[NAME2] = ...;

    Where NAME1, etc. are the names you get by splitting (string split) the input string. -- For all I could gather from your blathering...

    HTH,

    Julio

    Dealing with javascript objects i was on the virge give it all up, but simplicity and persistence won me over.

    function splitInstrumentFile(ATXT){
    bankName=[];
    var PatchStart = ATXT.indexOf(".Patch Names",0);
    var NoteStart = ATXT.indexOf(".Note Names",0);
    var allBANKS=ATXT.substring(PatchStart+12,NoteStart);
    listBanks(allBANKS);
    }

    function listBanks(allBANKS){
    console.log("Write out just the banks"+allBANKS);
    Abank = allBANKS.split("\n[");
    Abank.shift();
    for(i=0;i<Abank.length;i++){
    //alert(Abank[i]);
    getBankName(i);
    }
    //alert(bankName);
    bankOptionList();
    defaultBank=1;
    document.getElementById("selBank").selectedIndex = defaultBank;
    ListBankInstruments(defaultBank);
    }

    function getBankName(i){
    var ENDBANKNAME = Abank[i].indexOf("]",0);
    bankName[i]=Abank[i].substring(0,ENDBANKNAME);
    }

    function ListBankInstruments(current){
    //REMOVE EMPTY LINES FROM BANK
    Abank[current]=Abank[current].replace(/^\s*[\r]/gm,"");
    //SPLIT BANK INTO ARRAY OF INSTRUMENTS
    instName=Abank[current].split("\n");
    //REMOVE FIRST LINE "BANKNAME"
    instName.shift();
    //alert(instName);
    instOptionList();
    }

    function bankSelection(){
    current=document.getElementById("selBank").selectedIndex;
    ListBankInstruments(current);
    }

    function bankOptionList(){
    bankOptNames="";
    bankSelect ="<select id='selBank' onChange='bankSelection()'>\n";
    for (var r=0;r<bankName.length;r++){
    bankOption=bankName[r];
    //alert(bankName[r]);
    bankOptNames+="<option value="+r+"> "+r+" "+bankOption+"</option>\n";
    }
    bankOptEnd="</select> \n"; bankOptionString=bankSelect+bankOptNames+bankOptEnd; //alert(bankOptionString); document.getElementById("bankOptList").innerHTML=bankOptionString;
    }

    function instOptionList(){
    instOptNames="";
    instSelect ="<select id='selInst' onChange='instSelection()'>\n";
    for (var r=0;r<instName.length;r++){
    instOption=instName[r];
    //alert(bankName[r]);
    instOptNames+="<option value="+r+"> "+instOption+"</option>\n";
    }
    instOptEnd="</select> \n"; instOptionString=bankSelect+instOptNames+instOptEnd; //alert(instOptionString); document.getElementById("instOptList").innerHTML=instOptionString;
    }

    It would be fun to know how someone more knowledgeable would do it in principle. No need for perfect stringexclusion of lines just the gist of howto approach it with objects.
    Here is the file
    ;
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    .Patch Names
    [N364 GM Drums]
    0 = GM Kit
    16 = Power Kit
    24 = Dance Kit
    25 = Analog Kit
    32 = Jazz Kit
    40 = Brush Kit
    48 = Orch Kit
    64 = Perc Kit
    [N364 Prog GM]
    0 = Piano
    1 = BritePiano
    2 = HammerPno
    3 = HonkeyTonk
    4 = New Tines
    5 = Digi Piano
    6 = Harpsichord
    7 = Clav
    8 = Celesta
    9 = Glocken
    10 = Music Box
    11 = Vibes
    12 = Marimba
    13 = Xylophon
    14 = Tubular
    15 = Santur
    16 = Full Organ
    17 = Perc Organ
    18 = BX - 3 Organ
    19 = ChurchPipe
    20 = Positive
    21 = Musette
    22 = Harmonica
    23 = Tango
    24 = ClassicGtr
    25 = A.Guitar
    26 = JazzGuitar
    27 = Clean Gtr
    28 = MuteGuitar
    29 = Over Drive
    30 = DistGuitar
    31 = RockMonics
    32 = Jazz Bass
    33 = Deep Bass
    34 = Pick Bass
    35 = Fretless
    36 = SlapBass 1
    37 = SlapBass 2
    38 = SynthBass1
    39 = SynthBass2
    40 = Violin
    41 = Viola
    42 = Cello
    43 = ContraBass
    44 = TremoloStr
    45 = Pizzicato
    46 = Harp
    47 = Timpani
    48 = Marcato
    49 = SlowString
    50 = Analog Pad
    51 = String Pad
    52 = Choir
    53 = Doo Voice
    54 = Voices
    55 = Orch Hit
    56 = Trumpet
    57 = Trombone
    58 = Tuba
    59 = Muted Trpt
    60 = FrenchHorn
    61 = Brass
    62 = SynBrass 1
    63 = SynBrass 2
    64 = SopranoSax
    65 = Alto Sax
    66 = Tenor Sax
    67 = Bari Sax
    68 = Sweet Oboe
    69 = EnglishHrn
    70 = BasoonOboe
    71 = Clarinet
    72 = Piccolo
    73 = Flute
    74 = Recorder
    75 = Pan Flute
    76 = Bottle
    77 = Shakuhachi
    78 = Whistle
    79 = Ocarina
    80 = SquareWave
    81 = Saw Wave
    82 = SynCaliope
    83 = Syn Chiff
    84 = Charang
    85 = AirChorus
    86 = Rezzo4ths
    87 = Bass & Lead
    88 = Fantasia
    89 = Warm Pad
    90 = Poly Pad
    91 = Ghost Pad
    92 = BowedGlass
    93 = Metal Pad
    94 = Halo Pad
    95 = Sweep
    96 = Ice Rain
    97 = SoundTrack
    98 = Crystal
    99 = Atmosphere
    100 = Brightness
    101 = Goblin
    102 = Echo Drop
    103 = Star Theme
    104 = Sitar
    105 = Banjo
    106 = Shamisen
    107 = Koto
    108 = Kalimba
    109 = Scotland
    110 = Fiddle
    111 = Shanai
    112 = Metal Bell
    113 = Agogo
    114 = SteelDrums
    115 = WoodBlock
    116 = Taiko
    117 = Tom
    118 = Synth Tom
    119 = Rev Cymbal
    120 = Fret Noise
    121 = NoiseChiff
    122 = SeaShore
    123 = Birds
    124 = Telephone
    125 = Helicopter
    126 = Stadium!!
    127 = Gunshot
    [N364 Prog A]
    0 = A00 Hyper: Wave
    1 = A01 N264 Piano
    2 = A02 Ultra Rez
    3 = A03 MusicaLoop
    4 = A04 MonsterWah
    5 = A05 N - Strings
    6 = A06 NuFretless
    7 = A07 RockSteady
    8 = A08 TotalSynth
    9 = A09 Zulu Kit
    10 = A10 Ravel Pad
    11 = A11 PianoMagic
    12 = A12 Arpeggiate
    13 = A13 VoodooSong
    14 = A14 MiniODLead
    15 = A15 SlowSunset
    16 = A16 SuperRound
    17 = A17 RealVoices
    18 = A18 DanceReMix
    19 = A19 CyberTrash
    20 = A20 RunawayPad
    21 = A21 MutronClav
    22 = A22 DoubleMini
    23 = A23 ClockWorks
    24 = A24 Rick & aPick
    25 = A25 Fragments
    26 = A26 Dyno - Bass
    27 = A27 Jazz Organ
    28 = A28 AnalogSync
    29 = A29 Power Play
    30 = A30 Tekno: Sync
    31 = A31 TXPianoTap
    32 = A32 Stick - 2 - It
    33 = A33 WhiteNoise
    34 = A34 R & R Guitar
    35 = A35 Antartica
    36 = A36 Thumb Slap
    37 = A37 Velo B
    38 = A38 Alaska
    39 = A39 Lazer Toms
    40 = A40 In The Pad
    41 = A41 StereoClav
    42 = A42 SquareBass
    43 = A43 DreamBells
    44 = A44 Metal King
    45 = A45 Underscore
    46 = A46 Big Bottom
    47 = A47 Small ^ Orch
    48 = A48 Film Cue
    49 = A49 Cyber Hit
    50 = A50 Wavetables
    51 = A51 Dyno Roads
    52 = A52 Chrome Rez
    53 = A53 TheSunrise
    54 = A54 Guitarist
    55 = A55 VeloVoxPad
    56 = A56 Clean Bass
    57 = A57 Classic B
    58 = A58 Super - > Stab
    59 = A59 Modern Kit
    60 = A60 Mod: Matrix
    61 = A61 Syn Piano
    62 = A62 LowEndBass
    63 = A63 JackSlide
    64 = A64 Mandolin
    65 = A65 Padanomic
    66 = A66 Rock Bass
    67 = A67 VocalChoir
    68 = A68 Ghost Stab
    69 = A69 ThunderTom
    70 = A70 Labyrinth
    71 = A71 Wire Clav
    72 = A72 Lo - End - Rez
    73 = A73 Waterphone
    74 = A74 Electric12
    75 = A75 AirFantasy
    76 = A76 Thumb & Slap
    77 = A77 Green Eyes
    78 = A78 PowerLayer
    79 = A79 GiantDrums
    80 = A80 Wave World
    81 = A81 SynVoxKeys
    82 = A82 Cyber Bass
    83 = A83 TheHeavens
    84 = A84 Light Pizz
    85 = A85 Synth Fife
    86 = A86 Super Bass
    87 = A87 Vox Voice
    88 = A88 SyncNoEvil
    89 = A89 Mark Trees
    90 = A90 The7thWave
    91 = A91 DW - 8000 EP
    92 = A92 Vibra Harp
    93 = A93 Toy Bellz
    94 = A94 M1TenorSax
    95 = A95 TheSandman
    96 = A96 Deep House
    97 = A97 BX3 Medium
    98 = A98 Mega Synth
    99 = A99 OldKalimba
    [N364 Prog B]
    0 = B00 PipeDreams
    1 = B01 X Piano
    2 = B02 BigStrings
    3 = B03 Asian Jung
    4 = B04 Rock On!!!
    5 = B05 GlockBells
    6 = B06 FatRezBass
    7 = B07 BreathyVox
    8 = B08 Xanalog
    9 = B09[KrazyKit]
    10 = B10 Transforms
    11 = B11 Killer B
    12 = B12 Pop Brass
    13 = B13 Harp Gliss
    14 = B14 BriteSteel
    15 = B15 PingMallet
    16 = B16 Upright
    17 = B17 Velo Flute
    18 = B18 LA Synth
    19 = B19[ComboKit]
    20 = B20 Wave Sweep
    21 = B21 FunkyRoads
    22 = B22 AnaStrings
    23 = B23 Euro Pipe
    24 = B24 Stratified
    25 = B25 CrystalIce
    26 = B26 Dance Bass
    27 = B27 Ghost Vox
    28 = B28 FatFilterz
    29 = B29[Down Low]
    30 = B30 Sputnik
    31 = B31 Super Perc
    32 = B32 BrassSwell
    33 = B33 Lore
    34 = B34 Follow Me
    35 = B35 Logs & Bells
    36 = B36 90 s Bass
    37 = B37 FreshWaves
    38 = B38 MIDI Grand
    39 = B39[Mr.Gong]
    40 = B40 LandingPad
    41 = B41 M1 Piano
    42 = B42 DynoString
    43 = B43 Tamboura
    44 = B44 Cruncher
    45 = B45 Star Fire
    46 = B46 SynthBass3
    47 = B47 Woodwinds
    48 = B48 Reso Waves
    49 = B49[Manimals]
    50 = B50 Vortex
    51 = B51 ClickOrgan
    52 = B52 StereoHorn
    53 = B53 MalletLoop
    54 = B54 Flamenco
    55 = B55 MetalGhost
    56 = B56 Velo Pick
    57 = B57 ooooooooze
    58 = B58 Dr.Tapp
    59 = B59[Loop SFX]
    60 = B60 TimeClocks
    61 = B61 Classic EP
    62 = B62 Cello Ens.
    63 = B63 Godfather
    64 = B64 Funk Guitr
    65 = B65 RealGamlon
    66 = B66 ChromeBass
    67 = B67 Real Shaku
    68 = B68 Split Sync
    69 = B69[Nature]
    70 = B70 SynTronic
    71 = B71 Super BX - 3
    72 = B72 Trump Ens.
    73 = B73 Jaw Harp
    74 = B74 Rock Chuga
    75 = B75 TheIceMan
    76 = B76 Velo Slap
    77 = B77 Flutter
    78 = B78 Swell Pad
    79 = B79[Natives!]
    80 = B80 Quarks
    81 = B81 Dyno Tines
    82 = B82 VeloFlugel
    83 = B83 Polka Box
    84 = B84 FeedbackGt
    85 = B85 Swiss Box
    86 = B86 Big Mini
    87 = B87 Arabesque
    88 = B88 Syn Brass
    89 = B89[DrillMe!]
    90 = B90 Universe X
    91 = B91 Big Organ
    92 = B92 EthnoVioln
    93 = B93 Real Sitar
    94 = B94 Greek Gtr.
    95 = B95 Midi Bells
    96 = B96 Stick Bass
    97 = B97 SopranoVox
    98 = B98 Solo Synth
    99 = B99[Jet Star]
    [N364 Prog C]
    0 = C00 Sunrise
    1 = C01 Piano 16
    2 = C02 AltoBreath
    3 = C03 TinyDancer
    4 = C04 Spruce Gtr
    5 = C05 Vibra Bell
    6 = C06 XFade Bass
    7 = C07 The Strings
    8 = C08 PowerSynth
    9 = C09 Total Kit
    10 = C10 MachineAge
    11 = C11 Hot Keys
    12 = C12 Brass Band
    13 = C13 Maxi Tine
    14 = C14 Power Rock
    15 = C15 Tabla Talk
    16 = C16 FingerBass
    17 = C17 LiteVoices
    18 = C18 Color Pad
    19 = C19 Festival!
    20 = C20 GlideSweep
    21 = C21 Last Tango
    22 = C22 MagicFlute
    23 = C23 Operators
    24 = C24 E.Guitars
    25 = C25 Gamelan
    26 = C26 Zap Bass
    27 = C27 DigitalAir
    28 = C28 Anologist
    29 = C29 MandoTrem
    30 = C30 Space Wing
    31 = C31 Gospel Org
    32 = C32 Trumpets
    33 = C33 Fresh Air
    34 = C34 Rock Mutes
    35 = C35 Dustette
    36 = C36 PickedBass
    37 = C37 ChamberEns
    38 = C38 Wire Pad
    39 = C39 Industrial
    40 = C40 Neutron
    41 = C41 PianoHaven
    42 = C42 Shaku Bend
    43 = C43 BowenWave
    44 = C44 Clean Funk
    45 = C45 SplitBell
    46 = C46 Slap It
    47 = C47 AnalogPad
    48 = C48 Residue
    49 = C49 Orch Perc
    50 = C50 DreamWorld
    51 = C51 HarpsiFunk
    52 = C52 FlugelHorn
    53 = C53 Elec.Tap
    54 = C54 Harmonics
    55 = C55 Africana
    56 = C56 TechnoBass
    57 = C57 Airways
    58 = C58 Busy Boy
    59 = C59 Heartbeat
    60 = C60 Spectrum
    61 = C61 Full Pipes
    62 = C62 Woodwinds
    63 = C63 Whirly
    64 = C64 LeadGuitar
    65 = C65 Isabelle
    66 = C66 Fat Fretty
    67 = C67 Poppin Pad
    68 = C68 Soft Horns
    69 = C69 ProducrKit
    70 = C70 InTheTrees
    71 = C71 SantaClav
    72 = C72 Sfz < Bass
    73 = C73 Tine Pad
    74 = C74 PedalSteel
    75 = C75 Log Drums
    76 = C76 HouseBass1
    77 = C77 Ambi.Voice
    78 = C78 MonoLead
    79 = C79 Hackbrett
    80 = C80 Halifax NS
    81 = C81 Drawbars
    82 = C82 Fanfare
    83 = C83 Hard Tines
    84 = C84 Dr.Guitar
    85 = C85 Etherbells
    86 = C86 Bass / Harm
    87 = C87 Air Vox
    88 = C88 Drum Hit
    89 = C89 50 s SciFi
    90 = C90 SteamCloud
    91 = C91 Bouzouki
    92 = C92 BriteBrass
    93 = C93 DWGS EP
    94 = C94 JoyStickUp
    95 = C95 WaveCycles
    96 = C96 Rap Bass
    97 = C97 OoooohPad
    98 = C98 Bright Pad
    99 = C99 HarpPluck
    [N364 Prog D]
    0 = D00 ElastikPad
    1 = D01 ExpressoPF
    2 = D02 PerkySaxes
    3 = D03 XFade EP
    4 = D04 Nylon Gtr
    5 = D05 JewelryBox
    6 = D06 WoddenYou ?
    7 = D07 Symphonic
    8 = D08 Lead Stab
    9 = D09 Rave Kit
    10 = D10 Space Pets
    11 = D11 VS Organ
    12 = D12 Brasstereo
    13 = D13 Methane EP
    14 = D14 DblDists
    15 = D15 ShamiMalet
    16 = D16 Bass Solo
    17 = D17 Ice Flakes
    18 = D18 Chester
    19 = D19 RhythmJunk
    20 = D20 BellShower
    21 = D21 Fisa 8
    22 = D22 TamboFlute
    23 = D23 BuzzComper
    24 = D24 Strummers
    25 = D25 ClockTower
    26 = D26 SweepBass
    27 = D27 Pan Mallet
    28 = D28 SteamBrass
    29 = D29 CymbalHit
    30 = D30 PrarieDawn
    31 = D31 Rotary Org
    32 = D32 Horn Ens
    33 = D33 Super Tine
    34 = D34 ChunkaPick
    35 = D35 MagicBell
    36 = D36 Bass / Mute
    37 = D37 ArcoAttack
    38 = D38 High Wire
    39 = D39 Stab Pad
    40 = D40 CicadaBugs
    41 = D41 Piano & Str
    42 = D42 Traverso
    43 = D43 SpectrumEP
    44 = D44 Mr.Clean
    45 = D45 Borealis
    46 = D46 Fat Slap
    47 = D47 Choir L + R
    48 = D48 CompThing!
    49 = D49 TunedDrums
    50 = D50 TibetBells
    51 = D51 DoubleStop
    52 = D52 Warm Tromb
    53 = D53 WaveTap
    54 = D54 HollowBody
    55 = D55 HardBamboo
    56 = D56 Tech Bass
    57 = D57 Composure
    58 = D58 BrassSynth
    59 = D59 EchoTabla
    60 = D60 UnderWater
    61 = D61 Organ 1
    62 = D62 SweetReeds
    63 = D63 Mallet EP
    64 = D64 ElectricAc
    65 = D65 VS Bells
    66 = D66 Dr.Octave
    67 = D67 PitzPan
    68 = D68 Leeeed
    69 = D69 VeloGated
    70 = D70 Wind Storm
    71 = D71 Vectorcord
    72 = D72 War Pipes
    73 = D73 DigiPiano
    74 = D74 12 StringGt
    75 = D75 AfricanJam
    76 = D76 HouseBass2
    77 = D77 Bottle Pad
    78 = D78 SynBrass 4
    79 = D79 SitarSitar
    80 = D80 FlyingToys
    81 = D81 Tone Wheel
    82 = D82 BasoonOboe
    83 = D83 Emmalisha
    84 = D84 Organ 2
    85 = D85 SolarBells
    86 = D86 Funk Bass
    87 = D87 Heavenly
    88 = D88 Soft Pad
    89 = D89 Mysterian
    90 = D90 Last Dream
    91 = D91 OrganTouch
    92 = D92 Mute Ens.
    93 = D93 Siesta EP
    94 = D94 FunkGuitar
    95 = D95 Ice Bell
    96 = D96 Thumb Bass
    97 = D97 Shaku Pad
    98 = D98 VeloSweep
    99 = D99 InTheUood
    [N364 Combi A]
    0 = A00 FirstLight
    1 = A01 Grinding B
    2 = A02 Shangri - La
    3 = A03 Mast World
    4 = A04 World Bass
    5 = A05 Max Impact
    6 = A06 Rave Vox
    7 = A07 OrchDivisi
    8 = A08 SongOfLife
    9 = A09 Dance Trak
    10 = A10 InTheMaze
    11 = A11 Power Keys
    12 = A12 Horn Stabs
    13 = A13 Goldmine
    14 = A14 Maya Dance
    15 = A15 Melotronic
    16 = A16 House Mix
    17 = A17 Orch Split
    18 = A18 Morocco
    19 = A19 Didjeridoo
    20 = A20 XYjoystick
    21 = A21 Super Jazz
    22 = A22 OB - Analog
    23 = A23 String Cue
    24 = A24 RhythmnGtr
    25 = A25 EasternSun
    26 = A26 GiantSplit
    27 = A27 Allegro
    28 = A28 PolyChords
    29 = A29 PowerHouse
    30 = A30 L.F.O.City
    31 = A31 MIDIEP - Pad
    32 = A32 Square Rez
    33 = A33 SkyCatLead
    34 = A34 Fade Away
    35 = A35 9 Inchers
    36 = A36 PhaseTwins
    37 = A37 Velo - Pizz
    38 = A38 TheGameLan
    39 = A39 UnderWorld
    40 = A40 Vaporizer
    41 = A41 BigDrawbar
    42 = A42 Sax Band
    43 = A43 Boys Choir
    44 = A44 HeartBreak
    45 = A45 Wet Lands
    46 = A46 HouseOfSki
    47 = A47 NightMusic
    48 = A48 NeverLand
    49 = A49 DJ * ToolBox
    50 = A50 QuarkSpark
    51 = A51 M - 1 LayerEP
    52 = A52 PowerStack
    53 = A53 HitTheDust
    54 = A54 Power Band
    55 = A55 WaveJammer
    56 = A56 Green Rave
    57 = A57 NutCracker
    58 = A58 NightTrain
    59 = A59 Worm Hole
    60 = A60 Virtuals
    61 = A61 Stax Organ
    62 = A62 Anna Split
    63 = A63 ArcoString
    64 = A64 Slap Stick
    65 = A65 Botswana
    66 = A66 Asidic
    67 = A67 DelayedHit
    68 = A68 Sir Robin
    69 = A69 EtherScape
    70 = A70 Gyroscope
    71 = A71 Whirly Pad
    72 = A72 Rezzo Comp
    73 = A73 Voices2Men
    74 = A74 Fret - Not!
    75 = A75 RagaTrance
    76 = A76 X - VoxSplit
    77 = A77 Serenade
    78 = A78 Jazz Duet
    79 = A79 AlienProbe
    80 = A80 Alienesque
    81 = A81 The Legend
    82 = A82 Real Horns
    83 = A83 Eternal
    84 = A84 InTheArena
    85 = A85 N: Wave: Seq
    86 = A86 Euroman
    87 = A87 Orch Winds
    88 = A88 Pacifica
    89 = A89 TheBigBang
    90 = A90 Uni Verse
    91 = A91 O.D.Organ
    92 = A92 Sync Home
    93 = A93 AngelChoir
    94 = A94 Prog Split
    95 = A95 Trinidad
    96 = A96 Enose Horn
    97 = A97 Ensembled
    98 = A98 There & Back
    99 = A99 Sea Storm
    [N364 Combi B]
    0 = B00 SolarFlare
    1 = B01 StereoKeys
    2 = B02 X Strings
    3 = B03 AnalogKing
    4 = B04 CrankItUp!
    5 = B05 Headhunter
    6 = B06 Rock Organ
    7 = B07 X Brass
    8 = B08 TheSingers
    9 = B09 Wild Drums
    10 = B10 < The West >
    11 = B11 Super EP
    12 = B12 Wind - > Orch
    13 = B13 Maxi Stab
    14 = B14 12 String
    15 = B15 < The East >
    16 = B16 ChorusClav
    17 = B17 Bass / Horn
    18 = B18 Ice Bells
    19 = B19 Wild Split
    20 = B20 Warriors
    21 = B21 Fat Pianos
    22 = B22 Sonata
    23 = B23 LayerSynth
    24 = B24 WaveGuitar
    25 = B25 EthnicOrch
    26 = B26 Cathedral
    27 = B27 BrassSwell
    28 = B28 Java Bells
    29 = B29 PhantomSax
    30 = B30 AncientSun
    31 = B31 Velo Roads
    32 = B32 Symphony
    33 = B33 NeroFunk
    34 = B34 Slappin
    35 = B35 EastAfrica
    36 = B36 Ultra Perc
    37 = B37 TheSaxMen
    38 = B38 LunarBells
    39 = B39 << < Hell >>>
    40 = B40 << Heaven >>
    41 = B41 Rock Piano
    42 = B42 ChamberOrc
    43 = B43 Multi Rez
    44 = B44 Chorus Gtr
    45 = B45 Zen Garden
    46 = B46 Accordion
    47 = B47 MutedHorns
    48 = B48 PizzoSynth
    49 = B49 RapToolKit
    50 = B50 Megatron
    51 = B51 BS / EP & Str
    52 = B52 Fanfare
    53 = B53 Big Swell
    54 = B54 StickSplit
    55 = B55 Indian Jam
    56 = B56 Harpsichord
    57 = B57 Bass / Brass
    58 = B58 Moon Stone
    59 = B59 Torquemada
    60 = B60 Crossfades
    61 = B61 SuperKeys
    62 = B62 Woodwinds
    63 = B63 OctaveLead
    64 = B64 Malaguena
    65 = B65 RhythmPipe
    66 = B66 FullManual
    67 = B67 Bows / Trpt
    68 = B68 Airiana
    69 = B69 SpaceZones
    70 = B70 New Worlds
    71 = B71 Digi Piano
    72 = B72 FullString
    73 = B73 Rezzo Funk
    74 = B74 Guitar Man
    75 = B75 Warm Koto
    76 = B76 Rock Show!
    77 = B77 Big Band
    78 = B78 Vox Bells
    79 = B79 MenAtWork
    80 = B80 Galaxia
    81 = B81 Bass / Piano
    82 = B82 Str / Oboe
    83 = B83 RezzoSplit
    84 = B84 TheOldWest
    85 = B85 Lost Tribe
    86 = B86 DualManual
    87 = B87 Trpt & Bones
    88 = B88 Bellendra
    89 = B89 Star Lense
    90 = B90 The Abyss
    91 = B91 Piano & Str
    92 = B92 ChamberStr
    93 = B93 Hard Sync
    94 = B94 Gtr / Flute
    95 = B95 RainForest
    96 = B96 PipeOrgan
    97 = B97 Hot Salsa
    98 = B98 Prisms
    99 = B99 TheDentist
    [N364 Combi C]
    0 = C00 Star * Burst
    1 = C01 LayerPiano
    2 = C02 Synth Fat
    3 = C03 Satellite
    4 = C04 Mr.Tone
    5 = C05 Calcutta
    6 = C06 FunkySpice
    7 = C07 Layer Str
    8 = C08 Sax Heaven
    9 = C09 Celebrate!
    10 = C10 First * Snow
    11 = C11 Bass & Piano
    12 = C12 Full Brass
    13 = C13 Sing To Me
    14 = C14 Mr.Chorus
    15 = C15 Javanese
    16 = C16 L ilBit O
    17 = C17 Philarmony
    18 = C18 Half Moons
    19 = C19 HereItComz
    20 = C20 Rezolution
    21 = C21 The Gospel
    22 = C22 New Rave
    23 = C23 FlutterPad
    24 = C24 Shoestring
    25 = C25 Tethnical
    26 = C26 Full Pipe
    27 = C27 Overture
    28 = C28 Lead & Pad
    29 = C29 Dulcimer
    30 = C30 StormOf 93
    31 = C31 Stak oMidi
    32 = C32 SmokyHorn
    33 = C33 VeloVoxBel
    34 = C34 Slap & Pop
    35 = C35 Bass & Vibes
    36 = C36 Super Perc
    37 = C37 Pizz & Bow
    38 = C38 Aquarium
    39 = C39 HouseParty
    40 = C40 Bell Come!
    41 = C41 EP & String
    42 = C42 Latin Band
    43 = C43 Human Beam
    44 = C44 12 Stereo
    45 = C45 Instanbul
    46 = C46 Busy Split
    47 = C47 Orchestral
    48 = C48 CymbalLife
    49 = C49 Space Port
    50 = C50 Beach Walk
    51 = C51 DynoPiano
    52 = C52 Centerfold
    53 = C53 InTheLight
    54 = C54 Velo Chord
    55 = C55 SugarBells
    56 = C56 Blues Harp
    57 = C57 Grandioso
    58 = C58 Osaka Jazz
    59 = C59 MasterFisa
    60 = C60 Autumn
    61 = C61 ElecPno & Bs
    62 = C62 MasterFunk
    63 = C63 VeloVoices
    64 = C64 Split Bass
    65 = C65 Ethno Geo
    66 = C66 Ruff & Ready
    67 = C67 Madrigal
    68 = C68 ChiffSplit
    69 = C69 Dagobar
    70 = C70 Child Song
    71 = C71 Pontette
    72 = C72 GoToSweep
    73 = C73 SilkRoad33
    74 = C74 Nashville
    75 = C75 Bolshoi
    76 = C76 Wasp Sting
    77 = C77 AnaStrings
    78 = C78 ChrisTall
    79 = C79 Rave Hits
    80 = C80 SunOfTron
    81 = C81 SamAntic
    82 = C82 SweetMutes
    83 = C83 Nebulae
    84 = C84 Dole Bee
    85 = C85 The Sphinx
    86 = C86 Deep Organ
    87 = C87 StringsAtk
    88 = C88 Lassie & Tim
    89 = C89 DeathStars
    90 = C90 FreeTime
    91 = C91 PianoSings
    92 = C92 BiggerIdea
    93 = C93 Safari
    94 = C94 Guitar & Pad
    95 = C95 ChinaBell
    96 = C96 Sky Cat
    97 = C97 HarpString
    98 = C98 Night Taps
    99 = C99 Slammin
    [N364 Combi D]
    0 = D00 Sea Horses
    1 = D01 Power Comp
    2 = D02 Midi Winds
    3 = D03 ProxiMidi
    4 = D04 Oh - La - La!
    5 = D05 IndianOrch
    6 = D06 Pop Clav
    7 = D07 Double Bow
    8 = D08 Alto Dream
    9 = D09 VillageJam
    10 = D10 Backyard
    11 = D11 CountOnMe
    12 = D12 Trpt.Brass
    13 = D13 Acappella
    14 = D14 AndyPlayIt
    15 = D15 Fairy Bell
    16 = D16 Rotary Man
    17 = D17 Leti Theme
    18 = D18 Canyon
    19 = D19 StealDrums
    20 = D20 Right & Left
    21 = D21 Two In One
    22 = D22 ODriveLead
    23 = D23 TheRedSun
    24 = D24 Guitairs
    25 = D25 Ethnetic
    26 = D26 WeddingDay
    27 = D27 Concerto
    28 = D28 LegatoReed
    29 = D29 Bavaria
    30 = D30 Rain Chime
    31 = D31 Remedies
    32 = D32 Big Band
    33 = D33 VoxGamelan
    34 = D34 DynamoBass
    35 = D35 VibeRation
    36 = D36 SplitOrgan
    37 = D37 Pizz A Pie
    38 = D38 TechnoPres
    39 = D39 Witch Hunt
    40 = D40 Blade Runs
    41 = D41 Piano Pad
    42 = D42 MillerTime
    43 = D43 Wood Vox
    44 = D44 Folk Picks
    45 = D45 Sting & Wind
    46 = D46 ToBeBass
    47 = D47 Delicato
    48 = D48 Sophism
    49 = D49 Ethno Vox
    50 = D50 PowderSnow
    51 = D51 Tiny & Tiny
    52 = D52 Emmalog
    53 = D53 Dreamy P
    54 = D54 RockShow!
    55 = D55 Basenall
    56 = D56 Organ Pad
    57 = D57 BigStrings
    58 = D58 Cool Duet
    59 = D59 Mazurca
    60 = D60 Pollenesk
    61 = D61 Bass & EP
    62 = D62 BadScream
    63 = D63 AlienSings
    64 = D64 Bass Solo
    65 = D65 Milagro
    66 = D66 Fusionist
    67 = D67 WoodSector
    68 = D68 TypeALine
    69 = D69 Bug Forest
    70 = D70 TheyAppear
    71 = D71 Emmabama
    72 = D72 TheSweeper
    73 = D73 Dreaming
    74 = D74 Fat Pluck
    75 = D75 12 ToneBelz
    76 = D76 Have Fun
    77 = D77 Bows & Brass
    78 = D78 Echo Suite
    79 = D79 Percolator
    80 = D80 Vectoring
    81 = D81 Hard & Sweet
    82 = D82 Trombhorns
    83 = D83 Synmonics
    84 = D84 TwoWorlds!
    85 = D85 ShakAttack
    86 = D86 Mixture
    87 = D87 The Finale
    88 = D88 Fif - Dsplit
    89 = D89 AfricaMood
    90 = D90 Encounters
    91 = D91 LayerCake
    92 = D92 Puffalog
    93 = D93 Pad + Alpha
    94 = D94 BreakADish
    95 = D95 Randomizer
    96 = D96 Fuzz EP
    97 = D97 HornMelody
    98 = D98 Acid Tools
    99 = D99 TimeTunnel
    ;
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    .Note Names
    [N364 Analog Kit]
    28 = Syn Kick 3
    29 = Syn Snare 2
    30 = Open Syn HH
    31 = Dance Kick
    32 = Timbales
    33 = Ambi.Snare
    34 = Rev Snare
    35 = Crisp Kick
    36 = Syn Kick 1
    37 = Syn Rim
    38 = Syn Snare 1
    39 = Syn Claps
    40 = Light Snare
    41 = Syn Tom 1
    42 = CloseSynHH
    43 = Syn Tom 1
    44 = CloseSynHH
    45 = Syn Tom 1
    46 = Open SynHH
    47 = Syn Tom 1
    48 = Syn Tom 1
    49 = Open SynHH
    50 = Syn Tom 1
    51 = Ride Edge
    52 = China Cym
    53 = Ride Cup
    54 = Tambourine
    55 = Splash Cym
    56 = Syn Cowbell
    57 = Crash Cym
    58 = Vibraslap
    59 = Ride Cym 1
    60 = Hi Bongo
    61 = Lo Bongo
    62 = SynTom1 Hi
    63 = SynTom1 Hi
    64 = SynTom1 Hi
    65 = Hi Tymbal
    66 = Lo Tymbal
    67 = Agogo
    68 = Agogo
    69 = Cabasa
    70 = Syn Maracas
    71 = Whistle S
    72 = Whistle L
    73 = Guiro S
    74 = Guiro L
    75 = Syn Claves
    76 = Woodblock2
    77 = Woodblock3
    78 = Mute Cuica
    79 = Open Cuica
    80 = Mute Triang
    81 = Open Triang
    82 = Cabasa
    83 = JingleBell
    84 = Bell Tree
    85 = Castanet
    86 = Side Stick
    87 = Taiko Lo
    [N364 Brush Kit]
    28 = Crisp Kick
    29 = FingerSnap
    30 = Open HH
    31 = Ambi.Kick
    32 = Timbales
    33 = Brush Slap
    34 = RollSnare1
    35 = Punch Kick
    36 = Rock Kick
    37 = Side Stick
    38 = Brush Tap
    39 = Brush Slap
    40 = BrushSwish
    41 = Brush Tom
    42 = Tite HH
    43 = Brush Tom
    44 = Pedal HH
    45 = Brush Tom
    46 = Open HH
    47 = Brush Tom
    48 = Brush Tom
    49 = Crash Cym
    50 = Brush Tom
    51 = Ride Cym 2
    52 = China Cym
    53 = Ride Sym 1
    54 = Tambourine
    55 = Splash Cym
    56 = Cowbell
    57 = Crash Cym
    58 = Vibraslap
    59 = Ride Edge
    60 = Hi Bongo
    61 = Lo Bongo
    62 = Mute Conga
    63 = Open Conga
    64 = Open Conga
    65 = Hi Tymbal
    66 = Lo Tymbal
    67 = Agogo
    68 = Agogo
    69 = Cabasa
    70 = Maracas
    71 = Whistle S
    72 = Whistle L
    73 = Guiro S
    74 = Guiro L
    75 = Claves
    76 = Woodblock2
    77 = Woodblock3
    78 = Mute Cuica
    79 = Open Cuica
    80 = Mute Triang
    81 = Open Triang
    82 = Cabasa
    83 = JingleBell
    84 = Bell Tree
    85 = Castanet
    86 = Side Stick
    87 = Taiko Lo
    [N364 Dance Kit]
    28 = Crisp Kick
    29 = PicloSnare
    30 = Open HH
    31 = Syn Kick 2
    32 = Side Stick
    33 = TightSnare
    34 = Rev Snare
    35 = Ambi.Kick
    36 = Dance Kick
    37 = Side Stick
    38 = Syn Snare2
    39 = HAnd Claps
    40 = Ambi.Snare
    41 = ProcessTom
    42 = Tite HH
    43 = ProcessTom
    44 = Pedal HH
    45 = ProcessTom
    46 = Open HH
    47 = ProcessTom
    48 = ProcessTom
    49 = Crash Cym
    50 = ProcessTom
    51 = Ride Edge
    52 = China Cym
    53 = Ride Cup
    54 = Tambourine
    55 = Splash Cym
    56 = Cowbell
    57 = Crash Cym
    58 = Vibraslap
    59 = Ride Edge
    60 = Hi Bongo
    61 = Lo Bongo
    62 = Mute Conga
    63 = Open Conga
    64 = Open Conga
    65 = Hi Tymbal
    66 = Lo Tymbal
    67 = Agogo
    68 = Agogo
    69 = Cabasa
    70 = Maracas
    71 = Whistle S
    72 = Whistle L
    73 = Guiro S
    74 = Guiro L
    75 = Claves
    76 = Woodblock2
    77 = Woodblock3
    78 = Mute Cuica
    79 = Open Cuica
    80 = Mute Triang
    81 = Open Triang
    82 = Cabasa
    83 = JingleBell
    84 = Bell Tree
    85 = Castanet
    86 = Side Stick
    87 = Taiko Lo
    [N364 GM Kit]
    28 = Rock Kick
    29 = Snare 3
    30 = Open HH
    31 = Fat Kick
    32 = Timbales
    33 = Snare 1
    34 = RollSnare1
    35 = Real Kick
    36 = ProcesKick
    37 = Side Stick
    38 = Rock Snare
    39 = Hand Claps
    40 = Light Snare
    41 = Tom Lo
    42 = Tite HH
    43 = Tom Lo
    44 = Pedal HH
    45 = Tom Lo
    46 = Open HH
    47 = Tom Hi
    48 = Tom Hi
    49 = Crash Cym
    50 = Tom Hi
    51 = Ride Edge
    52 = China Cym
    53 = Ride Cup
    54 = Tambourine
    55 = Splash Cym
    56 = Cowbell
    57 = Crash Cym
    58 = Vibraslap
    59 = Ride Cym 1
    60 = Hi Bongo
    61 = Lo Bongo
    62 = Mute Conga
    63 = Open Conga
    64 = Open Conga
    65 = Hi Tymbal
    66 = Lo Tymbal
    67 = Agogo
    68 = Agogo
    69 = Cabasa
    70 = Maracas
    71 = Whistle S
    72 = Whistle L
    73 = Guiro S
    74 = Guiro L
    75 = Claves
    76 = Woodblock2
    77 = Woodblock3
    78 = Mute Cuica
    79 = Open Cuica
    80 = Mute Triang
    81 = Open Triang
    82 = Cabasa
    83 = JingleBell
    84 = Bell Tree
    85 = Castanet
    86 = Side Stick
    87 = Taiko Lo
    [N364 Jazz Kit]
    28 = Crisp Kick
    29 = Snare 4
    30 = Open HH
    31 = Ambi.Kick
    32 = Timbales
    33 = RollSnare2
    34 = RollSnare1
    35 = Punch Kick
    36 = Rock Kick
    37 = Side Stick
    38 = Soft Snare
    39 = Hand Claps
    40 = Snare 2
    41 = Tom Lo
    42 = Tite HH
    43 = Tom Lo
    44 = Pedal HH
    45 = Tom Lo
    46 = Open HH
    47 = Tom Hi
    48 = Tom Hi
    49 = Crash Cym
    50 = Tom Hi
    51 = Ride Cym 2
    52 = China Cym
    53 = Ride Sym 1
    54 = Tambourine
    55 = Splash Cym
    56 = Cowbell
    57 = Crash Cym
    58 = Vibraslap
    59 = Ride Edge
    60 = Hi Bongo
    61 = Lo Bongo
    62 = Mute Conga
    63 = Open Conga
    64 = Open Conga
    65 = Hi Tymbal
    66 = Lo Tymbal
    67 = Agogo
    68 = Agogo
    69 = Cabasa
    70 = Maracas
    71 = Whistle S
    72 = Whistle L
    73 = Guiro S
    74 = Guiro L
    75 = Claves
    76 = Woodblock2
    77 = Woodblock3
    78 = Mute Cuica
    79 = Open Cuica
    80 = Mute Triang
    81 = Open Triang
    82 = Cabasa
    83 = JingleBell
    84 = Bell Tree
    85 = Castanet
    86 = Side Stick
    87 = Taiko Lo
    [N364 Orch Kit]
    27 = Tite HH
    28 = Pedal HH
    29 = Open HH
    30 = Ride Edge
    35 = Real Kick
    36 = Orch B.Drm
    37 = Side Stick
    38 = RollSnare2
    39 = Castanet
    40 = Roll Snare2
    53 = Timpani
    54 = Tambourine
    55 = Splash Cym
    56 = Cowbell
    57 = Crash Cym
    58 = Vibraslap
    59 = Orch Crash
    60 = Hi Bongo
    61 = Lo Bongo
    62 = Mute Conga
    63 = Open Conga
    64 = Open Conga
    65 = Hi Timbal
    66 = Lo Timbal
    67 = Agogo
    68 = Agogo
    69 = Cabasa
    70 = Maracas
    71 = Whistle S
    72 = Whistle L
    73 = Guiro S
    74 = Guiro L
    75 = Claves
    76 = Woodblock2
    77 = Woodblock3
    78 = Mute Cuica
    79 = Open Cuica
    80 = Mute Triang
    81 = Open Triang
    82 = Cabasa
    83 = JingleBell
    84 = Bell Tree
    85 = Castanet
    86 = Side Stick
    87 = Taiko Lo
    [N364 Perc Kit]
    28 = Hi Bongo
    29 = Lo Bongo
    30 = Tambourine
    31 = Agogo
    32 = VocalSnr 1
    33 = Agogo
    34 = Slap Bongo
    35 = WoodBlock3
    36 = Claves
    37 = WoodBlock 2
    38 = Cowbell
    39 = WoodBlock 1
    40 = Castanet
    41 = Baya 2
    42 = Cabasa
    43 = Baya 1
    44 = Maracas
    45 = Baya 2
    46 = Cabasa
    47 = Tabla 3
    48 = Tabla 2
    49 = Vibraslap
    50 = Tabla 1
    51 = Mute Triangle
    52 = Orch B.Drm
    53 = Open Triangle
    54 = Guiro S
    55 = Jingle Bell
    56 = Guiro L
    57 = Bell Tree
    58 = Thing
    59 = Maracas
    60 = Hand Claps
    61 = Syn Claps
    62 = Scratch Lo
    63 = Scratch Hi
    64 = Scratch Dbl
    65 = Whistle S
    66 = Whistle L
    67 = Slap Conga
    68 = Mute Conga
    69 = Open Conga
    70 = Open Conga
    71 = Mute Cuica
    72 = Open Cuica
    73 = Timbales
    74 = R - Timbal
    75 = Hi Timbal
    76 = Lo Timbal
    77 = Syn Claves
    78 = Syn Cowbell
    79 = Finger Snap
    80 = Taiko Hi
    81 = Taiko Lo
    82 = Zap 2
    83 = RollSnare1
    84 = RollSnare2
    85 = Orch Crash
    86 = Orch Crash
    87 = Orch Hit
    [N364 Power Kit]
    28 = Ambi.Kick
    29 = Rock Snare
    30 = Open HH
    31 = Gated Kik
    32 = Timbales
    33 = TightSnare
    34 = Rev Snare
    35 = Gated Kik
    36 = Metal Kick
    37 = Side Stick
    38 = PowerSnare
    39 = Hand Claps
    40 = GatedSnare
    41 = ProcessTom
    42 = Tite HH
    43 = ProcessTom
    44 = Pedal HH
    45 = ProcessTom
    46 = Open HH
    47 = ProcessTom
    48 = ProcessTom
    49 = Crash Cym
    50 = ProcessTom
    51 = Ride Edge
    52 = China Cym
    53 = Ride Cup
    54 = Tambourine
    55 = Splash Cym
    56 = Cowbell
    57 = Crash Cym
    58 = Vibraslap
    59 = Ride Cym 1
    60 = Hi Bongo
    61 = Lo Bongo
    62 = Mute Conga
    63 = Open Conga
    64 = Open Conga
    65 = Hi Tymbal
    66 = Lo Tymbal
    67 = Agogo
    68 = Agogo
    69 = Cabasa
    70 = Maracas
    71 = Whistle S
    72 = Whistle L
    73 = Guiro S
    74 = Guiro L
    75 = Claves
    76 = Woodblock2
    77 = Woodblock3
    78 = Mute Cuica
    79 = Open Cuica
    80 = Mute Triang
    81 = Open Triang
    82 = Cabasa
    83 = JingleBell
    84 = Bell Tree
    85 = Castanet
    86 = Side Stick
    87 = Taiko Lo
    ;
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    .Controller Names
    [N364 Controllers]
    0 = Bank Select
    1 = Joystick Up
    2 = Joystick Down
    4 = Main / Sub Scale
    6 = RPN Data MSB
    7 = Volume
    10 = Pan(A: B)
    11 = Expression
    12 = Pedal 1
    13 = Pedal 2
    32 = Bank Select LSB
    38 = RPN Data LSB
    64 = Damper
    72 = Release Time
    73 = Attack Time
    74 = Brightness(Filter)
    91 = Send C
    92 = Effect 1 On / Off
    93 = Send D
    94 = Effect 2 On / Off
    96 = RPN Data Increment
    97 = RPN Data Decrement
    100 = RPN Select LSB
    101 = RPN Select MSB
    120 = All Sound Off
    121 = Reset All Controllers
    122 = Local Control On / Off
    123 = All Notes Off
    ;
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    .RPN Names
    [N364 RPN]
    0 = Pitch Bend Sensitivity
    1 = Fine Tune
    2 = Transpose
    ;
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    .Instrument Definitions
    [KORG N364 Programs]
    Control = N364 Controllers
    RPN = N364 RPN
    Patch[0] = N364 Prog A
    Patch[1] = N364 Prog B
    Patch[2] = N364 Prog C
    Patch[3] = N364 Prog D
    Patch[7169] = N364 Prog GM
    Patch[7937] = N364 GM Drums
    Patch[ * ] = 0. .127
    Key[7937, 0] = N364 GM Kit
    Key[7937, 16] = N364 Power Kit
    Key[7937, 25] = N364 Dance Kit
    Key[7937, 26] = N364 Analog Kit
    Key[7937, 33] = N364 Jazz Kit
    Key[7937, 41] = N364 Brush Kit
    Key[7937, 48] = N364 Orch Kit
    Key[7937, 65] = N364 Perc Kit
    Drum[7937, * ] = 1
    [KORG N364 Combinations]
    Control = N364 Controllers
    RPN = N364 RPN
    Patch[0] = N364 Combi A
    Patch[1] = N364 Combi B
    Patch[2] = N364 Combi C
    Patch[3] = N364 Combi D
    Patch[ * ] = 0. .127
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Gene Wirchenko@genew@telus.net to comp.lang.javascript on Thu May 30 12:13:06 2019
    From Newsgroup: comp.lang.javascript

    On Thu, 30 May 2019 12:35:47 +0200, Thomas 'PointedEars' Lahn <PointedEars@web.de> wrote:

    [snip]

    The languages that have JavaScript in their name are implementations of >ECMAScript. (Do I really need to cite it?)

    Apparently. A stronger man would not have to.

    Sincerely,

    Gene Wirchenko

    ---
    This email has been checked for viruses by AVG.
    https://www.avg.com

    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From John G Harris@niam@jghnorth.org.uk.invalid to comp.lang.javascript on Fri May 31 19:01:35 2019
    From Newsgroup: comp.lang.javascript

    On Wed, 29 May 2019 10:24:17 -0700 (PDT), Julio Di Egidio
    <julio@diegidio.name> wrote:

    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    If you believe that
    a Functional language cannot be an OO language and cannot be a
    procedural language,
    an OO language cannot be a procedural language and cannot be a
    Functional language,
    a procedural language cannot be a Functional language and cannot
    be an OO language,

    then you have to say it's one of these and furiously deny that it's
    either of the other two.

    John
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Fri May 31 11:21:47 2019
    From Newsgroup: comp.lang.javascript

    Den fredag 31 maj 2019 kl. 20:01:41 UTC+2 skrev John G Harris:
    On Wed, 29 May 2019 10:24:17 -0700 (PDT), Julio Di Egidio <julio@diegidio.name> wrote:

    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions
    need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    If you believe that
    a Functional language cannot be an OO language and cannot be a
    procedural language,
    an OO language cannot be a procedural language and cannot be a
    Functional language,
    a procedural language cannot be a Functional language and cannot
    be an OO language,

    then you have to say it's one of these and furiously deny that it's
    either of the other two.

    John

    Well i would say i have a procedural programming style in Javascript, sometimes i invoke functions most for stringhandling, and occasionally i use objects mostly to confuse myself....
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From Evertjan.@exxjxw.hannivoort@inter.nl.net to comp.lang.javascript on Sat Jun 1 00:31:26 2019
    From Newsgroup: comp.lang.javascript

    =?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrote on 31
    May 2019 in comp.lang.javascript:

    Den fredag 31 maj 2019 kl. 20:01:41 UTC+2 skrev John G Harris:
    On Wed, 29 May 2019 10:24:17 -0700 (PDT), Julio Di Egidio
    <julio@diegidio.name> wrote:

    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn
    wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such
    distinctions need not be made because it is not an OOPL in the first
    place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    If you believe that
    a Functional language cannot be an OO language and cannot be a
    procedural language,
    an OO language cannot be a procedural language and cannot be a
    Functional language,
    a procedural language cannot be a Functional language and cannot
    be an OO language,

    then you have to say it's one of these and furiously deny that it's
    either of the other two.

    John

    Well i would say i have a procedural programming style in Javascript, sometimes i invoke functions most for stringhandling, and occasionally i
    use objects mostly to confuse myself....

    I agree.



    --
    Evertjan.
    The Netherlands.
    (Please change the x'es to dots in my emailaddress)
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Sat Jun 1 00:40:27 2019
    From Newsgroup: comp.lang.javascript

    Den lördag 1 juni 2019 kl. 00:31:32 UTC+2 skrev Evertjan.:
    =?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrote on 31
    May 2019 in comp.lang.javascript:

    Den fredag 31 maj 2019 kl. 20:01:41 UTC+2 skrev John G Harris:
    On Wed, 29 May 2019 10:24:17 -0700 (PDT), Julio Di Egidio
    <julio@diegidio.name> wrote:

    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn
    wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such
    distinctions need not be made because it is not an OOPL in the first
    place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    If you believe that
    a Functional language cannot be an OO language and cannot be a
    procedural language,
    an OO language cannot be a procedural language and cannot be a
    Functional language,
    a procedural language cannot be a Functional language and cannot
    be an OO language,

    then you have to say it's one of these and furiously deny that it's
    either of the other two.

    John

    Well i would say i have a procedural programming style in Javascript, sometimes i invoke functions most for stringhandling, and occasionally i use objects mostly to confuse myself....

    I agree.

    Finally we found a common ground LoL
    Honestly i do admire all programmers persistence learning nonesense syntax ad nauseam, and i confess i am probably not up to it unless under pistol threat.
    It can be lazyness but it can also be so simple that different personality types put emphasis upon different things within the datastream we as humans have to handle. Personally i have real difficult to learn blackbox behaviour "memorise" random data, so it could well be i have a problem to memorise, or simply that i or my brain chose to focus on other things.


    --
    Evertjan.
    The Netherlands.
    (Please change the x'es to dots in my emailaddress)
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@jonas.thornvall@gmail.com to comp.lang.javascript on Sat Jun 1 01:10:34 2019
    From Newsgroup: comp.lang.javascript

    Den lördag 1 juni 2019 kl. 09:40:34 UTC+2 skrev Jonas Thörnvall:
    Den lördag 1 juni 2019 kl. 00:31:32 UTC+2 skrev Evertjan.:
    =?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrote on 31 May 2019 in comp.lang.javascript:

    Den fredag 31 maj 2019 kl. 20:01:41 UTC+2 skrev John G Harris:
    On Wed, 29 May 2019 10:24:17 -0700 (PDT), Julio Di Egidio
    <julio@diegidio.name> wrote:

    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn
    wrote:

    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such
    distinctions need not be made because it is not an OOPL in the first >> >> place.)

    What a nonsensical statement: all the more so since JS is essentially >> >NOT an OO language...

    If you believe that
    a Functional language cannot be an OO language and cannot be a
    procedural language,
    an OO language cannot be a procedural language and cannot be a
    Functional language,
    a procedural language cannot be a Functional language and cannot
    be an OO language,

    then you have to say it's one of these and furiously deny that it's
    either of the other two.

    John

    Well i would say i have a procedural programming style in Javascript, sometimes i invoke functions most for stringhandling, and occasionally i use objects mostly to confuse myself....

    I agree.


    Finally we found a common ground LoL
    Honestly i do admire all programmers persistence learning nonesense syntax ad nauseam, and i confess i am probably not up to it unless under pistol threat.

    It can be lazyness but it can also be so simple that different personality types put emphasis upon different things within the datastream we as humans have to handle. Personally i have real difficult to learn blackbox behaviour "memorise" random data, so it could well be i have a problem to memorise, or simply that i or my brain chose to focus on other things.



    --
    Evertjan.
    The Netherlands.
    (Please change the x'es to dots in my emailaddress)
    Do you guys feel it joyful, and an accomplishment when you memorised new syntax?
    Well i don't, and that could be the problem. But i feel the joy when i accomplish to implement what i have planned. Unfortunately that sometimes require a bit more familiarity with the programming language and syntax then i actually master.
    And then i am hangin lose, until i learn "or copy" it.
    --- Synchronet 3.17c-Linux NewsLink 1.110
  • From John G Harris@niam@jghnorth.org.uk.invalid to comp.lang.javascript on Sat Jun 1 10:14:51 2019
    From Newsgroup: comp.lang.javascript

    On Fri, 31 May 2019 11:21:47 -0700 (PDT), Jonas Thrnvall <jonas.thornvall@gmail.com> wrote:

    Den fredag 31 maj 2019 kl. 20:01:41 UTC+2 skrev John G Harris:
    On Wed, 29 May 2019 10:24:17 -0700 (PDT), Julio Di Egidio
    <julio@diegidio.name> wrote:

    On Wednesday, 29 May 2019 00:22:33 UTC+2, Thomas 'PointedEars' Lahn wrote: >> >
    (Unfortunately, regarding his code style Dr. Stockton
    appears to be stuck the world of Borland Pascal where such distinctions >> >> need not be made because it is not an OOPL in the first place.)

    What a nonsensical statement: all the more so since JS is essentially
    NOT an OO language...

    If you believe that
    a Functional language cannot be an OO language and cannot be a
    procedural language,
    an OO language cannot be a procedural language and cannot be a
    Functional language,
    a procedural language cannot be a Functional language and cannot
    be an OO language,

    then you have to say it's one of these and furiously deny that it's
    either of the other two.

    John

    Well i would say i have a procedural programming style in Javascript, sometimes i invoke functions most for stringhandling, and occasionally i use objects mostly to confuse myself....

    Sensible people know that a language can be any one, two, or all three
    of those things. ECMAScript, alias JavaScript, is all three so
    procedural programming is possible, but not recommended for
    complicated programs.

    John
    --- Synchronet 3.17c-Linux NewsLink 1.110