-
Notifications
You must be signed in to change notification settings - Fork 13
/
constants.py
57 lines (48 loc) · 1.86 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# -*- coding: utf-8 -*-
from utils import versus_distance
# https://en.wikipedia.org/wiki/Surround_sound
SPEAKER_NAMES = ['FL', 'FR', 'FC', 'BL', 'BR', 'SL', 'SR']
SPEAKER_PATTERN = f'({"|".join(SPEAKER_NAMES + ["X"])})'
SPEAKER_LIST_PATTERN = r'{speaker_pattern}+(,{speaker_pattern})*'.format(speaker_pattern=SPEAKER_PATTERN)
SPEAKER_ANGLES = {
'FL': 30,
'FR': -30,
'FC': 0,
'BL': 150,
'BR': -150,
'SL': 90,
'SR': -90
}
# Speaker delays relative to the nearest speaker
SPEAKER_DELAYS = {
_speaker: versus_distance(angle=abs(SPEAKER_ANGLES[_speaker]), ear='primary')[1] for _speaker in SPEAKER_NAMES
}
for _speaker in SPEAKER_DELAYS.keys():
SPEAKER_DELAYS[_speaker] -= min(*SPEAKER_DELAYS.values())
# Each channel, left and right
IR_ORDER = []
# SPL change relative to middle of the head
IR_ROOM_SPL = dict()
for _speaker in SPEAKER_NAMES:
if _speaker not in IR_ROOM_SPL:
IR_ROOM_SPL[_speaker] = dict()
for _side in ['left', 'right']:
IR_ORDER.append(f'{_speaker}-{_side}')
IR_ROOM_SPL[_speaker][_side] = versus_distance(
angle=abs(SPEAKER_ANGLES[_speaker]),
ear='primary' if _side[0] == _speaker.lower()[1] else 'secondary'
)[2]
COLORS = {
'lightblue': '#7db4db',
'blue': '#1f77b4',
'pink': '#dd8081',
'red': '#d62728',
'lightpurple': '#ecdef9',
'purple': '#680fb9',
'green': '#2ca02c'
}
HESUVI_TRACK_ORDER = ['FL-left', 'FL-right', 'SL-left', 'SL-right', 'BL-left', 'BL-right', 'FC-left', 'FR-right',
'FR-left', 'SR-right', 'SR-left', 'BR-right', 'BR-left', 'FC-right']
HEXADECAGONAL_TRACK_ORDER = ['FL-left', 'FL-right', 'FR-left', 'FR-right', 'FC-left', 'FC-right', 'LFE-left',
'LFE-right', 'BL-left', 'BL-right', 'BR-left', 'BR-right', 'SL-left', 'SL-right',
'SR-left', 'SR-right']