aboutsummaryrefslogtreecommitdiff
path: root/voctogui/lib/audioleveldisplay.py
diff options
context:
space:
mode:
Diffstat (limited to 'voctogui/lib/audioleveldisplay.py')
-rw-r--r--voctogui/lib/audioleveldisplay.py28
1 files changed, 22 insertions, 6 deletions
diff --git a/voctogui/lib/audioleveldisplay.py b/voctogui/lib/audioleveldisplay.py
index ed62313..1d91d35 100644
--- a/voctogui/lib/audioleveldisplay.py
+++ b/voctogui/lib/audioleveldisplay.py
@@ -36,25 +36,41 @@ class AudioLevelDisplay(object):
cr.set_line_width(channel_width)
for y in range(0, height):
- pct = y / height
+ pct = self.clamp(((y / height) - 0.6) / 0.42, 0, 1)
for channel in range(0, channels):
x = (channel * channel_width) + (channel * margin)
bright = 0.25
- if y < rms_px[channel]:
+ if int(y - decay_px[channel]) in range(0, 2):
+ bright = 1.5
+ elif y < rms_px[channel]:
bright = 1
- # elif abs(y - peak_px[channel]) < 3:
- # bright = 1.5
- elif y < decay_px[channel]:
+ elif y < peak_px[channel]:
bright = 0.75
- cr.set_source_rgb(pct * bright, (1-pct) * bright, 0 * bright)
+ cr.set_source_rgb(pct * bright, (1-pct) * bright * 0.75, 0 * bright)
cr.move_to(x, height-y)
cr.line_to(x + channel_width, height-y)
cr.stroke()
+ cr.set_source_rgb(0,0,0)
+ cr.move_to(x + channel_width, height-y)
+ cr.line_to(x + channel_width + margin, height-y)
+ cr.stroke()
+
+ cr.set_source_rgb(1, 1, 1)
+ for db in [-40, -20, -10, -5, -4, -3, -2, -1]:
+ text = str(db)
+ xbearing, ybearing, textwidth, textheight, xadvance, yadvance = (
+ cr.text_extents(text))
+
+ y = self.normalize_db(db) * height
+ cr.move_to((width-textwidth) / 2, height - y - textheight)
+ cr.show_text(text)
+
+
return True
def normalize_db(self, db):