Вверх ↑
Этот топик читают: Гость
Ответов: 632
Рейтинг: 4
#1: 2022-08-01 20:00:55 ЛС | профиль | цитата
Здравствуйте, не подскажите как сделать программу для нормализации громкости в динамике?
В интернете видел готовое решение, программу Sound Lock. Только программа работает хорошо когда, звучит какой-то голос, а с музыкой (рекламой) не справляется.
Попробовал сам собрать программу.

Add(BASS_RecordStart,5066922,301,231)
{
Freq=44100
Mode=1
Name="mainrec"
}
Add(BASS_Version,10183901,175,231)
{
link(onCheckOk,12302345:doInit,[])
}
Add(MainForm,16358250,42,217)
{
Width=275
Height=152
Caption="BASS record inputs demo"
BorderStyle=4
Position=1
Point(Handle)
link(onCreate,4252681:doInit,[])
}
Add(BASS_Init,4252681,119,231)
{
Device=1
link(onInit,10183901:doCheck,[])
link(Handle,16358250:Handle,[(139,219)(93,219)(93,261)(48,261)])
}
Add(BASS_RecordCenter,12302345,231,231)
{
Device=1
link(onInit,5066922:doStart,[])
}
Add(BASS_ChannelVisibleSpectrum,5631139,280,364)
{
SoundStream="mainrec"
Width=1
Mode=1
LineFallOff=1
DrawPeak=1
link(WindowsHandle,6401345:Var3,[(286,352)(249,352)(249,401)])
}
Add(Timer,5820169,63,399)
{
Interval=10
link(onTimer,11837972:doEvent1,[])
}
Add(Img_GetPoint,2253453,217,490)
{
link(onGetPixel,4851072:doOperation,[])
link(Bitmap,6401345:Var2,[(223,482)(220,482)])
link(X,2523184:Var,[])
link(Y,12760261:Var,[])
}
Add(GetDataEx,6401345,214,396)
{
Angle=3
link(Data,327343:Bitmap,[(217,359)])
}
Add(Hub,11837972,140,399)
{
OutCount=4
link(onEvent1,2457954:In,[])
link(onEvent2,327343:doRefresh,[(182,412)(182,342)])
link(onEvent3,10413253:In,[])
link(onEvent4,14492990:doFor,[(166,426)(166,461)(58,461)(58,496)])
}
Add(For,13349540,161,490)
{
End=98
link(onEvent,2253453:doGetPixel,[])
link(onStop,4778261:doData,[(206,503)(206,706)])
}
Add(Math,4851072,378,490)
{
Point(doClear)
link(onResult,11903586:doOperation,[])
link(Op1,4851072:Result,[(384,478)(372,478)(372,534)(384,534)])
}
Add(For,14492990,63,490)
{
End=260
Step=2
IncludeEnd=1
link(onEvent,13349540:doFor,[])
link(onStop,4328187:In,[])
}
Add(Label,3208925,714,763)
{
Left=10
Top=110
}
Add(Math,6863180,483,490)
{
OpType=3
Op2=98
}
Add(Hub,1205819,287,700)
{
link(onEvent1,4365065:doCheck,[])
link(onEvent2,4851072:doClear,[(339,713)(339,503)])
}
Add(PaintBox,327343,210,336)
{
Width=260
Height=100
Point(MouseX)
Point(MouseY)
link(onBeforeDraw,5631139:doDraw,[(261,342)(261,370)])
}
Add(Math,11903586,427,490)
{
OpType=3
Op2=16777215
link(onResult,6863180:doOperation,[])
}
Add(DoData,4778261,238,700)
{
link(onEventData,1205819:doEvent1,[])
}
Add(Memory,16239344,644,686)
{
}
Add(Math,10835606,532,791)
{
OpType=39
link(onResult,11391906:doEvent2,[(583,797)(583,699)])
link(Op1,16073743:Var2,[(538,775)(655,775)])
link(Op2,15145298:Var1,[(545,727)(535,727)(535,663)])
}
Add(Switch,4365065,413,679)
{
Point(doOn)
Point(doCheck)
Point(onOn)
Point(onOff)
link(onOn,70189:doEvent1,[])
link(onOff,10835606:doOperation,[(463,699)(463,797)])
}
Add(Hub,70189,476,686)
{
link(onEvent1,2857554:doData,[])
link(onEvent2,4719231:In,[])
}
Add(DoData,2857554,539,686)
{
link(onEventData,11391906:doEvent1,[])
link(Data,15145298:Var2,[(545,676)(544,676)])
}
Add(GetDataEx,15145298,538,658)
{
link(Data,6863180:Result,[(544,597)(489,597)])
}
Add(Hub,11391906,602,686)
{
InCount=2
OutCount=1
link(onEvent1,16239344:doValue,[])
}
Add(DoData,6882262,644,798)
{
link(onEventData,3208925:doText,[(695,804)(695,769)])
link(Data,16073743:Var1,[(649,750)])
}
Add(GetDataEx,16073743,649,745)
{
link(Data,16239344:Value,[(655,731)(650,731)])
}
Add(If_else,10412335,616,476)
{
link(onFalse,7479940:doCompare,[])
link(Op1,10096617:Var,[])
link(Op2,2448929:Var1,[(629,369)])
}
Add(Edit,2019045,665,294)
{
Left=215
Top=105
Text="0.5"
}
Add(BASS_Volume,11014103,1260,336)
{
}
Add(If_else,7479940,658,483)
{
Op2=Integer(0)
link(onTrue,11740997:doData,[(695,488)(734,488)(734,384)])
link(onFalse,6408730:doCompare,[(702,496)(702,503)])
link(Op1,14103495:Var,[])
}
Add(If_else,6408730,714,497)
{
Type=1
link(onTrue,14739289:doCalc,[(765,503)(765,482)])
link(onFalse,15127886:doCalc,[(768,510)(768,552)])
link(Op1,2448929:Var2,[(720,435)(650,435)])
link(Op2,14625299:Var,[])
}
Add(DoData,11740997,756,378)
{
link(onEventData,12045824:doEvent1,[(814,384)(814,398)])
link(Data,15114328:Var3,[(762,348)])
}
Add(MathParse,14739289,784,476)
{
MathStr="%1 - %2"
link(onResult,12045824:doEvent2,[(856,482)(856,405)])
link(X1,12056666:Var,[])
link(X2,2700782:Var,[])
}
Add(GetDataEx,14654900,718,823)
{
link(Data,3208925:Caption,[(724,809)(720,809)])
}
Add(Hub,12045824,882,392)
{
InCount=3
OutCount=1
link(onEvent1,11597872:doOperation,[])
}
Add(MathParse,15127886,784,546)
{
MathStr="%2 - %1"
link(onResult,12045824:doEvent3,[(871,552)(871,412)])
link(X1,339757:Var,[])
link(X2,8901848:Var,[])
}
Add(MultiReplace,7875,1260,413)
{
ReplaceList="1=1;\r\n0.982878863811493=0.99;\r\n0.966050863265991=0.98;\r\n0.949510991573334=0.97;\r\n0.932180464267731=0.96;\r\n0.916220486164093=0.95;\r\n0.89949756860733=0.94;\r\n0.883079886436462=0.93;\r\n0.866961896419525=0.92;\r\n0.85015869140625=0.91;\r\n0.834641575813293=0.9;\r\n0.818464815616608=0.89;\r\n0.80260157585144=0.88;\r\n0.787045776844025=0.87;\r\n0.771791517734528=0.86;\r\n0.755962073802948=0.85;\r\n0.741310238838196=0.84;\r\n0.726105988025665=0.83;\r\n0.711213529109955=0.82;\r\n0.695824980735779=0.81;\r\n0.681553602218628=0.8;\r\n0.666806757450104=0.79;\r\n0.652379035949707=0.78;\r\n0.638263463973999=0.77;\r\n0.623734831809998=0.76;\r\n0.610239088535309=0.75;\r\n0.596348345279694=0.74;\r\n0.582103252410889=0.73;\r\n0.568852961063385=0.72;\r\n0.55526465177536=0.71;\r\n0.542000889778137=0.7;\r\n0.52905398607254=0.69;\r\n0.515822172164917=0.68;\r\n0.502921283245087=0.67;\r\n0.489778816699982=0.66;\r\n0.477529287338257=0.65;\r\n0.465050399303436=0.64;\r\n0.452376484870911=0.63;\r\n0.440554887056351=0.62;\r\n0.428548514842987=0.61;\r\n0.416389733552933=0.6;\r\n0.404575914144516=0.59;\r\n0.393097251653671=0.58;\r\n0.38150480389595=0.57;\r\n0.370254218578339=0.56;\r\n0.358921945095062=0.55;\r\n0.347936511039734=0.54;\r\n0.336899220943451=0.53;\r\n0.326212048530579=0.52;\r\n0.315863907337189=0.51;\r\n0.305140614509583=0.5;\r\n0.294781357049942=0.49;\r\n0.284773796796799=0.48;\r\n0.274789422750473=0.47;\r\n0.26485002040863=0.46;\r\n0.255270153284073=0.45;\r\n0.245753675699234=0.44;\r\n0.236319750547409=0.43;\r\n0.227247968316078=0.42;\r\n0.218021854758263=0.41;\r\n0.209170296788216=0.4;\r\n0.200447216629982=0.39;\r\n0.191866889595985=0.38;\r\n0.183442518115044=0.37;\r\n0.17518624663353=0.36;\r\n0.167109072208405=0.35;\r\n0.15922087430954=0.34;\r\n0.151356130838394=0.33;\r\n0.143879860639572=0.32;\r\n0.136458322405815=0.31;\r\n0.12912192940712=0.3;\r\n0.122039385139942=0.29;\r\n0.115080043673515=0.28;\r\n0.10839270055294=0.27;\r\n0.101859144866467=0.26;\r\n0.0953893810510635=0.25;\r\n0.0892277657985687=0.24;\r\n0.0831763818860054=0.23;\r\n0.0773570761084557=0.22;\r\n0.0716968402266502=0.21;\r\n0.0662216544151306=0.2;\r\n0.0608835592865944=0.19;\r\n0.0557827651500702=0.18;\r\n0.0508744865655899=0.17;\r\n0.0461849011480808=0.16;\r\n0.0416869409382343=0.15;\r\n0.0373680144548416=0.14;\r\n0.0332276821136475=0.13;\r\n0.0293426979333162=0.12;\r\n0.0256448425352573=0.11;\r\n0.0221564434468746=0.1;\r\n0.018901664763689=0.9;\r\n0.0158671904355288=0.8;\r\n0.0130617106333375=0.7;\r\n0.0104954252019525=0.6;\r\n0.00816582515835762=0.5;\r\n0.00610239151865244=0.4;\r\n0.00429536495357752=0.3;\r\n0.00277012935839593=0.2;\r\n0.00153815490193665=0.1;\r\n0=0;"
Mode=1
link(onResult,2941822:doMultiReplace,[(1300,419)(1300,433)])
}
Add(MultiReplace,6373183,1197,336)
{
ReplaceList="1=1;\r\n0.99=0.982878863811493;\r\n0.98=0.966050863265991;\r\n0.97=0.949510991573334;\r\n0.96=0.932180464267731;\r\n0.95=0.916220486164093;\r\n0.94=0.89949756860733;\r\n0.93=0.883079886436462;\r\n0.92=0.866961896419525;\r\n0.91=0.85015869140625;\r\n0.9=0.834641575813293;\r\n0.89=0.818464815616608;\r\n0.88=0.80260157585144;\r\n0.87=0.787045776844025;\r\n0.86=0.771791517734528;\r\n0.85=0.755962073802948;\r\n0.84=0.741310238838196;\r\n0.83=0.726105988025665;\r\n0.82=0.711213529109955;\r\n0.81=0.695824980735779;\r\n0.80=0.681553602218628;\r\n0.79=0.666806757450104;\r\n0.78=0.652379035949707;\r\n0.77=0.638263463973999;\r\n0.76=0.623734831809998;\r\n0.75=0.610239088535309;\r\n0.74=0.596348345279694;\r\n0.73=0.582103252410889;\r\n0.72=0.568852961063385;\r\n0.71=0.55526465177536;\r\n0.7=0.542000889778137;\r\n0.69=0.52905398607254;\r\n0.68=0.515822172164917;\r\n0.67=0.502921283245087;\r\n0.66=0.489778816699982;\r\n0.65=0.477529287338257;\r\n0.64=0.465050399303436;\r\n0.63=0.452376484870911;\r\n0.62=0.440554887056351;\r\n0.61=0.428548514842987;\r\n0.6=0.416389733552933;\r\n0.59=0.404575914144516;\r\n0.58=0.393097251653671;\r\n0.57=0.38150480389595;\r\n0.56=0.370254218578339;\r\n0.55=0.358921945095062;\r\n0.54=0.347936511039734;\r\n0.53=0.336899220943451;\r\n0.52=0.326212048530579;\r\n0.51=0.315863907337189;\r\n0.5=0.305140614509583;\r\n0.49=0.294781357049942;\r\n0.48=0.284773796796799;\r\n0.47=0.274789422750473;\r\n0.46=0.26485002040863;\r\n0.45=0.255270153284073;\r\n0.44=0.245753675699234;\r\n0.43=0.236319750547409;\r\n0.42=0.227247968316078;\r\n0.41=0.218021854758263;\r\n0.4=0.209170296788216;\r\n0.39=0.200447216629982;\r\n0.38=0.191866889595985;\r\n0.37=0.183442518115044;\r\n0.36=0.17518624663353;\r\n0.35=0.167109072208405;\r\n0.34=0.15922087430954;\r\n0.33=0.151356130838394;\r\n0.32=0.143879860639572;\r\n0.31=0.136458322405815;\r\n0.3=0.12912192940712;\r\n0.29=0.122039385139942;\r\n0.28=0.115080043673515;\r\n0.27=0.10839270055294;\r\n0.26=0.101859144866467;\r\n0.25=0.0953893810510635;\r\n0.24=0.0892277657985687;\r\n0.23=0.0831763818860054;\r\n0.22=0.0773570761084557;\r\n0.21=0.0716968402266502;\r\n0.2=0.0662216544151306;\r\n0.19=0.0608835592865944;\r\n0.18=0.0557827651500702;\r\n0.17=0.0508744865655899;\r\n0.16=0.0461849011480808;\r\n0.15=0.0416869409382343;\r\n0.14=0.0373680144548416;\r\n0.13=0.0332276821136475;\r\n0.12=0.0293426979333162;\r\n0.11=0.0256448425352573;\r\n0.1=0.0221564434468746;\r\n0.9=0.018901664763689;\r\n0.8=0.0158671904355288;\r\n0.7=0.0130617106333375;\r\n0.6=0.0104954252019525;\r\n0.5=0.00816582515835762;\r\n0.4=0.00610239151865244;\r\n0.3=0.00429536495357752;\r\n0.2=0.00277012935839593;\r\n0.1=0.00153815490193665;\r\n0=0;"
Mode=1
link(onResult,11014103:doVolume,[])
}
Add(MultiReplace,2941822,1309,427)
{
ReplaceList="1=1;\r\n0.99=0.982878863811493;\r\n0.98=0.966050863265991;\r\n0.97=0.949510991573334;\r\n0.96=0.932180464267731;\r\n0.95=0.916220486164093;\r\n0.94=0.89949756860733;\r\n0.93=0.883079886436462;\r\n0.92=0.866961896419525;\r\n0.91=0.85015869140625;\r\n0.9=0.834641575813293;\r\n0.89=0.818464815616608;\r\n0.88=0.80260157585144;\r\n0.87=0.787045776844025;\r\n0.86=0.771791517734528;\r\n0.85=0.755962073802948;\r\n0.84=0.741310238838196;\r\n0.83=0.726105988025665;\r\n0.82=0.711213529109955;\r\n0.81=0.695824980735779;\r\n0.80=0.681553602218628;\r\n0.79=0.666806757450104;\r\n0.78=0.652379035949707;\r\n0.77=0.638263463973999;\r\n0.76=0.623734831809998;\r\n0.75=0.610239088535309;\r\n0.74=0.596348345279694;\r\n0.73=0.582103252410889;\r\n0.72=0.568852961063385;\r\n0.71=0.55526465177536;\r\n0.7=0.542000889778137;\r\n0.69=0.52905398607254;\r\n0.68=0.515822172164917;\r\n0.67=0.502921283245087;\r\n0.66=0.489778816699982;\r\n0.65=0.477529287338257;\r\n0.64=0.465050399303436;\r\n0.63=0.452376484870911;\r\n0.62=0.440554887056351;\r\n0.61=0.428548514842987;\r\n0.6=0.416389733552933;\r\n0.59=0.404575914144516;\r\n0.58=0.393097251653671;\r\n0.57=0.38150480389595;\r\n0.56=0.370254218578339;\r\n0.55=0.358921945095062;\r\n0.54=0.347936511039734;\r\n0.53=0.336899220943451;\r\n0.52=0.326212048530579;\r\n0.51=0.315863907337189;\r\n0.5=0.305140614509583;\r\n0.49=0.294781357049942;\r\n0.48=0.284773796796799;\r\n0.47=0.274789422750473;\r\n0.46=0.26485002040863;\r\n0.45=0.255270153284073;\r\n0.44=0.245753675699234;\r\n0.43=0.236319750547409;\r\n0.42=0.227247968316078;\r\n0.41=0.218021854758263;\r\n0.4=0.209170296788216;\r\n0.39=0.200447216629982;\r\n0.38=0.191866889595985;\r\n0.37=0.183442518115044;\r\n0.36=0.17518624663353;\r\n0.35=0.167109072208405;\r\n0.34=0.15922087430954;\r\n0.33=0.151356130838394;\r\n0.32=0.143879860639572;\r\n0.31=0.136458322405815;\r\n0.3=0.12912192940712;\r\n0.29=0.122039385139942;\r\n0.28=0.115080043673515;\r\n0.27=0.10839270055294;\r\n0.26=0.101859144866467;\r\n0.25=0.0953893810510635;\r\n0.24=0.0892277657985687;\r\n0.23=0.0831763818860054;\r\n0.22=0.0773570761084557;\r\n0.21=0.0716968402266502;\r\n0.2=0.0662216544151306;\r\n0.19=0.0608835592865944;\r\n0.18=0.0557827651500702;\r\n0.17=0.0508744865655899;\r\n0.16=0.0461849011480808;\r\n0.15=0.0416869409382343;\r\n0.14=0.0373680144548416;\r\n0.13=0.0332276821136475;\r\n0.12=0.0293426979333162;\r\n0.11=0.0256448425352573;\r\n0.1=0.0221564434468746;\r\n0.9=0.018901664763689;\r\n0.8=0.0158671904355288;\r\n0.7=0.0130617106333375;\r\n0.6=0.0104954252019525;\r\n0.5=0.00816582515835762;\r\n0.4=0.00610239151865244;\r\n0.3=0.00429536495357752;\r\n0.2=0.00277012935839593;\r\n0.1=0.00153815490193665;\r\n0=0;"
Mode=1
link(onResult,3697222:doString,[(1353,433)(1353,482)(1255,482)(1255,531)])
}
Add(FormatStr,3697222,1267,525)
{
DataCount=3
Mask="%1|%2|%3"
link(onFString,10834262:In,[])
link(Str1,12235397:Var,[])
link(Str2,7875:Result,[(1280,485)(1266,485)])
link(Str3,2941822:Result,[(1287,492)(1315,492)])
}
Add(Memory,9648094,1218,413)
{
link(onData,7875:doMultiReplace,[])
}
Add(Copy,12276841,1036,392)
{
Position=1
Count=2
link(onCopy,15345801:doString,[])
link(Str,6000662:Var,[])
}
Add(FormatStr,15345801,1092,392)
{
Mask="%1.%2"
link(onFString,5661999:doEvent1,[(1136,398)(1136,370)])
link(Str1,3728122:Var,[])
}
Add(MultiStrPart,16273290,987,392)
{
Char="."
link(onSplit,12276841:doCopy,[])
}
Add(Hub,5661999,1148,364)
{
link(onEvent1,6373183:doMultiReplace,[(1180,370)(1180,342)])
link(onEvent2,9648094:doValue,[(1190,377)(1190,419)])
}
Add(LineBreak,7275578,-7,217)
{
link(Out,16358250:doCaption,[])
Primary=[10834262,1316,308]
}
Add(LineBreak,8961199,574,476)
{
link(Out,10412335:doCompare,[])
Primary=[2457954,-406,-77]
}
Add(LineBreak,3406617,357,693)
{
link(Out,4365065:doOn,[])
Primary=[10413253,-189,-280]
}
Add(LineBreak,12604645,63,532)
{
Type=1
link(Data,14492990:Position,[])
Primary=[2523184,161,-77]
}
Add(LineBreak,8388037,161,532)
{
Type=1
link(Data,13349540:Position,[])
Primary=[12760261,70,-77]
}
Add(LineBreak,9780750,602,798)
{
link(Out,6882262:doData,[])
Primary=[4328187,-497,-301]
}
Add(LineBreak,6423065,357,686)
{
link(Out,4365065:doReset,[])
Primary=[4719231,147,7]
}
Add(LineBreak,7953254,987,434)
{
Type=1
link(Data,16273290:Part1,[])
Primary=[3728122,105,-70]
}
Add(LineBreak,3812458,994,434)
{
Type=1
link(Data,16273290:Part2,[])
Primary=[6000662,42,-70]
}
Add(LineBreak,12483405,1218,462)
{
Type=1
link(Data,9648094:Value,[])
Primary=[12235397,49,35]
}
Add(LineBreak,12092908,707,840)
{
Type=1
link(Data,14654900:Var1,[(713,828)])
Primary=[10096617,-91,-399]
}
Add(LineBreak,12083134,735,840)
{
Type=1
link(Data,3662240:Var3,[(741,828)])
Primary=[2700782,56,-392]
}
Add(GetDataEx,3662240,728,823)
{
Angle=3
link(Data,14654900:Var3,[])
}
Add(LineBreak,14227365,749,840)
{
Type=1
link(Data,5035011:Var2,[])
Primary=[339757,35,-322]
}
Add(GetDataEx,10512768,658,364)
{
Angle=1
link(Data,11696301:Var2,[(671,369)])
}
Add(LineBreak,7134847,658,392)
{
Type=1
link(Data,10512768:Var2,[])
Primary=[12056666,126,56]
}
Add(GetDataEx,11696301,665,357)
{
link(Data,15114328:Var2,[])
}
Add(LineBreak,3698691,672,378)
{
Type=1
link(Data,11696301:Var3,[(678,362)])
Primary=[8901848,119,140]
}
Add(GetDataEx,5035011,749,812)
{
Angle=3
link(Data,3662240:Var1,[(734,817)])
}
Add(LineBreak,14305795,770,826)
{
Type=1
link(Data,7654267:Var2,[])
Primary=[14103495,-112,-371]
}
Add(GetDataEx,2448929,644,364)
{
Angle=1
link(Data,10512768:Var1,[])
}
Add(GetDataEx,7654267,770,812)
{
link(Data,5035011:Var1,[(776,806)(755,806)])
}
Add(LineBreak,12484141,763,833)
{
Type=1
link(Data,7654267:Var1,[(769,817)])
Primary=[14625299,-42,-364]
}
Add(GetDataEx,15114328,665,343)
{
link(Data,2019045:Text,[])
}
Add(Math,11597872,917,392)
{
OpType=33
link(onResult,16273290:doSplit,[])
}

