按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我做了一些研究,最近似乎Javascript和MIDI不能很好地结合在一起。至少谷歌是这么说的。如本主题所述:generatingMIDIinjavascript,可以在Javascript或服务器端创建一个文件,然后像播放普通文件一样播放它。但是,我真的希望能够“实时”发送单独的MIDI事件,因为这将是一个持续的用户交互。我想我的B计划是创建一个Jav
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我最近一直在开发一个程序,该程序转录具有单一单声道乐器的WAV文件,这种乐器很可能是声乐。此程序将给定的WAV文件转换为乐谱或“SCORE”。事情是:我想绘制WAV文件中每个音符的乐谱,例如:WAV文件包含以下注释:CDEFG#BbE既不自然也不尖锐也不扁平,它是半扁平。此类音符可以使用PITCHBEND在MIDI中表示如下:MIDI表示NOTE_ON60PITCHBEND25这意味着音符编号60实际上是
我目前正在尝试将我的钢琴的midiport连接到我的电脑。我已经阅读了我能找到的所有内容,但不知何故我遗漏了一些东西,所以我希望这里有人可以帮助我。我已经尝试这样做了一个星期,但它变得非常令人沮丧。publicclassMidiDeviceGetter{publicMidiDeviceGetter(){}publicstaticvoidlistTransmitterDevices()throwsMidiUnavailableException{MidiDevice.Info[]infos=MidiSystem.getMidiDeviceInfo();for(inti=0;i好吧,这就是
我正在尝试制作一个能够在检测到MIDI设备后在计算机上播放音符的Java应用程序。获得所需的MIDI设备后,我将设置接收器,设备的发射器将向其传送MIDI消息。device.getTransmitter().setReceiver(newMyReceiver());MyReceiver类看起来像:publicclassMyReceiverimplementsReceiver{MidiChannel[]channels;publicMyReceiver(){try{Synthesizersynthesizer=MidiSystem.getSynthesizer();synthesizer
我最近用HeadFirstJava中的代码实现了一个MIDIBeatbox,并且真的很想用Java的MIDI功能做更多的事情。我想我可以从向现有代码添加更多非打击乐器开始,但我似乎无法找到可用乐器及其int键的简单列表。JDK附带的Soundbank是否存在这样的列表? 最佳答案 像这样运动吗?importjavax.sound.midi.*;importjavax.swing.*;classInstruments{publicstaticvoidmain(String[]args)throwsMidiUnavailableExce
我在用Java播放MIDI文件时遇到了一些问题。当我尝试播放它时,我得到的是MidiUnavailableException(MIDIOUT发射器不可用)。我的代码是标准的:try{midiseq=MidiSystem.getSequencer();midiseq.open();midiseq.setSequence(MidiSystem.getSequence(sound1));midiseq.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);midiseq.start();}catch(Exceptione){e.printStackTrace()
我继承了一个使用anoldC++dlltoreceiveMIDIdata的Java项目从连接到计算机的钢琴。现在Java已经内置了对MIDI设备的支持,我想摆脱遗留的C++dll,只使用纯Java。Java是否支持从连接到计算机的钢琴接收数据?我已在Google上搜索示例但无济于事。 最佳答案 如果您只想使用Java(javax.sound.midi.*)的MIDIapi进行录音,这很容易完成。这不是复制和粘贴的代码,但它应该可以帮助您开始编写自己的MIDI录音机,这实际上很容易。第一步是定义输入和输出MidiDevice。因此,首
读取具有多个轨道的MIDI文件(按时间顺序)的最佳方法是什么?(Java)注意:我不想播放MIDI文件,只是阅读消息。一些想法:假设没有短于1/64音符的音符事件是否安全?或者我应该访问每个轨道并且只在所有其他滴答声轨道之后移动到下一个滴答声假设没有短于1/64音符的MIDI事件,并将当前位置节拍计数移动该固定增量。访问每个轨道并前进到下一个最早的刻度 最佳答案 JFugue可以读取MIDI文件并按时间顺序对消息进行排序。结果可以读作JFugueMusicStrings(例如,升C调、第5个Octave音阶、全音符="C#5w"),
这个简单的代码在我用来测试它的几台机器上没有产生任何声音。我从Eclipse中运行代码,但我也尝试使用命令行无济于事。publicstaticvoidmain(String[]args){try{Synthesizersynthesizer=MidiSystem.getSynthesizer();synthesizer.open();MidiChannel[]channels=synthesizer.getChannels();channels[0].noteOn(60,60);Thread.sleep(200);channels[0].noteOff(60);synthesizer.
我似乎无法改变乐器。我切换了仪器的值,但输出没有任何不同。无论我尝试什么值(value),我都只能得到一个钢琴乐器来演奏。这是下面的简单代码。有没有人有什么建议?还是我缺少仪器对象的基础知识?importjavax.sound.midi.*;//importjavax.sound.*;publicclassDrum{staticintinstrument=45;staticintnote=100;staticinttimbre=0;staticintforce=100;publicstaticvoidmain(String[]args){Synthesizersynth=null;tr