elvishartisan / rivendell Goto Github PK
View Code? Open in Web Editor NEWA full-featured radio automation system targeted for use in professional broadcast and media environments
A full-featured radio automation system targeted for use in professional broadcast and media environments
This is the README file for the Rivendell package. This software comes with ABSOLUTELY NO WARRANTY. See the files in the LICENSES subdirectory for details. Welcome to this release of the Rivendell Project. Rivendell aims to be a robust, functionally complete digital audio system for use in professional radio broadcast environments. See the file INSTALL for installation instructions. If you are upgrading from an earlier version of Rivendell, also see the file 'UPGRADING' for important notes and pointers. OVERVIEW Rivendell contains a full set of functionality needed to operate a radio automation system, consisting of the following components: RDAdmin A comprehensive application for the administration and configuration of Rivendell. RDLibrary The production audio interface. RDCatch The automatic recorder and task scheduler interface. RDLogin A small utility for logging users into and out of the system. RDLogEdit A air log creation, editing and voicetracker tool. RDLogManager A utility for the automatic generation of logs, based on templates. It also supports importation of schedule information from a wide variety of third-party traffic and music scheduling systems. RDAirPlay The on-air playout application. RDPanel A 'fullscreen' SoundPanel cartwall application. RDCartSlots An application that emulates a multi-slot cart decks. RDCastManager A utility for posting and managing podcast episodes. RDGpiMon A utility for monitoring GPI line status. RDAlsaConfig A utility for configuring ALSA audio adapters. RDDbConfig A utility for creating, backing up and restoring the Rivendell database. RDImport A command-line utility for batch importing audio along with accompanying metadata. Do: man 1 rdimport for usage help. RMLSend A GUI and command-line utility for sending Rivendell Macro Language (RML) commands. RDSoftKeys A lightweight button panel utility for sending RML commands.
Its been a while since we used dropboxes but we are looking into it again at CKXU, we were using them a few months ago to import into the RDLibrary files that were synchronized from our main audio storage server using rsync to a drive on the production Rivendell computer. we had about 30 - 40 dropboxes set and after a few weeks this was using about 90-95% of all threads of our Xeon E5-1650 processor. we have stopped using them since but would like to look into this in the future. Not sure if this is a issue with our setup or a performance issue with dropboxes.
The guys found a bug using RDLibrary, which deletes talk/segue markers each time you export that cut.
In order to reproduce this bug simply:
Only first packets seem to be read :
$ ./tests/audio_convert_test --source-file=input.ogg --destination-file=output.wav
Converting...
Result: OK
$ sox input.ogg -n stats
[...]
Num samples 26.5M
[...]
$ sox output.wav -n stats
[...]
Num samples 516k
[...]
In RDlibrary when editing markers and saving a cut gain that was applied to a cart, only the whole number of the indicated gain is saved. That is, if the entered cut gain is set to 1.8dB the saved gain is 1.0 dB, a negative 2.2dB is saved as a negative 2.0; the saved cut gain is actually what is applied to the cart. Example:
Edited value saved:
Actual saved value (recalled by another edit):
How to reproduce:
Expected outcome:
RDAirplay interprets this as a click and start the Cart "behind" the panel button resp. the main log item.
What happens:
Nothing, because RDAirplay seems to try to move the item, but since source and destination are the same it's doing nothing.
This happens even though you deactivate drag'n'drop in RDAdmin.
Suggestion:
A guy just found a bug on RDLibrary which I think it hasn't been reported yet. When you change GROUP to many carts at once using RDLibrary you will loose the year information on every cart.
In order to reproduce the bug you can simply do the folllowing:
What happens:
Hi,
sometimes in RDAirplay, after I pushed copy and choose an item to copy, the panel buttons loose their yellow color after a second. I can still use one of the buttons as a target, but the color tells me otherwise.
Another more cosmetic problem:
if I push "copy", then choose a panel object to copy and then drag inside of yellow panel buttons, these draged buttons remain yellow, after you leave copy mode.
See video for both problems here: http://prometoys.net/z/
Best Keywan
With a large log and a network database, the RDLogEvent::save()
method can take about one minute.
The save
method inserts every log event with a dedicated SQL request (SaveLine
method). Even if each request can be fast (about 30 / 60 ms), the whole operation can be (too) long.
Some benchmark with a log of 720 events (2 minutes per event on a day) :
With a local mysql :
720 SaveLine: 22604 ms
With a remote mysql :
720 SaveLine: 50162 ms
...
720 SaveLine: 49580 ms
This slowness is very annoying in the VoiceTrack editor.
that seems to be the standard apple export..
easy enough to get around, but just another step
thanks
By analyzing RDCueEdit, AuditionHead/Tail in RdAirPlay, I find they are configured by using rdairplay_conf->card(RDAirPlayConf::CueChannel)
and rdairplay_conf->port(RDAirPlayConf::CueChannel)
.
Should they use station->cueCard()
and station->cuePort()
?
By extension, all RDAirPlayConf::CueChannel
usages should be removed ?
Hi,
a nice feature would be to zoom via the mouse scroll wheel, because this feels more "natural" (intuitive). The zoom should use mouse cursor coordinates as target. (If the mouse courser points to 1:00m, this should be the new "center" of the new view).
But it could also be helpful, if the viewpoint wouldn't jump to the beginning of the file, when I use the zoom in/out buttons: If you look at 0:50 up to 1:10, then the new center of the view should still be 1:00 (e.g. now from 0:55 - 1:05). (Should I file a separate issue?)
Best, Keywan
BTW: Thanks for fixing all these bugs so fast
CentOS 6.7 (although was the same in 6.6) Rivendell 2.10.3int7
If a series of Carts have been marked in RDLibrary (enforce length), the audio will disappear when play attempt is made under new timesqueeze function, BUT the time will remain, creating a 15 second, [or whatever the length should be] dead air pause on the air for the duration of the scheduled cart. This also appears to be a semi random event, likely depending on if the cart is being squeezed, or expanded, as all cuts on the cart are not affected, I'll attempt to determine which is happening, as RDAirplay does not indicate a failure/issue
Add a "click box" on RDLibrary > Edit Markers tab to indicate a song in the library is a cold start song, which would essentially treat that song/item as a play start only, but the end segue marker would remain unchanged, and it would continue to segue as expected.
The expected result would be, if that song or item was played after at item, such as an ID or jingle, (or anything that had a long segue pull), it would wait for the end of cart marker to play, to eliminate overlaps. Another example might be a cold ending of a song, followed by a cold start song, that might have an early segue pull.
thanks
RDAirplay load the log "Test" or load nothing.
RDAIirplay loads only the first cart/line from the log "Test".
Save all log names uppercase by default. If user types lowercase table names, then convert them to upper case either during input or when saving log to database.
Debian Wheezy, MySQL 5.5.38-0+wheezy1, RD 2.10.2
I have the same problem described here: http://lists.rivendellaudio.org/pipermail/rivendell-dev/2014-March/020281.html
Please close, if you fixed this problem already. (I'm still using 2.8)
Cue output isn't set correct in RDAirplay:
Correct: Cue in the Add-Dialog
Wrong: Audition-buttons, "player" in the Edit log item dialog
If I change Cue output in RDAdmin the Instance field for my host in the table RDAIRPLAY_CHANNELS isn't changed as well. It stucks with the old value.
I can fix this, by changing this field via mysql-client. After restarting rdairplay, everything worked as assumed.
Maybe this is caused by migration the configuration/database from an old version (initally created for rivendell 2.1 [2011])
Hi,
what I miss in Rivendell is an advanced search. Some use cases:
For RDAirplay:
-I need a song which has a special length, or the talk time is around 20s etc.
For RDLibrary
I'm willing o help, e.g with UI sketches, search language definitions or even coding, even though I'm not an experienced C++ programmer (for he last one I would need some hints, where to start).
It would be nice to be able to group modify levels in RDLibrary, by group, or selector code.
thanks
Hi,
when no CD is in the CD-Rom, than RDLibrary crashes, if you try to open RipCD from RDLibrary main window .
terminate called after throwing an instance of 'std::bad_alloc'`
what(): std::bad_alloc
Aborted
This also happens, when a CD was there, you succesfully rip a track and then the CD is ejected automatically.
Checking /dev/sr0 for cdrom...
Testing /dev/sr0 for SCSI/MMC interface
SG_IO device: /dev/sr0
CDROM model sensed sensed: TSSTcorp DVD-ROM TS-L333A D600
Checking for SCSI emulation...
Drive is ATAPI (using SG_IO host adaptor emulation)
Checking for MMC style command set...
Drive is MMC style
DMA scatter/gather table entries: 1
table entry size: 131072 bytes
maximum theoretical transfer: 55 sectors
Setting default read size to 27 sectors (63504 bytes).
Verifying CDDA command set...
Expected command set reads OK.
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted
Hi,
this is my UDP String for Now+Next-Data in RDAirplay: %g|%a|%i|%h %r
This is, what is sent: MUSIK|Radiohead|These Are My Twisted Words|325476 meineschoenenacht
pattern: %g|%a|%i|%h %r
result: MUSIK|Radiohead|These Are My Twisted Words| meineschoenenacht
The string "meineschoenenacht" is in the Conductor field of the song. (please don't ask why ;) )
Kind regards and Merry Christmas
Keywan
Our station is currently running Rivendell version 2.10.2 and freshly installed the 4.14.03 Audio Science HPI driver (from no previous Audio Science driver installed). The driver module mounts fine on boot according to the syslogs and we can see the driver version displayed using rdhpiinfo but in the Audio Resources tab the card (ASI Card 5620) is not present under Audio Adaptors and the Audio HPI Driver displays "not active" under Supported Audio Drivers. We've contacted the Audio Science support and they can't see any errors with the driver. The asihpitest command executes correctly without displaying any errors and the Audio Science ALSA driver that comes compiled with the Ubuntu Kernel has been successfully blacklisted in accordance with the ASIHPI install documentation.
The PostPoint Timer is very unreliable, if a item is added or removed from main log, while playing. It counts wrong until the current played item ends (doesn't matter if stopped automatically, manually or segue to next item). If Main log is playing something, the counter works fine.
Look at this example: 2:31 is missing (which is wrong, 2:59 is missing, if you look at the trailer at the end):
The Song "Still Belive" from "All Ends" with 3:00 length is added (second item now). -2:31 + 3:00 should be 29s overtime (or, with corect times 1s), but 2:34 shows the clock
After the song is started, the time is correct (don't now why now 3s overtime, but it fits).
I couldn' find a pattern, in which way it is wrong counted.
Other examples:
http://prometoys.net/d/timer.webm
http://prometoys.net/d/timer2.webm
http://prometoys.net/d/timer2-songchange.webm
Hi,
Here is a compilation error between rdlibrary/disk_gauge and lib/rdaudiostore
disk_gauge.o: In function DiskGauge::update()': /rivendell2.10.2/rdlibrary/disk_gauge.cpp:89: undefined reference to
RDAudioStore::RDAudioStore(RDStation_, RDConfig_, QObject_, char const_)'
/rivendell2.10.2/rdlibrary/disk_gauge.cpp:90: undefined reference to RDAudioStore::runStore(QString const&, QString const&)' /rivendell2.10.2/rdlibrary/disk_gauge.cpp:92: undefined reference to
RDAudioStore::freeBytes() const'
/rivendell2.10.2/rdlibrary/disk_gauge.cpp:93: undefined reference to `RDAudioStore::totalBytes() const'
collect2: ld returned 1 exit status
make[1]: *** [rdlibrary] Erreur 1
Regards,
Olivier
The top window shows rdlibrary
running on a host that relies on another host to run CAE and HTTP Xport (and is configured in rdadmin
as such). That host's rdlibrary
is the bottom window and works fine.
My guess is that there's some assumption that local disk space corresponds to library disk space, perhaps with some integer overflow?
Implement an RML to select the current SoundPanel in both RDAirPlay and RDPanel.
All timed start events fail to execute during the second 1am hour (the hour following the spring time change in the U.S.). Timed events operate normally again starting at 2am.
When a 24-hour log chains to the next day's log prior to the midnight hour and timed start event is present after the current time of day in the next day's log, the log will jump to the end of the newly loaded log and then chain again to the following day's log. Measures need to be taken to prevent this from happening. Perhaps adding date stamps to each scheduled time start might be an option.
Hi,
we can use umlauts in the Carts and search in rdlibrary for carts with an umlaut (e.g. term "fünf" finds the artist 'Fünf Sterne Deluxe'). But we can't use search terms with umlauts in the search fields rdlogedit and rdlogmanager.
(Rivendell 2.8, Debian Wheezy, Tryphon-debs)
When generating playout reports in v2.9.1 (both CentOS 6 and CentOS7) the program fails with an attempt to connect to the database table MIXDOWNeastprod1_SRT rather than eastprod1_SRT.
I run a script "set-label.sh" with RML (RN) when now-next-data changes:
RN /usr/local/bin/set-label.sh %a - %i!
If %a or %i contains a character (e.g. DJ Krush & Toshinori Kondo), which is interpreted by the shell, then we got some problems. You could run command with rivendell daemon rights on the playout machine, just by changing the song title.
It's probably much easier for an attacker to just open an a terminal on the host in question. But despite any "security" reason, without escaping such characters the scripts didn't run as intended.
When you stop a cart or the cart is played until its end, the cart disappears from the left playlist button widget.
The only way to see the artist and title from this last cart is in the full main log widget, but you need to hide the sound panel widget for that. My suggestion: Show somewhere in the left side the name of the last played item, e.g. in a text label under the audio meter.
Or you could reserve the top button field of the playlist for last played item. But this would shorten the preview of the full log to 6 carts.
I guess this feature should be more part of a bigger rework of the RDAirplay to a resolution flexible layout.
Hi,
if you call rdimport with e.g. --set-string-title="fü bär"
, the umlauts are imported with a wrong encoding.
The problem is briefly described here:
http://caspian.paravelsystems.com/pipermail/rivendell-dev/2014-December/022116.html
I would like to set the scheduler codes during import. This is specially helpfull for a initial mass import.
My suggestion:
--scheduler-codes=comma,separeted,sched,codes
a non valid schedcode would be ignored
If I use a dropbox or rdimport itself to import to a cart, the cart-title is modified. I would like to have the possibility to set the cut description instead. Maybe %i could be used as a metadata-pattern like in RDAirplay,
When using the Livewire LWRP GPIO driver, gpio events from the configured node will intermittently stop working after several hours.
When importing a long monophonic WAV file (53:50), RDLibrary reports back the correct length. But when importing a 128 kbps MP3 file of the identical audio, RDLibrary reports back 53:58.
Similar behavior has been noticed on smaller files as well, varying as much as 2-3 secs on a 15-minute file.
My MP3s were created on Cool Edit 2.1, using the built-in Fraunhofer codec last updated in 2003 on a guess.
Hi,
I found a severe Bug in RDLogmanager. If you open a clock and edit the scheduler rules and save them, rivendell doesn't take care about the sorting of the column.
Example: Set the Sched code like this:
SC min max
a 1 0
b 2 0
c 0 1
Sort it bei Min in a row
SC min max
c 0 1
a 1 0
b 2 0
Close the Rules with ok, Save and close the clock, open again, you will find these settings:
SC min max
a 0 1
b 1 0
c 2 0
I guess the list should be sorted back before saving or somehow else the consistency should be assured
Btw: I hope you consider my issue reporting as helpful and not as spam, In the later case please let me know :)
In Rivendell v2.9.0, RDAirPlay is stopping down at Invalid Carts in a log. I tested with cart numbers scheduled in a log that were not present in the library. The invalid carts had a SEGUE transition code in the log.
Hello,
It would be nice to have the possibility to add / remove / edit users on the system through the API. We're working on a "SSO-like" system that would allow our presenters to link their account on their website to actual users in Rivendell.
We have verified that systems running versions greater than 2.8.1 generate playout reports having no content when a hyphen is contained in the system hostname. That is, a host named studio-1 will have no report content while a host named studio1 will. No system log errors are generated on a report attempt on an affected system.
With a metadata pattern like this:
rdimport ... --metadata-pattern='%a - %t.mp3' ... /path/to/songs/*.mp3
Rivendell has a couple problems with spaces.
....
Files to process:
"B.T. Express - DO IT ('Til You're Satisfied)-(LIVE).mp3"
....
B.T. Express
(note the space after T.
) shows up in the database as artist B.T.
(no space and no "Express").
When editing a cart in RDLibrary if the case of the group does not match exactly the case of the group the group of the edited cart will be changed to the first alphabetic group.
Example:
We used rdimport to import our library into rivendell 2.10.2. our script used the group "music" and everything else works fine. however if we edit a individual cart the group will be changed to "BEDS" even though "MUSIC" is a valid group in our configuration. it will even show up in the list the same color as "MUSIC" (shows green).
Could this be made case insensitive or might that cause problems. if it causes problems would there be a way to have rdimport verify the group exists exactly as entered?
If a cut is playing and a new cut is inserted to or removed from the playlist PRIOR to the half way point, the countdown time (in our case to the segue) will be correct. If the playlist is changed after the halfway point of the playing cut, the countdown timer counts to the end of the cut, not the segue; the actual segue will still occur at the proper point of the playing cut.
After a clean install on Ubuntu14.04 experienced problem with not being able to set grids between Thursday 12:00 - end of week.
after look up of issue (http://dev.mysql.com/doc/refman/5.0/en/column-count-limit.html) appears to be a limit of row size capacity in newer MySQL. I changed my local DB from CHAR(60) to VARCAHR(60) for grid# and appears to have resolved the issue.
The fonts used by the Select Cart dialog don't match the other Rivendell displays.
Navigation: RDLogEdit, Insert Cart, Select Cart.
The fonts used for the list display will not match other Rivendell panels. On some systems the fonts will be 6pt and almost unusable.
These changes can be made to /lib/rdcart_dialog.cpp to make it play by the same rules as /rdlibrary/rdlibrary.cpp:
In "Create Fonts", around line 95, create a default font and assign it to the application.
QFont default_font("Helvetica",12,QFont::Normal);
default_font.setPixelSize(12);
qApp->setFont(default_font);`
In "Cart List", around line 195, assign the default font to the cart list:
cart_cart_list->setFont(default_font);
Hi,
I like Albans clone event feature, but it needs a bit more love:
In Rivendell v2.9.0, macro carts are no longer sending Now Playing data (used to update Now Playing data for live satellite programs) to a stream encoder via the rlm_ando plug-in. The library group is properly configured to send metadata. I confirmed this by creating an audio cart with a 0.1 second silent cut and placed it in the same library group and it sent data successfully.
RDLogManager doesn't generate logs correctly if a service name with a period is selected, such as Mike C.
. The symptom I had is that the generated log contained only the first event for each hour. Running rdlogmanager from the command line shows many database errors like this:
rdlogmanager: invalid SQL or failed DB connection
[SELECT command denied to user 'rduser'@'localhost' for table '_STACK' QMYSQL3: Unable to execute query]:
SELECT SCHED_STACK_ID from Mike_C._STACK order by SCHED_STACK_ID
There are also failures for inserts into the same table.
RDCreateStackTableSql in /lib/rdcreate_log.cpp is transforming blanks but not periods. This function is called by GenerateLog::CreateData in rdlogmanager/generate_log.cpp, which is also transforming blanks but not periods.
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.