sample-development.engine.ini 10.3 KB
Newer Older
David Trattnig's avatar
David Trattnig committed
1

David Trattnig's avatar
David Trattnig committed
2
###################
3
# Engine Settings #
David Trattnig's avatar
David Trattnig committed
4
5
###################

David Trattnig's avatar
David Trattnig committed
6
7
8
9
10
11
[station]
station_name="Radio Aura"
station_logo_url=https://o94.at/themes/custom/radio_orange/logo1.png
station_logo_size=180px


David Trattnig's avatar
David Trattnig committed
12
[database]
David Trattnig's avatar
David Trattnig committed
13
db_user="aura"
David Trattnig's avatar
David Trattnig committed
14
db_name="aura_engine"
15
db_pass="---SECRET--PASSWORD---"
David Trattnig's avatar
David Trattnig committed
16
db_host="localhost"
David Trattnig's avatar
David Trattnig committed
17
18
19
20
21
22
23
db_charset="utf8"

[redis]
redis_host="localhost"
redis_port=6379
redis_db=0

David Trattnig's avatar
David Trattnig committed
24
25
[monitoring]
mail_server=""
David Trattnig's avatar
David Trattnig committed
26
27
mail_server_port="587"
mail_user="aura@subsquare.at"
28
mail_pass="---SECRET--PASSWORD---"
David Trattnig's avatar
David Trattnig committed
29
# If you want to send multiple adminmails, make them space separated
David Trattnig's avatar
David Trattnig committed
30
admin_mail="david@subsquare.at"
David Trattnig's avatar
David Trattnig committed
31
# Which from mailadress should be used
David Trattnig's avatar
David Trattnig committed
32
from_mail="monitoring@aura.engine"
David Trattnig's avatar
David Trattnig committed
33
34
# The beginning of the subject. With that you can easily apply filter rules using a mail client
mailsubject_prefix="[Aura Engine]"
David Trattnig's avatar
David Trattnig committed
35
# Server where heartbeat info is sent to
David Trattnig's avatar
Typo.    
David Trattnig committed
36
heartbeat_server = "127.0.0.1"   
David Trattnig's avatar
David Trattnig committed
37
38
39
40
# Some UDP port
heartbeat_port = 43334 
# Seconds how often the vitality of the Engine should be checked (0 = disabled)
heartbeat_frequency = 1
David Trattnig's avatar
David Trattnig committed
41

42
43
44
45
logdir="/home/david/Code/aura/engine/logs"
# possible values: debug, info, warning, error, critical
loglevel="info"

46
47
48
[api]

# STEERING
David Trattnig's avatar
David Trattnig committed
49
api_steering_status = "http://localhost:8000/api/v1/"
50
51
52
53
54
55
# The URL to get the Calendar via Steering
api_steering_calendar="http://localhost:8000/api/v1/playout"
# The URL to get show details via Steering
api_steering_show="http://localhost:8000/api/v1/shows/${ID}/"

# TANK
56
api_tank_status = "http://localhost:8040/healthz/"
David Trattnig's avatar
David Trattnig committed
57
# The URL to get playlist details via Tank
58
api_tank_playlist="http://localhost:8040/api/v1/shows/${SLUG}/playlists"
David Trattnig's avatar
David Trattnig committed
59
60

# URL and Port of the API endpoints exposed by engine
David Trattnig's avatar
David Trattnig committed
61
exposed_api_url="http://localhost:3333/api/v1/"
David Trattnig's avatar
David Trattnig committed
62
63
api_port=3333

