Audio

 view release on metacpan or  search on metacpan

Data/Data.xs  view on Meta::CPAN


void
Audio_noise(au,dur = 0.1, amp = 0.5)
Audio *	au;
float	dur
float	amp

void
DESTROY(au)
Audio *	au
PPCODE:
 {
  if (au->comment)
   SvREFCNT_dec(au->comment);
  if (au->data)
   SvREFCNT_dec(au->data);
 }

Audio *
create(class)
char *	class

Data/Data.xs  view on Meta::CPAN

CODE:
 {
  ST(2) = &PL_sv_no;
  au = Audio_overload_init(aTHX_ au, &ST(0),0,right,rev);
  Audio_conjugate(Audio_samples(au),Audio_complex(au),1.0);
 }

void
Audio_data(au,...)
Audio *		au
PPCODE:
 {
  int gimme = GIMME_V;
  if (items > 1)
   {
    int i;
    au->flags &= ~AUDIO_F_COMPLEX;
    SvCUR(au->data) = 0;
    for (i=1; i < items; i++)
     {
      Audio_append_sv(aTHX_ au,ST(i));

Data/Data.xs  view on Meta::CPAN

    XPUSHs(SvREFCNT_inc(au->data));
    XSRETURN(1);
   }
 }

void
Audio_dB(au,start = 0, count = (GIMME == G_ARRAY) ? Audio_samples(au)-start : 1)
Audio *		au
int		start
int		count
PPCODE:
 {
  int n = Audio_samples(au);
  float *p = AUDIO_DATA(au)+start*AUDIO_WORDS(au);
  /* Min noticable value in 16bit is 1/(2**15) - call that 100dB */
  float min = 1.0/(1 << 15);
  float dB0 = 10*log10(min);
  if (start+count > n)
   count = n - start;
  if (AUDIO_COMPLEX(au))
   {

Data/Data.xs  view on Meta::CPAN

     }
   }
  XSRETURN(count);
 }

void
Audio_amplitude(au,start = 0, count = (GIMME == G_ARRAY) ? Audio_samples(au)-start : 1)
Audio *		au
int		start
int		count
PPCODE:
 {
  int n = Audio_samples(au);
  float *p = AUDIO_DATA(au)+start*AUDIO_WORDS(au);
  if (start+count > n)
   count = n - start;
  if (AUDIO_COMPLEX(au))
   {
    for (n=0; n < count; n++)
     {
      float r = *p++;

Data/Data.xs  view on Meta::CPAN

     }
   }
  XSRETURN(count);
 }

void
Audio_phase(au,start = 0, count = (GIMME == G_ARRAY) ? Audio_samples(au)-start : 1)
Audio *		au
int		start
int		count
PPCODE:
 {
  int n = Audio_samples(au);
  float *p = AUDIO_DATA(au)+start*AUDIO_WORDS(au);
  if (start+count > n)
   count = n - start;
  if (AUDIO_COMPLEX(au))
   {
    for (n=0; n < count; n++)
     {
      float r = *p++;

Data/Data.xs  view on Meta::CPAN

Audio_Save(au,fh,comment = NULL)
Audio *		au
OutputStream	fh
char *		comment

MODULE = Audio::Data	PACKAGE = Audio::Filter::AllPole	PREFIX = AllPole_

void
AllPole_process(au,...)
Audio *		au
PPCODE:
 {
  XSRETURN(Audio_filter_process(aTHX_ au,&Audio_AllPole,items,&ST(0)));
 }

MODULE = Audio::Data	PACKAGE = Audio::Filter::FIR	PREFIX = FIR_

void
FIR_process(au,...)
Audio *		au
PPCODE:
 {
  XSRETURN(Audio_filter_process(aTHX_ au,&Audio_FIR,items,&ST(0)));
 }


MODULE = Audio::Data	PACKAGE = Audio::Data	PREFIX = AUDIO_

void
AUDIO_r2_fft(au)
Audio *		au



( run in 0.759 second using v1.01-cache-2.11-cpan-71847e10f99 )