作者 主题: processing中添加第三方TheMidibus库 却连例子都打不开 高手进  (阅读 12248 次)

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
如题
我的电脑是win7系统,在processing中安装了“the midibus”的第三方库之后,库安装没有问题,是在sketch中下载并安装的,启动examples中的basic例子,运行,出现了警告,并且没有发声,特别是在别的PC上也是这个情况。在MAC pro上却可以无错运行,并发声。

警告是The MidiBus Warning:No available input MIDI devices named:""Java Sound Synthesizer“were found

望高手指点迷津

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #1 于: 五月 27, 2013, 11:13:08 上午 »
这里不是百度贴吧
请不要使用 “高手进“ ”大神帮忙“ 等词眼

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #2 于: 五月 27, 2013, 11:29:05 上午 »
这行英文说得很明白,无法找到名为 Java Sound Synthesizer 的 MIDI 设备
既然其他的 PC 也报这个错,说明 PC 上是不能用这个 MIDI 设备的
那么解决思路是什么呢?
使用其他的设备名称

所以首先,你需要知道你在 PC 上有哪些 MIDI 设备
我没用过这个库,但是 google 告诉我,可以调用
程序代码
MidiBus.list()

你们要学会
1. 找到问题
2. 分析症状
3. 使用 google 查找相关的症状
4. 解决问题

这个帖子你还犯了个很严重的错,你没有贴代码
并不是所有人都像我这么耐心,可以帮你去google搜索的
« 最后编辑时间: 五月 27, 2013, 11:33:18 上午 作者 vinjn »

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #3 于: 五月 27, 2013, 12:05:56 下午 »
你说的这些我都知道呢,代码在libraries的example里面。不是不能运行,是在win系统上报错,在mac系统上不会报错,运行顺利。
google上搜过,并不能解决我的问题。
代码如下
import themidibus.*; //Import the library

MidiBus myBus; // The MidiBus

void setup() {
   size(400,400);
   background(0);

   MidiBus.list(); // List all available Midi devices on STDOUT. This will show each device's index and name.

   // Either you can
   //                   Parent In Out
   //                     |    |  |
   //myBus = new MidiBus(this, 0, 1); // Create a new MidiBus using the device index to select the Midi input and output devices respectively.

   // or you can ...
   //                   Parent         In                   Out
   //                     |            |                     |
   //myBus = new MidiBus(this, "IncomingDeviceName", "OutgoingDeviceName"); // Create a new MidiBus using the device names to select the Midi input and output devices respectively.

   // or for testing you could ...
   //                 Parent  In        Out
   //                   |     |          |
   myBus = new MidiBus(this, -1, "Java Sound Synthesizer"); // Create a new MidiBus with no input device and the default Java Sound Synthesizer as the output device.
}

void draw() {
   int channel = 0;
   int pitch = 64;
   int velocity = 127;
   
   myBus.sendNoteOn(channel, pitch, velocity); // Send a Midi noteOn
   delay(200);
   myBus.sendNoteOff(channel, pitch, velocity); // Send a Midi nodeOff
   
   int number = 0;
   int value = 90;
   
   myBus.sendControllerChange(channel, number, value); // Send a controllerChange
   delay(2000);
}

void noteOn(int channel, int pitch, int velocity) {
   // Receive a noteOn
   println();
   println("Note On:");
   println("--------");
   println("Channel:"+channel);
   println("Pitch:"+pitch);
   println("Velocity:"+velocity);
}

void noteOff(int channel, int pitch, int velocity) {
   // Receive a noteOff
   println();
   println("Note Off:");
   println("--------");
   println("Channel:"+channel);
   println("Pitch:"+pitch);
   println("Velocity:"+velocity);
}

void controllerChange(int channel, int number, int value) {
   // Receive a controllerChange
   println();
   println("Controller Change:");
   println("--------");
   println("Channel:"+channel);
   println("Number:"+number);
   println("Value:"+value);
}

