Jump to content

MIDI Sync-Up - Calling All Innovators


Wingnut
 Share

Recommended Posts

@Wingnut, if you require listening for events, @sssurikov provided you with the draft WC3 api.  This is the beginning of the 2nd paragraph of the Abstract section:

Quote

This specification defines an API supporting the MIDI protocol, enabling web applications to enumerate and select MIDI input and output devices on the client system and send and receive MIDI messages. It is intended to enable non-music MIDI applications as well as music ones, by providing low-level access to the MIDI devices available on the users' systems.

How does this not meet your requirements, except for no one implements it yet?  Even if it does, there is feedback email list at the top for you to highlight any issue you may have.  I would read it thoroughly, before doing that.

Link to comment
Share on other sites

*nod*.  Yeah, I've whined in a few places, but... this is big.  There was war... perhaps still is... between the media players.  They were all trying to be "your one-stop for ALL your media-playing needs".

Yep, there's some tools that are nearly ready to go... but... I don't know IF/NOT.... doing things like this... is a blatant security violation/not.  I don't know if I am asking for stuff... that is never going to happen... due to BIG walls.

And, in another way, I was begging to local MS employees... to use their "contacts"... to help us wire-up a Windows Media Player (test version)... that can be told to puke midi to browser events, when player is embedded.  (Looking for a shortcut/backdoor into it, so I could do some POC studies).

But perhaps I'm crazy.  And it seems... every time that api talks-of receiving sysex/midi, it talks about from a connected synth or midi controller.

What about a connected midi player app?  :)  sigh.  Really, it might be a ridiculous thing to dream-for, and my low-edu and poor terminology isn't helping things.  Sorry.

I NEED to use .mid files, though.  No JS oscillators/tone-gens, no JS involvement at all other than bubbling/cascading the midi events in the browser.  That's a necessity.

Besides the scene listening to these midi streams, an Alesis s4/s5 rack synth will also be listening to that midi/sysex (at a tourist joint, with animatronics).  There will also be a midi-port device in-use called a sysex-switcher, which drives robot-performer servoes/actuators... via sysex messages embedded in the midi.  (tmi, sorry).  I have a dream.  Chuck E. Cheese had it first.  :)  Or maybe Nicolodeans?   Anyway, BJS scene is involved, too.  Nice ->  https://webaudio.github.io/web-midi-api/#handling-midi-input

https://www.midi.org/17-the-mma/99-web-midi  Good article.  Yep, Jeff... I think there's hope... in 5 years.  :(

Link to comment
Share on other sites

Why do you ask question but doesn't listen answers?

Web MIDI isn't draft. It works in all modern browser.

Connect MIDI-keyboard to your computer, open link with may example and play. It works. It requires few code to listen MIDI-events.

The most (all) of player doesn't send MIDI-events to other programs. Why? Cos no one need this.

You can install any virtual MIDI loopback driver to send MIDI-events from professional software like FL Studio to your WebGL toy on same computer. BTW musicians that uses DAW's don't need your toy. Also, ordinary users doesn't have FL Studio and virtual MIDI loopback driver installed.

Do you understood?

There are no technical problem to create your toy. But it requires to many special software.

 

Do You want to create 3D toy that dances to music? It is easy. Internet full of such demos and toys.

Do You want to connect output of non-special software to browser? No way.

Link to comment
Share on other sites

3 hours ago, sssurikov said:

The most (all) of player doesn't send MIDI-events to other programs. Why? Cos no one need this.

I do.   So do lots of others, but they don't know it, yet.  Not-yet-invented systems... do not provide popularity statistics.

3 hours ago, sssurikov said:

Do You want to create 3D toy that dances to music?

No.  I want to create 3D toy that dances to sysex/noteOn/noteOff arriving from programs like WMP/WinAmp/RealPlayer.  If browser had a midi player that used <audio> or <midi> element, that would be fine, too, IF it uses OS-loaded or soundcard wavetables.  User must keep control of wavetables... at OS levels.   JS-loaded wavetables are a FORCING of computer owner's sound preferences... bad thing.  User must control their instruments... and ideally, THEY control bindings of .mid/.x-mid mimetype... just like any other mimetype.

Are we all still ON-TARGET, objective-wise?   This is a "No Goal-Bending Zone".  :D

