mirror of
https://github.com/jhbruhn/eurorack.git
synced 2025-03-15 11:05:49 +00:00
37 lines
944 B
Python
37 lines
944 B
Python
import numpy as np
|
|
lookup_tables_u16 = []
|
|
lookup_tables_u8 = []
|
|
|
|
ADC_RESOLUTION = 4096
|
|
OUTPUT_RESOLUTION = 2 ** 16 - 1
|
|
|
|
# linear to exponential conversion
|
|
|
|
values = np.linspace(0, 1, num=ADC_RESOLUTION)
|
|
values = np.power(values, 2) * OUTPUT_RESOLUTION
|
|
|
|
lookup_tables_u16.append(('linear_to_exp', values))
|
|
|
|
|
|
# Left pan Lookup table
|
|
|
|
l_pan = np.linspace(0, 1, num=ADC_RESOLUTION)
|
|
r_pan = np.linspace(0, 1, num=ADC_RESOLUTION)
|
|
|
|
l_pan = np.sin(l_pan * (np.pi / 2.0))
|
|
r_pan = np.cos(r_pan * (np.pi / 2.0))
|
|
|
|
l_pan = np.round(l_pan * OUTPUT_RESOLUTION)
|
|
r_pan = np.round(r_pan * OUTPUT_RESOLUTION)
|
|
|
|
lookup_tables_u16.append(('left_sin_pan', l_pan))
|
|
lookup_tables_u16.append(('right_cos_pan', r_pan))
|
|
|
|
# led gamma correction
|
|
gamma = 2.4
|
|
max_in = 255
|
|
max_out = 511
|
|
input_vals = np.linspace(0, max_in, num=max_in + 1)
|
|
gamma_correction = ((input_vals / max_in) ** gamma) * max_out + 0.5
|
|
lookup_tables_u16.append(('led_gamma', np.floor(gamma_correction)))
|
|
|