草庐IT

使用MIDI事件使玩家在Pygame中移动的方式

我已经使用Pygame模块制作了一些小游戏,这很有趣。但是,现在我正在尝试使用pygame.midi通过MIDI通过钢琴移动角色。有问题。我做到了,但没有以我想要的方式,因为角色有时会移动,而其他人则没有。我想我知道问题在哪里:如果我正确理解的话,pygame.event.get()函数“捕获”事件总是无关紧要的我的代码不会发生,我的意思是,我相信玩家并不总是会做应该做的事情,因为MIDI输入必须在特定的“时间”中,而不是pygame.event.get()。我查看了pygame文档,似乎有一个功能可以解决问题:pygame.midi.midis2events(),但我不知道如何使用它。钢琴通

java - Java 与 C++ 中 OpenCV 的实时性能对比

我知道这里有很多类似的问题,但我相信我的情况非常独特,值得单独发表。我正在研究某种“视觉指挥”——我构建了一个程序来跟踪一个人的手势并从这些手势中推断节奏(以每分钟节拍为单位)。我现在想做的是将测得的速度映射到一个MIDI文件,该文件在该人指挥时播放。基本上,我希望该程序允许某人指挥合成乐曲,其中正在播放的文件的速度实时受到指挥手势的影响。我使用OpenCV库用C++编写了这个。这里是事情变得有趣/多毛的地方。直接修改MIDI文件的速度看起来是一项艰巨的任务,考虑到我今年夏天剩下的时间有限,我决定寻找其他地方。我碰巧在JavaAPI中找到了Sequencer接口(interface),

c++ - Win32 - Midi 循环与 MCISendString

我正在制作一款游戏,我正在使用midi文件作为背景音乐。这是我目前使用的代码:voidGame::play_music(){//Startthemusic:if(map.levelnumber%2==0){mciSendString(L"openMUSIC01.MIDtypesequenceraliasMusic1",NULL,0,NULL);mciSendString(L"playMusic1",NULL,0,NULL);playing="Music1";}else{mciSendString(L"openMUSIC02.MIDtypesequenceraliasMusic2",NU

c++ - 在 juce 音频应用程序中打印 midi 音符编号

我正在尝试在按下时将midi音符编号打印到Juce音频应用程序中的标签中。这是我目前拥有的代码:在MainComponent头文件中:classMainComponent:publicComponent,publicMidiInputCallback{public://==============================================================================MainComponent();~MainComponent();voidresized()override;voidhandleIncomingMidiMessag

C++ MIDI文件读取库

我正在尝试编写一些软件来将MIDI文件读入内部数据格式并使用它来控制3D模拟乐器。我最大的问题是从文件中读取MIDI数据,我想避免编写所有导入代码。有人知道免费(最好是开源)、跨平台的MIDI文件读取库吗?它有什么特点?它可以导入其他基于音符的音乐格式吗? 最佳答案 我曾经用C写过一个Midi文件读写库,如果你想看这里是:http://code.google.com/p/middl/这是一个非常基本的库,允许您为每个MIDI事件类型定义一个回调函数,对于C++,您可能希望将它封装到某种“Midi阅读器”类中(或者直接使用它:)。

C++:从 MIDI 消息中获取数据 (DWORD)

我用C++编写了一个简单的MIDI控制台应用程序。这是全部内容:#include#include#includeusingnamespacestd;voidCALLBACKmidiInputCallback(HMIDIINhMidiIn,UINTwMsg,DWORD_PTRdwInstance,DWORD_PTRdwParam1,DWORD_PTRdwParam2){switch(wMsg){caseMIM_MOREDATA:caseMIM_DATA:cout>portID;cout您可以看到有一个回调函数用于处理从设备传入的MIDI消息。Hereisthedescriptionoft

c++ - VST乐器多进多出

我想创建一个具有16个MIDI输入和至少16个音频输出的VST乐器。类似于kontakt或halion的做法。有什么想法吗? 最佳答案 正如@leftaroundabout指出的那样,您不太可能需要16个输入和输出,尤其是对于乐器而言。然而,拥有16个MIDI输入和16个音频输出对于鼓机和其他多轨乐器来说非常普遍,用户可能希望单独处理每个声音。一般来说,音频输入对整个乐器来说并不是特别有用。也就是说,您只需像这样实例化您的插件:MyPlugin::MyPlugin(audioMasterCallbackaudioMaster):Au

ios - 有没有办法在 iOS 4.2 之前的设备上使用 Core MIDI?

例如,我使用iphoneos4.2作为基础SDK构建我的应用程序。CoreMIDI部分可以在旧设备上使用吗?我想不是,但有没有办法让它发挥作用? 最佳答案 因为CoreMIDI是在4.2才引入的,旧版本的操作系统不包含框架,因此无法使用它。您可以使用DSMidiWiFi之类的东西作为替代品。 关于ios-有没有办法在iOS4.2之前的设备上使用CoreMIDI?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

iphone - 音乐播放器只播放一首轨道

因此,我正在加载一个多轨.mid文件,以便使用MusicPlayerAPI进行播放。它适用于单轨.mid文件,但当我尝试将.mid与两个轨道一起使用时,它没有为轨道2合成音频,但为轨道1合成了音频。我知道音轨在那里,而且我知道系统可以识别它,因为我在所有显示正在播放的音符的noteMessage事件中添加了用户事件。我的琴键像在弹奏音符一样亮起,但没有声音。编辑所以,我一直在做一些挖掘。原来它实际上是在播放轨道。问题是,当您创建序列时自动生成的采样器的默认AUPreset对于中央C以下的音符没有任何合适的音调。那么,这个问题就变成了,是否有可以在某处下载的AUPresets还是您必须自

ios - 使用 MusicTrackNewMIDINoteEvent 在播放时添加音符

我正在构建一个鼓机来学习如何在iOS上使用MIDI。我设法让它工作到一点,但是,我遇到了以下问题。当用户点击某个按钮时,我需要在MIDI播放器播放时向我的MIDI循环添加声音,不幸的是我不能简单地这样做:MusicTrackNewMIDINoteEvent(track,0,&message);虽然轨道是循环的并且有确定的长度,所以理论上它应该在某一点回到0。我也试过这个:MusicTrackNewMIDINoteEvent(track,noteTimestamp,&message);其中noteTimestamp是我从播放器收到的时间戳。最后,我设法让它与这样的东西一起工作:Music