Skip to content

Commit

Permalink
NewAC 1.8
Browse files Browse the repository at this point in the history
TFastResampler component (fully Delphi-based) for fast resampling.
TConvolver and TDifferenceEquation components for exploring DSP operations.
TChebyshevFilter component implementing Chebyshev filters.
TFrequencyAnalysis component thst performs DFT on audio data.
  • Loading branch information
wayne committed Aug 10, 2008
1 parent 2b7e382 commit e3b5ce7
Show file tree
Hide file tree
Showing 71 changed files with 280 additions and 385 deletions.
Binary file modified bin/newac_docs.rar
Binary file not shown.
8 changes: 4 additions & 4 deletions demos/Editors/FiltersTest/Main.dfm
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
object Form1: TForm1
Left = 10
Top = 91
Width = 1115
Height = 541
Left = 192
Top = 114
Width = 1069
Height = 542
Caption = 'Filter Test'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Expand Down
8 changes: 4 additions & 4 deletions demos/Editors/FiltersTest/Main.pas
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,10 @@ procedure TForm1.FrequencyAnalysis1Done(Sender: TComponent);
var
i : Integer;
begin
Image1.Canvas.MoveTo(0, Round((FrequencyAnalysis1.LogMagnitude[0, 0] + 1)/-6*350));
Image1.Canvas.MoveTo(0,0);
Image1.Canvas.Pen.Color := clBlue;
Image1.Canvas.Pen.Width := 2;
for i := 1 to FrequencyAnalysis1.N div 2 do
for i := 1 to FrequencyAnalysis1.N div 2 - 2 do
Image1.Canvas.LineTo(i, Round((FrequencyAnalysis1.LogMagnitude[0, i] + 1)/-6*350));
FrequencyAnalysis2.Run;
end;
Expand All @@ -131,9 +131,9 @@ procedure TForm1.FrequencyAnalysis2Done(Sender: TComponent);
begin
Image1.Canvas.Pen.Color := clRed;
Image1.Canvas.Pen.Width := 1;
// Image1.Canvas.MoveTo(0,0);
Image1.Canvas.MoveTo(0,0);
Image1.Canvas.MoveTo(0, Round((FrequencyAnalysis2.LogMagnitude[0, 0] + 1)/-6*350));
for i := 1 to FrequencyAnalysis2.N div 2 do
for i := 1 to FrequencyAnalysis2.N div 2 - 2 do
Image1.Canvas.LineTo(i, Round((FrequencyAnalysis2.LogMagnitude[0, i] + 1)/-6*350));
Image1.Canvas.Font.Style := [];
Image1.Canvas.Font.Color := clRed;
Expand Down
Binary file modified doc/config/Data/ClassHierarchy.nd
Binary file not shown.
Binary file modified doc/config/Data/ConfigFileInfo.nd
Binary file not shown.
25 changes: 12 additions & 13 deletions doc/config/Data/FileInfo.nd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
1.4
Pascal
D:\projects\newac\dunit\Test_ACS_MAC.pas 1215224740 1 ACS_MAC TestCases
D:\projects\newac\src\ACS_Misc.pas 1217891331 1 ACS_Misc
D:\projects\newac\src\ACS_Misc.pas 1215224752 1 ACS_Misc
D:\projects\newac\demos\Converters\Wav2MPC\Main.pas 1215224760 0 D:\projects\newac\demos\Converters\Wav2MPC\Main.pas
D:\projects\newac\dunit\uUtility.pas 1215320770 1 uUtility
D:\projects\newac\src\lame.pas 1215224753 0 lame.pas
Expand All @@ -11,17 +11,17 @@ D:\projects\newac\src\_Direct3D9.pas 1215224753 0 D:\projects\newac\src\_Direct3
D:\projects\newac\src\wmfintf.pas 1215224752 1 wmfintf.pas
D:\projects\newac\src\ACS_MPC.pas 1215224753 1 ACS_MPC
D:\projects\newac\src\ACS_Tags.pas 1215224752 1 ACS_Tags
D:\projects\newac\src\ACS_Converters.pas 1217897406 1 ACS_Converters
D:\projects\newac\src\ACS_Converters.pas 1215224753 1 ACS_Converters
D:\projects\newac\doc\txt\features.txt 1215224740 1 NewAC Main Features List
D:\projects\newac\src\AuSampleRate.pas 1215224753 1 AuSampleRate
D:\projects\newac\src\ACS_DXAudio.pas 1215224753 1 ACS_DXAudio
D:\projects\newac\demos\Players\MP3Player\Main.pas 1215224756 0 D:\projects\newac\demos\Players\MP3Player\Main.pas
D:\projects\newac\src\libmppenc.pas 1215224752 0 D:\projects\newac\src\libmppenc.pas
D:\projects\newac\demos\Converters\Wav2WMA\Main.pas 1215224761 0 D:\projects\newac\demos\Converters\Wav2WMA\Main.pas
D:\projects\newac\doc\txt\tips and tricks.txt 1217896665 1 Tips & Tricks
D:\projects\newac\src\NewAC_DSP.pas 1217897406 1 NewAC_DSP
D:\projects\newac\doc\txt\tips and tricks.txt 1215224740 1 Tips & Tricks
D:\projects\newac\src\NewAC_DSP.pas 1215741015 1 NewAC_DSP
D:\projects\newac\bin\encode_wv.txt 1215319037 0 D:\projects\newac\bin\encode_wv.txt
D:\projects\newac\src\acs_reg.pas 1217891331 1 ACS_Reg
D:\projects\newac\src\acs_reg.pas 1215741015 1 ACS_Reg
D:\projects\newac\demos\Players\AudioPlayer\README.txt 1215224756 0 D:\projects\newac\demos\Players\AudioPlayer\README.txt
D:\projects\newac\src\WavPackDLL.pas 1215224752 1 WavPackDLL
D:\projects\newac\demos\Converters\Wav2MP3\Main.pas 1215224759 0 D:\projects\newac\demos\Converters\Wav2MP3\Main.pas
Expand Down Expand Up @@ -52,14 +52,14 @@ D:\projects\newac\demos\Editors\MemoryInDemo\Main.pas 1215224757 0 D:\projects\n
D:\projects\newac\src\libsamplerate.pas 1215224753 1 libsamplerate.pas
D:\projects\newac\demos\Converters\MP3Converter\Unit1.pas 1215224762 0 D:\projects\newac\demos\Converters\MP3Converter\Unit1.pas
D:\projects\newac\demos\Converters\Wav2Ogg-2\Main.pas 1215741011 0 D:\projects\newac\demos\Converters\Wav2Ogg-2\Main.pas
D:\projects\newac\src\ACS_Filters.pas 1217891331 1 ACS_Filters
D:\projects\newac\src\ACS_Filters.pas 1215741015 1 ACS_Filters
D:\projects\newac\src\ACS_WinMedia.pas 1215224752 1 ACS_WinMedia
D:\projects\newac\src\AudioPass.pas 1215224753 1 AudioPass
D:\projects\newac\src\_DirectShow9.pas 1215224753 0 D:\projects\newac\src\_DirectShow9.pas
D:\projects\newac\src\libmpdec.pas 1215224752 0 D:\projects\newac\src\libmpdec.pas
D:\projects\newac\demos\Players\OggPlayer\Main.pas 1215741010 0 D:\projects\newac\demos\Players\OggPlayer\Main.pas
D:\projects\newac\doc\txt\newac.txt 1215224740 1 About New Audio Components
D:\projects\newac\dunit\uLog.pas 1215741262 1 uLog
D:\projects\newac\dunit\uLog.pas 1215741188 1 uLog
D:\projects\newac\demos\Tutorial\ReadMe.txt 1215224757 0 D:\projects\newac\demos\Tutorial\ReadMe.txt
D:\projects\newac\src\_MSAcm.pas 1215224752 0 D:\projects\newac\src\_MSAcm.pas
D:\projects\newac\bin\lgpl.txt 1214100198 0 D:\projects\newac\bin\lgpl.txt
Expand All @@ -69,15 +69,14 @@ D:\projects\newac\src\ACS_MAC.pas 1215308111 1 ACS_MAC
D:\projects\newac\bin\decode_wv.txt 1215320110 0 D:\projects\newac\bin\decode_wv.txt
D:\projects\newac\demos\Editors\AudioCutter\Main.pas 1215224758 0 D:\projects\newac\demos\Editors\AudioCutter\Main.pas
D:\projects\newac\src\WaveConverter.pas 1215224753 1 WaveConverter.pas
D:\projects\newac\doc\txt\introduction.txt 1217896665 1 Introduction
D:\projects\newac\doc\txt\introduction.txt 1215224740 1 Introduction
D:\projects\newac\src\NewAC_AVI.pas 1215224752 1 NewAC_AVI
D:\projects\newac\demos\Editors\ReadMe.txt 1215224759 0 D:\projects\newac\demos\Editors\ReadMe.txt
D:\projects\newac\src\ACS_WavPack.pas 1215224753 1 ACS_WavPack
D:\projects\newac\src\Golomb.pas 1217897406 0 D:\projects\newac\src\Golomb.pas
D:\projects\newac\dunit\dunit_options.inc 1215320524 0 D:\projects\newac\dunit\dunit_options.inc
D:\projects\newac\src\DSWrapper.pas 1215224752 1 DSWrapper
D:\projects\newac\src\tak_decoder.pas 1215224753 0 D:\projects\newac\src\tak_decoder.pas
D:\projects\newac\dunit\Test_ACS_WavPack.pas 1215741374 1 ACS_WavPack TestCases
D:\projects\newac\dunit\Test_ACS_WavPack.pas 1215739428 1 ACS_WavPack TestCases
D:\projects\newac\src\ACS_Streams.pas 1215224752 1 ACS_Streams
D:\projects\newac\demos\Converters\MP32WMA\Unit1.pas 1215224762 0 D:\projects\newac\demos\Converters\MP32WMA\Unit1.pas
D:\projects\newac\demos\Players\WMPlayer\Main.pas 1215224753 0 D:\projects\newac\demos\Players\WMPlayer\Main.pas
Expand All @@ -95,7 +94,7 @@ D:\projects\newac\dunit\uLogOpts.inc 1215740501 0 D:\projects\newac\dunit\uLogOp
D:\projects\newac\demos\Recorders-rippers\ReadMe.txt 1215224765 0 D:\projects\newac\demos\Recorders-rippers\ReadMe.txt
D:\projects\newac\bin\gpl.txt 1214100198 0 D:\projects\newac\bin\gpl.txt
D:\projects\newac\src\ACS_smpeg.pas 1215224753 1 ACS_SMPEG
D:\projects\newac\src\ACS_Wave.pas 1217891331 1 ACS_Wave
D:\projects\newac\src\ACS_Wave.pas 1215224752 1 ACS_Wave
D:\projects\newac\demos\Converters\Wav2WV\Main.pas 1215741011 0 D:\projects\newac\demos\Converters\Wav2WV\Main.pas
D:\projects\newac\dunit\uTestBase.pas 1215320592 1 uTestBase
D:\projects\newac\src\Codec.pas 1215224753 1 Codec
Expand All @@ -116,8 +115,8 @@ D:\projects\newac\src\ACS_Vorbis.pas 1215224752 1 ACS_Vorbis
D:\projects\newac\bin\filelist.txt 1215323400 0 D:\projects\newac\bin\filelist.txt
D:\projects\newac\src\CDRip.pas 1215224752 1 CDRip
D:\projects\newac\src\ACS_TTA.pas 1215224752 1 ACS_TTA
D:\projects\newac\src\ACS_Procs.pas 1217891331 1 ACS_Procs
D:\projects\newac\src\ACS_Classes.pas 1217891331 1 ACS_Classes
D:\projects\newac\src\ACS_Procs.pas 1215741015 1 ACS_Procs
D:\projects\newac\src\ACS_Classes.pas 1215738904 1 ACS_Classes
D:\projects\newac\demos\Converters\Wav2APE\Main.pas 1215741011 0 D:\projects\newac\demos\Converters\Wav2APE\Main.pas
D:\projects\newac\demos\Players\i-Radio\Main.pas 1215224754 0 D:\projects\newac\demos\Players\i-Radio\Main.pas
D:\projects\newac\bin\encode_mac.txt 1214107781 0 D:\projects\newac\bin\encode_mac.txt
Expand Down
Binary file modified doc/config/Data/ImageReferenceTable.nd
Binary file not shown.
Binary file modified doc/config/Data/IndexInfo.nd
Binary file not shown.
Binary file modified doc/config/Data/SymbolTable.nd
Binary file not shown.
9 changes: 0 additions & 9 deletions doc/filelist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ html\files\doc\txt\tips_and_tricks-txt.html
html\files\dunit\Test_ACS_FLAC-pas.html
html\files\dunit\Test_ACS_MAC-pas.html
html\files\dunit\Test_ACS_WavPack-pas.html
html\files\dunit\uLog-pas.html
html\files\dunit\uTestBase-pas.html
html\files\dunit\uUtility-pas.html
html\files\src\ACS_AudioMix-pas.html
Expand Down Expand Up @@ -71,7 +70,6 @@ html\files\src\libwma1-pas.html
html\files\src\MACDll-pas.html
html\files\src\MAD-pas.html
html\files\src\NewAC_AVI-pas.html
html\files\src\NewAC_DSP-pas.html
html\files\src\ogg-pas.html
html\files\src\ovencode-pas.html
html\files\src\VorbisEnc-pas.html
Expand All @@ -92,11 +90,9 @@ html\index\General4.html
html\index\General5.html
html\index\General6.html
html\index\General7.html
html\index\General8.html
html\index\Properties.html
html\index\Properties2.html
html\index\Properties3.html
html\index\Properties4.html
html\index\Types.html
html\index\Variables.html
html\javascript\main.js
Expand All @@ -106,9 +102,7 @@ html\search\ClassesC.html
html\search\ClassesD.html
html\search\ClassesE.html
html\search\ClassesF.html
html\search\ClassesG.html
html\search\ClassesI.html
html\search\ClassesL.html
html\search\ClassesM.html
html\search\ClassesN.html
html\search\ClassesO.html
Expand All @@ -122,7 +116,6 @@ html\search\ConstantsC.html
html\search\ConstantsD.html
html\search\ConstantsE.html
html\search\ConstantsI.html
html\search\ConstantsN.html
html\search\ConstantsR.html
html\search\ConstantsT.html
html\search\FilesL.html
Expand All @@ -138,13 +131,11 @@ html\search\FunctionsF.html
html\search\FunctionsG.html
html\search\FunctionsI.html
html\search\FunctionsJ.html
html\search\FunctionsL.html
html\search\FunctionsO.html
html\search\FunctionsP.html
html\search\FunctionsR.html
html\search\FunctionsS.html
html\search\FunctionsT.html
html\search\FunctionsW.html
html\search\GeneralA.html
html\search\GeneralB.html
html\search\GeneralC.html
Expand Down
12 changes: 4 additions & 8 deletions doc/html/files/doc/txt/introduction-txt.html

