![JAR search and dependency download from the Maven repository](/logo.png)
de.jarnbjo.vorbis.MdctFloat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sound Show documentation
Show all versions of sound Show documentation
Etyl's default sound module
The newest version!
/*
* $ProjectName$
* $ProjectRevision$
* -----------------------------------------------------------
* $Id: MdctFloat.java,v 1.3 2003/04/10 19:49:04 jarnbjo Exp $
* -----------------------------------------------------------
*
* $Author: jarnbjo $
*
* Description:
*
* Copyright 2002-2003 Tor-Einar Jarnbjo
* -----------------------------------------------------------
*
* Change History
* -----------------------------------------------------------
* $Log: MdctFloat.java,v $
* Revision 1.3 2003/04/10 19:49:04 jarnbjo
* no message
*
* Revision 1.2 2003/03/16 01:11:12 jarnbjo
* no message
*
*
*/
package de.jarnbjo.vorbis;
public class MdctFloat {
static private final float cPI3_8=0.38268343236508977175f;
static private final float cPI2_8=0.70710678118654752441f;
static private final float cPI1_8=0.92387953251128675613f;
private int n;
private int log2n;
private float[] trig;
private int[] bitrev;
private float[] equalizer;
private float scale;
private int itmp1, itmp2, itmp3, itmp4, itmp5, itmp6, itmp7, itmp8, itmp9;
private float dtmp1, dtmp2, dtmp3, dtmp4, dtmp5, dtmp6, dtmp7, dtmp8, dtmp9;
protected MdctFloat(int n) {
bitrev=new int[n/4];
trig=new float[n+n/4];
int n2=n>>>1;
log2n=(int)Math.rint(Math.log(n)/Math.log(2));
this.n=n;
int AE=0;
int AO=1;
int BE=AE+n/2;
int BO=BE+1;
int CE=BE+n/2;
int CO=CE+1;
// trig lookups...
for(int i=0;i>>j!=0;j++)
if(((msb>>>j)&i)!=0)acc|=1<>1;
int n4=n>>2;
int n8=n>>3;
if(equalizer!=null) {
for(int i=0; i32767.0f) temp1=32767.0f;
//if(temp1<-32768.0f) temp1=-32768.0f;
//if(temp2>32767.0f) temp2=32767.0f;
//if(temp2<-32768.0f) temp2=-32768.0f;
pcm[o1]=(int)(-temp1*window[o1]);
pcm[o2]=(int)( temp1*window[o2]);
pcm[o3]=(int)( temp2*window[o3]);
pcm[o4]=(int)( temp2*window[o4]);
o1++;
o2--;
o3++;
o4--;
//xx+=2;
//B+=2;
}
}
}
private float[] kernel(float[] x, float[] w,
int n, int n2, int n4, int n8){
// step 2
int xA=n4;
int xB=0;
int w2=n4;
int A=n2;
for(int i=0;i>>(i+2);
int k1=1<<(i+3);
int wbase=n2-2;
A=0;
float[] temp;
for(int r=0;r<(k0>>>2);r++){
int w1=wbase;
w2=w1-(k0>>1);
float AEv= trig[A],wA;
float AOv= trig[A+1],wB;
wbase-=2;
k0++;
for(int s=0;s<(2<
© 2015 - 2025 Weber Informatics LLC | Privacy Policy