I'm a software engineer ๐พ turned radio personality ๐ป.
Coding is now a hobby. My mother ๐ฉโ๐ฆ thinks I'm crazy ๐คช.
Find out more or listen ๐ at www.jew.pizza โก๏ธ๐.
Crazy Arms Radio Backend. Playout software for the modern, fully de-centralized station.
Home Page: https://dtcooper.github.io/crazyarms
License: MIT License
I'm a software engineer ๐พ turned radio personality ๐ป.
Coding is now a hobby. My mother ๐ฉโ๐ฆ thinks I'm crazy ๐คช.
Find out more or listen ๐ at www.jew.pizza โก๏ธ๐.
Hello!
Creating an "autodj" that pulls from another source, which works great, but I'd like to pass the duration. The third part source has duration/fade out as a metadata tag, so if we use the file duration we sometimes get extended silence before the next track starts.
Do you know if it's possible to supply a duration along with the filepath? I'm struggling to see if that is possible for liquidsoap docs.
# Auto DJ1
mairlistautodj = request.dynamic.list(
# TODO: conservative always keeps one request in the queue, useful for skipping but
# means station ID + could come several minutes afterwards. I think this isn't needed
# but if we observe transitions to fallback from autoDJ unexpected this may need to be re-enabled
id='mairlistautodj', conservative=false, length=REQUEST_QUEUE_LENGTH,
retry_delay=REQUEST_RETRY_DELAY, timeout=REQUEST_TIMEOUT, fun() -> begin
url = 'http://10.0.0.4:8123/getnext'
#url = '#{API_PREFIX}next-track/'
log('SCOTT #{url}')
let ((_, status_code, _), _, response) = http.get(url, headers=API_HEADERS)
if status_code == 200 then
asset_uri = list.assoc(default='', 'asset_uri', of_json(default=[('_', '')], response))
log('mairlistautodj: selected URI #{asset_uri}')
[request.create(asset_uri)]
else
log('ERROR: mairlistautodj: got non-200 status got API (#{status_code}) for next track')
[]
end
end)
mairlistautodj = audio_to_stereo(id='mairlistautodj_to_stereo', mairlistautodj)
mairlistautodj = on_end(id='mairlistautodj_onend', delay=0., fun(_, _) -> begin
# Clear status since timed_sources may be the only thing that changed
last_status_without_timed_sources := reset_status
end, mairlistautodj)
# Having mairlistautodj safe for a few seconds means resolution loading files won't
# transition to failsafe and just have a few seconds of silence
#add_skip_command_crazyarms(mairlistautodj)
source_hierarchy = [
(prerecord, 'Prerecorded Broadcast'),
(dj_harbor, 'Live DJ'),
(zoom, 'Zoom Room'),
(mairlistautodj, 'mAirList AutoDJ'),
(autodj, 'AutoDJ'),
(failsafe, FAILSAFE_SOURCE_NAME)
]
/admin/settings/harbor-custom-config/ returns the following post "clean" upgrade/re-install to 0.0.1-alpha1 from the dev version.
Not Found
The requested resource was not found on this server.
App container gives the following:
today at 09:58 [2021-03-24 09:58:35,190] WARNING:django.request:224:log_response: Not Found: /admin/settings/harbor-custom-config/
Every few hours, upstream server were glitched out and fell back to the failsafe, which is jarring for listeners. Reported by Bobzilla & Cindianna.
Suspiciously no relevant output on harbor
container. Output on upstream
container was as follow,
2021/03/31 06:04:04 [fallback_9414:3] Switch to failsafe with forgetful transition.
2021/03/31 06:04:04 [dummy:3] Source failed (no more tracks) stopping output...
2021/03/31 06:04:05 [fallback_9414:3] Switch to input with transition.
All containers on our server are prefixed with the "parent" name - I.E "monitoring-"
So when a service called "elastic" spins up, it's container name is actually "monitoring-elastic".
It would be useful if this could be specified within configuration somewhere and automatically applied within crazyarms so when looking down a list of 101 containers, we can easily see the crazyarms containers.
I.E crazyarms-app, crazyarms-db etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.