标签: midi-instrument

Java sound api - 扫描midi设备

我正在开发一个java项目,它使用javax.sound.midi库从midi硬件接收midi事件.在文档中,它表示MidiSystem.getMidiDeviceInfo()返回所有连接的midi硬件的列表.它适用于我,但问题是,它只能工作一次.第一次实际扫描设备需要花费一些时间,但每次之后,即使已连接新设备,它也会立即返回相同的列表.有没有办法强迫它重新扫描?如果重新启动应用程序,它将重新扫描,但我不希望我的用户在连接新的midi设备时必须重新启动.

顺便说一下,我正在使用Mac OS X ......有人指出,不同操作系统的行为可能会有所不同.

java audio midi midi-instrument

13
推荐指数
1
解决办法
2147
查看次数

Java MIDI合成器 - 无法更改乐器

我似乎无法让乐器改变.我切换了仪器的值,但输出没有任何不同.无论我尝试什么价值,我都只能拿钢琴乐器演奏.这是下面的简单代码.有没有人有什么建议?或者我错过了仪器对象的基本原理?

import javax.sound.midi.*;
//import javax.sound.*;

public class Drum {
    static int instrument = 45;
    static int note = 100;
    static int timbre = 0;
    static int force = 100;
    public static void main(String[] args) {        
        Synthesizer synth = null;
        try {
            synth = MidiSystem.getSynthesizer();
            synth.open();
        }
        catch (Exception e) {
            System.out.println(e);
        }
        Soundbank soundbank = synth.getDefaultSoundbank();
        Instrument[] instr = soundbank.getInstruments();
        synth.loadInstrument(instr[instrument]);    //Changing this int (instrument) does nothing
        MidiChannel[] mc = synth.getChannels();
        mc[4].noteOn(note, force);
        try { Thread.sleep(1000); } 
        catch(InterruptedException e) {} …
Run Code Online (Sandbox Code Playgroud)

java midi-instrument

10
推荐指数
2
解决办法
9721
查看次数

将 MIDI 转换为 mp3

我有一个 midi 文件,我想在网页上播放该文件,目前我正在使用 midi.js 播放器进行播放,但它不适用于移动浏览器。

请指导我如何播放该文件,否则我如何播放 MIDI 或将其转换为 mp3

这是我的代码

  $data = fopen ($midi, 'rb');
 $size= filesize($midi);
 $contents = fread ($data, $size);
 fclose($data);
 $encoded= base64_encode($contents);

 $encode = "'data:audio/midi;base64,".$encoded."=='";
Run Code Online (Sandbox Code Playgroud)

最后将 base64 值传递给 midi.js

php midi midi-instrument

8
推荐指数
2
解决办法
5563
查看次数

播放多乐器MIDI文件IOS

晚上好.我正在尝试用质量好的声音库写一个简单的midi播放器.面对播放midi文件的问题.问题是midi的所有曲目(鼓,鼓,贝斯,合成器等)都播放了,但它们只演奏一个乐器.我找到了OS X的解决方案,我需要iOS解决方案.我是否必须使用kAudioUnitSubType_Sampler为每个乐器audioUnit创建?

提示可以实时更改所选通道上的仪器吗?如何实施?对不起我的英语不好 ((

这是我的代码,它无法正常工作:

// Create a client
MIDIClientRef virtualMidi;
Check(MIDIClientCreate(CFSTR("Virtual Client"),
                       MyMIDINotifyProc,
                       NULL,
                       &virtualMidi));


// Create an endpoint
MIDIEndpointRef virtualEndpoint;
Check(MIDIDestinationCreate(virtualMidi, CFSTR("Virtual Destination"), MyMIDIReadProc, samplerUnit, &virtualEndpoint));

// Initialise the music sequence
NewMusicSequence(&midiSequence);

if (!midiFilePath) {
    midiFilePath = [[NSBundle mainBundle]
                    pathForResource:@"carelesswhisper"
                    ofType:@"mid"];

}
NSLog(@"midiFilePath %@", midiFilePath);

// Create a new URL which points to the MIDI file
NSURL * midiFileURL = [NSURL fileURLWithPath:midiFilePath];

MidiParser *midiParser = [[MidiParser alloc] init];
NSData *data = [NSData dataWithContentsOfFile:midiFilePath];
[midiParser parseData:data];
NSString *midiInfo = …
Run Code Online (Sandbox Code Playgroud)

midi sample audio-player midi-instrument ios

8
推荐指数
1
解决办法
1454
查看次数

MIDI乐器上市?

我最近从Head First Java的代码中实现了一个MIDI Beatbox,并且非常想用Java的MIDI功能做更多的事情.我认为我可能会首先在现有代码中添加更多非打击乐器,但我似乎无法找到可用乐器及其int键的直接列表.

这样的列表是否存在Soundbank于JDK附带的任何地方?

java midi javasound midi-instrument

7
推荐指数
2
解决办法
7199
查看次数

Silverlight可以与MIDI乐器通信吗?

Silverlight可以与连接到运行Silverlight应用程序的机器的MIDI乐器进行通信吗?进出浏览器.

silverlight midi midi-instrument midi-interface

6
推荐指数
1
解决办法
525
查看次数

使用 chrome 播放 MIDI 文件

我正在使用嵌入播放器播放 MIDI 文件。它在 mozilla 和资源管理器中播放,我如何在 chrome 中播放 midi 文件,是否有任何扩展或插件可以在 chrome 中播放 midi。

这是我的代码

<object
id="MediaPlayer" width="300" height="300"
classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6"
standby="Loading Microsoft Windows Media Player components..."
type="application/x-oleobject">
<param name="Url" value="suite1.mid">
<param name="AutoSize" value="true">
<param name="AutoStart" value="true">
<param name="Balance" value="0">
<param name="DisplaySize" value="0">
<param name="Mute" value="false">
<param name="PlayCount" value="0">
<param name="Rate" value="1.0">
<param name="ShowAudioControls" value="true">
<param name="ShowControls" value="true">
<param name="ShowDisplay" value="true">
<param name="ShowStatusBar" value="true">
<param name="ShowTracker" value="true">
<param name="StretchToFit" value="false">
<param name="TransparentAtStart" value="false">
<param name="Volume" value="100">
<embed type="application/x-mplayer2"
    name="mediaplayer"
    pluginspage="http://www.microsoft.com/Windows/MediaPlayer"
    src="suite1.mid"
    Height="300"
    Width="300" …
Run Code Online (Sandbox Code Playgroud)

embed midi midi-instrument

5
推荐指数
1
解决办法
4484
查看次数

在 Python Music21 库中播放鼓声

自从我开始阅读“用计算机制作音乐:Python 中的创意编程”这本书已经有几个星期了,现在我在尝试用这个库播放鼓声时陷入困境。我正在使用 Mit 的 music21 库,因为书中提出的库对我不起作用(简称为“音乐”)。这是本书用来播放低音鼓声音的代码示例:

from music import *
drumPart = Part("Drums", 0, 9)
note = Note(ACOUSTIC_BASS_DRUM, QN) # a bass drum strike
drumPhrase = Phrase()
drumPhrase.addNote(note)
drumPart.addPhrase(drumPhrase)
Play.midi(drumPart)
Run Code Online (Sandbox Code Playgroud)

我尝试在 music21 中用 Hi Hat 声音做同样的事情,但没有播放声音:

import music21
from music21 import note, stream, pitch, duration, instrument, tempo, chord
from music21.note import Note, Rest
from music21.chord import Chord
from music21 import midi

def createInstrument(instrument, midiChannel):
    i = instrument
    i.midiChannel = midiChannel
    return i

n = Note("A2", type='quarter')

drumPart = stream.Part()
drumPart.insert(createInstrument(instrument.HiHatCymbal(), …
Run Code Online (Sandbox Code Playgroud)

python audio midi midi-instrument music21

5
推荐指数
1
解决办法
1833
查看次数

midi | 如何辨别不同的弦乐工具(小提琴,大提琴,贝斯)之间的区别

我试图在flash midi文件中可视化(使用外部midi-to-flash库)

有没有办法在midi文件中区分Violin,Viola,Cello和Contrabass.我得到了仪器的这些值(忽略数字):

1长笛13

2双簧管15

3单簧管14

4巴松管16

5法国号角18

6小号17

7定音鼓26

8弦乐合奏1 3

9弦乐合奏1 3

10弦乐合奏1 3

11弦乐合奏1 3

12弦乐合奏1 3

13原声大钢琴5

14原声大钢琴5

15原声大钢琴5

16 Acoustic Grand Piano 5

如您所见,所有字符串都获得相同的"String Ensemble"值...

一种方法是询问每个音符是高(65>)还是低(50 <)等,并通过大致决定乐器类型(对于特定音符).但由于这些值是随机的而且不准确 - 不能正确分离它们(特别是因为不同的工具仍然具有共享的音符高度值).

  1. 它是在midi文件中写的(大提琴,小提琴......)吗?

  2. 有没有办法承担它?

  3. 我有5首曲目.是否可以假设(例如)前两个是小提琴,第三个是大提琴等?或者他们都是混合的?

flash midi actionscript-3 midi-instrument

4
推荐指数
1
解决办法
406
查看次数

使用 JavaScript 检测浏览器中的 Midi-piano 键盘事件的库

我想将 midi 钢琴键盘插入计算机的 USB 端口,并通过在浏览器中显示某些内容来响应按键事件。

有谁知道有一个库可以允许 JavaScript 与前端/浏览器中的 USB midi 键盘事件交互?

类似于:
链接到index.html的script.js文件:

$(document).on('midi-key-press', function(event) {
    alert('the key that you pressed was ' + event.whichKey);
});
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript midi midi-instrument web-midi

2
推荐指数
1
解决办法
1967
查看次数

MIDI - MidiMessage 程序随不同银行的乐器而变化

我使用的默认合成器的音库包含各种不同的乐器。例如,这段代码片段...

Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
Instrument instruments = synthesizer.getDefaultSoundbank().getInstruments();
for (Instrument i : instruments)
    System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

...打印以下内容:

Instrument: Piano 1      bank #0 preset #0
Instrument: Piano 2      bank #0 preset #1
[...]
Instrument: Applause     bank #0 preset #126
Instrument: Gun Shot     bank #0 preset #127
Instrument: SynthBass101 bank #128 preset #38
Instrument: Trombone 2   bank #128 preset #57
[...]
Instrument: Machine Gun  bank #128 preset #127
Instrument: Echo Pan     bank #256 preset #102
Instrument: String Slap  bank #256 preset #120 …
Run Code Online (Sandbox Code Playgroud)

java midi midi-instrument

0
推荐指数
1
解决办法
3033
查看次数

如何使用python获取midi轨道乐器名称?

我发现的唯一方法是使用music21

m = converter.parse(path)
for m in m.parts:
    print(m[0])
Run Code Online (Sandbox Code Playgroud)

但它的输出不正确:

Piano


Piano
Run Code Online (Sandbox Code Playgroud)

空位也是一个乐器名称,它只是无法读取它,但问题不在文件中,因为我可以将其正确导入到tuxguitar 中。此外,music21 无法传递大的 MIDI 文件并卡住。我尝试了 mido 库,但没有办法获得 track instrument,我找到了一个属性,但不知道如何使用它。

如何用python解析midi曲目的乐器?

python midi midi-instrument music21

0
推荐指数
1
解决办法
1779
查看次数