问题标签 [javax.sound.midi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javax.sound.midi - 在 MidiSystem 的 Sequencer 对象中更改音序器
我正在开发一个 Java 程序,该程序使用从 MidiSystem 获得的 Sequencer,同时使用 JFrame 对象,让我选择不同的序列来播放。到目前为止,我可以播放新序列的唯一方法是停止程序并重新开始。有没有办法可以在 JFrame 保持活动状态时更改序列或跟踪,而不是停止程序并重新启动。谢谢。
java - midi.Sequencer 的序列何时结束?
拥有这个有效的简单代码(但在我用 ^-c 终止它之前永远不会结束):
noteOn
MidiEvent
被触发(构造函数的1 tick
第二个参数MidiEvent
)。被noteOff
MidiEvent
触发8 tick
,这意味着。应该有 7 个刻度跨度。但我永远看不到结束(程序结束)。从 cmd 触发时,提示永远不会返回,除非我强制终止进程(使用<ctrl-c>
)。这是为什么?Sequencer 何时结束,程序何时结束?
编辑:可能是因为打开了 Sequencer,但没有关闭它。所以我想在最后关闭它,但它不能立即跟随player.start()
语句,否则它会立即结束。所以肯定有一些延迟。虽然这是笨重的解决方案
之后,提示返回。但是有更好的解决方案吗?
java - JFugue - MIDI 文件说明的模式输出
所以我一直在用 JFugue 进行一些试验,并且我对可读的人类形式的输出产生了真正的兴趣。我经常看到的一件事是,在和弦之前,有一堆字符,例如“V1:CE(X,X)”,从我收集的内容来看,V表示一个音轨,但无法破译什么:CE 表示。有人能帮我吗?谢谢!
java - 如何在 Java 中选择特定的 Midi Sequencer?
我正在开发一个 midi 程序,并希望用户可以选择使用哪个 midi 音序器,如果他们有很多而不是使用MidiSystem.getSequencer()
.
编辑
我的代码看起来像这样。
如果您使用一个指向 midi 文件的参数运行程序,它会播放它,但如果您有 2 个参数并且它要求您选择一个音序器,它是无声的。定序器肯定会在打印语句发生时设置,并且程序不会立即退出,就好像还在播放 midi,但没有噪音出现。
基于 GUI 的 MRE
此 MRE 将命令行应用程序转换为 GUI,以便于使用。
要测试此代码:
- 启动图形用户界面
- 确保文本字段(顶部)指向有效的 MIDI 文件
- 在下面的列表中选择一个音序器
- 单击文本字段以使其获得焦点
- 激活添加到该字段的操作侦听器(在 Windows 上,这意味着“按回车”)
java - XG MIDI 信息
我正在开发一个使用 javax.sound.midi 读取 MIDI 文件的 Java 程序。
我遇到了一个用 XG 编码的 MIDI 文件。
当我在雅马哈键盘上弹奏时,鼓的声音很好。但是在Java中,如果MIDI是XG,我不知道如何检测音轨是鼓,或者为此如何找出MIDI是XG。
通过在 Note ON 消息中检测通道是否等于 9 来执行此操作的方法似乎并未检测到所有 XG 鼓音符。
任何人都知道检测 XG 鼓音符的(希望是简单的)方法吗?
java - 有没有办法在 Java 中获取所有 MIDI 设备的列表?
我正在尝试用 Java 获取所有 MIDI 设备,这比我想象的要难......
我尝试了for each()
循环,但它不起作用,因为我不知道ArrayList
我在用这个方法做什么。
这是我的代码:
任何帮助,将不胜感激。
java - 在 Java 中使用 MIDI
我正在尝试编写一个使用 MIDI 的 Java 程序,因此该程序必须排列:notes(包含我想要播放的所有音符)和另一个数组时间(指定何时播放音符)notes 和时间一次分组三个,所以我可以有多个和弦,问题是程序只播放一个非常简短的音符然后它就停止了,我做错了什么?下面是代码,我使用的是 Java 16。
我认为它与 ShortMessage.NOTE_OFF 有关,但我不确定,我无法弄清楚。
java - JavaX MIDI,某些曲目缺少程序更改
我正在开发一个简单的 MIDI 解析器,它将 MIDI 文件转换为不同的格式,我面临的一个问题是,有时我会在 MIDI 文件中得到一些没有分配任何乐器的轨道(没有程序更改事件)
这是专门查找程序更改事件的代码的截断部分。请原谅我混乱的格式,我是新手,在粘贴代码时遇到了一些麻烦,但希望总体思路仍然清晰。
我可能面临的主要问题之一就是以错误的方式获取程序更改事件。他们似乎没有与之关联的滴答声,所以我只是给他们上一个滴答声+ 1的计时事件。我不确定这是否是正确的方法,所以这可能会导致一些问题。
例如,我运行的一个 MIDI 文件有 23 个音轨。除了第 8 首曲目外,每首曲目都有指定的乐器,而我不知道为什么第 8 首曲目没有指定乐器。我认为它是为了继承它基于另一条轨道的乐器,但我不太了解它是如何工作的。
但是,其他事件(例如 NOTE_ON 事件)正在从这些轨道正确捕获。我知道这是一个小众问题,但有人对此有任何见解吗?
javax.sound.midi - arduino 和处理错误代码使用 soundbank
我想做的项目就在这里。 http://ardututes.weebly.com/examples/color-piano-tcs34725
但是,处理代码中继续发生错误。
Arduino代码
Arduino代码监控没有问题。但,
此代码的第 42 行有一个错误。错误在这里
请帮助我..请告诉我解决方案...