3 hours ago, sssurikov said:

virtual MIDI loopback driver installed

Now you're getting closer.  Sounds like something that is done at the midi port handler or something, though.  I want to travel thru 'the pipe', not the port.

http://xahlee.info/js/html5_audio.html

There's the "built-into-browser" <audio> element, failing at playing a midi file.  :(  Good to see nothing has changed (actually NOT good AT ALL).  Actually, <audio> tag is NOT for midi.  Midi is not audio, of course.  Need new <midi> tag.  <object> is fine.

I bet embedding WMP, WinAmp, or RealPlayer into webpage using <object> or <embed>... fails to play midi, too.

8 years ago, they all worked fine with midi, consoles embedded... and all had special "compact console" configs.

http://webpages.charter.net/wingthing/html/test/xoozilla/xoozilla_grabs/r4_41_grab.jpg

See the Windows Media Player compact console, there?  Beautiful.  Did that require the "Windows Media Player Plugin" for Mozilla?  Maybe.  I can't remember.  I think so. 

Internet Explorer used some other method... OLE/activeX.  If I remember correctly, I needed to do some browser testing... to properly format the dynamic-genned object element... that embedded that player.  But it DID work in IE, too, 8 years ago.

Being embedded in the same webpage/scene that wishes to monitor its midi stream... well... that seems like a VERY short stream trip.

But there is a big wall between that embedded WMP, and that document object, isn't there?  "Thou shalt not cross an iFrame/Object sandbox border for ANY reason." - 11th commandment, right?  hrm.

What I want to know is... WHY?  Can we drill a hole in that wall?  (If we could, w3c would immediately fix it so we can't, again)

I think iFrames/Objects... have walls of titanium.  Sad.

It is good that we are FINALLY on same subject, now.  Phew.  Thanks for your patience with me.

Link to comment
Share on other sites

That's one opinion, thx.  I am hoping to get the midi stream at a much lower level...

https://msdn.microsoft.com/library/windows/desktop/dd742875

Even better...

https://msdn.microsoft.com/en-us/library/windows/desktop/dd798691

Yum!

Windows-only, is fine for me.  This is why I am hoping for help from Microsoft people.

I think THEY can build a special "streamer hose" from OS midi stream -->  any browser.

Windows Media Player ONLY... is fine, too (especially if it can still be <object> -launched to play midi files.)

If I can intercept/monitor MIDI msgs at OS level, I don't need to speak-with midi player authors.

Link to comment
Share on other sites

Real-time MIDI?

Or can you convert  .mid files to JSON (and serve from server)?

Many options for the latter...

For former, if you cannot bring metal closer to Babylon... bring Babylon closer to metal!?!

Ah, the good ol' days....

Could possibly gain access to real-time MIDI, visualized by Babylon, IF ->  wrap the babylon in an app like https://www.os-js.org/.

Others exist... electron, ionic. idk. Xmas pine tree debris hits fan...

Would you have MIDI access if you made it an App?

Happy Holidays.

Link to comment
Share on other sites

On 12/23/2017 at 4:15 PM, Wingnut said:

No converting of midi to something else (like json)

yeah, converting is not an option, for me.  Besides, converting is ridiculous.  There are 513 gazillion .mid already created and published on the web.

Yep, real-time midi stream, just like real-time mouse pointer stream.

And yes, there is probably a better chance to access the Windows midi buffers... IF BJS were "wrapped" in some kind of Windows app, but, I'd prefer NOT to need to do that.  Most/all users would want to avoid that.

Really, I ONLY need a Windows Media Player that has a "Stream midi to browsers as if it were mouse data?  yes/no?" -checkbox.  :)  (using onMidi browser event).

Once I get a WMP that does this, the other players will follow, because it's such a great feature/tool (my prediction).

The SysEx Switcher is an invention of mine... a piece of hardware that listens to midi sysex/note events, and can control 256 servos/actuators per device.  Because of midi-thru, they can be chained to control far more.  The same midi cables can also feed rack synthesizers.

So, once I calibrate the scene... to act just like the sysex-switcher-driven REAL animatronics/robots at the amusement... I can completely program and pre-test robotic animatronic scenes... without needing to REALLY build them first.  For example, if the animatronics needs a violin bow to do a "stroke", I can make a scene mesh ACT... exactly like the REAL violin bow would act... IF this midi was feeding a full animatronics display.  The scene mesh and the animatronics... can match 1-to-1.