David Trattnig's avatar
David Trattnig committed
64
65
[scheduling]
# How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired
David Trattnig's avatar
David Trattnig committed
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
fetching_frequency=50
# The scheduling window defines when the entries of each schedule are queued for play-out. The actual window (scheduling_window_start - scheduling_window_end)
# should be higher then the `fetching_frequency` to allow proper queuing. Otherwise the fetch might never hit the scheduling window, because the scheduling
# logic is attached to the fetching logic. 
# 
# Following operations are related to the scheduling window:
# 
#   - Deletion of schedules/timeslots: Those are only accepted until the **start** of the scheduling window
#   - Update/Delete/Assignment of playlists and entries: Those are accepted until the **end** of the the scheduling window; existing queued entries are updated
#   - Pro-active fallback handling: Within the window it is continousely evaluated if some fallback playlist should be applied. The queued items are updated accordingly
#
# After the end of the scheduling window the pre-rolling phase starts. It's recommended that the end of the windows is approximately 4x times
# higher than the preroll_offset, to leave enough space for all 4 fallback scenarios to pre-roll (normal, show, timeslot and station).
# Note, the values for windows is defined as a offset minus the actual start of the schedule in seconds.
scheduling_window_start=120
scheduling_window_end=60
# Playlist ID which is used for station fallbacks. Only used if no station fallback ID is provided via Steering. "0" means it is disabled.
scheduling_station_fallback_id=0
David Trattnig's avatar
David Trattnig committed
84
# How many seconds before the actual schedule time the entry should be pre-rolled. Note to provide enough timeout for
David Trattnig's avatar
David Trattnig committed
85
# contents which take longer to load (big files, bad connectivity to streams etc.)
David Trattnig's avatar
David Trattnig committed
86
87
88
89
preroll_offset=15

# Sometimes it might take longer to get a stream connected. Here you can define a viable length.
# But note, that this may affect the preroll time (see `preroll_offset`), hence affecting the 
David Trattnig's avatar
David Trattnig committed
90
# overall playout, it's delays and possible fallbacks
David Trattnig's avatar
David Trattnig committed
91
92
input_stream_retry_delay=1
input_stream_max_retries=10
93
input_stream_buffer=3.0
David Trattnig's avatar
David Trattnig committed
94

David Trattnig's avatar
David Trattnig committed
95
96
97
98
99
100
101
# sets the time how long we have to fade in and out, when we select another mixer input
# values are in seconds
# this is solved on engine level because it is kind of tough with liquidsoap
[fading]
fade_in_time="0.5"
fade_out_time="2.5"

David Trattnig's avatar
David Trattnig committed
102
103


David Trattnig's avatar
David Trattnig committed
104
#######################
105
# Liquidsoap Settings #
David Trattnig's avatar
David Trattnig committed
106
107
108
109
#######################

# all these settings from here to the bottom require a restart of the liquidsoap server

110
111
112
113
114
[lqs]
liquidsoap_path="/home/david/.opam/4.08.0/bin/liquidsoap"
liquidsoap_working_dir="modules/liquidsoap/"

# Liquidsoap execution delay in seconds; Crucial to keep things in sync
115
116
lqs_delay_offset=1

David Trattnig's avatar
David Trattnig committed
117
118
[user]
# the user and group under which this software will run
David Trattnig's avatar
David Trattnig committed
119
120
daemongroup="engineuser"
daemonuser="engineuser"
David Trattnig's avatar
David Trattnig committed
121
122

[socket]
David Trattnig's avatar
David Trattnig committed
123
socketdir="/home/david/Code/aura/engine/modules/liquidsoap"
David Trattnig's avatar
David Trattnig committed
124

David Trattnig's avatar
David Trattnig committed
125
126
127
128
[audiofolder]
audiofolder="/home/david/Code/aura/tank-store"

[fallback]
David Trattnig's avatar
David Trattnig committed
129
# track_sensitive => fallback_folder track sensitivity
David Trattnig's avatar
David Trattnig committed
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# max_blank => maximum time of blank from source (defaults to 20., seconds, float)
# min_noise => minimum duration of noise on source to switch back over (defaults to 0, seconds, float)
# threshold => power in dB under which the stream is considered silent (defaults to -40., float)
fallback_max_blank="20."
fallback_min_noise="0."
fallback_threshold="-50."

# a folder holding music for station-fallbacks
fallback_music_folder="/home/david/Music/Genres/beats-breaks-dub-down-hiphop"
fallback_show_name="Random Music"
fallback_show_type="Unmoderated Music"
fallback_show_host="Magic Shuffle"
fallback_title_not_available="Title not available"

David Trattnig's avatar
David Trattnig committed
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163

[soundcard]
# choose your weapon
# if you are starving for pain in the ass choose alsa
# if you don't care about latency choose pulseaudio
# if you want low latency and a bit of experimenting, choose jack
soundsystem="alsa"

