0 Members and 1 Guest are viewing this topic.
высота палки[i] := значение полосы[i] / значение матрицы максимума[i]
procedure SP_CalculateBarConfig(const Theme: TTheme; var BarConfig: TSP_BarConfig);var i, maxSP, totalSP: integer; stepSP: single;begin if BarConfig.BarCount <> Theme.SPBarCount then begin with BarConfig do begin BarCount:= Theme.SPBarCount;// единичный отступ 15%// нужен для того чтобы "БАСЫ" отображались максимально точно Offset:=round( BarCount * 0.15 ); BarCount:=Theme.SPBarCount; maxSP:=Length(vSP_MATRIX)-1;// длина vSP_MATRIX = 207 if BarCount<50 then maxSP:= Length(vSP_MATRIX) - trunc( Length(vSP_MATRIX) * 0.05 ); if BarCount<30 then maxSP:= Length(vSP_MATRIX) - trunc( Length(vSP_MATRIX) * 0.1 ); if BarCount<15 then maxSP:= Length(vSP_MATRIX) - trunc( Length(vSP_MATRIX) * 0.2 ); Step:=0; // Рассчет шага repeat totalSP:=Offset; stepSP:=1; for i:=1 to BarCount-Offset do begin stepSP:= stepSP + Step; totalSP:= totalSP + round( stepSP ); end; Step:=Step + 0.01; until totalSP>=maxSP; Step:=Step - 0.01; Step:=abs(Step); end; // end with end; // end ifend;
TSP_BarConfig = record BarCount: integer; // количество отображаемых полос Offset: integer; // единичный отступ Step: single; // шаг end;
procedure SP_CalculateSpectrum(const Theme: TTheme; var BarConfig: TSP_BarConfig; const DATA: TSP_SingleArray; var OUTData: TSP_SingleArray);var i,z,k: integer; stepSP, hmax: single;begin with BarConfig do begin z:=0; k:=0; for z:=0 to Offset-1 do begin // единичный отступ OUTData[k]:=DATA[z]; inc(k); end; z:=Offset-1; stepSP:=1; repeat hmax:=0; stepSP:=stepSP+Step; for i:=z+1 to z+round(stepSP) do begin // ищем максимум из диапазона заданного шагом hmax:=MAX(DATA[i],hmax); end; // записываем результат в OUTData OUTData[k]:=hmax; inc(k); z:=z+round(stepSP); until k>=BarCount; end;end;
добавлен OpenThermalSpectrumLazarus
Win8x64
к сожалению нет технической возможности проверитьа первая нормально работает на win8 ?
и еще вопрос. Сам AIMP 64 битный?
Есть проблема: на Win8x64 не запускается визуалка =) АИМП просто вылетает.
на протестируй, скомпилировал первый под Delphi
====================================================================================================Exception Report - 2014.02.23 20:36:22====================================================================================================Program: AIMP3.exe [3.5.5]OS Version: Windows 8.1 Enterprise (6.2.9200)Account Info: Soolo / SOOLO-PCProgram up time: 00:00:29Windows up time: 07:54:22Screen: 1280 x 800, 32 bit, 96 ppiMemory: 2293,90 / 4061,30 MB (Free / Total)----------------------------------------------------------------------------------------------------Module: AIMP3.dllClass: EAccessViolationMessage: Access violation at address 01F76E09 in module 'AIMP3.dll'. Read of address 00000000----------------------------------------------------------------------------------------------------(00015E09){AIMP3.dll } [01F76E09] System.UTF8ToUnicodeString(0003CF4E){ntdll.dll } [7734DF4E] Unknown function at RtlRaiseStatus(0003CDB6){ntdll.dll } [7734DDB6] KiUserExceptionDispatcher(00015E96){AIMP3.dll } [01F76E96] System.UTF8ToString(002BE468){AIMP3.dll } [0221F468] Vcl.Forms.TApplication.HandleException(000FE910){AIMP3.dll } [0205F910] System.Classes.StdWndProc(00006691){USER32.dll } [75067691] CallNextHookEx(00007BA5){USER32.dll } [75068BA5] Unknown function at FindWindowA(00007463){USER32.dll } [75068463] Unknown function at CallNextHookEx(00008C3B){USER32.dll } [75069C3B] DispatchMessageW----------------------------------------------------------------------------------------------------C:\Program Files (x86)\AIMP3\AIMP3.dll - 3.5.5.1340C:\Program Files (x86)\AIMP3\AIMP3.exe - 3.5.5.1340C:\Program Files (x86)\AIMP3\AIMP3lib.dll - 3.5.5.1340C:\Program Files (x86)\AIMP3\bass.dll - 2.4.10.21C:\Program Files (x86)\AIMP3\libsoxr.dll - UnknownC:\Program Files (x86)\AIMP3\Modules\aimp_infobar.dll - 3.5.5.1340C:\Program Files (x86)\AIMP3\Modules\aimp_libvorbis.dll - UnknownC:\Program Files (x86)\AIMP3\Modules\aimp_mediakeys.dll - 3.5.5.1340C:\Program Files (x86)\AIMP3\Modules\aimp_scheduler.dll - 3.5.5.1340C:\Program Files (x86)\AIMP3\Modules\aimp_update.dll - 3.5.5.1340C:\Program Files (x86)\AIMP3\Modules\basscd.dll - 2.4.5.3C:\Program Files (x86)\AIMP3\Modules\lame_enc.dll - UnknownC:\Program Files (x86)\AIMP3\Modules\libFLAC.dll - UnknownC:\Program Files (x86)\AIMP3\Modules\MACDll.dll - UnknownC:\Program Files (x86)\AIMP3\Modules\wavpackdll.dll - 4.60.0.1C:\Program Files (x86)\AIMP3\Plugins\Aorta.svp - UnknownC:\Program Files (x86)\AIMP3\Plugins\bass_aac.dll - 2.4.4.5C:\Program Files (x86)\AIMP3\Plugins\bass_ac3.dll - 2.4.0.3C:\Program Files (x86)\AIMP3\Plugins\bass_alac.dll - 2.4.3.0C:\Program Files (x86)\AIMP3\Plugins\bass_ape.dll - 2.4.0.6C:\Program Files (x86)\AIMP3\Plugins\bass_flac.dll - 2.4.1.0C:\Program Files (x86)\AIMP3\Plugins\bass_midi.dll - 2.4.8.0C:\Program Files (x86)\AIMP3\Plugins\bass_mpc.dll - 2.4.1.1C:\Program Files (x86)\AIMP3\Plugins\bass_opus.dll - 2.4.1.1C:\Program Files (x86)\AIMP3\Plugins\bass_spx.dll - 2.4.2.0C:\Program Files (x86)\AIMP3\Plugins\bass_tta.dll - 2.4.0.0C:\Program Files (x86)\AIMP3\Plugins\bass_wma.dll - 2.4.4.0C:\Program Files (x86)\AIMP3\Plugins\bass_wv.dll - 2.4.2.0C:\Program Files (x86)\AIMP3\Plugins\dsp_enh.dll - 0.1.7.0C:\Program Files (x86)\AIMP3\Plugins\OpenSpectrumDelphi2014.svp - UnknownC:\Program Files (x86)\AIMP3\Plugins\OpenSpectrumLazarus2014.svp - UnknownC:\Program Files (x86)\AIMP3\Plugins\OpenThermalSpectrumLazarus2014.svp - UnknownC:\Program Files (x86)\AIMP3\Plugins\OptimFROG.dll - 1.3.0.0C:\Program Files (x86)\AIMP3\Plugins\tak_deco_lib.dll - 2.3.0.0C:\Program Files (x86)\AIMP3\Sqlite3.dll - Unknown
через message box можешь отловить где оно падает? может оно даже инициализацию не проходит?
на версию с message box