Most of the animatronics at House On The Rock... use air.  They run on a revolving device with air-valves opened and closed by cam-lobes/bumps on the revolving drum.  They are all wearing out.  Although I don't have the contract to repair these wonderful machines, I will, once I get the system I want.  :)

I haven't built the first Sysex Switcher yet, but the idea is patented... and it will work.  I fig about $7000 for the first one, with price eventually falling to <$400.  The Sysex Switcher can drive little servos/actuators, by default.  Larger actuators (like something to move a semi-truck up and down to the beat of a kick-drum).... would require some more serious power controls, of course.

The midi stream would go everywhere... to the Sysex Switcher, to the rack synth, and to the browser/BJS-scene.  And, ANY midi song works, if I tell the Sysex Switcher to react-to note-ON's and note-OFF's instead of Sysex Messages (not a problem).  So ANY midi can drive the scene mesh, AND the animatronics/robots, AND the glorious, wonderful wave-tables of the Alesis rack synth/Quadrasynth) (big orchestra-grade wonderfulness).

I have a dream.  I care nothing for business, and dislike arguing-with folks trying to change the objective.  I care about rescuing the wonderful machines at House on the Rock, and building a few dancing robots for my desktop.  Highly-reduce the difficulty of "robots-dancing-to-midi", and I think it will explode in popularity.  BJS is a fine visualization tool for these projects... so BJS also benefits (also midi-dancing scenes becomes SUPER easy.... certainly far-easier and better audio than what is being peddled at me as a substitute.)

There's so many ++++ to this system... that it is worth an illegal security jumper-wire from the midi stream buffers... to the browsers... IF I can convince anyone from Microsoft to wire it up for me.  I've done some free work for "the cause"...  perhaps the Microsoft employees can build a wire for me... a tiny Windows.exe, perhaps.  The midi jumper cable... v1.0.

I'd love to see WMP and other players.... be able to play midi via <object> tags, too (ideally, without using Windows Media Player Plugin for Firefox, if that still exists at all).  I don't know what the status is.... about <object> elements playing midi.  There are Windows developers nearby me.  I need to ask about this possibility, even if ONLY released to me.  In my opinion, this is a "big one", not only for my dreams, but for a funner "dancing robots" society, which will make us smile/laugh.

It also connects robotics with music... and it will revive the fading-in-popularity midi spec.  Midi is wonderful.  Perhaps its cable could change to firewire, but that would require some serious "stuff".  Midi cables are fine... they are stage-tough.

I'd also be quite willing to talk about "The Microsoft SysEx Switcher", if any-folk would be interested.  Non-MS folk, too. 

I don't have the funds to prototype it, but I'd love to see some company team/person run-with-it.  I'd buy a couple, if they were built to my spec.  :)  Ideally, they need to be programmable to a degree, and have short-circuit and overload protection for each of the 256 servo-control outputs.  I'm thinkin. -9 VDC to +9 VDC - 500mA max draw, per output.  That's about 256 wall warts, each with 127 positive voltage settings, and 127 negative voltage settings, sysex or noteOn/off -controlled. 

Kind of a big box... needed for cooling fans,  for all that power supply.  :)

Anyway, I'm rattling-on, again.  How 'bout it, Windows Developers?  Would anyone like to build a Windows "wedge" that connects HERE... and pipes it to browser-events-IN (whatever browser-orifice where mouse events are poured-into)  :)   Please?  If you can't do it yourself, do you know anyone who can?  There has GOT TO BE a reasonably simple way to get this done.  Please help, if anyone can.  thx.

Link to comment
Share on other sites

Quote

There are 513 gazillion .mid already created and published on the web.

Try to listen this gazzilion .mid

Only 1% of them sounds good.

You can not use *.mid files for music. MIDI is for deveices communications. 

Remember awful midi-sound on many html pages from 2000th.

Quote

So ANY midi can drive the scene mesh

MIDI can't drive anything. MIDI describes events that one program send to another.

PS

too much blablabla. You completely wrong. You don't need MIDI for your task. All you need is high-precision timer and text-file with times and event-names.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...