Что-то программа делает, но не нормализует громкость.
Помогите пожалуйста разобраться.
карма: 0

0
Ответов: 2236
Рейтинг: 676
#2: 2022-08-02 18:22:13 ЛС | профиль | цитата
Vadimluk1, можно узнать почему вы перед выкладыванием схемы на форум не приводите ее в порядок? Вы думаете что кто-то за вас должен будет удалять все эти ненужные LineBreak и делать схему более читаемой чтоб помочь вам? Вот не за что не поверю что вы за столько времени (с 2014 года на форуме) и не знаете что If_else по разному работает с числами и строками.
Смотрим вашу схему:
1. Таймер запустился и сделал событие.
2. Первый в хабе If_else сравнивает строку "Label" и строку "0.5".
Дальше продолжать?
карма: 11

0
Ответов: 2059
Рейтинг: 132
#3: 2022-08-03 19:02:25 ЛС | профиль | цитата
sla8a писал(а):
можно узнать почему вы перед выкладыванием схемы на форум не приводите ее в порядок?


Всё просто, желание обгоняет умение.
Когда будет умение, то и желания будут другими!

Хочу сказать я пару слов без протокола
Дядя Лёня нарисует на VolumeComparator и VolumeSmoothing ...
Я даже 'голос' (чтобы книжки читать делал(ФИРМА - https://disk.yandex.ru/d/HcUxvH2bOs-T7w Моё - https://disk.yandex.ru/d/X9uWxJvSa3qlvQ - сложная вещь) делал на SoundBuffer и StreamCreate, давно, но ...
Всё устарело и ей богу говно.
Конечно не угонишься, а что надо то?
Дружкам показать крутизну свою?, или сделать для себя инструмент?... так надо много знать.
А так, подойдёт Audacity - что ещё надо?, хочешь библиотеки, или вообще exe. Объяснять?
P.S.
нормализация громкости в динамике с помощью BASS_Volume

Пьян однако, не поддаётся мне пониманию.

Редактировалось 15 раз(а), последний 2022-08-03 21:54:50
карма: 6

0
Ответов: 1343
Рейтинг: 31
#4: 2022-08-04 00:20:23 ЛС | профиль | цитата
ну думаю направление верное задам,

Add(Button,13708268,42,77)
{
Left=10
Top=10
Caption="Record"
link(onClick,5066922:doStart,[])
}
Add(Button,14140950,42,126)
{
Left=75
Top=10
Caption="Stop"
link(onClick,5066922:doStop,[(96,132)(96,90)])
}
Add(BASS_RecordStart,5066922,119,77)
{
Freq=44100
Mode=1
Name="mainrec"
link(onData,1092693:doDetect,[])
}
Add(BASS_Version,10183901,175,231)
{
link(onCheckOk,12302345:doInit,[])
link(onCheckFailed,109118:doMessage,[(219,244)(219,286)])
}
Add(Message,11232751,175,280)
{
Message="Error BASS initialization"
Caption="Error"
Icon=1
}
Add(Message,109118,231,280)
{
Message="Incorrect version of BASS library "
Caption="Error"
Icon=1
}
Add(MainForm,16358250,42,217)
{
Width=387
Height=454
Caption="BASS record inputs demo"
Point(Handle)
link(onCreate,4252681:doInit,[])
}
Add(BASS_Init,4252681,119,231)
{
link(onInit,10183901:doCheck,[])
link(onError,11232751:doMessage,[(163,244)(163,286)])
link(Handle,16358250:Handle,[(139,219)(93,219)(93,261)(48,261)])
}
Add(BASS_RecordCenter,12302345,231,231)
{
Device=0
link(onInit,15862958:doEnumInputs,[])
link(onError,11713735:doMessage,[(275,244)(275,286)])
}
Add(Message,11713735,287,280)
{
Message="InitRecord failed!"
Caption="Error"
Icon=1
}
Add(PaintBox,8758719,434,280)
{
Left=10
Top=40
Width=360
Height=120
link(onBeforeDraw,5631139:doDraw,[])
}
Add(BASS_ChannelVisibleSpectrum,5631139,490,280)
{
SoundStream="mainrec"
Mode=1
link(WindowsHandle,8758719:Bitmap,[(496,268)(468,268)(468,324)(440,324)])
}
Add(Timer,5820169,385,280)
{
Interval=10
link(onTimer,8758719:doRefresh,[])
}
Add(BASS_RecordInput,15862958,287,231)
{
link(onEnumInputs,14934018:doEvent1,[])
}
Add(ChildPanelEx,11572707,434,231)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,15548015,21,21)
{
WorkCount=#5:##add|
Width=608
Height=228
Point(##add)
link(##add,4584490:doGet,[(105,27)(105,181)])
}
Add(Panel,8363783,567,98)
{
Left=25
Top=165
Width=329
Height=26
Point(doTop)
}
Add(CheckBox,11557791,378,112)
{
Left=240
Top=5
Width=75
Height=15
Caption="on"
Point(doCaption)
Point(onClick)
link(onClick,10832955:doWork2,[])
}
Add(ScrollBar,903568,378,56)
{
Left=5
Top=5
Width=220
link(onPosition,14509023:doOperation,[])
}
Add(MT_Get,4584490,189,175)
{
link(onData,14133430:doGet,[(229,181)(229,153)])
link(onGet,11557791:doCaption,[(358,188)(358,125)])
}
Add(MT_Get,14133430,238,147)
{
link(onData,16133573:doGet,[(278,153)(278,111)])
link(onGet,16264771:doOperation,[])
}
Add(MT_Get,16133573,287,105)
{
link(onData,4613851:doValue,[])
link(onGet,11557791:doCheck,[])
}
Add(Math,16264771,287,154)
{
OpType=2
Op2=100
ResultType=0
link(onResult,903568:doPosition,[(348,160)(348,62)])
}
Add(MathParse,12046249,504,105)
{
DataCount=1
MathStr="165 + %1*28"
link(onResult,8363783:doTop,[])
}
Add(BASS_InputControl,9998094,441,189)
{
link(Index,4613851:Value,[])
link(Volume,14509023:Result,[])
link(State,11557791:Checked,[(461,167)(384,167)])
}
Add(Math,14509023,448,56)
{
OpType=3
Op2=100
Default=-1
link(onResult,10832955:doWork1,[(492,62)(492,91)(424,91)])
}
Add(Memory,4613851,441,105)
{
link(onData,12046249:doCalc,[])
}
Add(HubEx,10832955,420,119)
{
Angle=1
link(onEvent,9998094:doSetInput,[(424,195)])
}
END_SDK
Add(Counter,188776,385,182)
{
}
Add(MT_Add,4962988,385,231)
{
link(onAdd,11572707:##add,[])
link(Data,188776:Count,[])
}
Add(Hub,14934018,336,231)
{
link(onEvent1,4962988:doAdd,[])
link(onEvent2,188776:doNext,[(376,244)(376,188)])
}
Add(VolumeDetector,1092693,203,84)
{
DetectLevel=10000
DetectLength=1
Delay=1
link(onDetect,4220576:doEvent,[])
}
Add(Debug,4220576,273,84)
{
}

для работы требуется в системе включить микшер и указать устройство именно микшер и тогда при превышении определённого порога в отладке будет увеличиваться count ну и исходя из этого уже можно регулировать громкость системы)


flint2 писал(а):
Всё просто, желание обгоняет умение.

чётко сказано))

Редактировалось 1 раз(а), последний 2022-08-04 00:26:43
карма: 2

0
Ответов: 8921
Рейтинг: 823
#5: 2022-08-04 12:33:43 ЛС | профиль | цитата
Rysik, достаньте с помощью API до этого "ползунка", а уже с помощью HiAsm его двигайте
(Ранее вы здесь бывали почаще, считай на глазах выросли, надеюсь, в программиста )

--- Добавлено в 2022-08-04 12:39:27

Vol.jpg

Редактировалось 1 раз(а), последний 2022-08-04 12:39:27
карма: 19

0
Ответов: 783
Рейтинг: 168
#6: 2022-08-04 19:52:31 ЛС | профиль | цитата
Пример того, как можно управлять ползунком громкости (то, что показал Леонид).
Предупреждаю. если в пути к будут русские буквы, то программа работать не будет.

Add(MainForm,2953706,175,140)
{
Height=160
Point(onClose)
link(onCreate,15404514:doEvent1,[])
link(onClose,16754451:doConsoleTerminate,[(235,167)(235,174)])
}
Add(WinExec,16754451,392,140)
{
FileName="powershell"
Param="-NoExit"
Mode=0
Point(onConsoleResult)
Point(onConsoleError)
Point(doConsoleExec)
Point(doConsoleInput)
Point(doConsoleTerminate)
}
Add(FormatStr,4865384,280,161)
{
Mask="Add-Type -TypeDefinition @'\r\nusing System.Runtime.InteropServices;\r\n[Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r\ninterface IAudioEndpointVolume {\r\n // f(), g(), ... are unused COM method slots. Define these if you care\r\n int f(); int g(); int h(); int i();\r\n int SetMasterVolumeLevelScalar(float fLevel, System.Guid pguidEventContext);\r\n int j();\r\n int GetMasterVolumeLevelScalar(out float pfLevel);\r\n int k(); int l(); int m(); int n();\r\n int SetMute([MarshalAs(UnmanagedType.Bool)] bool bMute, System.Guid pguidEventContext);\r\n int GetMute(out bool pbMute);\r\n}\r\n[Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r\ninterface IMMDevice {\r\n int Activate(ref System.Guid id, int clsCtx, int activationParams, out IAudioEndpointVolume aev);\r\n}\r\n[Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]\r\ninterface IMMDeviceEnumerator {\r\n int f(); // Unused\r\n int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice endpoint);\r\n}\r\n[ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")] class MMDeviceEnumeratorComObject { }\r\npublic class Audio {\r\n static IAudioEndpointVolume Vol() {\r\n var enumerator = new MMDeviceEnumeratorComObject() as IMMDeviceEnumerator;\r\n IMMDevice dev = null;\r\n Marshal.ThrowExceptionForHR(enumerator.GetDefaultAudioEndpoint(/*eRender*/ 0, /*eMultimedia*/ 1, out dev));\r\n IAudioEndpointVolume epv = null;\r\n var epvid = typeof(IAudioEndpointVolume).GUID;\r\n Marshal.ThrowExceptionForHR(dev.Activate(ref epvid, /*CLSCTX_ALL*/ 23, 0, out epv));\r\n return epv;\r\n }\r\n public static float Volume {\r\n get {float v = -1; Marshal.ThrowExceptionForHR(Vol().GetMasterVolumeLevelScalar(out v)); return v;}\r\n set {Marshal.ThrowExceptionForHR(Vol().SetMasterVolumeLevelScalar(value, System.Guid.Empty));}\r\n }\r\n public static bool Mute {\r\n get { bool mute; Marshal.ThrowExceptionForHR(Vol().GetMute(out mute)); return mute; }\r\n set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); }\r\n }\r\n}\r\n'@ \r\n\r\n"
link(onFString,15996612:doWork2,[])
}
Add(Hub,15404514,245,154)
{
link(onEvent1,16754451:doConsoleExec,[])
link(onEvent2,4865384:doString,[])
}
Add(FormatStr,15775164,280,210)
{
DataCount=1
Mask="[Audio]::Volume = %1\r\n"
link(onFString,15996612:doWork3,[(354,216)])
}
Add(HubEx,15996612,350,161)
{
link(onEvent,16754451:doConsoleInput,[])
}
Add(ScrollBar,15830206,119,210)
{
Left=25
Top=50
Width=310
Max=100
Page=10
Position=100
link(onPosition,2432806:doText,[])
}
Add(Math,13696707,231,210)
{
OpType=3
Op2=100
link(onResult,15775164:doString,[])
}
Add(Edit,2432806,175,210)
{
Left=160
Top=80
Text=""
DataType=2
link(onChange,13696707:doOperation,[])
}

карма: 15

0
Ответов: 1343
Рейтинг: 31
#7: 2022-08-04 20:22:55 ЛС | профиль | цитата
Леонид писал(а):
Rysik, достаньте с помощью API до этого "ползунка", а уже с помощью HiAsm его двигайте



так что ли))?

работает только с компилятором FPC
Add(MainForm,2953706,21,105)
{
}
Add(InlineCode,10053706,182,140)
{
@Hint=#9:Hex2Int64|
@Color=5592575
WorkPoints=#9:doCreateI|5:doSet|
EventPoints=#9:onCreateI|
DataPoints=#3:vol|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|46:uses Windows,kol,Share,Debug,tlhelp32,ActiveX;|0:|4:type|28: THiAsmClass = class(TDebug)|0:|10: private|0:|9: public|17: vol:THI_Event;|25: onCreateI:THI_Event;|54: procedure doCreateI(var _Data:TData; Index:word);|50: procedure doSet(var _Data:TData; Index:word);|0:|5: end;|1: |0:|5:const|77:CLASS_IMMDeviceEnumerator : TGUID = '{BCDE0395-E52F-467C-8E3D-C4579291692E}';|75:IID_IMMDeviceEnumerator : TGUID = '{A95664D2-9614-4F35-A746-DE8DB63617E6}';|65:IID_IMMDevice : TGUID = '{D666063F-1587-4E43-81F1-B948E807363F}';|75:IID_IMMDeviceCollection : TGUID = '{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}';|76:IID_IAudioEndpointVolume : TGUID = '{5CDF2C82-841E-4546-9722-0CF74078229A}';|78:IID_IAudioMeterInformation : TGUID = '{C02216F6-8C67-4B5B-9D00-D008E73E0064}';|84:IID_IAudioEndpointVolumeCallback : TGUID = '{657804FA-D6AD-4496-8A60-352752AF4F89}';|1: |32:DEVICE_STATE_ACTIVE = $00000001;|35:DEVICE_STATE_UNPLUGGED = $00000002;|36:DEVICE_STATE_NOTPRESENT = $00000004;|33:DEVICE_STATEMASK_ALL = $00000007;|1: |4:type|21:EDataFlow = TOleEnum;|1: |5:const|20:eRender = $00000000;|21:eCapture = $00000001;|17:eAll = $00000002;|33:EDataFlow_enum_count = $00000003;|1: |4:type|17:ERole = TOleEnum;|1: |5:const|21:eConsole = $00000000;|24:eMultimedia = $00000001;|28:eCommunications = $00000002;|29:ERole_enum_count = $00000003;|1: |4:type|50:IAudioEndpointVolumeCallback = interface(IUnknown)|42:['{657804FA-D6AD-4496-8A60-352752AF4F89}']|4:end;|1: |42:IAudioEndpointVolume = interface(IUnknown)|42:['{5CDF2C82-841E-4546-9722-0CF74078229A}']|100:function RegisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|102:function UnregisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|57:function GetChannelCount(out PInteger): Integer; stdcall;|92:function SetMasterVolumeLevel(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|98:function SetMasterVolumeLevelScalar(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|70:function GetMasterVolumeLevel(out fLevelDB: single): Integer; stdcall;|76:function GetMasterVolumeLevelScaler(out fLevelDB: single): Integer; stdcall;|112:function SetChannelVolumeLevel(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|118:function SetChannelVolumeLevelScalar(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|90:function GetChannelVolumeLevel(nChannel: Integer; out fLevelDB: double): Integer; stdcall;|94:function GetChannelVolumeLevelScalar(nChannel: Integer; out fLevel: double): Integer; stdcall;|77:function SetMute(bMute: Boolean; pguidEventContext: PGUID): Integer; stdcall;|55:function GetMute(out bMute: Boolean): Integer; stdcall;|88:function GetVolumeStepInfo(pnStep: Integer; out pnStepCount: Integer): Integer; stdcall;|66:function VolumeStepUp(pguidEventContext: PGUID): Integer; stdcall;|68:function VolumeStepDown(pguidEventContext: PGUID): Integer; stdcall;|76:function QueryHardwareSupport(out pdwHardwareSupportMask): Integer; stdcall;|132:function GetVolumeRange(out pflVolumeMindB: double; out pflVolumeMaxdB: double; out pflVolumeIncrementdB: double): Integer; stdcall;|4:end;|1: |44:IAudioMeterInformation = interface(IUnknown)|42:['{C02216F6-8C67-4B5B-9D00-D008E73E0064}']|4:end;|1: |36:IPropertyStore = interface(IUnknown)|4:end;|1: |31:IMMDevice = interface(IUnknown)|42:['{D666063F-1587-4E43-81F1-B948E807363F}']|37:function Activate(const refId: TGUID;|16:dwClsCtx: DWORD;|28:pActivationParams: PInteger;|61:out pEndpointVolume: IAudioEndpointVolume): Hresult; stdCall;|98:function OpenPropertyStore(stgmAccess: DWORD; out ppProperties: IPropertyStore): Hresult; stdcall;|55:function GetId(out ppstrId: PLPWSTR): Hresult; stdcall;|56:function GetState(out State: Integer): Hresult; stdcall;|4:end;|1: |1: |41:IMMDeviceCollection = interface(IUnknown)|42:['{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}']|4:end;|1: |43:IMMNotificationClient = interface(IUnknown)|42:['{7991EEC9-7E89-4D85-8390-6C703CEC60C0}']|4:end;|1: |41:IMMDeviceEnumerator = interface(IUnknown)|42:['{A95664D2-9614-4F35-A746-DE8DB63617E6}']|125:function EnumAudioEndpoints(dataFlow: EDataFlow; deviceState: SYSUINT; DevCollection: IMMDeviceCollection): Hresult; stdcall;|99:function GetDefaultAudioEndpoint(EDF: SYSUINT; ER: SYSUINT; out Dev :IMMDevice ): Hresult; stdcall;|75:function GetDevice(pwstrId: pointer; out Dev: IMMDevice): HResult; stdcall;|96:function RegisterEndpointNotificationCallback(pClient: IMMNotificationClient): Hresult; stdcall;|4:end;|0:|0:|3:var|45: endpointVolume: IAudioEndpointVolume = nil;|51: VolumeLevel , VolumeLevel1, VolumeLevel2: Single;|2: |2: |0:|0:|14:implementation|0:|0:|32:procedure THiAsmClass.doCreateI;|0:|3:var|38:deviceEnumerator: IMMDeviceEnumerator;|25:defaultDevice: IMMDevice;|0:|5:begin|114:CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);|75:deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);|92:defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);|23:_hi_onEvent(onCreateI);|4:end;|0:|0:|0:|0:|28:procedure THiAsmClass.doSet;|0:|5:begin|53: if endpointVolume = nil then _debug('not CreateI');|77: endpointVolume.SetMasterVolumeLevelScalar(ReadInteger(_Data,vol)/100, nil);|0:|4:end;|0:|0:|4:end.|
}
Add(TrackBar,16508131,119,147)
{
Left=20
Top=15
Width=310
Max=100
link(onPosition,10053706:doSet,[])
}
Add(Button,8455208,119,105)
{
Left=25
Top=65
Caption="CreateI"
link(onClick,10053706:doCreateI,[(167,111)(167,146)])
}

