[wip] Plot waves to screen

pull/357/head
nyanpasu64 2018-07-13 00:41:11 -07:00
rodzic e049260044
commit 0a11363f7b
1 zmienionych plików z 26 dodań i 3 usunięć

Wyświetl plik

@ -1,8 +1,10 @@
import weakref
from itertools import count
from pathlib import Path
from typing import NamedTuple, Optional, List, Tuple
import click
import matplotlib.pyplot as plt
import numpy as np
from scipy.io import wavfile
@ -98,6 +100,7 @@ class Ovgen:
trigger_sample = wave.trigger.get_trigger(sample)
center_smps.append(trigger_sample)
print(frame)
renderer.render_frame(center_smps)
@ -151,6 +154,8 @@ class Trigger:
class MatplotlibRenderer:
DPI = 96
def __init__(self, cfg: RendererCfg, waves: List[Wave]):
self.cfg = cfg
self.waves = waves
@ -208,12 +213,30 @@ class MatplotlibRenderer:
ncenters = len(center_smps)
if nwaves != ncenters:
raise ValueError(
f'incorrect number of wave offsets: {nwaves} waves but {ncenters} offsets')
f'incorrect wave offsets: {nwaves} waves but {ncenters} offsets')
for wave, center_smp in zip(self.waves, center_smps): # TODO
fig = plt.figure()
fig.set_dpi(self.DPI)
fig.set_size_inches(
self.cfg.width / self.DPI,
self.cfg.height / self.DPI
)
ax = plt.Axes(fig, rect=[0., 0., 1., 1.]) # 0% to 100%
ax.set_axis_off()
fig.add_axes(ax)
# plt.set_cmap('hot')
# plt.imshow(data, aspect='equal')
for idx, wave, center_smp in zip(count(), self.waves, center_smps): # TODO
coords = self._get_coords(idx)
print(wave)
print(center_smp)
print()
print(coords)
print()
# plt.show()
class Coords(NamedTuple):