Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #35010 > unrolled thread

Javascript midi specification

Started byJonas Thörnvall <jonas.thornvall@gmail.com>
First post2018-05-12 02:52 -0700
Last post2018-05-13 20:02 +0700
Articles 13 — 5 participants

Back to article view | Back to comp.lang.javascript


Contents

  Javascript midi specification Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-05-12 02:52 -0700
    Re: Javascript midi specification "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-05-12 14:46 +0200
      Re: Javascript midi specification "Mark-" <nospam@mapson.xyz> - 2018-05-12 19:41 +0000
        Re: Javascript midi specification "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-05-12 23:54 +0200
          Re: Javascript midi specification Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-05-20 16:28 -0700
            Re: Javascript midi specification Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-05-20 16:35 -0700
              Re: Javascript midi specification Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-05-20 16:46 -0700
    Re: Javascript midi specification JJ <jj4public@vfemail.net> - 2018-05-13 04:49 +0700
      Re: Javascript midi specification "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-05-13 00:00 +0200
        Re: Javascript midi specification "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2018-05-12 15:52 -0700
          Re: Javascript midi specification "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-05-13 11:00 +0200
            Re: Javascript midi specification "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2018-05-13 11:04 +0200
        Re: Javascript midi specification JJ <jj4public@vfemail.net> - 2018-05-13 20:02 +0700

#35010 — Javascript midi specification

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2018-05-12 02:52 -0700
SubjectJavascript midi specification
Message-ID<9ff8956e-db98-4974-9975-2e2b41afaccd@googlegroups.com>
Does javascript also forward midi control messages?
I have a synth with sequenser, i just wonder if it would be possible to steer it via a webpage?

[toc] | [next] | [standalone]


#35012

From"Evertjan." <exxjxw.hannivoort@inter.nl.net>
Date2018-05-12 14:46 +0200
Message-ID<XnsA8E0964F4F683eejj99@194.109.6.166>
In reply to#35010
=?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrote on 12
May 2018 in comp.lang.javascript: 

> Does javascript also forward midi control messages?
> I have a synth with sequenser, i just wonder if it would be possible to
> steer it via a webpage? 
> 

What is "a synth", a script, a programme or hardware?

> with sequenser

sequencer? [with a "c"!]

same Q.

-- 
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

[toc] | [prev] | [next] | [standalone]


#35014

From"Mark-" <nospam@mapson.xyz>
Date2018-05-12 19:41 +0000
Message-ID<pd7g16$13a9$1@gioia.aioe.org>
In reply to#35012
Evertjan. wrote:

> > Does javascript also forward midi control messages?

> What is "a synth", a script, a programme or hardware?
> 

He ask about MIDI (Musical Instrument Digital Interface) so "synth"
would be synthesizer.

 
> sequencer? [with a "c"!]
> 

Music sequencer. 

To control the synthesizer via MIDI.

[toc] | [prev] | [next] | [standalone]


#35016

From"Evertjan." <exxjxw.hannivoort@inter.nl.net>
Date2018-05-12 23:54 +0200
Message-ID<XnsA8E0F336FA25Deejj99@194.109.6.166>
In reply to#35014
"Mark-" <nospam@mapson.xyz> wrote on 12 May 2018 in comp.lang.javascript:

> Evertjan. wrote:
> 
>> > Does javascript also forward midi control messages?
> 
>> What is "a synth", a script, a programme or hardware?
>> 
> 
> He ask about MIDI (Musical Instrument Digital Interface) so "synth"
> would be synthesizer.

And is that a programme or hardware, Jonas?
 
>> sequencer? [with a "c"!]
>> 
> 
> Music sequencer. 
> 
> To control the synthesizer via MIDI.

And is that a programme or hardware, Jonas?

So is your Q about addressing comuter hardware from the browser js?

Or just generating sounds with js?

Asking for a friend.

-- 
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

[toc] | [prev] | [next] | [standalone]


