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 )