问题标签 [superpowered]

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.

0 投票
1 回答
498 浏览

android - Superpowered:无法让TimeStretching正常工作,输出声音失真

我正在尝试使用Superpowered SDK对正在播放和同时录制的 mp3 文件应用实时时间拉伸和音高转换。问题是无论我做什么,输出的声音质量都很糟糕(到了失真的地步)。
我怀疑这是由于每个帧号的样本冲突。这是我的 cpp 文件的完整源代码:

需要考虑的一些注意事项:

  1. 这不是这个问题的重复,因为该线程中的解决方案对我不起作用
  2. 我试过玩decoder->samplesPerFrameandnumSamples但我不能得到一个像样的输出。
  3. 如果我将 Time Stretching1和 Pitch Shift 设置0为声音播放无缝。

更新 1:
经过更多的篡改和使用不同的样本数量值后,我认为问题一定出在音频输出 ( DAC MAN ) 期望的样本数量与outputBuffers->nextSliceItem实际提供的数量之间的差异。
话虽如此,我可以想出一种方法来缓解这个问题,那就是将输出附加outputBuffers->nextSliceItem到一个临时缓冲区,然后当它达到阈值时,将其定向到音频输出。

因此我的第二个问题是:C++ 中有没有办法将缓冲区附加到另一个缓冲区?

0 投票
1 回答
155 浏览

android - 将单声道和立体声输入与超级播放器相结合

我有 3 个文件,两个是单声道的,一个是立体声的。我想一起玩。目前我的代码是这样的,但似乎输出不正确。

有人知道这里有什么问题吗?我想我应该使用这种方法

左右有 2 个缓冲区,但是如何将数据添加player1到这 2 个缓冲区中?请帮忙。

0 投票
1 回答
106 浏览

android - SuperpoweredAndroidAudioIO回送,只输出到左耳

在使用 Superpowered SDK 在 Android 中实现音频环回(从麦克风输入到标准输出)后,我发现只能通过耳机的一侧听到输出。

这就是我初始化 SuperpoweredAndroidAudioIO 的方式:

将 inputStreamType 或 outputStreamType 切换到 SLES/OpenSLES_AndroidConfiguration.h 中的其他选项无助于解决问题。

我的 liveAudioProcessing 回调函数如下所示:

当 clientdata 为 false 和 true 时会出现问题,因此它与均衡器无关。

0 投票
1 回答
45 浏览

superpowered - 解码时在超级解码器中获取文件的当前位置/时间

在使用超级功能解码文件时,我得到了 samplePosition,但我想要以毫秒/秒为单位的当前位置。samplePosition是样本中的当前位置。但我真正需要的是当前位置(以毫秒为单位)。在解码时,我想在音频文件中的某些毫秒位置静音/取消静音。

提前致谢

0 投票
1 回答
155 浏览

tvos - Superpowered可以用来输出5.1或7.1环绕声吗?

我正在尝试在 tvOS 上使用Superpowered 。我希望能够将音频输出到两个以上的立体声通道。这可以使用 Superpowered SDK 吗?

到目前为止,我尝试修改包含的 tvOS 示例,如下所示:

  • ViewController.m初始化 Superpowered 的地方,我将channels参数的值从更改26。(这适用于 5.1 环绕声,这是连接的输出设备支持的。)

  • audioHandler.mm中,我将以下内容添加到audioProcessingCallback

    /li>

通过这些更改,我预计嗖嗖声将通过所有 6 个环绕声扬声器播放,但它仅在前置左右扬声器中播放。我还需要做些什么来配置 Superpowered 以实现环绕声输出吗?

0 投票
1 回答
412 浏览

android - Superpowered Sdk-将更改的音频效果文件写入外部存储

我需要使用应用效果将输出文件写入外部存储,但不知道如何执行此操作。任何帮助都将非常感谢您制作带有效果的音频输出 mp3 或 mp4 文件。我已经成功地完成了实时音高变化,我已经使用了一些将文件写入外部存储的代码,但生成的文件只有 0 字节并且已损坏。我使用了以下代码

请帮助使用此代码。

我有如下错误。

0 投票
0 回答
147 浏览

sdk - 如何下载超级SDK

SUPERPOWERED 网站正在显示 Superpowered SDK 的下载选项。

1.根据网站,我输入了登录详细信息。2.出现Superpowered SDK下载选项。3.SDK没有下载

0 投票
2 回答
301 浏览

android - 超级强大 - 导出到带有混合器和解码器问题的文件(不同的 sampleRates 和 samplesPerFrame)

我正在尝试将用户的声音与音乐混合并将其保存到文件中。

我创建了 2 个解码器 - 1 个用于语音,1 个用于音乐,并将它们放入混音器的输入中。我解码每一帧并使用 FILE/createWAV/fwrite 将其保存到文件中。

当我的歌曲是 .wav 并且具有与录制的语音 (48000/1024) 相同的 sampleRate 和 samplesPerFrame 时,一切正常。

但是,当我想使用具有不同参数 (44100/1152) 的 .mp3 文件时,最终文件不正确 - 它被拉伸或有一些噼啪声。我认为这是因为我们为每个解码器获得了不同的 sampledDecoded,当它被放入 Mixer 或保存到文件时 - 这些样本之间的差异丢失了。

就我而言,当我们这样做时,它voiceDecoder->decode(buffer, &samplesDecoded)会移动。samplePositionsamplesDecoded

我试图做的是使用两个解码器的最小值。但是根据上面的句子,每次循环迭代歌曲都会丢失 (1152 - 1024 = 128) 128 个样本,所以我也尝试将 songDecoder 寻求与 voiceDecoder 相同:songDecoder->seek(voiceDecoder->samplePosition, true)但它导致文件完全不正确。

总结一下:当每个解码器都有不同的 sampleRate 和 samplesPerFrame 时,我应该如何使用 2 个解码器处理混合器/离线处理?

代码:

提前致谢!

0 投票
1 回答
298 浏览

android - 卡拉 OK 播放同步(Android 延迟问题)

我正在尝试实现简单的卡拉 OK 场景:用户可以录制他的声音(不带耳机)同时播放。然后他可以应用一些过滤器,添加播放,混合并将其保存到文件中。我使用 SuperpoweredRecorder 和 SuperpoweredAdvancedAudioPlayer,然后是 SuperpoweredDecoder/createWAV。最终录音由 2 个音轨组成:1) 带有可听回放的用户声音和一些过滤器 2) 纯回放。我的问题是带有用户语音的录音机的播放与离线处理中混合的播放不同步。这是合理的 - 它必须被生成,通过输出(扬声器),通过输入(麦克风)返回并被处理和记录。它被很好地描述为“Android 10ms 延迟问题”。经过一些分析,我发现延迟因设备而异,这没关系,但在同一设备上的每次录制中也会有所不同。我附上屏幕和数值(我在安静的房间里使用节拍器来计算它)

(播放节拍)[ms] - (录制的播放节拍)[ms](延迟 [ms])

三星S8

三星

华为

华为

这种延迟对我来说不是问题,因为正如我解释的那样,我可以在离线处理期间转移它。但是我不知道如何计算(甚至估计)延迟。你知道怎么做吗?在 Android 上测试所有可能的设备并获得平均值是不可能的,而且可能也不太准确。

提前谢谢!

0 投票
1 回答
3435 浏览

superpowered - SuperpoweredMixer 仪表值

我有一个两部分的问题。下面是我的 audioProcessing 回调的不完整版本以提供上下文。

1) 对于 SuperpoweredStereoMixer->process,文档说明“inputMeters”和“outputMeters”参数“返回测量的最大值”。并且 SuperpoweredPeak 函数“返回峰值”。峰值功能和混音器的仪表值是否相同?我想是的,我只是想确认一下。

2) 当我增加或减少 self->inputLevelsA 中的输入量时,我可以看到 self->outputMeters 中返回的仪表值按预期增加/减少。但是,我没有看到 self->inputMetersA 中的值增加/减少。事实上,当我将 inputLevelsA 中的音量减小到 0.0f 时,我根本没有看到输入电平表值减小。SuperpoweredStereoMixer->process 是在输入音量电平应用于信号之前还是之后返回输入电平表值?

谢谢!