#35048

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2018-05-20 16:28 -0700
Message-ID<ed124a7e-0149-4c2e-868f-97fe9eaa9f20@googlegroups.com>
In reply to#35016
Den lördag 12 maj 2018 kl. 23:54:36 UTC+2 skrev Evertjan.:
> "Mark-" <nospam@mapson.xyz> wrote on 12 May 2018 in comp.lang.javascript:
> 
> > Evertjan. wrote:
> > 
> >> > Does javascript also forward midi control messages?
> > 
> >> What is "a synth", a script, a programme or hardware?
> >> 
> > 
> > He ask about MIDI (Musical Instrument Digital Interface) so "synth"
> > would be synthesizer.
> 
> And is that a programme or hardware, Jonas?
>  
> >> sequencer? [with a "c"!]
> >> 
> > 
> > Music sequencer. 
> > 
> > To control the synthesizer via MIDI.
> 
> And is that a programme or hardware, Jonas?
> 
> So is your Q about addressing comuter hardware from the browser js?
> 
> Or just generating sounds with js?
> 
> Asking for a friend.
> 
> -- 
> Evertjan.
> The Netherlands.
> (Please change the x'es to dots in my emailaddress)

It is hardware Evertjan, and i think it work i do not think javascript care about what type of messages it sends, control messages or midi notes. It is just ASCII values to javascript. The format is the same, well i am planning to do an editor for my Korg N364 synth, and if i am lucky i may be able to even start it's builtin sequenser to both play/record from the script page.

To set bank and program is no problem i already set program of my soundcanvas SC-7 from the sequenser script i wrote, but editing patches and set sustain and parameters well we will see but it all just midi commands with same format.

[toc] | [prev] | [next] | [standalone]


#35049

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2018-05-20 16:35 -0700
Message-ID<de66d4d3-e89e-43c6-ace9-1bb6ff83f699@googlegroups.com>
In reply to#35048
Den måndag 21 maj 2018 kl. 01:28:40 UTC+2 skrev Jonas Thörnvall:
> Den lördag 12 maj 2018 kl. 23:54:36 UTC+2 skrev Evertjan.:
> > "Mark-" <nospam@mapson.xyz> wrote on 12 May 2018 in comp.lang.javascript:
> > 
> > > Evertjan. wrote:
> > > 
> > >> > Does javascript also forward midi control messages?
> > > 
> > >> What is "a synth", a script, a programme or hardware?
> > >> 
> > > 
> > > He ask about MIDI (Musical Instrument Digital Interface) so "synth"
> > > would be synthesizer.
> > 
> > And is that a programme or hardware, Jonas?
> >  
> > >> sequencer? [with a "c"!]
> > >> 
> > > 
> > > Music sequencer. 
> > > 
> > > To control the synthesizer via MIDI.
> > 
> > And is that a programme or hardware, Jonas?
> > 
> > So is your Q about addressing comuter hardware from the browser js?
> > 
> > Or just generating sounds with js?
> > 
> > Asking for a friend.
> > 
> > -- 
> > Evertjan.
> > The Netherlands.
> > (Please change the x'es to dots in my emailaddress)
> 
> It is hardware Evertjan, and i think it work i do not think javascript care about what type of messages it sends, control messages or midi notes. It is just ASCII values to javascript. The format is the same, well i am planning to do an editor for my Korg N364 synth, and if i am lucky i may be able to even start it's builtin sequenser to both play/record from the script page.
> 
> To set bank and program is no problem i already set program of my soundcanvas SC-7 from the sequenser script i wrote, but editing patches and set sustain and parameters well we will see but it all just midi commands with same format.


[ KORG N264/N364 SysEx - A Quick Reference Guide ]

Compiler: Kenneth Jonsson (http://user.tninet.se/~ufn204a)
Updated:  April 29, 1998.

All pages & tables refer to the N264/N364 Reference Guide.

x = global MIDI channel: 0 through F (equals 1 through 16)

-----------------------------------------------------------------------
GENERAL N264/N364 SYSEX CODE:
-----------------------------------------------------------------------
SysEx start		F0
KORG ID number		42
MIDI channel		3x
N-series ID		35
Function code
Data
SysEx end		F7
-----------------------------------------------------------------------
DUMP REQUESTS:
-----------------------------------------------------------------------
Current program		F0 42 3x 35 10 F7 *
Current combination	F0 42 3x 35 19 F7 *

Global data		F0 42 3x 35 0E 00 F7
Pattern set		F0 42 3x 35 09 00 F7
Drumkits		F0 42 3x 35 0D 00 F7
All programs		F0 42 3x 35 1C 00 F7
All combinations	F0 42 3x 35 1D 00 F7
All sequencer songs	F0 42 3x 35 18 00 F7
All data		F0 42 3x 35 0F 00 F7

Current mode		F0 42 3x 35 12 F7

* = N264/N364 must be in prog or combi mode respectively
-----------------------------------------------------------------------
MODE SELECT:
-----------------------------------------------------------------------
Combination mode	F0 42 3x 35 4E 00 00 F7
Program mode		F0 42 3x 35 4E 02 00 F7
Sequencer mode		F0 42 3x 35 4E 04 00 F7

Global mode		F0 42 3x 35 4E 06 00 F7
Disk mode		F0 42 3x 35 4E 07 00 F7

Combi edit mode		F0 42 3x 35 4E 01 00 F7
Prog edit mode		F0 42 3x 35 4E 03 00 F7
Seq edit mode		F0 42 3x 35 4E 05 00 F7
-----------------------------------------------------------------------
ERROR / ACKNOWLEDGEMENT MESSAGES:
-----------------------------------------------------------------------
In-data format error	F0 42 3x 35 26 F7
Data load completed	F0 42 3x 35 23 F7
Data load error		F0 42 3x 35 24 F7
Write completed		F0 42 3x 35 21 F7
Write error		F0 42 3x 35 22 F7
-----------------------------------------------------------------------
PROG / COMBI / DRUM PARAMETER EDIT (CUMBERSOME!):
-----------------------------------------------------------------------
Prog write request	F0 42 3x 35 11 0b nn F7
Combi write request	F0 42 3x 35 1A 0b nn F7
Prog/combi param change	F0 42 3x 35 41 yy zz vv ww F7 *
Drum kit param change	F0 42 3x 35 53 0k ss 0p vv ww F7

b  = bank number: A=0, B=1
nn = prog/combi number: 00 through 99 (decimal)
yy = parameter number LSB (see tables 8 through 12 on page 225)
zz = parameter number MSB (               - " -               )
vv = value LSB            (see note 13 on page 220)
ww = value MSB            (         - " -         )
*  = N264/N364 must be in prog edit mode to change current prog
     parameters, and in combi edit mode to change current combi
     parameters.
k  = drum kit number: A1=0, A2=1, B1=2, B2=3
ss = index number: 00 through 59 (decimal)
p  = parameter number (see table 13 on page 225)
-----------------------------------------------------------------------
MISCELLANEOUS (NON-SYSEX):
-----------------------------------------------------------------------
Select seq song		F3 0s (s = 0 through 9)
Start seq play		FA
Continue seq play	FB
Stop seq play		FC
Seq position		F2 yy zz

Master volume		F0 7F gg 04 01 yy zz F7
Master balance		F0 7F gg 04 02 yy zz F7
Master balance center   F0 7F gg 04 02 00 40 F7

General MIDI mode on    F0 7E gg 09 01 7F
Instrument ID request	F0 7E gg 06 01 7F (see table 1-4 on page 214)

Timing clock		F8
Active sensing		FE

gg = global MIDI channel: 00 through 0F, or 7F for any channel
yy = LSB: 00 through 7F
zz = MSB: 00 through 7F

[toc] | [prev] | [next] | [standalone]


#35050

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2018-05-20 16:46 -0700
Message-ID<57882d35-b4b0-40ce-b578-16f9781ec22e@googlegroups.com>
In reply to#35049
Den måndag 21 maj 2018 kl. 01:35:42 UTC+2 skrev Jonas Thörnvall:
> Den måndag 21 maj 2018 kl. 01:28:40 UTC+2 skrev Jonas Thörnvall:
> > Den lördag 12 maj 2018 kl. 23:54:36 UTC+2 skrev Evertjan.:
> > > "Mark-" <nospam@mapson.xyz> wrote on 12 May 2018 in comp.lang.javascript:
> > > 
> > > > Evertjan. wrote:
> > > > 
> > > >> > Does javascript also forward midi control messages?
> > > > 
> > > >> What is "a synth", a script, a programme or hardware?
> > > >> 
> > > > 
> > > > He ask about MIDI (Musical Instrument Digital Interface) so "synth"
> > > > would be synthesizer.
> > > 
> > > And is that a programme or hardware, Jonas?
> > >  
> > > >> sequencer? [with a "c"!]
> > > >> 
> > > > 
> > > > Music sequencer. 
> > > > 
> > > > To control the synthesizer via MIDI.
> > > 
> > > And is that a programme or hardware, Jonas?
> > > 
> > > So is your Q about addressing comuter hardware from the browser js?
> > > 
> > > Or just generating sounds with js?
> > > 
> > > Asking for a friend.
> > > 
> > > -- 
> > > Evertjan.
> > > The Netherlands.
> > > (Please change the x'es to dots in my emailaddress)
> > 
> > It is hardware Evertjan, and i think it work i do not think javascript care about what type of messages it sends, control messages or midi notes. It is just ASCII values to javascript. The format is the same, well i am planning to do an editor for my Korg N364 synth, and if i am lucky i may be able to even start it's builtin sequenser to both play/record from the script page.
> > 
> > To set bank and program is no problem i already set program of my soundcanvas SC-7 from the sequenser script i wrote, but editing patches and set sustain and parameters well we will see but it all just midi commands with same format.
> 
> 
> [ KORG N264/N364 SysEx - A Quick Reference Guide ]
> 
> Compiler: Kenneth Jonsson (http://user.tninet.se/~ufn204a)
> Updated:  April 29, 1998.
> 
> All pages & tables refer to the N264/N364 Reference Guide.
> 
> x = global MIDI channel: 0 through F (equals 1 through 16)
> 
> -----------------------------------------------------------------------
> GENERAL N264/N364 SYSEX CODE:
> -----------------------------------------------------------------------
> SysEx start		F0
> KORG ID number		42
> MIDI channel		3x
> N-series ID		35
> Function code
> Data
> SysEx end		F7
> -----------------------------------------------------------------------
> DUMP REQUESTS:
> -----------------------------------------------------------------------
> Current program		F0 42 3x 35 10 F7 *
> Current combination	F0 42 3x 35 19 F7 *
> 
> Global data		F0 42 3x 35 0E 00 F7
> Pattern set		F0 42 3x 35 09 00 F7
> Drumkits		F0 42 3x 35 0D 00 F7
> All programs		F0 42 3x 35 1C 00 F7
> All combinations	F0 42 3x 35 1D 00 F7
> All sequencer songs	F0 42 3x 35 18 00 F7
> All data		F0 42 3x 35 0F 00 F7
> 
> Current mode		F0 42 3x 35 12 F7
> 
> * = N264/N364 must be in prog or combi mode respectively
> -----------------------------------------------------------------------
> MODE SELECT:
> -----------------------------------------------------------------------
> Combination mode	F0 42 3x 35 4E 00 00 F7
> Program mode		F0 42 3x 35 4E 02 00 F7
> Sequencer mode		F0 42 3x 35 4E 04 00 F7
> 
> Global mode		F0 42 3x 35 4E 06 00 F7
> Disk mode		F0 42 3x 35 4E 07 00 F7
> 
> Combi edit mode		F0 42 3x 35 4E 01 00 F7
> Prog edit mode		F0 42 3x 35 4E 03 00 F7
> Seq edit mode		F0 42 3x 35 4E 05 00 F7
> -----------------------------------------------------------------------
> ERROR / ACKNOWLEDGEMENT MESSAGES:
> -----------------------------------------------------------------------
> In-data format error	F0 42 3x 35 26 F7
> Data load completed	F0 42 3x 35 23 F7
> Data load error		F0 42 3x 35 24 F7
> Write completed		F0 42 3x 35 21 F7
> Write error		F0 42 3x 35 22 F7
> -----------------------------------------------------------------------
> PROG / COMBI / DRUM PARAMETER EDIT (CUMBERSOME!):
> -----------------------------------------------------------------------
> Prog write request	F0 42 3x 35 11 0b nn F7
> Combi write request	F0 42 3x 35 1A 0b nn F7
> Prog/combi param change	F0 42 3x 35 41 yy zz vv ww F7 *
> Drum kit param change	F0 42 3x 35 53 0k ss 0p vv ww F7
> 
> b  = bank number: A=0, B=1
> nn = prog/combi number: 00 through 99 (decimal)
> yy = parameter number LSB (see tables 8 through 12 on page 225)
> zz = parameter number MSB (               - " -               )
> vv = value LSB            (see note 13 on page 220)
> ww = value MSB            (         - " -         )
> *  = N264/N364 must be in prog edit mode to change current prog
>      parameters, and in combi edit mode to change current combi
>      parameters.
> k  = drum kit number: A1=0, A2=1, B1=2, B2=3
> ss = index number: 00 through 59 (decimal)
> p  = parameter number (see table 13 on page 225)
> -----------------------------------------------------------------------
> MISCELLANEOUS (NON-SYSEX):
> -----------------------------------------------------------------------
> Select seq song		F3 0s (s = 0 through 9)
> Start seq play		FA
> Continue seq play	FB
> Stop seq play		FC
> Seq position		F2 yy zz
> 
> Master volume		F0 7F gg 04 01 yy zz F7
> Master balance		F0 7F gg 04 02 yy zz F7
> Master balance center   F0 7F gg 04 02 00 40 F7
> 
> General MIDI mode on    F0 7E gg 09 01 7F
> Instrument ID request	F0 7E gg 06 01 7F (see table 1-4 on page 214)
> 
> Timing clock		F8
> Active sensing		FE
> 
> gg = global MIDI channel: 00 through 0F, or 7F for any channel
> yy = LSB: 00 through 7F
> zz = MSB: 00 through 7F

Make dumprequests and send files to synth is a nice feature.

[toc] | [prev] | [next] | [standalone]


#35015

FromJJ <jj4public@vfemail.net>
Date2018-05-13 04:49 +0700
Message-ID<zq9zzw4k55lc.qmt7y5h6hy8v.dlg@40tude.net>
In reply to#35010
On Sat, 12 May 2018 02:52:22 -0700 (PDT), Jonas Thörnvall wrote:
> Does javascript also forward midi control messages?

The WebAudio API doesn't mention anything about forwarding function.

> I have a synth with sequenser, i just wonder if it would be possible to
> steer it via a webpage?

No. At least not without additional software, and assuming that the
sequencer software provides an interface to receive MIDI messages from other
application. Otherwise, you'll need a MIDI mapper software that provides
virtual MIDI ports which act as bridges to other MIDI device ports.

[toc] | [prev] | [next] | [standalone]


#35017

From"Evertjan." <exxjxw.hannivoort@inter.nl.net>
Date2018-05-13 00:00 +0200
Message-ID<XnsA8E1DC8CEFeejj99@194.109.6.166>
In reply to#35015
JJ <jj4public@vfemail.net> wrote on 12 May 2018 in comp.lang.javascript:

> On Sat, 12 May 2018 02:52:22 -0700 (PDT), Jonas Thörnvall wrote:
>> Does javascript also forward midi control messages?
> 
> The WebAudio API doesn't mention anything about forwarding function.
> 
>> I have a synth with sequenser, i just wonder if it would be possible to
>> steer it via a webpage?
> 
> No. At least not without additional software, and assuming that the
> sequencer software provides an interface to receive MIDI messages from
> other application. Otherwise, you'll need a MIDI mapper software that
> provides virtual MIDI ports which act as bridges to other MIDI device
> ports. 

What about:

<https://galactic.ink/midi-js/>

-- 
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

[toc] | [prev] | [next] | [standalone]


#35018

From"Michael Haufe (TNO)" <tno@thenewobjective.com>
Date2018-05-12 15:52 -0700
Message-ID<1c6776d8-d85f-4965-a515-d1c47b36379c@googlegroups.com>
In reply to#35017
Evertjan. wrote:
> 
> What about:
> 
> <https://galactic.ink/midi-js/>

I just learned that this exists:

<https://developer.mozilla.org/en-US/docs/Web/API/MIDIAccess>

[toc] | [prev] | [next] | [standalone]


#35020

From"Evertjan." <exxjxw.hannivoort@inter.nl.net>
Date2018-05-13 11:00 +0200
Message-ID<XnsA8E1700425AB1eejj99@194.109.6.166>
In reply to#35018
"Michael Haufe (TNO)" <tno@thenewobjective.com> wrote on 13 May 2018 in 
comp.lang.javascript:

> Evertjan. wrote:
>> 
>> What about:
>> 
>> <https://galactic.ink/midi-js/>
> 
> I just learned that this exists:
> 
> <https://developer.mozilla.org/en-US/docs/Web/API/MIDIAccess>

<https://caniuse.com/#search=MIDI>

<https://www.chromestatus.com/feature/4923613069180928>

-- 
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

[toc] | [prev] | [next] | [standalone]


#35021

From"Evertjan." <exxjxw.hannivoort@inter.nl.net>
Date2018-05-13 11:04 +0200
Message-ID<XnsA8E170A7AE8D5eejj99@194.109.6.166>
In reply to#35020
"Evertjan." <exxjxw.hannivoort@inter.nl.net> wrote on 13 May 2018 in 
comp.lang.javascript:

> "Michael Haufe (TNO)" <tno@thenewobjective.com> wrote on 13 May 2018 in 
> comp.lang.javascript:
> 
>> Evertjan. wrote:
>>> 
>>> What about:
>>> 
>>> <https://galactic.ink/midi-js/>
>> 
>> I just learned that this exists:
>> 
>> <https://developer.mozilla.org/en-US/docs/Web/API/MIDIAccess>
> 
> <https://caniuse.com/#search=MIDI>
> 
> <https://www.chromestatus.com/feature/4923613069180928>

<https://www.keithmcmillen.com/blog/making-music-in-the-browser-web-midi-
api/>



-- 
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)

[toc] | [prev] | [next] | [standalone]


#35022

FromJJ <jj4public@vfemail.net>
Date2018-05-13 20:02 +0700
Message-ID<1sfwen85y6w18$.1gwdtn98h91ee$.dlg@40tude.net>
In reply to#35017
On Sun, 13 May 2018 00:00:19 +0200, Evertjan. wrote:

> JJ <jj4public@vfemail.net> wrote on 12 May 2018 in comp.lang.javascript:
> 
>> On Sat, 12 May 2018 02:52:22 -0700 (PDT), Jonas Th������all wrote:
>>> Does javascript also forward midi control messages?
>> 
>> The WebAudio API doesn't mention anything about forwarding function.
>> 
>>> I have a synth with sequenser, i just wonder if it would be possible to
>>> steer it via a webpage?
>> 
>> No. At least not without additional software, and assuming that the
>> sequencer software provides an interface to receive MIDI messages from
>> other application. Otherwise, you'll need a MIDI mapper software that
>> provides virtual MIDI ports which act as bridges to other MIDI device
>> ports. 
> 
> What about:
> 
> <https://galactic.ink/midi-js/>

That's just a helper library for MIDI. It can't give what OP wants.

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.javascript


csiph-web