Large diffs are not rendered by default.

6 changes: 2 additions & 4 deletions doc/html/files/doc/txt/tips_and_tricks-txt.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@



<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="TipsTricks"></a>Tips &amp; Tricks</h1><div class=CBody><p>Here is a collection of hints and code snippets related to NewAC or audio processing in general.</p><h4 class=CHeading>Documentation Note</h4><p>If you&rsquo;re inserting a single snippet, put a new topic in the <a href="#Snippets" class=LSection id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">Snippets</a> section.&nbsp; If you&rsquo;ve got a mini-tutorial, make a new section.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#TipsTricks" >Tips &amp; Tricks</a></td><td class=SDescription>Here is a collection of hints and code snippets related to NewAC or audio processing in general.</td></tr><tr class="SSection"><td class=SEntry><a href="#Snippets" >Snippets</a></td><td class=SDescription>Bits of code to do things related to NewAC.</td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#What_to_do_if_an_input_component_reports_premature_end_of_data" >What to do if an input component reports premature end of data</a></td><td class=SDescription>One possible reason for this may be an exception raised during components&rsquo; operation. </td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#How_to_decrease_the_delay_before_audio_playback" >How to decrease the delay before audio playback</a></td><td class=SDescription>The TDXAudioOut component buffers its output in order to make it smoother. </td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#How_not_to_crash_or_hang_when_exiting_an_application" >How not to crash or hang when exiting an application</a></td><td class=SDescription>If you exit a NewAC application while it is playing without stopping it, it may crash or hang. </td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Create_Class_Based_on_Filename" >Create Class Based on Filename</a></td><td class=SDescription>These functions create a TAuFile component of a class based on the file extension of a filename.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="TipsTricks"></a>Tips &amp; Tricks</h1><div class=CBody><p>Here is a collection of hints and code snippets related to NewAC or audio processing in general.</p><h4 class=CHeading>Documentation Note</h4><p>If you&rsquo;re inserting a single snippet, put a new topic in the <a href="#Snippets" class=LSection id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">Snippets</a> section.&nbsp; If you&rsquo;ve got a mini-tutorial, make a new section.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#TipsTricks" >Tips &amp; Tricks</a></td><td class=SDescription>Here is a collection of hints and code snippets related to NewAC or audio processing in general.</td></tr><tr class="SSection"><td class=SEntry><a href="#Snippets" >Snippets</a></td><td class=SDescription>Bits of code to do things related to NewAC.</td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#How_to_decrease_the_delay_before_audio_playback" >How to decrease the delay before audio playback</a></td><td class=SDescription>The TDXAudioOut component buffers its output in order to make it smoother. </td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#How_not_to_crash_or_hang_when_exiting_an_application" >How not to crash or hang when exiting an application</a></td><td class=SDescription>If you exit a NewAC application while it is playing without stopping it, it may crash or hang. </td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Create_Class_Based_on_Filename" >Create Class Based on Filename</a></td><td class=SDescription>These functions create a TAuFile component of a class based on the file extension of a filename.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Snippets"></a>Snippets</h2><div class=CBody><p>Bits of code to do things related to NewAC.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGeneric"><td class=SEntry><a href="#What_to_do_if_an_input_component_reports_premature_end_of_data" >What to do if an input component reports premature end of data</a></td><td class=SDescription>One possible reason for this may be an exception raised during components&rsquo; operation. </td></tr><tr class="SGeneric SMarked"><td class=SEntry><a href="#How_to_decrease_the_delay_before_audio_playback" >How to decrease the delay before audio playback</a></td><td class=SDescription>The TDXAudioOut component buffers its output in order to make it smoother. </td></tr><tr class="SGeneric"><td class=SEntry><a href="#How_not_to_crash_or_hang_when_exiting_an_application" >How not to crash or hang when exiting an application</a></td><td class=SDescription>If you exit a NewAC application while it is playing without stopping it, it may crash or hang. </td></tr><tr class="SGeneric SMarked"><td class=SEntry><a href="#Create_Class_Based_on_Filename" >Create Class Based on Filename</a></td><td class=SDescription>These functions create a TAuFile component of a class based on the file extension of a filename.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="What_to_do_if_an_input_component_reports_premature_end_of_data"></a>What to do if an input component reports premature end of data</h3><div class=CBody><p>One possible reason for this may be an exception raised during components&rsquo; operation.&nbsp; Don&rsquo;t forget to set the OnThreadException event handler and inspect an output component&rsquo;s ExceptionMessage property.</p></div></div></div>
<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Snippets"></a>Snippets</h2><div class=CBody><p>Bits of code to do things related to NewAC.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGeneric"><td class=SEntry><a href="#How_to_decrease_the_delay_before_audio_playback" >How to decrease the delay before audio playback</a></td><td class=SDescription>The TDXAudioOut component buffers its output in order to make it smoother. </td></tr><tr class="SGeneric SMarked"><td class=SEntry><a href="#How_not_to_crash_or_hang_when_exiting_an_application" >How not to crash or hang when exiting an application</a></td><td class=SDescription>If you exit a NewAC application while it is playing without stopping it, it may crash or hang. </td></tr><tr class="SGeneric"><td class=SEntry><a href="#Create_Class_Based_on_Filename" >Create Class Based on Filename</a></td><td class=SDescription>These functions create a TAuFile component of a class based on the file extension of a filename.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="How_to_decrease_the_delay_before_audio_playback"></a>How to decrease the delay before audio playback</h3><div class=CBody><p>The TDXAudioOut component buffers its output in order to make it smoother.&nbsp; This buffering introduces some delay at the beginning of audio playback.</p><p>You can decrease the delay by decreasing the size of the TDXAudioOut buffer.&nbsp; The size of this buffer is set up by the <a href="../../src/ACS_DXAudio-pas.html#DS_BUFFER_SIZE" class=LConstant id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">DS_BUFFER_SIZE</a> constant in ACS_DxAudio.pas.</p><p>If you decrease the buffer size you may also want to decrease the <a href="../../src/ACS_DXAudio-pas.html#DS_POLLING_INTERVAL" class=LConstant id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">DS_POLLING_INTERVAL</a> value which determines how often the component requests data from its input.</p></div></div></div>

Expand Down
Loading

0 comments on commit e3b5ce7

Please sign in to comment.