Audio 如何使用音频处理反转音频波

Audio 如何使用音频处理反转音频波,audio,reverse,processing,analog-digital-converter,Audio,Reverse,Processing,Analog Digital Converter,有没有办法分析应用程序记录的音频并反转其波形?例如,在模拟音频中,声波类似于0,1,-1的正弦波。我想把它颠倒过来,使1为-1,-1为1。如何使用处理软件实现这一点?Nikos认为您正在寻找的操作称为反转而不是反转是正确的。这只需将每个样本乘以-1即可实现 最好的方法是使用Minim,processing的音频库。您可以扩展UGen类,以制作一个新的效果处理器,该处理器可以翻转通过它的每个样本。下面我举了一个正弦波的例子。你可以把它改成其他的音频源,然后你想怎么画就怎么画 import ddf.

有没有办法分析应用程序记录的音频并反转其波形?例如,在模拟音频中,声波类似于0,1,-1的正弦波。我想把它颠倒过来,使1为-1,-1为1。如何使用处理软件实现这一点?

Nikos认为您正在寻找的操作称为反转而不是反转是正确的。这只需将每个样本乘以-1即可实现

最好的方法是使用Minim,processing的音频库。您可以扩展UGen类,以制作一个新的效果处理器,该处理器可以翻转通过它的每个样本。下面我举了一个正弦波的例子。你可以把它改成其他的音频源,然后你想怎么画就怎么画

import ddf.minim.*;
import ddf.minim.ugens.*;

Minim minim;
AudioOutput out;

void setup()
{
  size(300, 200, P2D);

  minim = new Minim(this);
  out = minim.getLineOut();

  Oscil osc;
  Invert inv;
  Constant cutoff;

  // initialize the oscillator 
  // (a sawtooth wave has energy across the spectrum)
  osc = new Oscil(500, 0.2, Waves.SINE);  
  inv = new Invert();
  osc.patch(inv).patch(out);
}

void draw()
{
  background( 0 );

}

public class Invert extends UGen{

  public UGenInput audio;

  Invert()
  {
    audio = new UGenInput(InputType.AUDIO);
  }

  @Override
  protected void uGenerate (float[] channels)
  {
    if ( audio.isPatched() )
    {
      for (int i = 0; i < channels.length; i++){
        // this is where we multiple each sample by -1
        channels[i] = audio.getLastValues()[i] * -1;
      } 
    }  
  }
}
导入ddf.minim.*;
进口ddf.minim.ugens.*;
极小极小;
音频输出;
无效设置()
{
尺寸(300、200、P2D);
最小值=新的最小值(本);
out=minim.getLineOut();
Oscil osc;
反向投资;
恒定截止;
//初始化振荡器
//(锯齿波在整个频谱中具有能量)
osc=新的OSCI(500,0.2,波形正弦);
inv=新的反转();
osc.patch(输入)、patch(输出);
}
作废提款()
{
背景(0);
}
公共类反转扩展UGen{
公共音频;
倒置
{
音频=新输入(InputType.audio);
}
@凌驾
受保护的无效生成(浮动[]通道)
{
if(audio.isPatched())
{
对于(int i=0;i
如果您试图获得某种声学效果,这根本不会改变文件的声音方式——反转信号对人耳的声音将完全相同。您所描述的是反转,而不是反转(反转波形意味着反向播放)。大多数软件都具有波形反转功能。例如,在Audacity中,您只需在“效果”菜单中选择“反转”。说到这里,这个问题已经脱离主题了,因为您似乎不是在谈论如何通过编程实现这一点,而是通过最终用户软件实现这一点。