Git Product home page Git Product logo

rivendell's Introduction

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.

rivendell's People

Contributors

bpm1992 avatar chrko avatar danielbair avatar deltecent avatar dklann avatar elvishartisan avatar fpeyraud avatar k2fc avatar lighterowl avatar smowton avatar toadybarker avatar wmth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rivendell's Issues

Dropboxes high CPU usage

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.

Bug: Exporting file will delete markers

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:

  • Take cart, choose one cut and set some markers.
  • Try to export it and save it somewhere.
  • Go back in Edit Markers.
  • Magically Talk and Segue markers disappeared. Cut markers remeained.
    Bug confirmed on both 2.9.2 and 2.10.3. Both stations are based on Debian 7 with Tryphon repositories.
    Here's a link for a video showing the bug https://youtu.be/hW27OTHxJts

RDAudioConvert doesn't fully read Ogg/Vorbis file

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
[...]

Cut Gain not saved as indicated

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:
edited
Actual saved value (recalled by another edit):
saved

BUG: RDAirplay: "Unclean" touches/clicks are interpreted as drag and drop

How to reproduce:

  1. Open RDairplay
  2. Click (or touch) on a button in the panel or main log (left pane), hold down and move the mouse cursor just a few pixels (less then 10?)
  3. release the button

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 threshold for interpreting mouse movements at least as big as the margin between two panel buttons.
  • If drag'n'drop is deactivated in RDAdmin, then disable not only the action but the button/gui behaviour as well.

RDLibrary bug on multi cart edit

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:

  • Open RDLibrary
  • Select more than one cart
  • Edit
  • Change GROUP.

What happens:

  • Group has changed, but Year field in every cart has been lost.

Bug: RDAirplay: strange panel button color behaviour

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

Save log can be very slow

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.

RDAirPlayConf::CueChannel should not be used (?)

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 ?

Wishlist: Zoom with mouse scrolling in marker-edit window (rdlibrary)

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

BUG : Previously "time modified" Audio will not play under "Timesqueeze"

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

Feature Request - RDLibrary

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

BUG: RML LL has problems with case sensivity, loads only first cart

How to reproduce:

  1. Create a new log "Test" with multiple carts/lines.
  2. Run: rmlsend "LL 1 TEST"!

Expected outcome:

RDAirplay load the log "Test" or load nothing.

Actual outcome:

RDAIirplay loads only the first cart/line from the log "Test".

Suggestion:

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.

System:

Debian Wheezy, MySQL 5.5.38-0+wheezy1, RD 2.10.2

Bug: RDAirplay Cue Output isn't set correctly

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])

Wishlist: Advanced search

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

  • show me all item without a special pattern (NOT e.g. "!my-user-defined")
  • show me all songs with the title "beatles", but not the artist

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).

Bug: RDLibrary: RipCD crashes when no cd is present

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

BUG: Now and Next Data sends the conductor, regardless of the pattern of UDP String

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

Bug: 4.14.03 Audio Science Driver Not Recognized

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.

Bug: RDAirplay PostPoint Couner unreliable, if main log modified during play

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):
screenshot from 2014-10-28 17 33 09

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
screenshot from 2014-10-28 17 34 55

After the song is started, the time is correct (don't now why now 3s overtime, but it fits).
screenshot from 2014-10-28 17 35 29

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

Intro Time Truncated

A cart with an intro (talk) time of over one minute will have that time truncated in the RDAirplay and RDCartSlots button widget. That is, a cart with an intro time of 0:01:11.4 will have an indicated intro time of :11 in the cart widget. The pie counter does indicate the correct intro time.

talk
intro

Bug: RDAudioStore compilation error

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 toRDAudioStore::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 toRDAudioStore::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

Cosmetic Bug: rdlibrary Free indicator error on remote host

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.

screen shot 2014-10-07 at 10 43 05 pm

My guess is that there's some assumption that local disk space corresponds to library disk space, perhaps with some integer overflow?

Safeguards Needed to Prevent Inadvertent Log Hopping

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.

Bug: Problem with umlauts

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)

Bug: Playout Log Database Error

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.

BUG: RML RN didn't escape specials chars in Now/Next-strings

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.

Wishlist: RDAirplay: Show last played cart

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.

Bug: Time Differences Importing MP3 vs. WAV

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.

BUG: RDLogManager (Severe): Scheduler Rules damaged by save, when columns sorted.

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 :)

RDAirPlay Stopping Down at Invalid Cart

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.

Wishlist : add web API entries

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.

Reports have no content when hostname contans a hyphen

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.

rdimport with special characters

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").

Bug: RDLibrary changes group if case is different

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?

Problem with Pie Clock after playlist modification

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.

Bad fonts for Select Cart dialog

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);

Bug: RDLogManager:Clock: Clone Event weird behaviour

Hi,

I like Albans clone event feature, but it needs a bit more love:

  1. Select Event
  2. Click on "Clone"
  3. Push "Esc" (not Cancel)
    Expected outcome: no change
    Observed outcome: an event is added with no respect to overlapping. you can't fix the times of this event later, you must delete it and start again.

Macro Carts Not Sending Now & Next Data via rlm_ando Plug-In

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 generate fails with "invalid SQL" when service name contains a period

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.