- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写 C++ 代码来输出 MIDI 消息。我需要它在立体声中工作,以便通过左声道/扬声器播放一些音符,通过右声道播放其他音符。如果我调用 midiOutSetVolume(midiOutHandle, 0xFFFF),然后多次调用 midiOutShortMsg,每次调用间隔几百毫秒,音符将通过左扬声器发出。同样,如果我在调用 midiOutShortMsg 之前先调用 midiOutSetVolume(midiOutHandle, 0xFFFF0000),一切都会从正确的扬声器中出来。但是,如果我尝试通过执行以下操作同时通过左扬声器输出一个音符并通过右扬声器输出一个音符:
midiOutSetVolume(midiOutHandle, 0xFFFF);
midiOutShortMsg(...);
midiOutSetVolume(midiOutHandle, 0xFFFF0000);
midiOutShortMsg(...);
两个音符都从正确的扬声器中发出。我想如果我可能有 2 个单独的设备 handle ,我可以设置一个播放左声道音符,另一个播放右声道。但是,如果我尝试通过对 midiOutOpen 的 2 次调用打开同一设备的 2 个句柄,我会在第二次调用时收到 MMSYSERR_ALLOCATED 错误。
非常感谢任何建议。
最佳答案
您应该使用两个 channel 并在每个 channel 上设置pan。然后在 channel 0 上为左扬声器播放您的音符,在 channel 1 上为右扬声器播放您的音符。
要设置音符的 channel ,您的Note On 事件有 4 位用于 channel :
1001nnnn (Note On)
nnnn = channel number (0..15)
因此,请为您的左扬声器使用声道 0,为您的右扬声器使用声道 1。
要设置 channel 的声像,向该 channel 输出一个Control Change消息:
Status byte: 1011nnnn (Control Change)
nnnn = channel number (0..15)
First data byte - Controller number: 0ccccccc
Second data byte - Controller value: 0vvvvvvv
ccccccc = 10 (0x0A) for Pan
vvvvvvv = 0..127 (left = 0, right = 127)
设置 channel 0的声像为0, channel 1的声像为127。
参见 MIDI messages reference了解更多详情。另外,这是一个 short list控制更改编号。
更新:使用同步打击乐器组需要 MIDI 标准 XG 或 GM 级别 2。了解它们 here .您使用哪种方法取决于您设备的 MIDI 标准:
关于c++ - midiOutShortMsg 和 midiOutSetVolume 以立体声输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11946016/
我正在使用 libspotify 检索音乐以使用某些音频库播放。 Spotify 音乐应为原始 16 位、44100hz、立体声 LPCM。我一直在尝试用 NAudio 播放音乐,但不幸的是它不是立体
我在stackoverflow上找到了以下不可思议的代码。请任何人帮助我添加第二个 channel (立体声) 将有nchannels = 2 必须(以某种方式)增加文件大小,并且必须添加2.数组(即
我试图将我的音频通话强制设为单声道,我愿意使用 PCMU、G.729、OPUS 和 SpeeX 作为我的通话编解码器。 现在我正在使用以下代码在我的 sdp 消息中搜索所选的编解码器: functio
我正在使用 AudioKit 创建一个实验性 iOS 音频应用程序。目前,我正在尝试将 AKStereoInput 的左声道重新路由到 AudioKit.output 的右声道,并将 AKStereo
我目前正在使用 python 处理 .wav 文件,使用 Pyaudio 流式传输音频,使用 python wave 库加载文件数据。 我计划稍后包括处理单个立体声 channel ,关于信号的幅度和
我正在尝试获取空间中几个点的 3D 坐标,但我从 undistortPoints() 和 triangulatePoints() 都得到了奇怪的结果。 由于两个相机的分辨率不同,我分别校准,得到0,3
我正在尝试从具有以下音轨布局的 Prores 中提取只有 2.0 的 Prores 视频(L R 在同一轨道上)。如何使用 FFmpeg 库来做到这一点? 我无法从以下 ffmpeg 库规范 http
我正在使用javasound并具有格式的AudioInputStreamPCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endi
我想要与此匹配的 FFmpeg cli 设置(这是手刹预设) 这是预设文件,我不明白这些对ffmpeg是什么。 { "AlignAVStart": false, "AudioCopyM
为了解决我遇到的 5.1 电影的对话非常好的问题,我使用 FFMPEG 将我的 MKV 电影的每个音轨转换为具有音频规范化的 2.0 音轨,从而使视频和字幕保持不变。 该命令如下所示: for /r
我试图理解 YouTube 在他们推荐的上传编码设置中列出的内容,以获得最佳质量。这是链接:https://support.google.com/youtube/answer/1722171#zipp
我有一个包含 16 个音频单声道流的 MXF 文件,我需要将其重新编码为一个 mp4 文件,其中 2<=n<=16 个 channel 合并输入流,例如在输出 channel 1 上输入 channe
我是一名优秀的程序员,十分优秀!