pcmaudio: set amplitude to biased zero at end
pcmtest2: small updates to the demo program
This commit is contained in:
parent
598ee8921f
commit
536c0adde7
2 changed files with 44 additions and 24 deletions
|
|
@ -1,32 +1,21 @@
|
||||||
{$H1536}
|
{$H2560}
|
||||||
program pcmtest2;
|
program pcmtest2;
|
||||||
uses pcmaudio;
|
uses pcmaudio;
|
||||||
|
|
||||||
var filename:string;
|
var filename:string;
|
||||||
buf:SndBufPtr;
|
buf:SndBufPtr;
|
||||||
f:file;
|
|
||||||
size:integer;
|
|
||||||
i:integer;
|
|
||||||
c:char;
|
|
||||||
sampleRate:integer;
|
sampleRate:integer;
|
||||||
err:integer;
|
err:integer;
|
||||||
done:boolean;
|
done:boolean;
|
||||||
|
c:char;
|
||||||
|
|
||||||
|
function readAudioFile(fname:string):SndBufPtr;
|
||||||
|
var i,size:integer;
|
||||||
|
c:char;
|
||||||
|
buf:SndBufPtr;
|
||||||
|
f:file;
|
||||||
begin
|
begin
|
||||||
if ParamCount > 0 then
|
open(f, fname, ModeReadOnly);
|
||||||
filename := ParamStr(1)
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
write('Filename> ');
|
|
||||||
readln(filename);
|
|
||||||
end;
|
|
||||||
|
|
||||||
err := 1;
|
|
||||||
if ParamCount > 1 then
|
|
||||||
val(ParamStr(2), sampleRate, err);
|
|
||||||
if err > 0 then
|
|
||||||
sampleRate := 16000;
|
|
||||||
|
|
||||||
open(f, filename, ModeReadOnly);
|
|
||||||
size := FileSize(f);
|
size := FileSize(f);
|
||||||
new(buf, size);
|
new(buf, size);
|
||||||
|
|
||||||
|
|
@ -41,17 +30,42 @@ begin
|
||||||
|
|
||||||
close(f);
|
close(f);
|
||||||
|
|
||||||
|
readAudioFile := buf;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if ParamCount > 0 then
|
||||||
|
filename := ParamStr(1)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
write('Filename> ');
|
||||||
|
readln(filename);
|
||||||
|
end;
|
||||||
|
|
||||||
|
err := 1;
|
||||||
|
if ParamCount > 1 then
|
||||||
|
val(ParamStr(2), sampleRate, err);
|
||||||
|
if err > 0 then
|
||||||
|
sampleRate := 32000;
|
||||||
|
|
||||||
|
buf := readAudioFile(filename);
|
||||||
|
|
||||||
SampleQStart(buf, sampleRate);
|
SampleQStart(buf, sampleRate);
|
||||||
|
|
||||||
write('Press Q to stop> ');
|
write('Press ESC to stop> ');
|
||||||
done := false;
|
done := false;
|
||||||
while not done do
|
while not done do
|
||||||
begin
|
begin
|
||||||
read(c);
|
read(c);
|
||||||
if upcase(c) = 'Q' then
|
if c = #27 then
|
||||||
done := true
|
begin
|
||||||
|
done := true; writeln(';');
|
||||||
|
end
|
||||||
else
|
else
|
||||||
writeln('Queue size: ', SampleQSize);
|
if c = '?' then
|
||||||
|
begin
|
||||||
|
writeln; writeln('Queue: ', SampleQSize);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
SampleQStop;
|
SampleQStop;
|
||||||
|
|
|
||||||
|
|
@ -232,6 +232,12 @@ SMPLQ_I_END:
|
||||||
STOREI
|
STOREI
|
||||||
DROP
|
DROP
|
||||||
|
|
||||||
|
; set amplitude out to zero (biased)
|
||||||
|
LOADC AUDIO_BASE+2
|
||||||
|
LOADCP 32768
|
||||||
|
STOREI
|
||||||
|
DROP
|
||||||
|
|
||||||
SMPLQ_I_XT:
|
SMPLQ_I_XT:
|
||||||
LOADC IRQC_REG ; re-enable interrupts
|
LOADC IRQC_REG ; re-enable interrupts
|
||||||
LOADC IRQC_EN
|
LOADC IRQC_EN
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue