Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import be.tarsos.dsp.AudioDispatcher;
- import be.tarsos.dsp.io.jvm.AudioDispatcherFactory;
- import be.tarsos.dsp.WaveformSimilarityBasedOverlapAdd;
- import be.tarsos.dsp.WaveformSimilarityBasedOverlapAdd.Parameters;
- import be.tarsos.dsp.resample.RateTransposer;
- import be.tarsos.dsp.GainProcessor;
- import be.tarsos.dsp.filters.BandPass;
- import be.tarsos.dsp.effects.DelayEffect;
- import be.tarsos.dsp.io.jvm.AudioPlayer;
- import javax.sound.sampled.AudioFormat;
- import javax.sound.sampled.LineUnavailableException;
- public class ArmorVoiceModulator {
- public static void main(String[] args) throws LineUnavailableException {
- AudioFormat format = new AudioFormat(44100f, 16, 1, true, true);
- double pitchFactor = 1.3;
- float gainFactor = 8.0f;
- WaveformSimilarityBasedOverlapAdd wsola =
- new WaveformSimilarityBasedOverlapAdd(
- Parameters.musicDefaults(pitchFactor, format.getSampleRate())
- );
- int bufferSize = wsola.getInputBufferSize();
- int overlap = wsola.getOverlap();
- AudioDispatcher dispatcher =
- AudioDispatcherFactory.fromDefaultMicrophone(bufferSize, overlap);
- wsola.setDispatcher(dispatcher);
- dispatcher.addAudioProcessor(wsola);
- dispatcher.addAudioProcessor(new RateTransposer(pitchFactor));
- dispatcher.addAudioProcessor(new BandPass(1500f, 2700f, format.getSampleRate()));
- dispatcher.addAudioProcessor(new DelayEffect(0.09f, 0.3f, format.getSampleRate()));
- dispatcher.addAudioProcessor(new GainProcessor(gainFactor));
- dispatcher.addAudioProcessor(new AudioPlayer(format));
- System.out.println("Starting real-time armor voice modulator...");
- dispatcher.run();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement