sample-development.engine.ini 10.8 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
[api]

David Trattnig's avatar
David Trattnig committed
48
49
50
## STEERING ##

# The URL to get the health status 
David Trattnig's avatar
David Trattnig committed
51
api_steering_status = "http://localhost:8000/api/v1/"
52
53
54
55
56
# 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}/"

David Trattnig's avatar
David Trattnig committed
57
58
59
## TANK ##

# The URL to get the health status 
60
api_tank_status = "http://localhost:8040/healthz/"
David Trattnig's avatar
David Trattnig committed
61
# The URL to get playlist details via Tank
David Trattnig's avatar
David Trattnig committed
62
api_tank_playlist="http://localhost:8040/api/v1/playlists/${ID}"
David Trattnig's avatar
David Trattnig committed
63

David Trattnig's avatar
David Trattnig committed
64
65
66
67
## ENGINE-API ##

# Engine ID (1 or 2)
api_engine_number = 1
David Trattnig's avatar
David Trattnig committed
68
69
# Engine API availability check
api_engine_status="http://localhost:8008/api/v1/ui/"
David Trattnig's avatar
David Trattnig committed
70
71
72
73
# Engine API endpoint to store playlogs
api_engine_store_playlog = "http://localhost:8008/api/v1/playlog/store"
# Engine API endpoint to store clock information
api_engine_store_clock = "http://localhost:8008/api/v1/clock"
David Trattnig's avatar
David Trattnig committed
74
75
# Engine API endpoint to store health information
api_engine_store_health = "http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER}"
David Trattnig's avatar
David Trattnig committed
76

David Trattnig's avatar
David Trattnig committed
77

David Trattnig's avatar
David Trattnig committed
78
79
[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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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
98
# 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
99
# contents which take longer to load (big files, bad connectivity to streams etc.)
David Trattnig's avatar
David Trattnig committed
100
101
102
103
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
104
# overall playout, it's delays and possible fallbacks
David Trattnig's avatar
David Trattnig committed
105
106
input_stream_retry_delay=1
input_stream_max_retries=10
107
input_stream_buffer=3.0
David Trattnig's avatar
David Trattnig committed
108

David Trattnig's avatar
David Trattnig committed
109
110
111
112
113
114
115
# 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
116
117


David Trattnig's avatar
David Trattnig committed
118
#######################
119
# Liquidsoap Settings #
David Trattnig's avatar
David Trattnig committed
120
121
122
123
#######################

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

124
125
126
127
128
[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
129
130
lqs_delay_offset=1

David Trattnig's avatar
David Trattnig committed
131
132
[user]
# the user and group under which this software will run
David Trattnig's avatar
David Trattnig committed
133
134
daemongroup="engineuser"
daemonuser="engineuser"
David Trattnig's avatar
David Trattnig committed
135
136

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

David Trattnig's avatar
David Trattnig committed
139
140
141
142
[audiofolder]
audiofolder="/home/david/Code/aura/tank-store"

[fallback]
David Trattnig's avatar
David Trattnig committed
143
# track_sensitive => fallback_folder track sensitivity
David Trattnig's avatar
David Trattnig committed
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# 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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

[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
178
input_device_0=""
David Trattnig's avatar
David Trattnig committed
179
180
181
182
183
input_device_1=""
input_device_2=""
input_device_3=""
input_device_4=""
# same same, but different
David Trattnig's avatar
David Trattnig committed
184
output_device_0="default"
David Trattnig's avatar
David Trattnig committed
185
186
187
188
189
190
191
192
193
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
194
alsa_buffer="8192"
David Trattnig's avatar
David Trattnig committed
195
#alsa_buffer="16384"
David Trattnig's avatar
David Trattnig committed
196
# alsa_buffer_length => int
David Trattnig's avatar
David Trattnig committed
197
alsa_buffer_length="25"
David Trattnig's avatar
David Trattnig committed
198
# alsa_periods => int
David Trattnig's avatar
David Trattnig committed
199
alsa_periods="0"
David Trattnig's avatar
David Trattnig committed
200
201
202
203
204
205
206
207
208
209
# frame_duration => double
frame_duration=""
# frame_size => int
frame_size=""

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

# you can define up to 5 recorder types.
210
# flac, mp3, ogg, opus and wav is supported
David Trattnig's avatar
David Trattnig committed
211
212
213
214
215
216

[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
217
rec_0_folder="/var/recordings/flac"
David Trattnig's avatar
David Trattnig committed
218
219
220
221
222
223
224
225
226
# 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"

227
# mp3 example
David Trattnig's avatar
David Trattnig committed
228
rec_1="n"
229
rec_1_folder="/var/audio/rec/mp3"
David Trattnig's avatar
David Trattnig committed
230
rec_1_duration="30"
231
232
rec_1_encoding="mp3"
rec_1_bitrate="320"
David Trattnig's avatar
David Trattnig committed
233
234
235
236
rec_1_channels="2"

# mp3 example
rec_2="n"
237
rec_2_folder="/var/audio/rec/mp3"
David Trattnig's avatar
David Trattnig committed
238
239
rec_2_duration="30"
rec_2_encoding="mp3"
240
rec_2_bitrate="192"
David Trattnig's avatar
David Trattnig committed
241
242
243
244
rec_2_channels="2"

# ogg example
rec_3="n"
David Trattnig's avatar
David Trattnig committed
245
rec_3_folder="/var/recordings/ogg"
David Trattnig's avatar
David Trattnig committed
246
247
248
249
250
251
252
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
253
rec_4_folder="/var/recordings/opus"
David Trattnig's avatar
David Trattnig committed
254
255
256
257
258
259
260
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
261
#rec_4_folder="/var/recordings/wav"
David Trattnig's avatar
David Trattnig committed
262
263
264
265
266
267
268
269
270
271
#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
272
# flac, mp3, ogg and opus is supported
David Trattnig's avatar
David Trattnig committed
273
274
275

[stream]
# defines enabled or not
David Trattnig's avatar
David Trattnig committed
276
stream_0="n"
277
278
# possible values: flac, mp3, ogg, opus (depending on what liquidsoap-plugins you installed)
stream_0_encoding="ogg"
David Trattnig's avatar
David Trattnig committed
279
280
281
282
283
284
285
286
287
# 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
288
stream_0_mountpoint="aura-test-0.ogg"
David Trattnig's avatar
David Trattnig committed
289
290
291
# username
stream_0_user="source"
# and the password
David Trattnig's avatar
David Trattnig committed
292
stream_0_password="source"
David Trattnig's avatar
David Trattnig committed
293
294
295
296
297
298
299
300
301
# 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
302
stream_1="n"
David Trattnig's avatar
David Trattnig committed
303
304
305
306
307
308
309
310
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
311
stream_1_password="source"
David Trattnig's avatar
David Trattnig committed
312
313
314
315
316
317

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
318
stream_2="n"
David Trattnig's avatar
David Trattnig committed
319
320
321
322
323
324
325
326
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
327
stream_2_password="source"
David Trattnig's avatar
David Trattnig committed
328
329
330
331
332
333

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
334
stream_3="n"
David Trattnig's avatar
David Trattnig committed
335
336
337
338
339
340
341
342
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
343
stream_3_password="source"
David Trattnig's avatar
David Trattnig committed
344
345
346
347
348
349

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
350
stream_4="n"
David Trattnig's avatar
David Trattnig committed
351
352
353
354
355
356
357
358
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
359
stream_4_password="source"
David Trattnig's avatar
David Trattnig committed
360
361

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