在网页中发送 MIDI 信息
Posted
技术标签:
【中文标题】在网页中发送 MIDI 信息【英文标题】:Sending MIDI messages in a Web page 【发布时间】:2009-05-30 03:51:34 【问题描述】:如何在网页中播放单个 MIDI 音符?
我知道两种方法:
编写一个 ActiveX 控件。然后它只适用于Windows。很久以前写过ActiveX控件,现在没人喜欢安装了。
编写一个 Java 小程序。如果用户已经安装了 Java,但许多用户禁用了小程序,这没关系。我就是这样做的,您可以在 newfweiler.com 上看到结果——如果它恰好适用于您的特定设置。您至少需要 Java 5,尽管我想如果必须的话,我可以用 Java 1.2 重写它。 “实时音序器”和“Java 声音合成器”对我不起作用;我认为您必须安装波表或其他东西才能使其正常工作。
大多数用户都安装了 Flash,但我查看了 Flash 和 Flex 文档并没有看到任何与 javax.sound.midi 等效的内容。
有几种方法可以在网页中播放 MIDI 文件,您可以找到“javascript Pianos”,只要您按下一个键,它就会播放一个单音符的 MIDI 文件。您不能同时弹奏多个音符或按住琴键长音符。
我正在尝试做的是等效于 javax.sound.midi.Receiver.send(midiMsg, -1) 只使用大多数人通常在机器上安装的东西。
【问题讨论】:
【参考方案1】:使用 Web Audio API 播放声音和 .mid 文件。请参阅https://surikov.github.io/webaudiofont/examples/midiplayer.html 的 MIDI 播放器示例
使用 Web MIDI API(Chrome 支持)来监听 MIDI 键盘。参见https://surikov.github.io/webaudiofont/examples/midikey.html的示例
【讨论】:
终于! 9 年后。【参考方案2】:Java 仍然可能是您最好的选择,即使有少数用户禁用它。
我使用 NoScript,我可以将网站列入白名单。我想说,如果您提供引人入胜的内容,大多数用户可能也会这样做。
【讨论】:
【参考方案3】:找到以下内容(翻译自意大利语)。我会说Flash是要走的路。如果您想成为贫民区,您只需获取 88 个左右的钢琴样本,然后按照时间线播放它们。
http://translate.google.com/translate?prev=hp&hl=en&js=n&u=http%3A%2F%2Fflash.html.it%2Fguide%2Flezione%2F2936%2Fmidi-player%2F&sl=it&tl=en&history_state0=
【讨论】:
【参考方案4】:https://jazz-soft.net/demo/VirtualPiano.html 有一个在线 MIDI 钢琴的例子 它使用 Web Audio API,不需要任何特殊的软件,但是,如果启用 Web MIDI,它具有更多功能。页面中包含的代码。
【讨论】:
您能否提供一个简短的示例来说明该页面如何使用 Web Audio API?如果链接更改或将来不可用,这将有所帮助。 JZZ.synth.Tiny().noteOn(0, 'C5', 127).wait(500).noteOff(0, 'C5');见github.com/jazz-soft/JZZ-synth-Tiny以上是关于在网页中发送 MIDI 信息的主要内容,如果未能解决你的问题,请参考以下文章