void delay(int time) {
   int current = millis();
   while(millis() < current+time) Thread.yield();
}

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #4 于: 五月 27, 2013, 01:18:50 下午 »
我下载了这个库,只需要改几个字就可以运行

改成
程序代码
myBus = new MidiBus(this, -1, "出现在 MidiBus.list() 中的某个设备名称即可");

或者
程序代码
myBus = new MidiBus(this, -1, 1);

即可

你需要认真地看我的评论
你也需要认真地看 setup() 里的注释
« 最后编辑时间: 五月 27, 2013, 01:46:36 下午 作者 vinjn »

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #5 于: 五月 27, 2013, 02:16:38 下午 »
哦哦 明白了 我说怎么mac里面有的“Java Sound Synthesizer” win里面怎么没有呢 而且列表不一样
谢谢

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #6 于: 五月 28, 2013, 09:33:38 上午 »
还有个问题 现在一直是刚琴的声音,能不能换成别的声音,比如说小提琴。

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #7 于: 五月 28, 2013, 10:43:34 上午 »
ask google

Contra

  • SuperManager
  • Sr. Member
  • *****
  • 帖子: 347
  • AC, game dev, new media art&tech.
    • i'm Contra
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #8 于: 五月 28, 2013, 12:20:46 下午 »
还有个问题 现在一直是刚琴的声音,能不能换成别的声音,比如说小提琴。

midi后的音色? 这个看你音色合成用什么了,音色库里随便切换吧,只要是支持midi输入的合成软件,google海量

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #9 于: 五月 28, 2013, 03:43:37 下午 »
嗯 我试过midiox和cubase 两个常用的midi软件,都需要一个midi-usb的转换驱动器。在arduino中编写并发送midi信号即可。
但介于两个软件界面实在太丑,并且想做成利用apc220进行无线通信。遂想通过processing做一个简单的,即发声和切换音色即可。已经用arduino制作了一个设备,传输简单的检测信号,之后再processing中用the midibus的库已经实现对检测到的信号进行不同音调的发声,如中央C是60,C#是61,D是62等。已经调试并完成实现。
现在的问题是正如basic例子运行结果一样,是钢琴声,好像java里面能选择音源,通宵恶补了三天java,却发现java关于midi的实例实在太少。望指点迷津

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #10 于: 五月 28, 2013, 03:50:19 下午 »
在midi-ox等midi软件上通用的切换音色的标准midi信号为 0xc0到0xcf(0号通道到16号通道)+一个数据字节(乐器编号 从0~127)。
现问题是在processing如何加载调用。

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #11 于: 五月 28, 2013, 03:52:27 下午 »
还有个问题 现在一直是刚琴的声音,能不能换成别的声音,比如说小提琴。

midi后的音色? 这个看你音色合成用什么了,音色库里随便切换吧,只要是支持midi输入的合成软件,google海量

现在是这个情况

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #12 于: 五月 28, 2013, 03:58:04 下午 »
output现在选择的是 "Microsoft MIDI Mapper"

Contra

  • SuperManager
  • Sr. Member
  • *****
  • 帖子: 347
  • AC, game dev, new media art&tech.
    • i'm Contra
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #13 于: 五月 28, 2013, 04:30:28 下午 »
你的项目如果可以用其他软件,既然有了midi,直接把midi信号再连入一个音乐软件呗,音色选择、发声这些就不用processing了

klmylmtxz

  • Newbie
  • *
  • 帖子: 25
Re: processing中添加第三方TheMidibus库 却连例子都打不开 高手进
« 回复 #14 于: 五月 28, 2013, 11:21:52 下午 »
你的项目如果可以用其他软件,既然有了midi,直接把midi信号再连入一个音乐软件呗,音色选择、发声这些就不用processing了

这个倒也想过 在processing的官方论坛上找到一个人的提问,ta是用Ableton live做的,调试有问题,但没人回答。。。

Tags: