- Timestamp:
- Oct 31, 2018, 5:16:30 PM (6 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master
- Children:
- 07382d8
- Parents:
- dc3f68d
- Location:
- python/demos
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/demos/demo_filter.py
rdc3f68d r78561f7 1 1 #! /usr/bin/env python 2 2 3 import sys 4 import os.path 5 import aubio 3 6 4 def apply_filter(path): 5 from aubio import source, sink, digital_filter 6 from os.path import basename, splitext 7 7 def apply_filter(path, target): 8 8 # open input file, get its samplerate 9 s = source(path)9 s = aubio.source(path) 10 10 samplerate = s.samplerate 11 11 12 12 # create an A-weighting filter 13 f = digital_filter(7)13 f = aubio.digital_filter(7) 14 14 f.set_a_weighting(samplerate) 15 # alternatively, apply another filter16 15 17 16 # create output file 18 o = sink("filtered_" + splitext(basename(path))[0] + ".wav", samplerate)17 o = aubio.sink(target, samplerate) 19 18 20 19 total_frames = 0 21 20 while True: 21 # read from source 22 22 samples, read = s() 23 # filter samples 23 24 filtered_samples = f(samples) 25 # write to sink 24 26 o(filtered_samples, read) 27 # count frames read 25 28 total_frames += read 29 # end of file reached 26 30 if read < s.hop_size: break 27 31 32 # print some info 28 33 duration = total_frames / float(samplerate) 29 print ("read {:s}".format(s.uri)) 30 print ("applied A-weighting filtered ({:d} Hz)".format(samplerate)) 31 print ("wrote {:s} ({:.2f} s)".format(o.uri, duration)) 34 input_str = "input: {:s} ({:.2f} s, {:d} Hz)" 35 output_str = "output: {:s}, A-weighting filtered ({:d} frames total)" 36 print (input_str.format(s.uri, duration, samplerate)) 37 print (output_str.format(o.uri, total_frames)) 32 38 33 39 if __name__ == '__main__': 34 import sys 35 for f in sys.argv[1:]: 36 apply_filter(f) 40 usage = "{:s} <input_file> [output_file]".format(sys.argv[0]) 41 if not 1 < len(sys.argv) < 4: 42 print (usage) 43 sys.exit(1) 44 if len(sys.argv) < 3: 45 input_path = sys.argv[1] 46 basename = os.path.splitext(os.path.basename(input_path))[0] + ".wav" 47 output_path = "filtered_" + basename 48 else: 49 input_path, output_path = sys.argv[1:] 50 # run function 51 apply_filter(input_path, output_path) -
python/demos/demo_source_simple.py
rdc3f68d r78561f7 1 1 #! /usr/bin/env python 2 import sys, aubio 2 import sys 3 import aubio 3 4 4 samplerate = 0 5 samplerate = 0 # use original source samplerate 5 6 hop_size = 256 # number of frames to read in one block 6 s = aubio.source(sys.argv[1], samplerate, hop_size)7 src = aubio.source(sys.argv[1], samplerate, hop_size) 7 8 total_frames = 0 8 9 9 while True: # reading loop10 samples, read = s ()11 total_frames += read 10 while True: 11 samples, read = src() # read hop_size new samples from source 12 total_frames += read # increment total number of frames 12 13 if read < hop_size: break # end of file reached 13 14 14 15 fmt_string = "read {:d} frames at {:d}Hz from {:s}" 15 print (fmt_string.format(total_frames, s.samplerate, sys.argv[1])) 16 16 print (fmt_string.format(total_frames, src.samplerate, src.uri))
Note: See TracChangeset
for help on using the changeset viewer.