Metadata-Version: 2.1
Name: LvAut
Version: 2021.0.5
Summary: Audio wav file test module
Home-page: https://github.com/Lorrytoolcenter/LvAut
Author: lorry_rui
Author-email: lrui@logitech.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown

Copyright (c) 2021 lorry_rui  

//////////usage:///////////////// 

for test sweep tone WAV file only  

VC_tde USE only  @ logitech , Lorry RUi  

https://pypi.org/project/LvAut  

https://github.com/Lorrytoolcenter/LvAut  
|tests| |coverage| |docs| |python-versions| |license|

The Python package **audio_wav** handles all kind of audio files



sample code:  
.. code-block:: python
	"""
	Created on newark, USA
	lorry rui 12/20/2020
	please use sweep tone from High to low

	before uising: please install lib for lvaut_THD libary  
	pip install matplotlib



	"""

	##### Package necessary #####
	import sys,time
	import numpy as np

	import lvaut_THD as AUT
	from matplotlib import pyplot as plt



	channaelselect=1 ### if recording is dual channel ,leftchannel=1, rightchannel=2, otherwise no need to define

	trigeFrequncy=400
	stopananlysis=100

	THDtestrangeL=200    ## want to check THD range
	THDtestrangeH=10000
	THD_limit_low=0
	THD_limit_up=10

	PowertestrangeL=200
	PowertestrangeH=4500
	Power_limit_low=-70
	Power_limit_up=-40



	outfilename='your_wav_file.wav'### this one for Wav file want to analyze


	def checkdata(freq,data,start_Freq,end_Freq,lowlimit,uplimit):
		output1=[]
		output2=[]

		for i,ele in enumerate(freq):
			if ele >start_Freq  and  ele < end_Freq:

				output1.append(ele)
				output2.append(data[i])
		maxval=max(output2)
		minval=min(output2)
		if maxval <lowlimit or  maxval > uplimit:
			result="fail"
			return output1,output2,maxval,minval,result
		else:
			result="pass"
			return output1,output2,maxval,minval,result



	if __name__ == "__main__":
		print("Start preprocessing")
		#job()

		#files = sys.argv[1:]



		if outfilename:

			try:
				freq,thdh,thd_N,power,Freq_THD,thd_data,Freq_Power,PowerS,RubBuzz_data=AUT.analyze_channels(outfilename, trigeFrequncy,stopananlysis,channaelselect)
				outF1,outTHDalldata,maxval,minval,THDresult=checkdata(Freq_THD,thd_data,THDtestrangeL,THDtestrangeH,THD_limit_low,THD_limit_up)
				outF2,outPower_alldata,maxval2,minval2,Powerresult=checkdata(Freq_Power,PowerS,PowertestrangeL,PowertestrangeH,Power_limit_low,Power_limit_up)



				print('FFT Frequency:   %.1f Hz' % freq)
				print("Sweep Max THD:   %.4f%% " %thdh)
				print("Sweep Max THD+N: %.4f%%      Note, this is single tone use only " %thd_N)
				print("Max Power:       %.2fdB " %power)
				print("Range Max THD:    {} %   which check from {} Hz to {} Hz as limit from {}% to {}% ".format(maxval, THDtestrangeL, THDtestrangeH,THD_limit_low,THD_limit_up))
				print("Range Power:  {} dB to {}dB   which check from {} Hz to {} Hz as limit from {}dB to {}dB ".format( round(maxval2),round(minval2),PowertestrangeL, PowertestrangeH,Power_limit_low,Power_limit_up))
				print("THD: {} ".format(THDresult))
				print("Range Power:{} ".format(Powerresult))


			except Exception as e:
				print('Couldn\'t analyze "' + outfilename + '"')
				print(e)
			print()
		else:

			sys.exit("You must provide at least one file to analyze")