# you can define up to 5 inputs and outputs
# it is tested with
#  - ALSA with ONE input and ONE output
#  - pulseaudio with ONE input and ONE output (should work with multiple ins/outs)
#  - jack with multiple inputs and outputs
#
# boundaries:
#  - if you use jack, you have to kill liquidsoap. somehow liquidsoap cannot disconnect from jackd when shutting down
#
# with alsa you have to write the devicenames like hw:0
# with pulse and jack => an non empty value means it is used
# devices with empty string are ignored and not used
David Trattnig's avatar
David Trattnig committed
164
input_device_0=""
David Trattnig's avatar
David Trattnig committed
165
166
167
168
169
input_device_1=""
input_device_2=""
input_device_3=""
input_device_4=""
# same same, but different
David Trattnig's avatar
David Trattnig committed
170
output_device_0="default"
David Trattnig's avatar
David Trattnig committed
171
172
173
174
175
176
177
178
179
output_device_1=""
output_device_2=""
output_device_3=""
output_device_4=""

# if you are using alsa, you most probably have to tweak these values
# out of the box you will hear alot of cracklings and artifacts

# alsa_buffer => int
David Trattnig's avatar
David Trattnig committed
180
alsa_buffer="8192"
David Trattnig's avatar
David Trattnig committed
181
#alsa_buffer="16384"
David Trattnig's avatar
David Trattnig committed
182
# alsa_buffer_length => int
David Trattnig's avatar
David Trattnig committed
183
alsa_buffer_length="25"
David Trattnig's avatar
David Trattnig committed
184
# alsa_periods => int
David Trattnig's avatar
David Trattnig committed
185
alsa_periods="0"
David Trattnig's avatar
David Trattnig committed
186
187
188
189
190
191
192
193
194
195
# frame_duration => double
frame_duration=""
# frame_size => int
frame_size=""

#####################
# Recorder Settings #
#####################

# you can define up to 5 recorder types.
196
# flac, mp3, ogg, opus and wav is supported
David Trattnig's avatar
David Trattnig committed
197
198
199
200
201
202

[recording]
# flac example
# enable this recorder. everything else than 'y' is considered as disabled
rec_0="n"
# first set a folder
David Trattnig's avatar
David Trattnig committed
203
rec_0_folder="/var/recordings/flac"
David Trattnig's avatar
David Trattnig committed
204
205
206
207
208
209
210
211
212
# after how many minutes the recording will be cut
rec_0_duration="30"
# file (or encoding-) type
rec_0_encoding="flac"
# bitrate (with encoding types without bitrate like flac or wav it is substituted. 32 => very poor quality. 320 => very high quality)
rec_0_bitrate="128"
# channels: everything else than 2 is considered as mono
rec_0_channels="2"

213
# mp3 example
David Trattnig's avatar
David Trattnig committed
214
rec_1="n"
215
rec_1_folder="/var/audio/rec/mp3"
David Trattnig's avatar
David Trattnig committed
216
rec_1_duration="30"
217
218
rec_1_encoding="mp3"
rec_1_bitrate="320"
David Trattnig's avatar
David Trattnig committed
219
220
221
222
rec_1_channels="2"

# mp3 example
rec_2="n"
223
rec_2_folder="/var/audio/rec/mp3"
David Trattnig's avatar
David Trattnig committed
224
225
rec_2_duration="30"
rec_2_encoding="mp3"
226
rec_2_bitrate="192"
David Trattnig's avatar
David Trattnig committed
227
228
229
230
rec_2_channels="2"

# ogg example
rec_3="n"
David Trattnig's avatar
David Trattnig committed
231
rec_3_folder="/var/recordings/ogg"
David Trattnig's avatar
David Trattnig committed
232
233
234
235
236
237
238
rec_3_duration="30"
rec_3_encoding="ogg"
rec_3_bitrate="320"
rec_3_channels="2"

# opus example
rec_4="n"
David Trattnig's avatar
David Trattnig committed
239
rec_4_folder="/var/recordings/opus"
David Trattnig's avatar
David Trattnig committed
240
241
242
243
244
245
246
rec_4_duration="30"
rec_4_encoding="opus"
rec_4_bitrate="32"
rec_4_channels="2"

# wav example
#rec_4="n"
David Trattnig's avatar
David Trattnig committed
247
#rec_4_folder="/var/recordings/wav"
David Trattnig's avatar
David Trattnig committed
248
249
250
251
252
253
254
255
256
257
#rec_4_duration="30"
#rec_4_filetype="wav"
#rec_4_bitrate="320"
#rec_4_channels="2"

###################
# Stream Settings #
###################

# You can define up to outgoing 5 streams
258
# flac, mp3, ogg and opus is supported
David Trattnig's avatar
David Trattnig committed
259
260
261

