Hello there,
I am using fmod4java to get the spectrum of a soundstream I'm playing. I have initialized fmod, activated the dspunit, set a soundstream to play an mp3. The Spectrum type DspUnit.GetSpectrum() returns, however, is "empty", i.e. it is full of 0.0.. Does anyone have an idea what I'm doing wrong?
This is the code (which is not complete, comments, other classes and debugging left out)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| private void initFMOD() { try { FMOD.init(44100, 32, 0);
activeSoundStream = SoundStream.open("everyday.mp3", Mode.SW2D, 0, 0);
DspUnit.getFFTUnit().setActive(true);
activeChannel = activeSoundStream.playEx(Channel.FREE, DspUnit.getFFTUnit(), false); activeChannel.setVolume(255); dspTimer = new Timer(1000, this); dspTimer.start();
updateFFT(); } catch (FMODException error) { System.out.println("FMODException: "+error); } }
public void updateFFT() { Graphics g = w_oPanel.getGraphics(); g.setColor(Color.WHITE);
dspSpectrum = DspUnit.getSpectrum(); float bands = 0; for(int i=0;i<511;i++) { bands += dspSpectrum.getBand(i); } g.drawString(""+bands, 150, 150); } public void actionPerformed(ActionEvent e) { if (e.getSource() == dspTimer) { updateFFT(); } } |