Редактировалось 1 раз(а), последний 2022-08-04 20:23:19
карма: 2

0
Ответов: 306
Рейтинг: 26
#8: 2022-08-04 21:23:20 ЛС | профиль | цитата
Vadimluk1 писал(а):
не подскажите как сделать

На базе этого компонента https://forum.hiasm.com/getfile/39526 пробуйте сделать.



Это возможно тоже пригодится
Add(ChildPanelEx,15569021,392,119)
{
@Hint=#39:Запуск BASS 2.4 и выбор источника звука|
link(onSound,2111790:doRecData,[])
link(Handle,16358250:Handle,[(398,110)(384,110)(384,159)(335,159)])
}
BEGIN_SDK
Add(EditMultiEx,6822816,21,21)
{
WorkCount=#21:doStart=Начать работу|
EventCount=#21:onStart=Начать работу|22:onSound=Звуковой поток|
DataCount=#46:Handle=Идентификатор основного окна приложения|
Width=671
Height=179
VOffset=35
HOffset=42
link(doStart,15175716:doEvent1,[])
}
Add(Panel,3900892,175,42)
{
Top=65
Width=373
Height=142
Visible=1
Caption=" Выбрать источник звука"
Alignment=2
Point(doVisible)
}
Add(BASS_Version,10183901,126,91)
{
link(onCheckOk,2139448:doEnum,[])
link(onCheckFailed,109118:doMessage,[(166,104)(166,146)])
}
Add(Message,11232751,126,140)
{
Message="Error BASS initialization"
Caption="Error"
Icon=1
}
Add(Message,109118,175,140)
{
Message="Incorrect version of BASS library "
Caption="Error"
Icon=1
}
Add(BASS_Init,4252681,77,91)
{
link(onInit,10183901:doCheck,[])
link(onError,11232751:doMessage,[(117,104)(117,146)])
link(Handle,6822816:Handle,[(97,54)(69,54)])
}
Add(BASS_RecordCenter,12302345,273,98)
{
link(onInit,15862958:doEnumInputs,[])
link(onError,11713735:doMessage,[(310,111)(310,153)])
}
Add(Message,11713735,322,147)
{
Message="InitRecord failed!"
Caption="Error"
Icon=1
}
Add(BASS_RecordInput,15862958,322,98)
{
link(onEnumInputs,16487182:doEvent1,[])
}
Add(BASS_InputControl,9998094,448,98)
{
Volume=1
State=1
link(onSetInput,9127027:doEvent1,[])
link(Volume,10061734:Var1,[(461,83)])
link(State,10061734:Var2,[])
}
Add(Memory,4613851,462,35)
{
Default=Integer(1)
}
Add(ComboBox,4718633,224,91)
{
Left=5
Top=5
Width=185
Height=21
link(onClick,12302345:doInit,[])
}
Add(GetDataEx,10061734,462,78)
{
link(Data,4613851:Value,[])
}
Add(Hub,9127027,490,98)
{
OutCount=3
link(onEvent1,14252892:doWork1,[(512,104)(512,31)(114,31)(114,55)])
link(onEvent2,6822816:onStart,[(522,111)(522,62)])
link(onEvent3,12537631:doStart,[])
}
Add(ChanelToIndex,14252892,126,49)
{
link(onIndex,3900892:doVisible,[])
}
Add(Hub,15175716,49,56)
{
link(onEvent1,14252892:doWork2,[])
link(onEvent2,4252681:doInit,[(66,69)(66,97)])
}
Add(BASS_RecordStart,12537631,525,112)
{
Freq=44100
Channels=2
Mode=1
Name="EarOfComp"
link(onData,6822816:onSound,[(637,125)(637,69)])
}
Add(ComboBox,8950199,399,105)
{
Left=195
Top=5
Width=175
Height=21
Enabled=1
Point(doEnabled)
link(onClick,9998094:doSetInput,[(439,118)(439,104)])
}
Add(BASS_RecordDevices,2139448,175,91)
{
link(onEnum,4718633:doAdd,[])
}
Add(Hub,16487182,364,98)
{
link(onEvent1,8950199:doEnabled,[(389,104)(389,139)])
link(onEvent2,8950199:doAdd,[])
}
END_SDK
Add(MainForm,16358250,329,119)
{
Width=393
Height=248
Caption="Звук"
Point(Handle)
link(onCreate,15569021:doStart,[(370,139)(370,125)])
}
Add(InlineCode,2111790,434,126)
{
@Hint=#146:Выделение сигнала Морзе 46-460 зн/мин из звукового потока на частоте 918 Гц в полосе по уровню -6 дб 150 Гц, подавление вне полосы от 13 до 78 дб.|
WorkPoints=#35:doRecData=Потоковые звуковые данные|
EventPoints=#59:onSignalMaxL=Максимальное значение на входе левый (0-32768)|60:onSignalMaxR=Максимальное значение на входе правый (0-32768)|29:onSignalL=Выход сигнала левый|30:onSignalR=Выход сигнала правый|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|3: |9: public|25: _data_Data:THI_Event;|88: onSignalMaxL:THI_Event; //Максимальное значение на входе левый (0-32768)|89: onSignalMaxR:THI_Event; //Максимальное значение на входе правый (0-32768)|61: onSignalL:THI_Event; //Выход сигнала левый|62: onSignalR:THI_Event; //Выход сигнала правый|0:|53: procedure doRecData(var _Data:TData; Index:word);|4:end;|0:|14:implementation|0:|32:procedure THiAsmClass.doRecData;|17: var St:PStream; |18: len:cardinal;|17: i,j:integer;|57: SoundL,SoundR,SoundAbs,SoundMaxL,SoundMaxR:smallint;|5: |6: begin|18: SoundMaxL:=0;|18: SoundMaxR:=0;|92: St := ReadStream(_data,_data_Data,nil); //Читаем звуковой поток ~0,1 сек.|84: if St = nil then Exit; //Выход, если нет данных.|8: |58: for i:=0 to len do |13: begin |92: St.Read(SoundL,2); //Читаем по 2 байта в SoundL Левый канал.|95: St.Read(SoundR,2); //Читаем по 2 байта в SoundR (Правый канал).|31: SoundAbs:=abs(SoundL);|95: if SoundMaxL<SoundAbs then SoundMaxL:=SoundAbs;//Запоминаем максимальный сигнал левый|25: SoundAbs:=abs(SoundR);|96: if SoundMaxR<SoundAbs then SoundMaxR:=SoundAbs;//Запоминаем максимальный сигнал ghfdsq|10: |76: _hi_onEvent(onSignalL, SoundL); //Выводим значение левый.|85: _hi_onEvent(onSignalR, SoundR); //Выводим значение правый. |9: |12: end; |7: |97: _hi_onEvent(onSignalMaxL, SoundMaxL); //Выводим максимум на индикацию левый.|98: _hi_onEvent(onSignalMaxR, SoundMaxR); //Выводим максимум на индикацию правый.|5: end;|2: |4:end.|
link(onSignalMaxL,16695264:doPosition,[(488,132)(488,104)])
link(onSignalMaxR,9362388:doPosition,[(488,139)(488,160)])
}
Add(ProgressBar,9362388,511,154)
{
Left=5
Top=25
Width=191
Height=10
Color=32768
Max=32768
ProgressColor=65280
Point(doColor)
}
Add(ProgressBar,16695264,511,98)
{
Left=5
Top=10
Width=191
Height=10
Color=32768
Max=16384
ProgressColor=65280
Point(doColor)
}


Редактировалось 2 раз(а), последний 2022-08-04 21:39:21
карма: 2
0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)