gpt4 book ai didi

matlab - 在特定耳塞( channel )上播放歌曲

转载 作者:行者123 更新时间:2023-12-03 00:37:42 25 4
gpt4 key购买 nike

我有一个设备,就像 3 个耳机合二为一(所以 6 个耳塞)。我的目标是在每个耳塞上播放一首不同的歌曲(6 首歌曲)。所以我开始在耳塞上播放一首歌。对我来说,一个 channel 意味着一个耳塞(但也许我错了)。我正在使用 Psychtoolbox:

function BasicSoundOutputDemo( wavfilename)

AssertOpenGL;

% Read WAV file from filesystem:
[y, freq] = psychwavread(wavfilename);

aux = y' ;
wavedata = aux(1,:);


InitializePsychSound;
devices = PsychPortAudio('GetDevices' );

pahandle = PsychPortAudio('Open', [], [], 0, freq, 1);// nr channels = 1

PsychPortAudio('FillBuffer', pahandle, wavedata);

t1 = PsychPortAudio('Start', pahandle, 1, 0);


KbReleaseWait;


while ~KbCheck
% Wait a seconds...
WaitSecs(1);

end


PsychPortAudio('Stop', pahandle);


PsychPortAudio('Close', pahandle);


fprintf('Demo finished, bye!\n');

但它没有奏效。它不是只在一个耳塞上播放声音,而是在 2 个耳塞上播放。

我收到此警告

PTB-INFO: Using specially modified PortAudio engine, based on offical version: PortAudio V19-devel WITH-DIM

Will use ASIO enhanced Portaudio driver DLL. See Psychtoolbox/PsychSound/PortAudioLICENSE.txt for the exact terms of use for this dll.

Disclaimer: "ASIO is a trademark and software of Steinberg Media Technologies GmbH."

PTB-Warning: Although using the ASIO enabled Psychtoolbox sound driver,

PTB-Warning: could not find any ASIO capable soundcard in your system.

PTB-Warning: If you think you should have an ASIO card, please check your

PTB-Warning: system for properly installed and configured drivers and retry.

PTB-Warning: Read "help InitializePsychSound" for more info about ASIO et al.

PTB-INFO: New audio device with handle 0 opened as PortAudio stream:

PTB-INFO: For 1 channels Playback: Audio subsystem is MME, Audio device name is Microsoft Sound Mapper - Output

PTB-INFO: Real samplerate 44100.000000 Hz. Input latency 0.000000 msecs, Output latency 464.399093 msecs.



然后我决定尝试另一个方法。让我们在其他 2 个耳塞上播放歌曲

我使用 PsychPortAudio('GetDevices') 来查找耳塞对的 id。奇怪的是,我找到了 4 个,而不是 3 个具有 2 个 channel 的设备。
我使用 PsychPortAudio('Open' for id 7,9,18 和 20 但每次歌曲都在同一对耳塞上播放时,我尝试只在一个耳塞上播放时是同一对。
这是一张包含 4 个设备的图片

enter image description here
function BasicSoundOutputDemo( wavfilename)

AssertOpenGL;

% Read WAV file from filesystem:
[y, freq] = psychwavread(wavfilename);

wavedata = y' ;
nrchannels = size(wavedata,1); % Number of rows == number of channels.

InitializePsychSound;
devices = PsychPortAudio('GetDevices' );

pahandle = PsychPortAudio('Open', 18, [], 0, freq, nrchannels);

PsychPortAudio('FillBuffer', pahandle, wavedata);

t1 = PsychPortAudio('Start', pahandle, 1, 0);


KbReleaseWait;


while ~KbCheck
% Wait a seconds...
WaitSecs(1);

end


PsychPortAudio('Stop', pahandle);


PsychPortAudio('Close', pahandle);


fprintf('Demo finished, bye!\n');

现在唯一不同的是警告它这个

PTB-INFO: For 2 channels Playback: Audio subsystem is Windows DirectSound, Audio device name is Speakers (USB Multi-Channel Audio Device)



很抱歉这篇长篇文章,但我想给你所有的信息。

你能说我错了吗。如何在特定耳塞上播放一首歌曲。我想如果我知道的话,我只需复制代码并放另一首歌曲,这样我就会在每个耳塞上播放一首歌曲

最佳答案

1) 你可能不想运行 AssertOpenGL每次你呈现一个声音。

2)您的代码看起来是正确的,虽然在我的 Apple 笔记本电脑和内置声音上很有趣,但发送单 channel 信号也在两个耳机 channel 中播放。

3)您使用的是什么音频设备?从您的设备列表中,您列出的 4 个可能是相同设备的不同接口(interface)(2 个输出(一个数字,一个模拟)X 两个 API(一个 MME,一个 DirectSound)。您的设备中是否还有其他条目列表?

关于matlab - 在特定耳塞( channel )上播放歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39042600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com