[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 import weakref
from itertools import count
from pathlib import Path from pathlib import Path
from typing import NamedTuple, Optional, List, Tuple from typing import NamedTuple, Optional, List, Tuple
import click import click
import matplotlib.pyplot as plt
import numpy as np import numpy as np
from scipy.io import wavfile from scipy.io import wavfile
@ -98,6 +100,7 @@ class Ovgen:
trigger_sample = wave.trigger.get_trigger(sample) trigger_sample = wave.trigger.get_trigger(sample)
center_smps.append(trigger_sample) center_smps.append(trigger_sample)
print(frame)
renderer.render_frame(center_smps) renderer.render_frame(center_smps)
@ -151,6 +154,8 @@ class Trigger:
class MatplotlibRenderer: class MatplotlibRenderer:
DPI = 96
def __init__(self, cfg: RendererCfg, waves: List[Wave]): def __init__(self, cfg: RendererCfg, waves: List[Wave]):
self.cfg = cfg self.cfg = cfg
self.waves = waves self.waves = waves
@ -208,12 +213,30 @@ class MatplotlibRenderer:
ncenters = len(center_smps) ncenters = len(center_smps)
if nwaves != ncenters: if nwaves != ncenters:
raise ValueError( 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(wave)
print(center_smp) print(center_smp)
print() print(coords)
print()
# plt.show()
class Coords(NamedTuple): class Coords(NamedTuple):