[stream]
# defines enabled or not
David Trattnig's avatar
David Trattnig committed
262
stream_0="n"
263
264
# possible values: flac, mp3, ogg, opus (depending on what liquidsoap-plugins you installed)
stream_0_encoding="ogg"
David Trattnig's avatar
David Trattnig committed
265
266
267
268
269
270
271
272
273
# bitrate (with encoding types without bitrate like flac or ogg it is substituted. 32 => very poor quality. 320 => very high quality)
stream_0_bitrate="128"
# how many channels? everything else than 2 is considered as mono
stream_0_channels="2"
# to where we are streaming..?
stream_0_host="localhost"
# and which port?
stream_0_port="8888"
# the name of the mountpoint
274
stream_0_mountpoint="aura-test-0.ogg"
David Trattnig's avatar
David Trattnig committed
275
276
277
# username
stream_0_user="source"
# and the password
David Trattnig's avatar
David Trattnig committed
278
stream_0_password="source"
David Trattnig's avatar
David Trattnig committed
279
280
281
282
283
284
285
286
287
# stream url
stream_0_url="http://www.fro.at"
# the name of the stream
stream_0_name="AURA Test Stream 0"
# the genre of the stream
stream_0_genre="mixed"
# description of the stream
stream_0_description="Test Stream 0"

David Trattnig's avatar
David Trattnig committed
288
stream_1="n"
David Trattnig's avatar
David Trattnig committed
289
290
291
292
293
294
295
296
stream_1_encoding="flac"
stream_1_bitrate="128"
stream_1_channels="2"

stream_1_host="localhost"
stream_1_port="8888"
stream_1_mountpoint="aura-test-1.flac"
stream_1_user="source"
David Trattnig's avatar
David Trattnig committed
297
stream_1_password="source"
David Trattnig's avatar
David Trattnig committed
298
299
300
301
302
303

stream_1_url="http://www.fro.at"
stream_1_name="AURA Test Stream 1"
stream_1_genre="mixed"
stream_1_description="Test Stream 1"

David Trattnig's avatar
David Trattnig committed
304
stream_2="n"
David Trattnig's avatar
David Trattnig committed
305
306
307
308
309
310
311
312
stream_2_encoding="mp3"
stream_2_bitrate="64"
stream_2_channels="2"

stream_2_host="localhost"
stream_2_port="8888"
stream_2_mountpoint="aura-test-2.mp3"
stream_2_user="source"
David Trattnig's avatar
David Trattnig committed
313
stream_2_password="source"
David Trattnig's avatar
David Trattnig committed
314
315
316
317
318
319

stream_2_url="http://www.fro.at"
stream_2_name="AURA Test Stream 2"
stream_2_genre="mixed"
stream_2_description="Test Stream 2"

David Trattnig's avatar
David Trattnig committed
320
stream_3="n"
David Trattnig's avatar
David Trattnig committed
321
322
323
324
325
326
327
328
stream_3_encoding="ogg"
stream_3_bitrate="64"
stream_3_channels="2"

stream_3_host="localhost"
stream_3_port="8888"
stream_3_mountpoint="aura-test-3.ogg"
stream_3_user="source"
David Trattnig's avatar
David Trattnig committed
329
stream_3_password="source"
David Trattnig's avatar
David Trattnig committed
330
331
332
333
334
335

stream_3_url="http://www.fro.at"
stream_3_name="AURA Test Stream 3"
stream_3_genre="mixed"
stream_3_description="Test Stream 3"

David Trattnig's avatar
David Trattnig committed
336
stream_4="n"
David Trattnig's avatar
David Trattnig committed
337
338
339
340
341
342
343
344
stream_4_encoding="opus"
stream_4_bitrate="64"
stream_4_channels="2"

stream_4_host="localhost"
stream_4_port="8888"
stream_4_mountpoint="aura-test-4.opus"
stream_4_user="source"
David Trattnig's avatar
David Trattnig committed
345
stream_4_password="source"
David Trattnig's avatar
David Trattnig committed
346
347

stream_4_url="http://www.fro.at"
David Trattnig's avatar
David Trattnig committed
348
stream_4_name="AURA Test Stream 3"
David Trattnig's avatar
David Trattnig committed
349
stream_4_genre="mixed"
David Trattnig's avatar
David Trattnig committed
350
stream_4_description="Test Stream 3"