From f83be378124a5dd98379f405ad60ef461376095a Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Mon, 30 Dec 2013 17:49:40 +0100 Subject: [PATCH] equalizer: Fix high CPU usage by waiting a tiny bit in case of no data fetched from soundcard --- host_python/equalizer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/host_python/equalizer.py b/host_python/equalizer.py index f4aaa23..afe618c 100755 --- a/host_python/equalizer.py +++ b/host_python/equalizer.py @@ -88,6 +88,7 @@ else: SAMPLE_SIZE = CHUNK_SIZE*HISTORY_SIZE FREQ_STEP = float(RATE) / (CHUNK_SIZE * HISTORY_SIZE) PIXEL_FREQ_RANGE = math.pow(float(MAX_FREQ) / MIN_FREQ, 1.0/EPIXELS) +CHUNK_PERIOD = 1.0 / (RATE / CHUNK_SIZE) def with_stream( fnc ): @@ -141,7 +142,9 @@ def loop( stream ): while work: try: data = stream.read(CHUNK_SIZE) - except IOError: continue + except IOError: + time.sleep(CHUNK_PERIOD) + continue nowtrig = datetime.now().microsecond / 50000 if (nowtrig == nexttrig): continue