12
docs/faq.md
|
@ -1,9 +1,11 @@
|
|||
# Frequently Asked Questions
|
||||
|
||||
**What is LibreTime?**
|
||||
|
||||
LibreTime is a community managed fork of the AirTime project.
|
||||
|
||||
It is managed by a friendly inclusive community of stations
|
||||
from around the globe that use, document and improve LibreTime.
|
||||
It is managed by a friendly inclusive community of stations
|
||||
from around the globe that use, document and improve LibreTime.
|
||||
|
||||
**Can I upgrade to LibreTime?**
|
||||
|
||||
|
@ -13,15 +15,15 @@ is in the docs.
|
|||
|
||||
LibreTime is complex software, as such it is close to impossible
|
||||
to guarantee that every upgrade path works as intended. This
|
||||
means you should trial the update on a parallel test
|
||||
means you should trial the update on a parallel test
|
||||
infrastructure to minimize possible downtime.
|
||||
|
||||
Please let the community know if you encounter issues with the
|
||||
update process.
|
||||
update process.
|
||||
|
||||
**Why are Cue-In/Out points wrong in some tracks? / What's with silan?**
|
||||
|
||||
The silan silence detection is currently outdated on almost all distributions. The older versions report clearly wrong information and may segfault at the worst. Versions starting with 0.3.3 (and some patched 0.3.2 builds) are much better but still need thorough testing. Please see the [release notes](https://github.com/LibreTime/libretime/releases) for up to date mitigation scenarios and details on the issues.
|
||||
The silan silence detection is currently outdated on almost all distributions. The older versions report clearly wrong information and may segfault at the worst. Versions starting with 0.3.3 (and some patched 0.3.2 builds) are much better but still need thorough testing. Please see the [release notes](https://github.com/LibreTime/libretime/releases) for up to date mitigation scenarios and details on the issues.
|
||||
|
||||
**Why did you fork AirTime?**
|
||||
|
||||
|
|
|
@ -1,9 +1,18 @@
|
|||
Features
|
||||
========
|
||||
|
||||
TBD
|
||||
* Web-based remote station management - authorized personnel can add
|
||||
programme material, create playlists or smart blocks, and stream in live,
|
||||
all via a web interface.
|
||||
* Automation - LibreTime has a scheduler function that enables users to
|
||||
create shows with content for playback at the exact date and time specified.
|
||||
Playlists, smart blocks and remote stream URLs can be used multiple times.
|
||||
* Solid playout - LibreTime uses the open source Liquidsoap streaming language
|
||||
for reliable and precise playback to multiple outputs.
|
||||
* Open, extensible architecture - stations are free to extend and alter
|
||||
all parts of the program code, under the GNU AGPLv3 license.
|
||||
|
||||
Screenshots
|
||||
-----------
|
||||
|
||||
TBD
|
||||

|
||||
|
|
|
@ -27,5 +27,5 @@ Plans are in the works for `.deb` and `.rpm` packages, as well as Docker and AWS
|
|||
|
||||
Please note that the install script does not take care to ensure that any
|
||||
packages installed are set up in a secure manner. Please see the chapter on
|
||||
[preparing the server](manual/preparing-the-server/) for more details on
|
||||
[preparing the server](manual/preparing-the-server.md) for more details on
|
||||
how to set up a secure installation.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
The Libretime API enables many types of information about the broadcast schedule and configuration to be retrieved from the Libretime server. Other than the live-info and week-info data fetched by website widgets (see the chapter *Exporting the schedule*), all API requests must be authenticated using the secret API key stored in the file */etc/airtime/api\_client.cfg* on the Libretime server. This key is autogenerated during Libretime installation and should be unique for each server.
|
||||
The LibreTime API enables many types of information about the broadcast schedule and configuration to be retrieved from the LibreTime server. Other than the live-info and week-info data fetched by website widgets (see the chapter *Exporting the schedule*), all API requests must be authenticated using the secret API key stored in the file */etc/airtime/api\_client.cfg* on the LibreTime server. This key is autogenerated during LibreTime installation and should be unique for each server.
|
||||
|
||||
If you intend to use the Libretime API across a public network, for security reasons it is highly recommended that all API requests are sent over encrypted https: and that the web server is configured to accept requests to the api/ directory from specific host names or IP addresses only.
|
||||
If you intend to use the LibreTime API across a public network, for security reasons it is highly recommended that all API requests are sent over encrypted https: and that the web server is configured to accept requests to the api/ directory from specific host names or IP addresses only.
|
||||
|
||||
The format of API requests is:
|
||||
|
||||
|
@ -9,11 +9,11 @@ The format of API requests is:
|
|||
where api-action is the type of request and XXXXXX is the secret API key. Available actions include:
|
||||
|
||||
- on-air-light - return true if the station is on air
|
||||
- status - get the status of Libretime components and resource usage
|
||||
- version - returns the version of Libretime installed
|
||||
- status - get the status of LibreTime components and resource usage
|
||||
- version - returns the version of LibreTime installed
|
||||
- get-files-without-silan-value - list files for which silence detection has not yet been performed
|
||||
- get-stream-setting - gets the settings of Libretime output streams
|
||||
- get-stream-parameters - gets the parameters of Libretime output streams
|
||||
- get-stream-setting - gets the settings of LibreTime output streams
|
||||
- get-stream-parameters - gets the parameters of LibreTime output streams
|
||||
|
||||
For example, using the action *get-stream-setting* returns the following output for the first configured stream:
|
||||
|
||||
|
@ -43,7 +43,7 @@ For example, using a request such as:
|
|||
|
||||
http://libretime.example.com/api/list-all-files/format/json/api_key/XXXXXX/dir_id/1/
|
||||
|
||||
returns the full path to each media file in the Libretime storage directory:
|
||||
returns the full path to each media file in the LibreTime storage directory:
|
||||
|
||||
{"files":[
|
||||
"imported\/1\/Mark Ronson feat. Saigon\/Here Comes the Fuzz\/7-Diduntdidunt-unknown.flac",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
The following shell commands can be used for database backup and restore on a
|
||||
running *PostgreSQL* server in an Libretime system.
|
||||
running *PostgreSQL* server in an LibreTime system.
|
||||
|
||||
You can dump the entire database to a zipped file with the combination of the
|
||||
**pg\_dumpall** command and **gzip**. The **pg\_dumpall** command is executed
|
||||
|
@ -13,7 +13,7 @@ sudo -u postgres pg_dumpall | gzip -c > libretime-backup.gz
|
|||
This command can be automated to run on a regular basis using the standard
|
||||
**cron** tool on your server.
|
||||
|
||||
When restoring a production database on a cleanly installed Libretime system, it
|
||||
When restoring a production database on a cleanly installed LibreTime system, it
|
||||
may be necessary to drop the empty database that was created during the new
|
||||
installation, by using the **dropdb** command. Again, this command is executed
|
||||
with **sudo** as the user *postgres*:
|
||||
|
@ -23,7 +23,7 @@ sudo -u postgres dropdb airtime
|
|||
```
|
||||
|
||||
This **dropdb** command above is necessary to avoid 'already exists' errors on
|
||||
table creation when overwriting an empty Libretime database in the next step.
|
||||
table creation when overwriting an empty LibreTime database in the next step.
|
||||
These errors might prevent some data from being restored, such as user account
|
||||
data.
|
||||
|
||||
|
@ -35,19 +35,19 @@ gunzip libretime-backup.gz
|
|||
sudo -u postgres psql -f libretime-backup
|
||||
```
|
||||
|
||||
You should now be able to log in to the Libretime web interface in the usual way.
|
||||
You should now be able to log in to the LibreTime web interface in the usual way.
|
||||
|
||||
For safety reasons, your regular database backups should be kept in a directory
|
||||
which is backed up by your storage backup tool of choice; for example, the
|
||||
*/srv/airtime/database\_backups* directory. This should ensure that a storage
|
||||
restore can be made along with a matching and complete version of the Libretime
|
||||
restore can be made along with a matching and complete version of the LibreTime
|
||||
database from the day that the storage backup was made.
|
||||
|
||||
Storage backup
|
||||
--------------
|
||||
|
||||
Backing up the Libretime database with **pg\_dumpall** will not back up the
|
||||
Libretime media storage server, which is likely to need a great deal more backup
|
||||
Backing up the LibreTime database with **pg\_dumpall** will not back up the
|
||||
LibreTime media storage server, which is likely to need a great deal more backup
|
||||
space. Creating a compressed file from hundreds of gigabytes of storage server
|
||||
contents is likely to take a very long time, and may have little benefit for the
|
||||
amount of CPU power used, if the media files are already stored in a highly
|
||||
|
@ -55,8 +55,8 @@ compressed format. It is also impractical to copy very large backup files across
|
|||
the network on a daily basis.
|
||||
|
||||
Instead, it is preferable to use an incremental backup technique to synchronize
|
||||
the production Libretime server storage with a backup server each day or night. If
|
||||
the backup server also contains an Libretime installation, it should be possible
|
||||
the production LibreTime server storage with a backup server each day or night. If
|
||||
the backup server also contains an LibreTime installation, it should be possible
|
||||
to switch playout to this second machine relatively quickly, in case of a
|
||||
hardware failure or other emergency on the production server.
|
||||
|
||||
|
|
|
@ -1,69 +1,121 @@
|
|||
The Dashboard is divided into two sections a Library section divided between [Tracks](../tracks),[Playlists](../playlists),[Smart Blocks](../smartblocks),[Webstreams](../webstreams), and [Podcasts](../podcasts) and the **Scheduled Shows** dialog on the right. This page provides an overview of the right-hand interface. Check the links to see information about the other sections which provide the content that can be scheduled.
|
||||
# Dashboard
|
||||
The Dashboard is divided into two sections a Library section divided between
|
||||
[Tracks](../tracks),[Playlists](../playlists), [Smart Blocks](../smartblocks),
|
||||
[Webstreams](../webstreams), and [Podcasts](../podcasts), with the **Scheduled
|
||||
Shows** dialog on the right. This page provides an overview of the right-hand
|
||||
interface. Check the links to see information about the other sections which
|
||||
provide the content that can be scheduled.
|
||||
|
||||
The **Scheduled ShowS** page provides a view of the content your station is will playout, or has already played out, which defaults to showing the 24 hours ahead. This page also enables you to make last-minute changes to running shows.
|
||||
The **Scheduled Shows** page provides a view of the content your station is will
|
||||
playout, or has already played out, which defaults to showing the 24 hours
|
||||
ahead. This page also enables you to make last-minute changes to running shows.
|
||||
|
||||
If you've only just installed Libretime, there might not be any content shown yet. Click the calendar and clock icons above the table to change the date and time range, then click the **Find Shows** button (with the magnifying glass icon) to the right.
|
||||
If you've only just installed LibreTime, there might not be any content shown
|
||||
yet. Click the calendar and clock icons above the table to change the date and
|
||||
time range, then click the **Find Shows** button (with the magnifying glass
|
||||
icon) to the right.
|
||||
|
||||

|
||||

|
||||
|
||||
To display the content of a particular show, click **Filter by Show** and select the name of the show from the drop-down menu which will appear.
|
||||
To display the content of a particular show, click **Filter by Show** and select
|
||||
the name of the show from the drop-down menu which will appear.
|
||||
|
||||

|
||||

|
||||
|
||||
On the left side of the page, the **Start** and **End** times, **Duration** and **Title** of each content item are shown. On the right, **Creator**, **Album**, **Cue** or **Fade** times and **Mime** type (file format) can also be shown. This information can help you to prepare voice tracks for insertion into the show, including time checks if you wish. Putting current time information into voice tracks describing specific content can, of course, limit the re-usability of those voice tracks, unless you always broadcast a particular item at the same time of day.
|
||||
On the left side of the page, the **Start** and **End** times, **Duration**
|
||||
and **Title** of each content item are shown. On the right, **Creator**,
|
||||
**Album**, **Cue** or **Fade** times and **Mime** type (file format) can also be
|
||||
shown. This information can help you to prepare voice tracks for insertion into
|
||||
the show, including time checks if you wish. Putting current time information i
|
||||
to voice tracks describing specific content can, of course, limit the
|
||||
re-usability of those voice tracks, unless you always broadcast a particular
|
||||
item at the same time of day.
|
||||
|
||||
Click the **Show/hide columns** button on the right to configure the metadata displayed, by checking the boxes in the pop-up window.
|
||||
Click the **Show/hide columns** button on the right to configure the metadata
|
||||
displayed, by checking the boxes in the pop-up window.
|
||||
|
||||

|
||||

|
||||
|
||||
The row for the currently playing item is displayed with a bright green background. Any underbooked shows (shows with insufficient content to fill the time allowed) are displayed with a row indicating the length of the underbooking in minutes and seconds. These rows contain a red exclamation mark in the first column, and have a pink background.
|
||||
The row for the currently playing item is displayed with a bright green
|
||||
background. Any underbooked shows (shows with insufficient content to fill the
|
||||
time allowed) are displayed with a row indicating the length of the underbooking
|
||||
in minutes and seconds. These rows contain a red exclamation mark in the first
|
||||
column, and have a pink background.
|
||||
|
||||

|
||||

|
||||
|
||||
Removing content from a running show
|
||||
------------------------------------
|
||||
|
||||
If a show is overbooked, which means the total playout duration is longer than the time allowed for the show, a brown row indicates that the item will be faded out when the show ends. A red row indicates that the item will not be played at all. The length of the overbooking is shown in minutes and seconds in the last row of the show. To remove the extra items from the end of an overbooked show, click the **Scissors** button at the top left of the table.
|
||||
If a show is overbooked, which means the total playout duration is longer than
|
||||
the time allowed for the show, a brown row indicates that the item will be faded
|
||||
out when the show ends. A red row indicates that the item will not be played at
|
||||
all. The length of the overbooking is shown in minutes and seconds in the last
|
||||
row of the show. To remove the extra items from the end of an overbooked show,
|
||||
click the **Scissors** button at the top left of the table.
|
||||
|
||||

|
||||
Alternatively, check the boxes for items which have not yet completed playout,
|
||||
and click the **Trashcan** button, to the right of the Scissors, to remove them
|
||||
from the schedule. If you remove the currently playing item, playout will skip
|
||||
to the next item in the show automatically, so you should make sure you have
|
||||
enough items remaining in the show to avoid dead air.
|
||||
|
||||
Alternatively, check the boxes for items which have not yet completed playout, and click the **Trashcan** button, to the right of the Scissors, to remove them from the schedule. If you remove the currently playing item, playout will skip to the next item in the show automatically, so you should make sure you have enough items remaining in the show to avoid dead air.
|
||||

|
||||
|
||||

|
||||
If you have a long schedule displayed, and you wish to skip to the currently
|
||||
playing item, click the button with the end arrow icon, to the right of the
|
||||
**Trashcan**.
|
||||
|
||||
If you have a long schedule displayed, and you wish to skip to the currently playing item, click the button with the end arrow icon, to the right of the **Trashcan**.
|
||||
To cancel the current show completely, click the red button to the right again.
|
||||
A pop-up window will ask you to confirm the cancellation, as this action cannot
|
||||
be undone.
|
||||
|
||||
To cancel the current show completely, click the red button to the right again. A pop-up window will ask you to confirm the cancellation, as this action cannot be undone.
|
||||

|
||||
|
||||

|
||||
|
||||
Items which are no longer available have an exclamation mark icon in the second column. This may happen for media files which were part of previous shows, and were removed from Libretime's library (main storage or watched folders) subsequently. Items which are included in forthcoming shows cannot be removed from the Library via the Libretime interface.
|
||||
|
||||

|
||||
Items which are no longer available have an exclamation mark icon in the second
|
||||
column. This may happen for media files which were part of previous shows, and
|
||||
were removed from LibreTime's library (main storage or watched folders)
|
||||
subsequently. Items which are included in forthcoming shows cannot be removed
|
||||
from the Library via the LibreTime interface.
|
||||
|
||||
Adding content to a running show
|
||||
--------------------------------
|
||||
|
||||
After you have found the items that you want using the search tools, you can then drag and drop them from the library table on the left side of the page into the shows on the right side, including the current playing show.
|
||||
After you have found the items that you want using the search tools, you can
|
||||
then drag and drop them from the library table on the left side of the page into
|
||||
the shows on the right side, including the current playing show.
|
||||
|
||||
If the current show has nothing playing out at the time, the new item will begin playing immediately. This manual triggering of playout can be used as a live assist technique, in which the Libretime server's soundcard output is mixed with other sources such as microphones or telephone hybrids on its way to a transmitter, or a separate stream encoder. For instance, a live show's host may not wish to cut off a studio discussion in order to play music at a fixed time.
|
||||
If the current show has nothing playing out at the time, the new item will begin
|
||||
playing immediately. This manual triggering of playout can be used as a live
|
||||
assist technique, in which the LibreTime server's soundcard output is mixed with
|
||||
other sources such as microphones or telephone hybrids on its way to a
|
||||
transmitter, or a separate stream encoder. For instance, a live show's host may
|
||||
not wish to cut off a studio discussion in order to play music at a fixed time.
|
||||
|
||||

|
||||

|
||||
|
||||
You can also select multiple items using the **Select** menu button, just beneath the simple search field, which has the options to **Select this page** of search results, **Deselect this page** and **Deselect all**. Alternatively, use the checkboxes on the left side of the library table to select specific items. Then drag one of the items into the show to add all of the selected items, or click the **Add to selected show** button, which has a plus icon. If you wish, you can also use the **Trashcan** button to permanently remove items from Libretime's library. Only *admin* users have permission to delete all items.
|
||||
You can also select multiple items using the **Select** menu button, just
|
||||
beneath the simple search field, which has the options to **Select this page**
|
||||
of search results, **Deselect this page** and **Deselect all**. Alternatively,
|
||||
use the checkboxes on the left side of the library table to select specific
|
||||
items. Then drag one of the items into the show to add all of the selected
|
||||
items, or click the **Add to selected show** button, which has a plus icon. If
|
||||
you wish, you can also use the **Trashcan** button to permanently remove items
|
||||
from LibreTime's library. Only *admin* users have permission to delete all
|
||||
items.
|
||||
|
||||
To insert checkbox selected items at a specific time in the show schedule, click one of the grey and white triangle icons on the left side of the schedule table, which will change to red and white. A red horizontal line will be shown at the insertion point. Then click the **Add to selected show** button in the library table.
|
||||
To insert checkbox selected items at a specific time in the show schedule, click
|
||||
one of the songs in the schedule table. Then click the **Add to selected show**
|
||||
button in the library table. This will insert the library songs after the
|
||||
selected scheduled song.
|
||||
|
||||
To add a single item at the insertion point, double-click on it in the library. There is no need to select or drag the item first.
|
||||
To add a single item at the insertion point, double-click on it in the library.
|
||||
There is no need to select or drag the item first.
|
||||
|
||||

|
||||
Right-clicking on a song in the schedule table will show a pop-up. This pop-up
|
||||
menu also enables you to audition the entire show in advance of playout, or
|
||||
remove the item that was clicked on from the show.
|
||||
|
||||
Another way to create an insertion point is to click an item in the show table, then click **Select cursor** on the small pop-up menu that will appear. This pop-up menu also enables you to audition the entire show in advance of playout, or remove the item that was clicked on from the show.
|
||||
|
||||

|
||||
|
||||
Multiple insertion points can be enabled, so that the same item is inserted into the schedule at different times. For example, you may wish to play a news report every hour, or a station ident after every five music files.
|
||||
|
||||
A live show set for recording from the Libretime server's sound card is displayed with a red dot icon in the first column. It would not contain any files or playlists, smart blocks or web streams.
|
||||
|
||||

|
||||
Multiple insertion points can be enabled, so that the same item is inserted into
|
||||
the schedule at different times. For example, you may wish to play a news report
|
||||
every hour, or a station ident after every five music files.
|
||||
|
|
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 107 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 62 KiB |
|
@ -1,10 +1,10 @@
|
|||
Libretime has a feature which enables your station's show and schedule information to be displayed on remote websites. This feature is included in Libretime because you would not usually invite the general public to access your Libretime server directly. If you had very large numbers of people requesting data from the Libretime server at once, the burst of network traffic might overload the server, potentially disrupting your broadcasts. If carried out maliciously, this network overload is known as a *denial of service attack*.
|
||||
LibreTime has a feature which enables your station's show and schedule information to be displayed on remote websites. This feature is included in LibreTime because you would not usually invite the general public to access your LibreTime server directly. If you had very large numbers of people requesting data from the LibreTime server at once, the burst of network traffic might overload the server, potentially disrupting your broadcasts. If carried out maliciously, this network overload is known as a *denial of service attack*.
|
||||
|
||||
Instead, your public-facing web server can retrieve the schedule information from the Libretime API. This information can then be displayed on your broadcast station or affiliate websites by a content management system, such as Sourcefabric's **Newscoop** (<http://newscoop.sourcefabric.org/>). It can be presented using Javascript widgets and styled with CSS, in any format that you require. The **Broadcaster** theme for Newscoop (<https://github.com/newscoop/theme-Broadcaster>) integrates these widgets with ready-to-use styles.
|
||||
Instead, your public-facing web server can retrieve the schedule information from the LibreTime API. This information can then be displayed on your broadcast station or affiliate websites by a content management system, such as Sourcefabric's **Newscoop** (<http://newscoop.sourcefabric.org/>). It can be presented using Javascript widgets and styled with CSS, in any format that you require. The **Broadcaster** theme for Newscoop (<https://github.com/newscoop/theme-Broadcaster>) integrates these widgets with ready-to-use styles.
|
||||
|
||||
There are two kinds of information that can be retrieved remotely from the Libretime API without authentication; the metadata for the current show plus the following show (live-info), or the schedule for the current week and the week ahead (week-info). The week-info metadata includes show names, times, and individual show URLs on your public website. That way, the audience for your station can click through from the schedule information to find out more about a particular show, or download a previous show recording that you might have made available.
|
||||
There are two kinds of information that can be retrieved remotely from the LibreTime API without authentication; the metadata for the current show plus the following show (live-info), or the schedule for the current week and the week ahead (week-info). The week-info metadata includes show names, times, and individual show URLs on your public website. That way, the audience for your station can click through from the schedule information to find out more about a particular show, or download a previous show recording that you might have made available.
|
||||
|
||||
If your Libretime server was accessible at https://libretime.example.com the live show information could be retrieved by your web server using this URL:
|
||||
If your LibreTime server was accessible at https://libretime.example.com the live show information could be retrieved by your web server using this URL:
|
||||
|
||||
https://libretime.example.com/api/live-info/?callback
|
||||
|
||||
|
@ -126,22 +126,22 @@ In this case, the metadata returned would be in a different format from the abov
|
|||
"sunday":[],
|
||||
"AIRTIME_API_VERSION":"1.1"})
|
||||
|
||||
If you see the message *You are not allowed to access this resource* when attempting to display schedule information in your web browser, log in to the Libretime administration interface, click *System* in the main menu, then *Preferences*. Set **Allow Remote Websites To Access "Schedule" Info?** to **Enabled**, click the **Save** button, then refresh the browser window opened on the schedule export URL. If you do not wish to make schedule information available to the public, set this option to **Disabled** instead.
|
||||
If you see the message *You are not allowed to access this resource* when attempting to display schedule information in your web browser, log in to the LibreTime administration interface, click *System* in the main menu, then *Preferences*. Set **Allow Remote Websites To Access "Schedule" Info?** to **Enabled**, click the **Save** button, then refresh the browser window opened on the schedule export URL. If you do not wish to make schedule information available to the public, set this option to **Disabled** instead.
|
||||
|
||||

|
||||
|
||||
Caching schedule information
|
||||
----------------------------
|
||||
|
||||
If the Libretime server is behind a firewall, or you want to protect the Libretime server from large numbers of schedule requests, you may wish to cache the schedule information on a public-facing or intermediate server. You can then create a firewall rule that only allows the schedule server to connect to the Libretime server, in addition to any remote users of the Libretime web interface.
|
||||
If the LibreTime server is behind a firewall, or you want to protect the LibreTime server from large numbers of schedule requests, you may wish to cache the schedule information on a public-facing or intermediate server. You can then create a firewall rule that only allows the schedule server to connect to the LibreTime server, in addition to any remote users of the LibreTime web interface.
|
||||
|
||||
Your system administrator can set up schedule caching on a standard Apache and PHP enabled web server with the *curl* program installed, using the following steps:
|
||||
|
||||
1. Create a shell script on the schedule server (schedule.example.com) that polls the remote Libretime server (libretime.example.com), and writes the metadata returned into a pair of local temporary files:
|
||||
1. Create a shell script on the schedule server (schedule.example.com) that polls the remote LibreTime server (libretime.example.com), and writes the metadata returned into a pair of local temporary files:
|
||||
|
||||
sudo nano /usr/local/bin/libretime-schedule.sh
|
||||
|
||||
The content of this file should be like the following script, replacing libretime.example.com with the name of your Libretime server:
|
||||
The content of this file should be like the following script, replacing libretime.example.com with the name of your LibreTime server:
|
||||
|
||||
#!/bin/sh
|
||||
|
||||
|
@ -220,12 +220,12 @@ containing the line:
|
|||
|
||||
* * * * * www-data /usr/local/bin/libretime-schedule.sh
|
||||
|
||||
The schedule server will now be serving the same show information as the Libretime server, with a cache lifetime of one minute. You can adjust the cache lifetime by altering the frequency of the cron job that polls the Libretime server.
|
||||
The schedule server will now be serving the same show information as the LibreTime server, with a cache lifetime of one minute. You can adjust the cache lifetime by altering the frequency of the cron job that polls the LibreTime server.
|
||||
|
||||
Pushing schedule information via FTP or SSH
|
||||
-------------------------------------------
|
||||
|
||||
If there is no inbound access to the Libretime server at all, an FTP script can be used to push cached schedule data from Libretime to an external web server. The standard ftp command should be available on the Libretime server and the external web server should have a suitably restricted FTP account set up. After following steps 1 and 2 above to export schedule data to a pair of temporary files on the Libretime server, create a new script on the Libretime server to automatically make the upload:
|
||||
If there is no inbound access to the LibreTime server at all, an FTP script can be used to push cached schedule data from LibreTime to an external web server. The standard ftp command should be available on the LibreTime server and the external web server should have a suitably restricted FTP account set up. After following steps 1 and 2 above to export schedule data to a pair of temporary files on the LibreTime server, create a new script on the LibreTime server to automatically make the upload:
|
||||
|
||||
sudo nano /usr/local/bin/upload-schedule-data.sh
|
||||
|
||||
|
|
|
@ -1,41 +1,77 @@
|
|||

|
||||
# Settings
|
||||
|
||||
On the <span style="font-weight: bold;">Settings</span> menu, click **General** to set your **Station Name**. This text is shown in your web browser's title bar when your station staff are logged into Libretime, and optionally in stream metadata. You can also set a **Station Description** and **Station Logo** here.
|
||||

|
||||
|
||||

|
||||
On the **Settings** menu, click **General** to set your **Station Name**. This
|
||||
text is shown in your web browser's title bar when your station staff are logged
|
||||
into LibreTime, and optionally in stream metadata. You can also set a **Station
|
||||
Description** and **Station Logo** here.
|
||||
|
||||

|
||||
|
||||
The **Default Interface Language** drop-down menu sets the default localization for your Libretime instance, and the **Station Timezone** drop-down menu can be used to display local time at your station. Libretime stores show times internally in UTC format (similar to *Greenwich Mean Time*), but displays local time for the convenience of your station staff. You can also set the day of the week that you wish to start your station's weekly schedule on, which defaults to Sunday.
|
||||
The **Default Interface Language** drop-down menu sets the default localization
|
||||
for your LibreTime instance, and the **Station Timezone** drop-down menu can be
|
||||
used to display local time at your station. LibreTime stores show times
|
||||
internally in UTC format (similar to *Greenwich Mean Time*), but displays local
|
||||
time for the convenience of your station staff. You can also set the day of the
|
||||
week that you wish to start your station's weekly schedule on, which defaults
|
||||
to Sunday.
|
||||
|
||||
Initially, the **Default Fade In** and **Default Fade Out** times for automated fades are set to half a second, and the **Default Crossfade Duration** is set to zero seconds. Custom fade and crossfade times can be set for adjacent items in a playlist or static smart block. See the chapter *Library* for details.
|
||||
Initially, the **Default Fade In** and **Default Fade Out** times for automated
|
||||
fades are set to half a second, and the **Default Crossfade Duration** is set to
|
||||
zero seconds. Custom fade and crossfade times can be set for adjacent items in a
|
||||
playlist or static smart block. See the chapter *Library* for details.
|
||||
|
||||
The **Intro Autoloading Playlist** enables you to select a playlist that will be scheduled at the beginning of every show that has enabled an autoloading playlist. This can be used for instance to insert a station ID or other announcements a the top of every show.
|
||||
The **Intro Autoloading Playlist** enables you to select a playlist that will be
|
||||
scheduled at the beginning of every show that has enabled an autoloading
|
||||
playlist. This can be used for instance to insert a station ID or other
|
||||
announcements a the top of every show.
|
||||
|
||||
The **Outro Autoloading Playlist** enables you to select a playlist that will be scheduled after the content of every show with an autoloading playlist.
|
||||
The **Outro Autoloading Playlist** enables you to select a playlist that will be
|
||||
scheduled after the content of every show with an autoloading playlist.
|
||||
|
||||
The **Overwrite Podcast Episode Metatags** option which is enabled by default causes LibreTime to override the Artist, Title & Album fields on any tracks downloaded from a podcast with information from the RSS feed.
|
||||
The **Overwrite Podcast Episode Metatags** option which is enabled by default
|
||||
causes LibreTime to override the Artist, Title & Album fields on any tracks
|
||||
downloaded from a podcast with information from the RSS feed.
|
||||
|
||||
The **Generate a smartblock and a playlist upon creation of a new podcast** option when enabled will create a smartblock matching the newest episode of a podcast and a playlist containing that smartblock automatically upon adding a Podcast to LibreTime. This can also be done manually by the generate smartblock and playlist button under a podcasts settings which is why it is disabled by default.
|
||||
The **Generate a smartblock and a playlist upon creation of a new podcast**
|
||||
option when enabled will create a smartblock matching the newest episode of a
|
||||
podcast and a playlist containing that smartblock automatically upon adding a
|
||||
podcast to LibreTime. This can also be done manually by the generate smartblock
|
||||
and playlist button under a podcasts settings which is why it is disabled by
|
||||
default.
|
||||
|
||||

|
||||

|
||||
|
||||
You can enable live, read-only access to the Libretime schedule calendar for your station's public website with the **Public LibreTime API** option, if you wish. (There is more about this feature in the [*Exporting the schedule*](../exporting-the-schedule/index.md) chapter, in the *Advanced Configuration* section of this book).
|
||||
You can enable live, read-only access to the LibreTime schedule calendar for
|
||||
your station's public website with the **Public LibreTime API** option, if you
|
||||
wish. (There is more about this feature in the
|
||||
[*Exporting the schedule*](../exporting-the-schedule/index.md) chapter, in the
|
||||
*Advanced Configuration* section of this book).
|
||||
|
||||
The **Allowed CORS URLs** is intended to deal with situations where you want a remote site with a different domain to access the API.
|
||||
The **Allowed CORS URLs** is intended to deal with situations where you want a
|
||||
remote site with a different domain to access the API.
|
||||
|
||||
The **Display login button on your Radio Page?** will determine whether visitors to your site see a link to login. If this is disabled DJs and admins will need to goto http://SITEURL/login to be able to login.
|
||||
|
||||
The **Tune-In Settings** section is intended for stations that have partnered with TuneIn to automatically push their now playing metadata to TuneIn. This hasn't been tested and also requires special credentials from TuneIn to test.
|
||||
|
||||
|
||||

|
||||
The **Dangerous Options** section provides an administrator the ability to erase the entire LibreTime library.
|
||||
The **Display login button on your Radio Page?** will determine whether visitors
|
||||
to your site see a link to login. If this is disabled DJs and admins will need
|
||||
to goto http://SITEURL/login to be able to login.
|
||||
|
||||
When you are done remember click the **Save** button at the top or bottom of the form.
|
||||
The **Tune-In Settings** section is intended for stations that have partnered
|
||||
with TuneIn to automatically push their now playing metadata to TuneIn. This
|
||||
hasn't been tested and also requires special credentials from TuneIn.
|
||||
|
||||

|
||||
|
||||
The **Dangerous Options** section provides an administrator the ability to erase
|
||||
the entire LibreTime library.
|
||||
|
||||
When you are done remember click the **Save** button at the top or bottom of the
|
||||
form.
|
||||
|
||||

|
||||
|
||||
Individual Libretime users can choose another interface localization when they log in, or set personal preferences for localization and time zone by clicking their username on the right side of the menu bar.
|
||||
Individual LibreTime users can choose another interface localization when they
|
||||
log in, or set personal preferences for localization and time zone by clicking
|
||||
their username on the right side of the menu bar.
|
||||
|
||||

|
||||
|
||||
|
|
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 20 KiB |
|
@ -1,20 +1,32 @@
|
|||
If the server is only being used for LibreTime and has a web browser installed, you can access the administration interface directly on that server by opening the address:
|
||||
# Getting Started
|
||||
|
||||
If the server is only being used for LibreTime and has a web browser installed,
|
||||
you can access the administration interface directly on that server by opening
|
||||
the address:
|
||||
|
||||
http://localhost/
|
||||
|
||||
If you have set up LibreTime so that it can be accessed from other computers, you would use a domain name instead. For example:
|
||||
If you have set up LibreTime so that it can be accessed from other computers,
|
||||
you would use a domain name instead. For example:
|
||||
|
||||
https://libretime.example.com/
|
||||
|
||||
You can log in for the first time with the user name *admin* and the password set during installation. Your browser should automatically focus on the **Username** field.
|
||||
You can log in for the first time with the user name *admin* and the password
|
||||
set during installation. Your browser should automatically focus on the
|
||||
**Username** field.
|
||||
|
||||

|
||||

|
||||
|
||||
You will see a link **Reset password** below the password field, which enables users to obtain a password reminder by email. You will need to have a mailserver configured to work with PHP for this to work. There is an issue open to add documentation for this. [#724](https://github.com/LibreTime/libretime/issues/724)
|
||||
You will see a link **Reset password** below the password field, which enables
|
||||
users to obtain a password reminder by email. You will need to have a
|
||||
mailserver configured to work with PHP for this to work. There is an issue open
|
||||
to add documentation for this
|
||||
([#724](https://github.com/LibreTime/libretime/issues/724)).
|
||||
|
||||

|
||||
|
||||
The **E-mail** address you enter must match the address stored in the database for your **Username**.
|
||||
The **E-mail** address you enter must match the address stored in the database
|
||||
for your **Username**.
|
||||
|
||||

|
||||
|
||||
|
@ -22,44 +34,54 @@ The **E-mail** address you enter must match the address stored in the database f
|
|||
The Master Panel
|
||||
----------------
|
||||
|
||||
The **Master Panel** is present at the top of every page of the LibreTime interface. On the left hand side, the Master Panel displays the details of the **Previous** file played out,
|
||||
the current file playing (with an orange progress bar and time elapsed/time remaining), and the details of the **Next**
|
||||
file due to play. It also displays the name and scheduled time of the current show, with a blue progress bar.
|
||||
The **Master Panel** is present at the top of every page of the LibreTime
|
||||
interface. On the left hand side, the Master Panel displays the details of the
|
||||
**Previous** file played out, the current file playing (with an orange progress
|
||||
bar and time elapsed/time remaining), and the details of the **Next** file due
|
||||
to play. It also displays the name and scheduled time of the current show, with
|
||||
a blue progress bar.
|
||||
|
||||

|
||||
|
||||
Beneath this side of the Master Panel is the main navigation menu. We'll be looking at the contents of these menus in the
|
||||
following chapters of this book.
|
||||
Beneath this side of the Master Panel is the main navigation menu. We'll be
|
||||
looking at the contents of these menus in the following chapters of this book.
|
||||
|
||||

|
||||
|
||||
On the right hand side of the Master Panel are the switches for the **Source Streams**, which enable you to switch from
|
||||
scheduled play to remote live sources, and back. (See the chapter *Stream settings* for details of this feature). The
|
||||
**On Air** indicator turns from dark grey to red whenever audio is being played out. Underneath this indicator is a
|
||||
**Listen** button, which opens a pop-up player that can be used to audition the available playout streams.
|
||||
On the right hand side of the Master Panel are the switches for the **Source
|
||||
Streams**, which enable you to switch from scheduled play to remote live
|
||||
sources, and back. (See the chapter *Stream settings* for details of this
|
||||
feature). The **On Air** indicator turns from dark grey to red whenever audio
|
||||
is being played out. Underneath this indicator is a **Listen** button, which
|
||||
opens a pop-up player that can be used to audition the available playout
|
||||
streams.
|
||||
|
||||
There is also a clock indicating the **Station time** and time zone. Beneath the clock and just to the left, the name of
|
||||
the user currently logged in is displayed, and there is the link for you to **Logout**.
|
||||
There is also a clock indicating the **Station time** and time zone. Beneath
|
||||
the clock and just to the left, the name of the user currently logged in is
|
||||
displayed, and there is the link for you to **Logout**.
|
||||
|
||||

|
||||
|
||||
Clicking the username link opens a page in which you can update your LibreTime password, contact details, language and time
|
||||
zone preferences. Click the **Save** button once you have made the changes that you require.
|
||||
Clicking the username link opens a page in which you can update your LibreTime
|
||||
password, contact details, language and time zone preferences. Click the
|
||||
**Save** button once you have made the changes that you require.
|
||||
|
||||

|
||||
|
||||
On the right of the Logout link, clicking the green check mark opens a pop-up window with information about the version of
|
||||
LibreTime installed. If your LibreTime installation is not the latest version available, the green check mark changes to a
|
||||
green upgrade arrow. Should your LibreTime installation get too far out of date, this arrow will change to a red exclamation
|
||||
mark.
|
||||
On the right of the Logout link, clicking the green check mark opens a pop-up
|
||||
window with information about the version of LibreTime installed. If your
|
||||
LibreTime installation is not the latest version available, the green check
|
||||
mark changes to a green upgrade arrow. Should your LibreTime installation get
|
||||
too far out of date, this arrow will change to a red exclamation mark.
|
||||
|
||||
<img src="static/Screenshot543-Running_latest_version_250.png" width="595" height="230" />
|
||||

|
||||
|
||||
Checking an Icecast server
|
||||
--------------------------
|
||||
|
||||
If you have installed an Icecast streaming media server, you can check that Icecast is running by opening its default server
|
||||
port of 8000 in your web browser. For example, on the server itself, you can use:
|
||||
If you have installed an Icecast streaming media server, you can check that
|
||||
Icecast is running by opening its default server port of 8000 in your web
|
||||
browser. For example, on the server itself, you can use:
|
||||
|
||||
http://localhost:8000
|
||||
|
||||
|
@ -67,7 +89,8 @@ or from another machine, using the domain name of the Icecast server:
|
|||
|
||||
http://streaming.example.com:8000
|
||||
|
||||
You should see the Icecast status page, with details of any connections that your LibreTime server has made to this Icecast
|
||||
server. If you have only just installed LibreTime, there may not be any media playing out yet.
|
||||
You should see the Icecast status page, with details of any connections that
|
||||
your LibreTime server has made to this Icecast server. If you have only just
|
||||
installed LibreTime, there may not be any media playing out yet.
|
||||
|
||||

|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
This listing is provided to help ensure that the correct model parameter is passed to the ALSA kernel module for an Intel HDA soundcard, if one is fitted to your Libretime server. See the chapter *Preparing the server* in this book for more details.
|
||||
This listing is provided to help ensure that the correct model parameter is passed to the ALSA kernel module for an Intel HDA soundcard, if one is fitted to your LibreTime server. See the chapter *Preparing the server* in this book for more details.
|
||||
|
||||
Model name Description
|
||||
---------- -----------
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
The first entry on Libretime's **Help** menu offers a **Getting Started** guide
|
||||
The first entry on LibreTime's **Help** menu offers a **Getting Started** guide
|
||||
for new users. Further down, there is also a link to the online version of this
|
||||
**User Manual**.
|
||||
|
||||

|
||||
|
||||
You can visit the Libretime online support forum at
|
||||
You can visit the LibreTime online support forum at
|
||||
<https://discourse.libretime.org/c/get-help> to ask for help from the community
|
||||
regarding your LibreTime setup.
|
||||
|
||||
|
@ -12,11 +12,11 @@ regarding your LibreTime setup.
|
|||
Bug reporting
|
||||
-------------
|
||||
|
||||
Libretime needs your input to improve. If you think you've found a bug, please
|
||||
LibreTime needs your input to improve. If you think you've found a bug, please
|
||||
visit <https://github.com/LibreTime/libretime>. Create a bug report by selecting
|
||||
**Issues**, then **New Issue**. That way, the Libretime team can keep track of
|
||||
**Issues**, then **New Issue**. That way, the LibreTime team can keep track of
|
||||
your problem and notify you when it has been fixed. You can also suggest
|
||||
improvements and new features for Libretime on that site.
|
||||
improvements and new features for LibreTime on that site.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ History
|
|||
|
||||
On the History menu, the **Playout History** page enables you to view a list of files played within a specific date and time range. This page is designed to help your station prepare reports for music royalty collection societies and regulatory agencies.
|
||||
|
||||
Search results can be copied to the clipboard using the **Copy** button, exported as data in **CSV** format (comma separated values), exported as a document in **PDF** format, or displayed in a printer-friendly format using the **Print** button. (Your web browser must have an Adobe Flash plugin installed for these buttons to appear). Press the **Esc** key to return to the Libretime interface once the print job is complete.
|
||||
Search results can be copied to the clipboard using the **Copy** button, exported as data in **CSV** format (comma separated values), exported as a document in **PDF** format, or displayed in a printer-friendly format using the **Print** button. (Your web browser must have an Adobe Flash plugin installed for these buttons to appear). Press the **Esc** key to return to the LibreTime interface once the print job is complete.
|
||||
|
||||
This page has three tabs: **Log Sheet**, **File Summary** and **Show Summary**. On any of these tabs, you can select a date and time range by clicking the calendar and clock icons in the upper left corner of the page. Then click the search button, which has a magnifying glass icon, to the right. A list of files played during that date and time range will appear further down the page.
|
||||
|
||||
|
@ -22,7 +22,7 @@ On the **Show Summary** tab, click the name of a show within the search range to
|
|||
Manual logging
|
||||
--------------
|
||||
|
||||
If your station features playout from analogue sources such as turntables or microphones, there is no automatic metadata for Libretime to collect from these inputs. To ensure that the playout history is complete, you can add log entries manually by clicking the **+ Create Entry** button. This action opens a pop-up window with default fields of Start Time, End Time, Title and Creator. Click the **Find** button to automatically fill the **Choose Show Instance** menu with the names of shows that took place within the specified time range. Then click the **Save** button to enter the new item into the playout history.
|
||||
If your station features playout from analogue sources such as turntables or microphones, there is no automatic metadata for LibreTime to collect from these inputs. To ensure that the playout history is complete, you can add log entries manually by clicking the **+ Create Entry** button. This action opens a pop-up window with default fields of Start Time, End Time, Title and Creator. Click the **Find** button to automatically fill the **Choose Show Instance** menu with the names of shows that took place within the specified time range. Then click the **Save** button to enter the new item into the playout history.
|
||||
|
||||
<img src="static/Screenshot536-Manual_login_250.png" width="530" height="575" />
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
The streaming host configuration for Libretime is shown in the file */etc/airtime/liquidsoap.cfg* which is automatically generated by the **Streams** page, found on the **System** menu of the Libretime administration interface. For this reason, you would not normally edit the streaming configuration manually, as any changes are likely to be overwritten by the administration interface.
|
||||
The streaming host configuration for LibreTime is shown in the file */etc/airtime/liquidsoap.cfg* which is automatically generated by the **Streams** page, found on the **System** menu of the LibreTime administration interface. For this reason, you would not normally edit the streaming configuration manually, as any changes are likely to be overwritten by the administration interface.
|
||||
|
||||
Database and RabbitMQ hosts
|
||||
---------------------------
|
||||
|
@ -7,7 +7,7 @@ Optionally, you may wish to edit the file */etc/airtime/airtime.conf* to set the
|
|||
|
||||
sudo nano /etc/airtime/airtime.conf
|
||||
|
||||
You can also set options for RabbitMQ messaging, the Libretime server and SoundCloud uploads in this file, although you should not normally need to adjust the defaults unless you are running a large Libretime system distributed across multiple servers. To run the Libretime server in demo mode, which changes the greeting on the login page and prevents user accounts from being created or modified, set the value of *demo* to 1.
|
||||
You can also set options for RabbitMQ messaging, the LibreTime server and SoundCloud uploads in this file, although you should not normally need to adjust the defaults unless you are running a large LibreTime system distributed across multiple servers. To run the LibreTime server in demo mode, which changes the greeting on the login page and prevents user accounts from being created or modified, set the value of *demo* to 1.
|
||||
|
||||
[database]
|
||||
host = localhost
|
||||
|
@ -46,9 +46,9 @@ Save and close the file with **Ctrl+O** and **Ctrl+X**. If you have changed the
|
|||
|
||||
sudo airtime-update-db-settings
|
||||
|
||||
to make sure all of Libretime's database configuration files are updated. This command should output the following text to the server console:
|
||||
to make sure all of LibreTime's database configuration files are updated. This command should output the following text to the server console:
|
||||
|
||||
Libretime root folder found at /usr/share/airtime
|
||||
LibreTime root folder found at /usr/share/airtime
|
||||
Updating /usr/share/airtime/application/configs/application.ini
|
||||
Updating /usr/share/airtime/build/build.properties
|
||||
Updating /usr/share/airtime/build/runtime-conf.xml
|
||||
|
@ -71,7 +71,7 @@ If you have changed the *base\_url*, *base\_port* or *base\_dir* setting in */et
|
|||
Playout and recorder settings
|
||||
-----------------------------
|
||||
|
||||
Settings for pypo, the playout and recording engine used by Libretime, are found in the file */etc/airtime/airtime.conf*. After making changes to this file, you will have to issue the command:
|
||||
Settings for pypo, the playout and recording engine used by LibreTime, are found in the file */etc/airtime/airtime.conf*. After making changes to this file, you will have to issue the command:
|
||||
|
||||
sudo /etc/init.d/airtime-playout restart
|
||||
|
||||
|
|
|
@ -1,53 +1,34 @@
|
|||
How to build a basic schedule with LibreTime
|
||||
# How to build a basic schedule with LibreTime
|
||||
|
||||
a description of the steps involved in adding a show to the LibreTime
|
||||
calendar schedule for future playback including repeating shows
|
||||
A description of the steps involved in adding a show to the LibreTime calendar
|
||||
schedule for future playback including repeating shows
|
||||
|
||||
Audience: Program Managers and Admins
|
||||
**Audience**: Program Managers and Admins
|
||||
|
||||
Click on the Calendar menu item on the left side of the screen
|
||||
|
||||
Click on the blue New Show button
|
||||
|
||||
Under **What** - type in a Name to replace Untitled Show
|
||||
|
||||
Optional – add URL, Genre and Description
|
||||
|
||||
Under **When** click **In The Future**
|
||||
|
||||
Select a date and time for the **Start Time** and **End Time**
|
||||
|
||||
Time is entered as 00:00 where the first 2 digits are the hour in
|
||||
military time and the second 2 digits are the minutes. So 15:00 is 3PM.
|
||||
|
||||
Note: 24 hours is the maximum show time and Midnight is 00:00 of the
|
||||
next date.
|
||||
|
||||
Click **Repeats** if this show will air more than once.
|
||||
|
||||
If it airs at the same time of the day on more than one day of the week
|
||||
then check the boxes next to the Days it should repeat on.
|
||||
|
||||
If this is a limited engagement show uncheck **No End?** and select the
|
||||
date at which this show should no longer be on the schedule.
|
||||
|
||||
**Autoloading Playlist** is used if you will generate the content for
|
||||
this show using a playlist possibly containing smartblocks to
|
||||
dynamically generate it.
|
||||
|
||||
Basically if this is checked and a playlist is selected LibreTime will
|
||||
schedule it an hour before the show is set to air as well as any **Intro
|
||||
& Outro Playlist** configured in the Admin settings.
|
||||
|
||||
See other How Tos for ideas about how to use AutoLoading playlists.
|
||||
|
||||
Live Stream Input contains the streaming information for DJs and if Use
|
||||
LibreTime Authentication is checked then DJs can login to stream live if
|
||||
they are added to the Who section.
|
||||
|
||||
Who is where you can give DJ users permission to schedule tracks for
|
||||
1. Click on the Calendar menu item on the left side of the screen
|
||||
1. Click on the blue New Show button
|
||||
1. Under **What** - type in a Name to replace Untitled Show
|
||||
1. Optional – add URL, Genre and Description
|
||||
1. Under **When** click **In The Future**
|
||||
1. Select a date and time for the **Start Time** and **End Time**
|
||||
1. Time is entered as 00:00 where the first 2 digits are the hour in 24 hour
|
||||
time and the second 2 digits are the minutes. So 15:00 is 3PM. *Note: 24 hours
|
||||
is the maximum show time and Midnight is 00:00 of the next date.*
|
||||
1. Click **Repeats** if this show will air more than once.
|
||||
1. If it airs at the same time of the day on more than one day of the week then
|
||||
check the boxes next to the Days it should repeat on.
|
||||
1. If this is a limited engagement show uncheck **No End?** and select the date
|
||||
at which this show should no longer be on the schedule.
|
||||
* **Autoloading Playlist** is used if you will generate the content for this
|
||||
show using a playlist possibly containing smartblocks to dynamically generate
|
||||
it. Ihf this is checked and a playlist is selected, LibreTime will schedule it
|
||||
an hour before the show is set to air as well as any **Intro & Outro Playlist**
|
||||
configured in the Admin settings. See other How Tos for ideas about how to use Autoloading playlists.
|
||||
1. **Live Stream Input** contains the streaming information for DJs and if
|
||||
**Use LibreTime Authentication** is checked then DJs can login to stream live
|
||||
if they are added to the **Who** section.
|
||||
1. **Who** is where you can give DJ users permission to schedule tracks for
|
||||
this show and stream live during the show spot. You can check the box
|
||||
next to them or type their name and click the drop down.
|
||||
|
||||
Style allows you to select a custom color and add a show Logo for this
|
||||
1. **Style** allows you to select a custom color and add a show Logo for this
|
||||
show.
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
How to set up genre specific Auto DJ with autloading playlist
|
||||
# How to set up genre specific Auto DJ with autoloading playlist
|
||||
|
||||
Intro: In this LibreTime tutorial we will focus on how to build a
|
||||
traditional auto DJ system where we use a feature called smart blocks
|
||||
and auto loading playlists to play random music tracks of a certain
|
||||
genre during a show. This tutorial is primarily focused on program
|
||||
managers but users who are DJs can also benefit from smart blocks but
|
||||
will only be able to manually schedule them.
|
||||
In this tutorial we will focus on how to build a traditional auto DJ system
|
||||
where we use a feature called smart blocks and auto loading playlists to play
|
||||
random music tracks of a certain genre during a show. This tutorial is
|
||||
primarily focused on program managers but users who are DJs can also benefit
|
||||
from smart blocks but will only be able to manually schedule them.
|
||||
|
||||
So for the purposes of this tutorial we are going to assume that you
|
||||
have uploaded a number of files of music with the genre metadata all
|
||||
matching a specific genre for instance alternative. This can be done
|
||||
ahead of time but LibreTime has no way of automatically grouping sub
|
||||
genres and so it is important that you spend some time manicuring the
|
||||
track metadata before you upload it to libretime as there is not
|
||||
currently a way to bulk edit tracks from inside libretime. Also once
|
||||
matching a specific genre, for instance, Alternative. This can be done
|
||||
ahead of time, but LibreTime has no way of automatically grouping sub
|
||||
genres and so it is important that you spend some time curating the
|
||||
track metadata before you upload it to LibreTime as there is not
|
||||
currently a way to bulk edit tracks from inside LibreTime. Also once
|
||||
tracks are uploaded the metadata of the track itself isn’t changed but
|
||||
just how it is represented in the libretime database. This might change
|
||||
just how it is represented in the LibreTime database. This might change
|
||||
in the future but would only affect you if you were downloading tracks
|
||||
and uploading them to another instance and hoped that the changes you
|
||||
made were saved.
|
||||
|
@ -93,11 +92,11 @@ to add a promos or musical sound bridges at the end that are also time
|
|||
remaining but allow overfill.
|
||||
|
||||
It is possible that we could improve the way the autoloading playlists
|
||||
work in the future, please check out libretime.org for the latest
|
||||
work in the future, please check out LibreTime.org for the latest
|
||||
release notes and feel free to ask any questions at our forum at
|
||||
[https://discourse.libretime.org](https://discourse.libretime.org/)
|
||||
[https://discourse.LibreTime.org](https://discourse.LibreTime.org/)
|
||||
|
||||
Thanks for tuning in to another libretime tutorial. Our next tutorial
|
||||
Thanks for tuning in to another LibreTime tutorial. Our next tutorial
|
||||
will show you how to use autoloading playlists to add show specific
|
||||
underwriting or advertisements.
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ The following are step-by-step instructions derived from the LibreTime tutorials
|
|||
|
||||
##Program Manager How Tos##
|
||||
* [How to build a schedule](build-schedule.md)
|
||||
* [How to setup genre specific autoDJ](genre-autodj.md)
|
||||
* [How to setup genre specific AutoDJ](genre-autodj.md)
|
||||
* [How to setup an intro playlist](intro-playlist.md)
|
||||
* [How to setup an outro playlist with ambient music](outro-playlist.md)
|
||||
* [How to setup latest podcast episode to play with autoloading playlist](podcast.md)
|
||||
|
|
|
@ -1,61 +1,40 @@
|
|||
How to automatically schedule a Top of the Hour Station ID with Intro
|
||||
Playlist
|
||||
# How to automatically schedule an Intro Playlist
|
||||
|
||||
Audience: For Admin users
|
||||
**Audience**: Adminstrators
|
||||
|
||||
Login to LibreTime
|
||||
## Creating the Top of the hour smartblock
|
||||
|
||||
Creating the Top of the hour smartblock
|
||||
1. Login to LibreTime
|
||||
1. Click **Smart Blocks**
|
||||
1. Click the blue **+New** button
|
||||
1. On the right (or below if screen width is limited), type in the Smart Block
|
||||
Name: **Top of the Hour Station ID**
|
||||
1. Under **Search Criteria** select **Genre** for the criteria
|
||||
1. Select **is** for modifier
|
||||
1. Type TOTHID in the third box. *Note: all Top of The Hour Station ID tracks
|
||||
will need to have TOTHID as their **Genre** to match*
|
||||
1. Under Limit To – click the second box and select **items** instead of hours
|
||||
1. Click **Save**
|
||||
|
||||
Click **Smart Blocks**
|
||||
## Adding Smartblock to Intro Playlist
|
||||
|
||||
Click the blue **+New** button
|
||||
|
||||
On the right (or below if screen width is limited)
|
||||
|
||||
Type in the Smart Block Name: **Top of the Hour Station ID**
|
||||
|
||||
Under **Search Criteria** select **Genre** for the criteria
|
||||
|
||||
Select **is** for modifier
|
||||
|
||||
Type TOTHID in the third box.
|
||||
|
||||
Note: all Top of The Hour Station ID tracks will need to have TOTHID as
|
||||
their **Genre** to match.
|
||||
|
||||
Under Limit To – click the second box and select **items** instead of
|
||||
hours
|
||||
|
||||
Click **Save**
|
||||
|
||||
Adding Smartblock to Intro Playlist
|
||||
|
||||
Click **Playlist**
|
||||
|
||||
Click **+ New**
|
||||
|
||||
Type **Intro Playlist** in the Name.
|
||||
|
||||
Click **Smart Blocks**
|
||||
|
||||
Click the box to the left of **Top of the Hour Station ID**
|
||||
|
||||
Click **+ Add to current playlist** or drag the smart block to the right
|
||||
1. Click **Playlist**
|
||||
1. Click **+ New**
|
||||
1. Type **Intro Playlist** in the Name.
|
||||
1. Click **Smart Blocks**
|
||||
1. Click the box to the left of **Top of the Hour Station ID**
|
||||
1. Click **+ Add to current playlist** or drag the smart block to the right
|
||||
bottom of the playlist window.
|
||||
1. Click **Save**.
|
||||
|
||||
Click **Save**.
|
||||
## How to Set Default Intro Playlist
|
||||
|
||||
How to Set Default Intro Playlist
|
||||
|
||||
Click **Settings**.
|
||||
|
||||
Click **General** and then scroll to **Intro Autoloading Playlist** and
|
||||
1. Click **Settings**.
|
||||
1, Click **General** and then scroll to **Intro Autoloading Playlist** and
|
||||
click the drop down to select the **Intro Playlist**
|
||||
1. Click **Save**.
|
||||
|
||||
Click **Save**.
|
||||
|
||||
Now everytime an autoloading playlist is scheduled the system will
|
||||
select a random top of the hour ID and insert it before any other
|
||||
content. You can other content to the Intro Playlist to also have it
|
||||
scheduled before any shows with Autoloading Playlists enabled.
|
||||
Now everytime an autoloading playlist is scheduled the system will select a
|
||||
random top of the hour ID and insert it before any other content. You can other
|
||||
content to the Intro Playlist to also have it scheduled before any shows with
|
||||
Autoloading Playlists enabled.
|
||||
|
|
|
@ -1,85 +1,57 @@
|
|||
How to broadcast live with LibreTime and Butt
|
||||
# How to broadcast live with LibreTime and Butt
|
||||
|
||||
This how to is intended for DJs using butt to stream to their LibreTime
|
||||
server with an external USB audio card setup to route a mixer and sound.
|
||||
|
||||
**Audience**: DJs
|
||||
|
||||
Download and install butt from <https://danielnoethen.de/> for your OS.
|
||||
## Set Up
|
||||
|
||||
Note: be sure you have butt version 0.1.17 or newer installed
|
||||
1. Download and install butt from <https://danielnoethen.de/> for your OS.
|
||||
*Note: be sure you have butt version 0.1.17 or newer installed*
|
||||
1. Open up butt
|
||||
1. Click **settings**
|
||||
1. Under **Main** under **Server **click **ADD**
|
||||
* Type LibreTime (or your station) under Name
|
||||
* Click the radio button next to **IceCast** under Type
|
||||
* Type your stations URL (webpage address) under **Address**:
|
||||
* Type **8002** under **Port**:
|
||||
* Type your DJ login password under **Password**
|
||||
* Type **/show** under IceCast mountpoint:
|
||||
* Type your dj login under **IceCast user:**
|
||||
1. Click **ADD**
|
||||
1. Still in settings click, **Audio** and select your external sound card under
|
||||
**Audio Device** *Note: if you only have an internal sound card you maybe able
|
||||
to use it but that is OS specific and outside of this tutorial. We are assuming
|
||||
you have a mic and mixer or a USB mixer hooked up to or as an external soundcard*
|
||||
|
||||
Open up butt – and click **settings**
|
||||
## Show Time
|
||||
|
||||
Under **Main** under **Server **click **ADD**
|
||||
|
||||
****
|
||||
|
||||
Type LibreTime (or your station) under Name
|
||||
|
||||
Click the radio button next to **IceCast** under Type
|
||||
|
||||
Type your stations URL (webpage address) under **Address**:
|
||||
|
||||
Type **8002** under **Port**:
|
||||
|
||||
Type your DJ login password under **Password**
|
||||
|
||||
Type **/show** under IceCast mountpoint:
|
||||
|
||||
Type your dj login under **IceCast user:**
|
||||
|
||||
Click **ADD**
|
||||
|
||||
Still in settings
|
||||
|
||||
Click **Audio** and select your external sound card under **Audio
|
||||
Device**
|
||||
|
||||
note: if you only have an internal sound card you maybe able to use it
|
||||
but that is OS specific and outside of this tutorial. We are assuming
|
||||
you have a mic and mixer or a USB mixer hooked up to or as an external
|
||||
soundcard
|
||||
|
||||
When its almost your show time
|
||||
|
||||
Goto your LibreTime page and look at the time in the top right when your
|
||||
show starts go to Butt
|
||||
|
||||
Click the white Play button (third button in the middle).
|
||||
|
||||
If it says connecting… and then stream time with a counter– congrats
|
||||
your are connected.
|
||||
|
||||
Go to the LibreTime page and at the top right under Source Streams the
|
||||
1. When its almost your show time go to your LibreTime page and look at the time
|
||||
in the top right when your show starts go to Butt.
|
||||
1. Click the white Play button (third button in the middle).
|
||||
1. If it says connecting… and then stream time with a counter– congratulations,
|
||||
your are connected!
|
||||
1. Go to the LibreTime page and at the top right under Source Streams the
|
||||
tab besides Show Source is to the left and Orange – if it is and Current
|
||||
shows Live Show you are connected.
|
||||
1. If it is gray, click on the **Show Source** switch to the right of it and it
|
||||
will toggle your show on and you will be broadcasting. *Note: whether auto
|
||||
connect is turned on is a station specific setting so it could work either way*
|
||||
|
||||
If it is gray and to the right click it and it will toggle your show on
|
||||
and you will be broadcasting.
|
||||
## Recording your show
|
||||
|
||||
Note: whether auto connect is turned on is a station specific setting so
|
||||
it could work either way
|
||||
|
||||
****
|
||||
|
||||
Recording your show
|
||||
|
||||
You can record your show under butt by clicking the red circle record
|
||||
button on the left.
|
||||
|
||||
It will save a mp3 based upon the date and time in your home/user
|
||||
You can record your show under butt by clicking the red circle record button on
|
||||
the left. It will save a mp3 based upon the date and time in your home/user
|
||||
directory by default.
|
||||
|
||||
Everything should no be working and you can broadcast for your entire
|
||||
time slot. If you choose to stop streaming before it is over click the
|
||||
white square **Stop** button to disconnect.
|
||||
|
||||
Then go to the LibreTime page and if the Show Source didn’t
|
||||
automatically disconnect you can click it to the right and it should
|
||||
turn gray.
|
||||
Everything should now be working and you can broadcast for your entire time
|
||||
slot. If you choose to stop streaming before it is over click the white square
|
||||
**Stop** button to disconnect. Then go to the LibreTime page and if the Show
|
||||
Source didn’t automatically disconnect you can click it to the right and it
|
||||
should turn gray.
|
||||
|
||||
You are now done streaming.
|
||||
|
||||
If you have issues connecting check with your system administrator to
|
||||
see if you have the details right.
|
||||
If you have issues connecting check with your system administrator to see if you
|
||||
have the details right.
|
||||
|
|
|
@ -1,91 +1,59 @@
|
|||
How to setup an Outro Playlist to fill empty space at the end of
|
||||
autoloading shows
|
||||
# How to setup an Outro Playlist
|
||||
|
||||
This how to describes the steps involved in setting up an outro playlist
|
||||
that will schedule promos without interrupting any tracks followed by a
|
||||
ambient musical bridge for all autoloading playlists to avoid dead air.
|
||||
|
||||
Audience: Program Manager (and Admin to set Outro Playlist)
|
||||
**Audience**: Program Manager (and Admin to set Outro Playlist)
|
||||
|
||||
How to add Promo Fill smart block
|
||||
## Adding the Promo Fill smart block
|
||||
|
||||
Click **Smart Blocks**
|
||||
1. Click **Smart Blocks**
|
||||
1. Click the blue **+ New** button
|
||||
1. Type in a name for the Smart Block (for instance *Promo Fill*)
|
||||
1. Select **Genre** and the modifer of **is** and then type in **promo** in
|
||||
the 3^rd^ box.
|
||||
1. Under **Limit to**: we select **time remaining in show**
|
||||
1. To match on additional types of tracks based upon Genre, click **+ New
|
||||
Modifier** under Genre and select **is** and type the “*name of genre*” to
|
||||
match on.
|
||||
1. Click **preview** to review and confirm tracks match your criteria below.
|
||||
1. Click **Save**
|
||||
|
||||
Click the blue **+ New** button
|
||||
## Adding interuptible Ambient Fill smart block
|
||||
|
||||
Type in a name for the Smart Block (for instance *Promo Fill*)
|
||||
1. Click **Smart Blocks**
|
||||
1. Click the blue **+New** button
|
||||
1. Type in a name for the Smart Block (for instance *Ambient Fill*)
|
||||
1. Now we select **Genre **and the modifer of **is** and then type in **ambient
|
||||
fill** in the 3^rd^ box.
|
||||
1. Under **Limit to**: we select **time remaining in show**
|
||||
1. Click **Advanced options** drop down
|
||||
1. Check box next to **Allow last track to exceed time limit**
|
||||
1. Click **preview** to review and confirm tracks match your criteria below.
|
||||
1. Click **Save**
|
||||
|
||||
Now we select **Genre** and the modifer of **is** and then type in
|
||||
**promo** in the 3^rd^ box.
|
||||
## Create the Outro Playlist to hold the smart blocks
|
||||
|
||||
Under **Limit to**: we select **time remaining in show**
|
||||
1. Click **Playlists**
|
||||
1. Click **+ New**
|
||||
1. Type in the name “*Outro Playlist*”
|
||||
1. Click on **Smart Blocks**
|
||||
1. Click box next to **Promo Fill** smart block and click **+ Add to current
|
||||
playlist** or drag it to the bottom of the Outro playlist
|
||||
1. Click box next to **Ambient Fill** smart block and click **+ Add to current
|
||||
playlist** or drag it to the bottom of the Outro playlist
|
||||
1. Make sure the **Promo Fill** is above the **Ambient Fill** smart block in
|
||||
the playlist
|
||||
1. Click **Save**
|
||||
|
||||
To match on additional types of tracks based upon Genre
|
||||
# Setting the station-wide Outro playlist
|
||||
|
||||
click **+ New Modifier** under Genre and select **is** and type the
|
||||
“*name of genre*” to match on.
|
||||
|
||||
Click **preview** to review and confirm tracks match your criteria
|
||||
below.
|
||||
|
||||
Click **Save**
|
||||
|
||||
How to add Ambient Fill that can be interrupted
|
||||
|
||||
Click **Smart Blocks**
|
||||
|
||||
Click the blue **+New** button
|
||||
|
||||
Type in a name for the Smart Block (for instance *Ambient Fill*)
|
||||
|
||||
Now we select **Genre **and the modifer of **is** and then type in
|
||||
**ambient fill** in the 3^rd^ box.
|
||||
|
||||
Under **Limit to**: we select **time remaining in show**
|
||||
|
||||
Click **Advanced options** drop down
|
||||
|
||||
Check box next to **Allow last track to exceed time limit**
|
||||
|
||||
Click **preview** to review and confirm tracks match your criteria
|
||||
below.
|
||||
|
||||
Click **Save**
|
||||
|
||||
How to create the Outro Playlist to hold these
|
||||
|
||||
Click **Playlists**
|
||||
|
||||
Click **+ New**
|
||||
|
||||
Type in the name “*Outro Playlist*”
|
||||
|
||||
Click on **Smart Blocks**
|
||||
|
||||
Click box next to **Promo Fill** smart block and click **+ Add to
|
||||
current playlist** or drag it to the bottom of the Outro playlist
|
||||
|
||||
Click box next to **Ambient Fill** smart block and click **+ Add to
|
||||
current playlist** or drag it to the
|
||||
|
||||
bottom of the Outro playlist
|
||||
|
||||
Make sure the **Promo Fill** is above the **Ambient Fill** smart block
|
||||
in the playlist
|
||||
|
||||
Click **Save**
|
||||
|
||||
Setting the station-wide Outro playlist for all shows with auto loading
|
||||
playlists
|
||||
|
||||
Click **Settings**
|
||||
|
||||
Click **General**
|
||||
|
||||
Scroll down to Outro Playlist and with the drop down select the newly
|
||||
1. Click **Settings**
|
||||
1. Click **General**
|
||||
1. Scroll down to Outro Playlist and with the drop down select the newly
|
||||
created **Outro Playlist**
|
||||
1. Scroll down or up on the form and click **Save**.
|
||||
|
||||
Scroll down or up on the form and click **Save**.
|
||||
|
||||
And now every autoloading playlist show will have tracks scheduled to
|
||||
Now every autoloading playlist show will have tracks scheduled to
|
||||
fill any potential dead air.
|
||||
|
|
|
@ -1,57 +1,39 @@
|
|||
How to add a Podcast to your LibreTime Calendar using Smartblocks and
|
||||
Autoloading Playlists
|
||||
# How to add a Podcast to your LibreTime Calendar
|
||||
|
||||
Audience: Program Managers
|
||||
This tutorial uses smart blocks and autoloading playlists to add a podcast to
|
||||
your LibreTime calendar.
|
||||
|
||||
Adding a podcast
|
||||
**Audience**: Program Managers
|
||||
|
||||
Steps:
|
||||
## Adding a podcast
|
||||
|
||||
Login to LibreTime with a user with the Program Manager or Admin role
|
||||
|
||||
Copy the URL to the podcast RSS feed
|
||||
|
||||
Click on Podcasts and then click the blue **Add** button and then past
|
||||
the feed URL and click Subscribe.
|
||||
|
||||
Click the newly added Podcast and then click edit or double click it.
|
||||
|
||||
Update the name of the podcast if you want to change it.
|
||||
|
||||
On the right hand window should be open for your podcast click
|
||||
**Generate Smartblock and Playlist**
|
||||
|
||||
Click the checkbox next the newest episode and then click the
|
||||
**import** button.
|
||||
|
||||
Let podcast download in the background.
|
||||
|
||||
Scheduling a podcast as a repeating show
|
||||
|
||||
Click on **Calendar**
|
||||
|
||||
Add a new show or edit a pre-existing show setup for this podcast.
|
||||
|
||||
Check the time & click repeats and check the appropriate days of the
|
||||
week it should run.
|
||||
|
||||
If it needs to run at different times of the day you will need to add a
|
||||
1. Login to LibreTime with a user with the Program Manager or Admin role
|
||||
1. Copy the URL to the podcast RSS feed
|
||||
1. Click on Podcasts and then click the blue **Add** button and then past the
|
||||
feed URL and click Subscribe.
|
||||
1. Click the newly added Podcast and then click edit or double click it.
|
||||
1. Update the name of the podcast if you want to change it.
|
||||
1. On the right hand window should be open for your podcast click **Generate
|
||||
Smartblock and Playlist**
|
||||
1. Click the checkbox next the newest episode and then click the **import**
|
||||
button.
|
||||
1. Let podcast download in the background.
|
||||
1. Scheduling a podcast as a repeating show
|
||||
1. Click on **Calendar**
|
||||
1. Add a new show or edit a pre-existing show setup for this podcast.
|
||||
1. Check the time & click repeats and check the appropriate days of the week it
|
||||
should run.
|
||||
1. If it needs to run at different times of the day you will need to add a
|
||||
separate show for this.
|
||||
|
||||
Click the drop-down next to Autoloading playlist.
|
||||
|
||||
Check the box next to Add Autoloading Playlist.
|
||||
|
||||
Now we select the playlist with the podcast name we created above.
|
||||
|
||||
Now click Add This Show and it should be added to your Calendar.
|
||||
|
||||
One hour before your show is set to air the latest podcast will be
|
||||
added.
|
||||
|
||||
To add other tracks to play along with this show edit the playlist with
|
||||
the podcast name. Any tracks or smartblocks added to this playlist will
|
||||
be scheduled along with this playlist.
|
||||
|
||||
To add tracks before or after all autoloading playlists see **How to use
|
||||
Intro and Outro Playlist feature**
|
||||
1. Click the drop-down next to Autoloading playlist.
|
||||
1. Check the box next to Add Autoloading Playlist.
|
||||
1. Select the playlist with the podcast name we created above.
|
||||
1. Click Add This Show and it should be added to your Calendar.
|
||||
1. The latest podcast will be automatically added one hour before your show is
|
||||
set to air.
|
||||
1. To add other tracks to play along with this show edit the playlist with the
|
||||
podcast name. Any tracks or smartblocks added to this playlist will be
|
||||
scheduled along with this playlist.
|
||||
1. To add tracks before or after all autoloading playlists see the
|
||||
[Intro playlist](intro-playlist.md) and [Outro playlist](outro-playlist.md)
|
||||
tutorials.
|
||||
|
|
|
@ -1,44 +1,24 @@
|
|||
***How to upload a promo***:
|
||||
# How to upload a promo
|
||||
|
||||
Audience: DJs
|
||||
**Audience**: DJs
|
||||
|
||||
Instructions:
|
||||
|
||||
Record your promo and export it as a mp3
|
||||
|
||||
note: if you can set the metadata of genre to **promo** you can skip the
|
||||
final step below
|
||||
|
||||
Login to LibreTime with your DJ username
|
||||
|
||||
Click Upload and drag or click and browse to upload the track.
|
||||
|
||||
Let the track upload. Once it is done and is shown as imported on the
|
||||
right click **Tracks**
|
||||
|
||||
Find the track in the list. *(follow instructions below if you don’t see
|
||||
it)*
|
||||
|
||||
If it is not at the top click the **Uploaded** column until it sorts by
|
||||
the newest tracks first.
|
||||
|
||||
If Uploaded doesn’t show up click **Columns** to the top right scroll
|
||||
down and click the box next to **Uploaded**
|
||||
|
||||
****
|
||||
|
||||
Now click **Uploaded** twice and it should display your track at the
|
||||
top.
|
||||
|
||||
Click the box next your track and click the **Edit** button above the
|
||||
track listing.
|
||||
|
||||
A box saying Editing “track name” should show up on the right.
|
||||
|
||||
Find **Genre** type in **promo** (or whatever metadata classification
|
||||
your station uses)
|
||||
|
||||
Scroll down and click **Save**
|
||||
|
||||
If you match the metadata requirements for the station smart block then
|
||||
your track will be included in the track list it pulls from.
|
||||
1. Record your promo and export it as a mp3. *Note: if you can set the genre
|
||||
metadata to **promo** you can skip the final step below*
|
||||
1. **Login** to LibreTime with your DJ username
|
||||
1. Click **Upload** and drag or click and browse to upload the track.
|
||||
1. Let the track upload. Once it is done and is shown as imported on the right,
|
||||
click **Tracks**
|
||||
1. Find the track in the list
|
||||
1. If it is not at the top click the **Uploaded** column until it sorts by the
|
||||
newest tracks first.
|
||||
1. If Uploaded doesn’t show up click **Columns** to the top right scroll down
|
||||
and click the box next to **Uploaded**
|
||||
1. Now click **Uploaded** twice and it should display your track at the top.
|
||||
1. Click the box next your track and click the **Edit** button above the track
|
||||
listing.
|
||||
1. A box saying Editing “track name” should show up on the right.
|
||||
1. Find **promo** type in **Genre** (or whatever metadata classification your
|
||||
station uses)
|
||||
1. Scroll down and click **Save**
|
||||
1. If you match the metadata requirements for the station smart block then your
|
||||
track will be included in the track list it pulls from.
|
||||
|
|
|
@ -1,50 +1,34 @@
|
|||
*How to upload and schedule a track to play on a specific show*
|
||||
# How to upload and schedule a track to play on a specific show
|
||||
|
||||
Audience: DJ with permission to schedule a specific show
|
||||
**Audience**: DJ with permission to schedule a specific show
|
||||
|
||||
**Login** to LibreTime with your DJ username and password at
|
||||
[http://HOSTNAME/user](http://HOSTNAME/user)
|
||||
-
|
||||
|
||||
note: replace HOSTNAME with the web site address given to you by your
|
||||
station admin
|
||||
|
||||
Click the blue **Upload** button in the top left of the screen.
|
||||
|
||||
Click the background where it says **Drop files here or click to browse
|
||||
your computer** or drag on and drop your music files from your desktop.
|
||||
|
||||
If you clicked then browse your file system to find the music files you
|
||||
want to play and click them and then click **Open**
|
||||
|
||||
The tracks should start to upload and when they are completed show up on
|
||||
the right under **Recent Uploads** *(note: you will need to keep this
|
||||
window open while they are uploading)*
|
||||
|
||||
You can also upload short segments to schedule between your tracks
|
||||
recorded for instance with audacity.
|
||||
|
||||
LibreTime in general supports mp3, ogg, flac, wav and m4a file types. If
|
||||
1. **Login** to LibreTime with your DJ username and password at
|
||||
[http://HOSTNAME/user](http://HOSTNAME/user) *Note: replace HOSTNAME with the
|
||||
web site address given to you by your station admin*
|
||||
1. Click the blue **Upload** button in the top left of the screen.
|
||||
1. Click the background where it says **Drop files here or click to browse your
|
||||
computer** or drag on and drop your music files from your desktop.
|
||||
1. If you clicked then browse your file system to find the music files you want
|
||||
to play and click them and then click **Open**
|
||||
1. The tracks should start to upload and when they are completed show up on the
|
||||
right under **Recent Uploads**. *Note: you will need to keep this window open
|
||||
while they are uploading*
|
||||
1. You can also upload short segments to schedule between your tracks recorded,
|
||||
for instance, with Audacity.
|
||||
1. LibreTime in general supports mp3, ogg, flac, wav and m4a file types. If
|
||||
a track isn’t supported the import will be marked as failed under
|
||||
**Import Status**
|
||||
|
||||
Once you have uploaded all of the tracks you plan on airing you click on
|
||||
1. Once you have uploaded all of the tracks you plan on airing you click on
|
||||
**Calendar**
|
||||
|
||||
Find your upcoming show in the Calendar and click on it and click
|
||||
**Schedule Tracks** from the pop-up menu.
|
||||
|
||||
Now click the tracks you want to add and click **+ Add to show** or
|
||||
1. Find your upcoming show in the Calendar and click on it and click **Schedule
|
||||
Tracks** from the pop-up menu.
|
||||
1. Now click the tracks you want to add and click **+ Add to show** or
|
||||
click and drag the tracks to the right.
|
||||
|
||||
You can also add station **Smart Blocks, Playlists and Webstreams by
|
||||
clicking those sections at the top of the screen.**
|
||||
|
||||
When you are done you can re-order your tracks by clicking and dragging
|
||||
1. You can also add station **Smart Blocks**, **Playlists** and **Webstreams**
|
||||
by clicking those sections at the top of the screen.
|
||||
1. When you are done you can re-order your tracks by clicking and dragging
|
||||
them.
|
||||
|
||||
When your tracks are in order and there is no empty time remaning click
|
||||
1. When your tracks are in order and there is no empty time remaning click
|
||||
**Ok** to finish.
|
||||
|
||||
Your next show should now be scheduled to play during its scheduled time
|
||||
1. Your next show should now be scheduled to play during its scheduled time
|
||||
slot.
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
Libretime supports direct connection to two popular streaming media servers, the open source **Icecast** (<http://www.icecast.org>) and the proprietary **SHOUTcast** (<http://www.shoutcast.com>). Apart from the software license, the main difference between these two servers is that Icecast supports simultaneous MP3, AAC, Ogg Vorbis or Ogg Opus streaming from Libretime, whereas SHOUTcast supports MP3 and AAC streams but not Ogg Vorbis or Opus. The royalty-free Ogg Vorbis format has the advantage of better sound quality than MP3 at lower bitrates, which has a direct impact on the amount of bandwidth that your station will require to serve the same number of listeners. Ogg Opus also benefits from good sound quality at low bitrates, with the added advantage of lower latency than other streaming formats. Opus is now an IETF standard (<http://tools.ietf.org/html/rfc6716>) and requires Icecast 2.4 or later to be installed on the streaming server.
|
||||
LibreTime supports direct connection to two popular streaming media servers, the open source **Icecast** (<http://www.icecast.org>) and the proprietary **SHOUTcast** (<http://www.shoutcast.com>). Apart from the software license, the main difference between these two servers is that Icecast supports simultaneous MP3, AAC, Ogg Vorbis or Ogg Opus streaming from LibreTime, whereas SHOUTcast supports MP3 and AAC streams but not Ogg Vorbis or Opus. The royalty-free Ogg Vorbis format has the advantage of better sound quality than MP3 at lower bitrates, which has a direct impact on the amount of bandwidth that your station will require to serve the same number of listeners. Ogg Opus also benefits from good sound quality at low bitrates, with the added advantage of lower latency than other streaming formats. Opus is now an IETF standard (<http://tools.ietf.org/html/rfc6716>) and requires Icecast 2.4 or later to be installed on the streaming server.
|
||||
|
||||
Ogg Vorbis playback is supported in **Mozilla Firefox**, **Google Chrome** and **Opera** browsers, via **jPlayer** (<http://jplayer.org/>), and is also supported in several popular media players, including VideoLAN Client, also known as VLC (<http://www.videolan.org/vlc/>). (See the chapter *Stream player for your website* on how to deliver **jPlayer** to your audience). Ogg Opus is relatively new and is supported natively in the very latest browsers, such as Mozilla Firefox 25.0, and media players including VLC 2.0.4 or later.
|
||||
|
||||
Streaming MP3 below a bitrate of 128kbps is not recommended for music, because of a perceptible loss of high audio frequencies in the broadcast playout. A 96kbps or 64kbps MP3 stream may be acceptable for voice broadcasts if there is a requirement for compatibility with legacy hardware playback devices which do not support Ogg Vorbis or Opus streams.
|
||||
|
||||
Because Libretime supports simultaneous streaming in multiple formats, it is possible to offer one or more streams via your website, and another independent stream for direct connection from hardware players. You can test whether Ogg streams sound better at low bitrates for yourself, by using the **LISTEN** button in Libretime's **Master Panel** to switch between streaming formats.
|
||||
Because LibreTime supports simultaneous streaming in multiple formats, it is possible to offer one or more streams via your website, and another independent stream for direct connection from hardware players. You can test whether Ogg streams sound better at low bitrates for yourself, by using the **LISTEN** button in LibreTime's **Master Panel** to switch between streaming formats.
|
||||
|
||||
Conversely, you may have a music station which wants to stream at 160kbps or 192kbps to offer a quality advantage over stations streaming at 128kbps or less. Since Ogg, AAC and MP3 formats use lossy compression, listeners will only hear the benefit of higher streaming bitrates if the media files in the Libretime storage server are encoded at an equivalent bitrate, or higher.
|
||||
Conversely, you may have a music station which wants to stream at 160kbps or 192kbps to offer a quality advantage over stations streaming at 128kbps or less. Since Ogg, AAC and MP3 formats use lossy compression, listeners will only hear the benefit of higher streaming bitrates if the media files in the LibreTime storage server are encoded at an equivalent bitrate, or higher.
|
||||
|
||||
UTF-8 metadata in Icecast MP3 streams
|
||||
-------------------------------------
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
In a typical radio station configuration, the live output from the broadcast studio and the scheduled output from Libretime are mixed together before being sent further along the broadcast chain, to a transmitter or streaming media server on the Internet. (This may not be the case if your Libretime server is remote from the studio, and you are using the **Show Source Mount Point** or **Master Source Mount Point** to mix live and scheduled content. See the *Stream Settings* chapter for details).
|
||||
In a typical radio station configuration, the live output from the broadcast studio and the scheduled output from LibreTime are mixed together before being sent further along the broadcast chain, to a transmitter or streaming media server on the Internet. (This may not be the case if your LibreTime server is remote from the studio, and you are using the **Show Source Mount Point** or **Master Source Mount Point** to mix live and scheduled content. See the *Stream Settings* chapter for details).
|
||||
|
||||
If your **Icecast** server is hosted in a remote data centre, you may not have the option to handover the streaming media source manually, because you have no physical access to connect a broadcast mixer to the server. Disconnecting the stream and beginning another is less than ideal, because the audience's media players will also be disconnected when that happens.
|
||||
|
||||
The **Icecast** server has a *fallback-mount* feature which can be used to move clients (media players used by listeners or viewers) from one source to another, as new sources become available. This makes it possible to handover from Libretime output to a show from another source, and handover to Libretime again once the other show has ended.
|
||||
The **Icecast** server has a *fallback-mount* feature which can be used to move clients (media players used by listeners or viewers) from one source to another, as new sources become available. This makes it possible to handover from LibreTime output to a show from another source, and handover to LibreTime again once the other show has ended.
|
||||
|
||||
To enable fallback mounts, edit the main Icecast configuration file to define the mount points you will use, and the relationship between them.
|
||||
|
||||
sudo nano /etc/icecast2/icecast.xml
|
||||
|
||||
The example *<mount>* section provided in the *icecast.xml* file is commented out by default. Before or after the commented section, add three mount point definitions. The default mount point used by Libretime is */airtime\_128* which is shown in the */etc/airtime/liquidsoap.cfg* file. You must also define a mount point for the live source (called */live.ogg* in this example) and a mount point for the public to connect to (called */stream.ogg* in this example).
|
||||
The example *<mount>* section provided in the *icecast.xml* file is commented out by default. Before or after the commented section, add three mount point definitions. The default mount point used by LibreTime is */airtime\_128* which is shown in the */etc/airtime/liquidsoap.cfg* file. You must also define a mount point for the live source (called */live.ogg* in this example) and a mount point for the public to connect to (called */stream.ogg* in this example).
|
||||
|
||||
<mount>
|
||||
<mount-name>/airtime_128</mount-name>
|
||||
|
@ -29,7 +29,7 @@ The example *<mount>* section provided in the *icecast.xml* file is commented ou
|
|||
<hidden>0</hidden>
|
||||
</mount>
|
||||
|
||||
These mount point definitions mean that a client connecting to a URL such as *http://icecast.example.com:8000/stream.ogg* will first fall back to the */live.ogg* mount point if it is available. If not, the client will fall back in turn to the */airtime\_128* mount point for Libretime playout.
|
||||
These mount point definitions mean that a client connecting to a URL such as *http://icecast.example.com:8000/stream.ogg* will first fall back to the */live.ogg* mount point if it is available. If not, the client will fall back in turn to the */airtime\_128* mount point for LibreTime playout.
|
||||
|
||||
Setting the value of *<fallback-override>* to 1 (enabled) means that when the */live.ogg* mount point becomes available again, the client will be re-connected to it. If you wish to hide the */airtime\_128* and */live.ogg* mount points from the public Icecast web interface, set the value of *<hidden>* in each of these definitions to 1.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Piwik (<http://piwik.org/>) is an open source web analytics platform which supports Icecast's log format, in Piwik version 2.0 or later. For your convenience, packages of Piwik for Debian and Ubuntu are provided in the <http://apt.sourcefabric.org> repository. If you have already configured your Libretime server for this repository, you can install the **piwik** package and its dependencies with the command:
|
||||
Piwik (<http://piwik.org/>) is an open source web analytics platform which supports Icecast's log format, in Piwik version 2.0 or later. For your convenience, packages of Piwik for Debian and Ubuntu are provided in the <http://apt.sourcefabric.org> repository. If you have already configured your LibreTime server for this repository, you can install the **piwik** package and its dependencies with the command:
|
||||
|
||||
sudo apt-get install piwik php5-geoip php5-cli mysql-server
|
||||
|
||||
|
|
|
@ -1,80 +1,171 @@
|
|||
[LibreTime](http://libretime.org/ "LibreTime homepage") is the open broadcast software for scheduling and remote station management. Web browser access to the station's media library, multi-file upload and automatic metadata import features are coupled with a collaborative on-line scheduling calendar and playlist management. The scheduling calendar is managed through an easy-to-use interface and triggers playout with sub-second precision.
|
||||
# What is LibreTime?
|
||||
|
||||
[LibreTime](http://libretime.org/ "LibreTime homepage") is the open broadcast
|
||||
software for scheduling and remote station management. Web browser access to
|
||||
the station's media library, multi-file upload and automatic metadata import
|
||||
features are coupled with a collaborative on-line scheduling calendar and
|
||||
playlist management. The scheduling calendar is managed through an easy-to-use
|
||||
interface and triggers playout with sub-second precision.
|
||||
|
||||

|
||||
|
||||
LibreTime has been intended to provide a solution for a wide range of broadcast projects, from community to public and commercial stations. The scalability of LibreTime allows implementation in a number of scenarios, ranging from an unmanned broadcast unit accessed remotely through the Internet, to a local network of machines accessing a central LibreTime storage system. LibreTime supports the playout of lossy compressed audio files in both MP3 and AAC formats and the open, royalty-free equivalent [Ogg Vorbis](http://www.vorbis.com/ "Ogg Vorbis homepage"). It also supports playout of lossless FLAC and WAV format audio files.
|
||||
LibreTime has been intended to provide a solution for a wide range of broadcast
|
||||
projects, from community to public and commercial stations. The scalability of
|
||||
LibreTime allows implementation in a number of scenarios, ranging from an
|
||||
unmanned broadcast unit accessed remotely through the Internet, to a local
|
||||
network of machines accessing a central LibreTime storage system. LibreTime
|
||||
supports the playout of lossy compressed audio files in both MP3 and AAC
|
||||
formats and the open, royalty-free equivalent
|
||||
[Ogg Vorbis](http://www.vorbis.com/ "Ogg Vorbis homepage"). It also supports
|
||||
playout of lossless FLAC and WAV format audio files.
|
||||
|
||||
LibreTime manages the [Liquidsoap](http://savonet.sourceforge.net/) stream generator at the heart of the system. Liquidsoap generates streams from files in the LibreTime library and any remote input streams that you specify. Available stream output formats include Ogg Vorbis, Ogg Opus, MP3, and AAC. The library is indexed in a [PostgreSQL](http://www.postgresql.org/) database to enable searching. Live shows can be recorded automatically with [Ecasound](http://eca.cx/ecasound/ "Ecasound homepage"), using the sound card line input. News editors, DJs and station controllers can use LibreTime to build playlists or smart blocks and manage media files (upload, edit metadata, manage advertisements) at the station or via the Internet.
|
||||
LibreTime manages the [Liquidsoap](http://savonet.sourceforge.net/) stream
|
||||
generator at the heart of the system. Liquidsoap generates streams from files
|
||||
in the LibreTime library and any remote input streams that you specify.
|
||||
Available stream output formats include Ogg Vorbis, Ogg Opus, MP3, and AAC. The
|
||||
library is indexed in a [PostgreSQL](http://www.postgresql.org/) database to
|
||||
enable searching. Live shows can be recorded automatically with
|
||||
[Ecasound](http://eca.cx/ecasound/ "Ecasound homepage"), using the sound card
|
||||
line input. News editors, DJs and station controllers can use LibreTime to
|
||||
build playlists or smart blocks and manage media files (upload, edit metadata,
|
||||
manage advertisements) at the station or via the Internet.
|
||||
|
||||
The LibreTime administration interface is designed to work with any web browser, on any desktop or mobile platform with a minimum display size of 1280x768 pixels. LibreTime looks its best on a high definition display of 1920x1080 pixels. The recommended web browsers are **Mozilla Firefox 25** or **Google Chrome 30** (or later versions). **Apple Safari 6** (or later) is also supported.
|
||||
The LibreTime administration interface is designed to work with any web
|
||||
browser, on any desktop or mobile platform with a minimum display size of
|
||||
1280x768 pixels. LibreTime looks its best on a high definition display of
|
||||
1920x1080 pixels. The recommended web browsers are **Mozilla Firefox 25** or
|
||||
**Google Chrome 30** (or later versions). **Apple Safari 6** (or later) is also
|
||||
supported.
|
||||
|
||||
International UTF-8 metadata in media files is supported throughout, and the LibreTime interface can be localized into any language or dialect using the standard GNU gettext utility. Localizations that are installed by default include Austrian, Brazilian, British, Canadian, Chinese, Czech, French, German, Greek, Hungarian, Italian, Korean, Polish, Russian, Spanish and USA. See the chapter *Interface localization* for details of how to update a translation or add a new localization.
|
||||
International UTF-8 metadata in media files is supported throughout, and the
|
||||
LibreTime interface can be localized into any language or dialect using the
|
||||
standard GNU gettext utility. Localizations that are installed by default
|
||||
include Austrian, Brazilian, British, Canadian, Chinese, Czech, French, German,
|
||||
Greek, Hungarian, Italian, Korean, Polish, Russian, Spanish and USA. See the
|
||||
chapter *Interface localization* for details of how to update a translation or add a new localization.
|
||||
|
||||

|
||||
|
||||
The scheduler in LibreTime has a calendar view, organized by months, weeks and days. Here the program editors can schedule playlists and shows for their broadcast station. In some scenarios, the transmitter is situated outside the reach of the broadcaster and all program management has to be maintained through the web interface. Possible reasons for this scenario might be of a pragmatic nature (running many stations from one central office due to limited human resources) or an emergency (running a transmitter in a crisis area without putting staff at risk).
|
||||
The scheduler in LibreTime has a calendar view, organized by months, weeks and
|
||||
days. Here the program editors can schedule playlists and shows for their
|
||||
broadcast station. In some scenarios, the transmitter is situated outside the
|
||||
reach of the broadcaster and all program management has to be maintained
|
||||
through the web interface. Possible reasons for this scenario might be of a
|
||||
pragmatic nature (running many stations from one central office due to limited
|
||||
human resources) or an emergency (running a transmitter in a crisis area
|
||||
without putting staff at risk).
|
||||
|
||||
LibreTime workflow
|
||||
----------------
|
||||
|
||||
This typical workflow is intended to clarify the difference between the various components that make up a complete LibreTime system.
|
||||
This typical workflow is intended to clarify the difference between the various
|
||||
components that make up a complete LibreTime system.
|
||||
|
||||
1. There are media files on a storage server, which include metadata in their tags (title, creator, genre and so on). This storage server might be accessed directly via studio workstations on the local network.
|
||||
1. There are media files on a storage server, which include metadata in their
|
||||
tags (title, creator, genre and so on). This storage server might be accessed
|
||||
directly via studio workstations on the local network.
|
||||
|
||||
2. The LibreTime media-monitor keeps track of files being added, renamed, moved or removed from storage, and reads their metadata using the Mutagen library.
|
||||
2. The LibreTime media-monitor keeps track of files being added, renamed, moved
|
||||
or removed from storage, and reads their metadata using the Mutagen library.
|
||||
|
||||
3. A PostgreSQL database contains the location of those media files and their metadata. This means you can search for and playlist a set of media files according to the specific metadata that you require, or use a 'smart block' to select the files for you. The database also contains details of specified remote input streams.
|
||||
3. A PostgreSQL database contains the location of those media files and their
|
||||
metadata. This means you can search for and playlist a set of media files
|
||||
according to the specific metadata that you require, or use a 'smart block' to
|
||||
select the files for you. The database also contains details of specified
|
||||
remote input streams.
|
||||
|
||||
4. Pypo, the Python Playout engine, downloads media from the storage up to 24 hours ahead of playout and checks it for average level (with ReplayGain tools) and leading or trailing silence (with Silan). At playout time, the media to be broadcast is sent to Liquidsoap.
|
||||
4. Pypo, the Python Playout engine, downloads media from the storage up to 24
|
||||
hours ahead of playout and checks it for average level (with ReplayGain tools)
|
||||
and leading or trailing silence (with Silan). At playout time, the media to be
|
||||
broadcast is sent to Liquidsoap.
|
||||
|
||||
5. Liquidsoap takes individual media files and remote input streams, and assembles them into a continuous output stream. This stream can be sent to a sound card (e.g. for a broadcast mixer, on the way to an FM or DAB transmitter) or to a streaming server for IP network distribution, over the LAN, local WiFi or the Internet. You can stream to a sound card and up to three different stream distribution servers with the same LibreTime server, if you wish.
|
||||
5. Liquidsoap takes individual media files and remote input streams, and
|
||||
assembles them into a continuous output stream. This stream can be sent to a
|
||||
sound card (e.g. for a broadcast mixer, on the way to an FM or DAB transmitter)
|
||||
or to a streaming server for IP network distribution, over the LAN, local WiFi
|
||||
or the Internet. You can stream to a sound card and up to three different
|
||||
stream distribution servers with the same LibreTime server, if you wish.
|
||||
|
||||
6. Icecast (<http://www.icecast.org/>) is the default stream distribution server, and there is also support for SHOUTcast ([http://www.shoutcast.com](http://www.shoutcast.com/ "Shoutcast homepage")), but in theory you could stream from Liquidsoap to any online service. If a suitable Liquidsoap output is not available for your streaming service of choice, you can send audio from Liquidsoap to a separate encoding or streaming machine via a sound card or relay stream.
|
||||
6. Icecast (<http://www.icecast.org/>) is the default stream distribution
|
||||
server, and there is also support for SHOUTcast
|
||||
([http://www.shoutcast.com](http://www.shoutcast.com/ "Shoutcast homepage")),
|
||||
but in theory you could stream from Liquidsoap to any online service. If a
|
||||
suitable Liquidsoap output is not available for your streaming service of
|
||||
choice, you can send audio from Liquidsoap to a separate encoding or
|
||||
streaming machine via a sound card or relay stream.
|
||||
|
||||
7. Monit monitors the health of pypo, media-monitor and Liquidsoap, and reports the status of these services to LibreTime.
|
||||
7. Monit monitors the health of pypo, media-monitor and Liquidsoap, and
|
||||
reports the status of these services to LibreTime.
|
||||
|
||||
8. RabbitMQ pushes messages from LibreTime to media-monitor and pypo about changes to media files and the playout schedule.
|
||||
8. RabbitMQ pushes messages from LibreTime to media-monitor and pypo about
|
||||
changes to media files and the playout schedule.
|
||||
|
||||
9. LibreTime manages all of these components, and provides an easy, multi-user web interface to the system. It enables your station staff, depending on the permissions you have granted them, to:
|
||||
9. LibreTime manages all of these components, and provides an easy,
|
||||
multi-user web interface to the system. It enables your station staff,
|
||||
depending on the permissions you have granted them, to:
|
||||
|
||||
a) upload media files to the storage server via the **Add Media** page
|
||||
|
||||
b) automatically import file metadata into the PostgreSQL database
|
||||
|
||||
c) search for and download media files, and edit the metadata of individual files, if required, on the **Library** page
|
||||
c) search for and download media files, and edit the metadata of individual
|
||||
files, if required, on the **Library** page
|
||||
|
||||
d) create and edit playlists of media files or create smart blocks of content based on metadata, edit cue points and fades, and audition them. Playlists and smart blocks are also saved in the database, and can be searched for
|
||||
d) create and edit playlists of media files or create smart blocks of content
|
||||
based on metadata, edit cue points and fades, and audition them. Playlists and
|
||||
smart blocks are also saved in the database, and can be searched for
|
||||
|
||||
e) schedule colour-coded broadcast shows (which can contain playlists, smart blocks, pre-recorded complete shows, timed remote input streams, or be live) for specific dates and times on the **Calendar** page. Regular shows can be scheduled by the day of the week or month, and can be linked to share content
|
||||
e) schedule colour-coded broadcast shows (which can contain playlists, smart
|
||||
blocks, pre-recorded complete shows, timed remote input streams, or be live)
|
||||
for specific dates and times on the **Calendar** page. Regular shows can be
|
||||
scheduled by the day of the week or month, and can be linked to share content
|
||||
|
||||
f) automatically record live shows at specific times and dates (in 256 kbps Ogg Vorbis format by default) from the sound card input with Ecasound, upload them to the storage server and import them into the database
|
||||
f) automatically record live shows at specific times and dates (in 256 kbps Ogg
|
||||
Vorbis format by default) from the sound card input with Ecasound, upload them
|
||||
to the storage server and import them into the database
|
||||
|
||||
g) manage presenter, staff and guest access to LibreTime, and contact details, via the **Manage Users** page
|
||||
g) manage presenter, staff and guest access to LibreTime, and contact details,
|
||||
via the **Manage Users** page
|
||||
|
||||
h) see what is about to be played by Liquidsoap on the **Now Playing** page, with support for last-minute changes to the content
|
||||
h) see what is about to be played by Liquidsoap on the **Now Playing** page,
|
||||
with support for last-minute changes to the content
|
||||
|
||||
i) upload media files from LibreTime to a third-party hosting service, such as SoundCloud
|
||||
i) upload media files from LibreTime to a third-party hosting service, such as
|
||||
SoundCloud
|
||||
|
||||
j) audition available output streams from the server using the **Listen** button
|
||||
j) audition available output streams from the server using the **Listen**
|
||||
button
|
||||
|
||||
k) check the status and resource usage of system components on the **Status** page
|
||||
k) check the status and resource usage of system components on the **Status**
|
||||
page
|
||||
|
||||
l) export the broadcast schedule to external sites via the Schedule API
|
||||
|
||||
m) see logs on the **Playout History** page and view graphs on the **Listener Stats** page
|
||||
m) see logs on the **Playout History** page and view graphs on the
|
||||
**Listener Stats** page
|
||||
|
||||
n) configure the LibreTime system on the **Preferences**, **Media Folders** and **Streams** pages.
|
||||
n) configure the LibreTime system on the **Preferences**, **Media Folders** and
|
||||
**Streams** pages.
|
||||
|
||||
Example studio broadcast system
|
||||
-------------------------------
|
||||
|
||||
In the diagram of an FM radio station below, LibreTime is hosted on a server connected to the local network, with direct soundcard access. Liquidsoap outputs streams to both the transmitter, via the main studio mixer, and streaming media servers. The machine running LibreTime is behind a firewall because it is also connected to the Internet for remote access by media contributors. This enables LibreTime to offer password-protected access to the media library and scheduling from both inside and outside the studio building.
|
||||
In the diagram of an FM radio station below, LibreTime is hosted on a server
|
||||
connected to the local network, with direct soundcard access. Liquidsoap
|
||||
outputs streams to both the transmitter, via the main studio mixer, and
|
||||
streaming media servers. The machine running LibreTime is behind a firewall
|
||||
because it is also connected to the Internet for remote access by media
|
||||
contributors. This enables LibreTime to offer password-protected access to the
|
||||
media library and scheduling from both inside and outside the studio building.
|
||||
|
||||

|
||||

|
||||
|
||||
Example web broadcast system
|
||||
----------------------------
|
||||
|
||||
In the diagram below, LibreTime is hosted on a remote web server, and has no soundcard. There does not need to be a centralised studio, although LibreTime can enable remote studios to stream in to Liquidsoap at authorised times. Optionally, the outgoing Icecast stream can be relayed to a transmitter.
|
||||
In the diagram below, LibreTime is hosted on a remote web server, and has no
|
||||
soundcard. There does not need to be a centralised studio, although LibreTime
|
||||
can enable remote studios to stream in to Liquidsoap at authorised times.
|
||||
Optionally, the outgoing Icecast stream can be relayed to a transmitter.
|
||||
|
||||

|
||||

|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
The Libretime administration interface, as a web application, is fully customizable using the same methods that you might use to modify a website. For instance, you may wish to increase certain font sizes or change the colours in the Libretime interface to better suit staff users with impaired vision. To do this, open one of the CSS files in the */public/css/* directory under the Libretime *DocumentRoot* directory in an editor such as **nano**:
|
||||
The LibreTime administration interface, as a web application, is fully customizable using the same methods that you might use to modify a website. For instance, you may wish to increase certain font sizes or change the colours in the LibreTime interface to better suit staff users with impaired vision. To do this, open one of the CSS files in the */public/css/* directory under the LibreTime *DocumentRoot* directory in an editor such as **nano**:
|
||||
|
||||
sudo nano /usr/share/airtime/public/css/styles.css
|
||||
|
||||
|
@ -14,7 +14,7 @@ To change the background colour of the administration interface from dark gray t
|
|||
|
||||
Save the file with **Ctrl+O**, then refresh your browser to see the change to the interface background colour.
|
||||
|
||||
Any custom changes that you make to the administration interface should be backed up before upgrading Libretime to a newer version, otherwise they could be overwritten. If you have made improvements that you think might be useful to other Libretime users, please contact Libretime and tell us about them.
|
||||
Any custom changes that you make to the administration interface should be backed up before upgrading LibreTime to a newer version, otherwise they could be overwritten. If you have made improvements that you think might be useful to other LibreTime users, please contact LibreTime and tell us about them.
|
||||
|
||||
Modifying the Icecast interface
|
||||
-------------------------------
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
The Libretime administration interface can be localized using the standard GNU **gettext** method. Using GitHub for this task means you don't have to tackle the whole of a localization yourself; just as much as you can manage.
|
||||
The LibreTime administration interface can be localized using the standard GNU **gettext** method. Using GitHub for this task means you don't have to tackle the whole of a localization yourself; just as much as you can manage.
|
||||
|
||||

|
||||
|
||||
First, you should check if a localization is already under way for your locale of choice. The best way to do this is to take a look at the 'master' branch in the GitHub repository for Libretime at <https://github.com/LibreTime/libretime>. You can also ask in the Libretime development forum at <https://discourse.libretime.org/>, where you might find community members who can help you with the translation.
|
||||
First, you should check if a localization is already under way for your locale of choice. The best way to do this is to take a look at the 'master' branch in the GitHub repository for LibreTime at <https://github.com/LibreTime/libretime>. You can also ask in the LibreTime development forum at <https://discourse.libretime.org/>, where you might find community members who can help you with the translation.
|
||||
|
||||
GNU **gettext** means using a .po file for each language or dialect, a specially formatted plain text file with groups of three or more lines, like this example from Libretime's Korean localization:
|
||||
GNU **gettext** means using a .po file for each language or dialect, a specially formatted plain text file with groups of three or more lines, like this example from LibreTime's Korean localization:
|
||||
|
||||
#: airtime_mvc/application/configs/navigation.php:57
|
||||
msgid "Media Folders"
|
||||
|
@ -16,11 +16,11 @@ If you use the cross-platform program **Poedit** (<http://www.poedit.net/>) to e
|
|||
|
||||
Before manually translating strings in Poedit from scratch, you should take a look at the online translation services available, such as Lingohub (<https://lingohub.com>) or Google's Translator Toolkit (<http://translate.google.com/toolkit/>), which both support gettext .po files. If using automatic translation, you can then use Poedit to fine-tune the localization and fix any formatting errors.
|
||||
|
||||
If you don't already have a GitHub account, you can sign up at <https://github.com/signup/free>. Once you have a GitHub account, you can fork a copy (<https://help.github.com/articles/fork-a-repo>) of the Libretime project. Work for the next major version of the software is done in the **master** branch of each project, so that's the branch to **checkout** after you have made the initial **git clone**.
|
||||
If you don't already have a GitHub account, you can sign up at <https://github.com/signup/free>. Once you have a GitHub account, you can fork a copy (<https://help.github.com/articles/fork-a-repo>) of the LibreTime project. Work for the next major version of the software is done in the **master** branch of each project, so that's the branch to **checkout** after you have made the initial **git clone**.
|
||||
|
||||
In the locale code *de\_CH*, for example, *de* represents the German language and the suffix *\_CH* indicates the dialect spoken in Switzerland. Some languages have a wide variety of dialect localizations, which can be differentiated with a suffix in this way. You should update the header information in the .po file, which includes the language code and a country code, using one of the existing .po files as a guide.
|
||||
|
||||
After forking the Libretime git repository, make sure you're in the **master** branch:
|
||||
After forking the LibreTime git repository, make sure you're in the **master** branch:
|
||||
|
||||
git branch
|
||||
devel
|
||||
|
@ -40,18 +40,18 @@ and update the header information in the new copy of the *airtime.po* file using
|
|||
|
||||
For the example of Swiss German, the header of the file should now look like this:
|
||||
|
||||
# SWISS GERMAN (de_CH) translation for Libretime.
|
||||
# SWISS GERMAN (de_CH) translation for LibreTime.
|
||||
# Copyright (C) 2013 Sourcefabric
|
||||
# This file is distributed under the same license as the Libretime package.
|
||||
# This file is distributed under the same license as the LibreTime package.
|
||||
# Sourcefabric <contact@sourcefabric.org>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Libretime 3.0-Alpha\n"
|
||||
"Project-Id-Version: LibreTime 3.0-Alpha\n"
|
||||
"Report-Msgid-Bugs-To: https://discourse.libretime.org/\n"
|
||||
|
||||
After using an online translation tool to begin a new localization, you can load the exported .po file into Poedit and complete your translation there. Enter the localization team's contact information and language into Poedit's **Edit -> Preferences** and **Catalog -> Settings** dialogs, which will be added to the .po file. When you save a .po file in Poedit, the corresponding binary .mo file will be compiled automatically.
|
||||
|
||||
Finally, **git add**, **git commit** and **git push** these new .mo and .po files to your GitHub fork of the project, and send a git pull request (<https://help.github.com/articles/using-pull-requests>) to the Libretime developers. The localization can then be added to a forthcoming Libretime release.
|
||||
Finally, **git add**, **git commit** and **git push** these new .mo and .po files to your GitHub fork of the project, and send a git pull request (<https://help.github.com/articles/using-pull-requests>) to the LibreTime developers. The localization can then be added to a forthcoming LibreTime release.
|
||||
|
||||
If you don't want to work with git, that's no problem - download a copy of the .po template file, edit the header, run it through an automatic translator and check it with Poedit. Then email your contribution to the Libretime team as an attachment - it will be very welcome! However, learning to use git is a good idea, because it means you can work directly on the current source code, share the localization work with the Libretime community, and avoid duplicated effort.
|
||||
If you don't want to work with git, that's no problem - download a copy of the .po template file, edit the header, run it through an automatic translator and check it with Poedit. Then email your contribution to the LibreTime team as an attachment - it will be very welcome! However, learning to use git is a good idea, because it means you can work directly on the current source code, share the localization work with the LibreTime community, and avoid duplicated effort.
|
||||
|
|
|
@ -6,7 +6,7 @@ This button opens a pop-up **Live stream** window, which enables you to monitor
|
|||
|
||||

|
||||
|
||||
Beneath the drop-down menu for stream selection is an orange volume control bar. This volume control only adjusts the output level of the pop-up **Live Stream** window, not the output level of the Libretime server itself. To adjust output level between muted and maximum, click on the corresponding place in the orange bar, with maximum level on the right side. Click on the left side speaker icon to mute the output.
|
||||
Beneath the drop-down menu for stream selection is an orange volume control bar. This volume control only adjusts the output level of the pop-up **Live Stream** window, not the output level of the LibreTime server itself. To adjust output level between muted and maximum, click on the corresponding place in the orange bar, with maximum level on the right side. Click on the left side speaker icon to mute the output.
|
||||
|
||||

|
||||
|
||||
|
@ -14,4 +14,4 @@ To display the URL of the stream you are monitoring, so that you can copy and pa
|
|||
|
||||

|
||||
|
||||
When you have finished monitoring the streams, you can close the pop-up window in the normal way, depending on the browser you are using. In Firefox, you can close the window by clicking the **X** button in the top right corner. This action will not shut down the output from the Libretime server, only the stream monitoring on your desktop computer or laptop.
|
||||
When you have finished monitoring the streams, you can close the pop-up window in the normal way, depending on the browser you are using. In Firefox, you can close the window by clicking the **X** button in the top right corner. This action will not shut down the output from the LibreTime server, only the stream monitoring on your desktop computer or laptop.
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
Mixxx is a cross-platform Open Source application for DJs, available from <http://www.mixxx.org/>
|
||||
|
||||
Installed on a desktop or laptop computer, Mixxx complements your Libretime server to provide a complete system for both live and scheduled broadcasting. Although Mixxx has many features designed for dance music DJs that require beat matching and pitch independent time stretching, the program can be used for any kind of manually triggered broadcast playout, including live speech shows such as news or current affairs.
|
||||
Installed on a desktop or laptop computer, Mixxx complements your LibreTime server to provide a complete system for both live and scheduled broadcasting. Although Mixxx has many features designed for dance music DJs that require beat matching and pitch independent time stretching, the program can be used for any kind of manually triggered broadcast playout, including live speech shows such as news or current affairs.
|
||||
|
||||
Mixxx supports a wide variety of popular hardware control surfaces, which can be connected to your computer using a USB cable. A control surface might replace or augment an analogue mixer in your studio, depending on your live mixing and playout requirements.
|
||||
|
||||
Sound cards
|
||||
-----------
|
||||
|
||||
If you wish to use Libretime and Mixxx on the same machine, you will need two or more sound cards, as each program requires exclusive access to the sound hardware. Otherwise, you may see an error message that Mixxx cannot access the sound device.
|
||||
If you wish to use LibreTime and Mixxx on the same machine, you will need two or more sound cards, as each program requires exclusive access to the sound hardware. Otherwise, you may see an error message that Mixxx cannot access the sound device.
|
||||
|
||||

|
||||
|
||||
|
@ -18,27 +18,27 @@ The solution is to configure Mixxx to use additional sound cards by clicking **O
|
|||
Sharing storage
|
||||
---------------
|
||||
|
||||
If you make the Libretime server's storage directory */srv/airtime/stor/* accessible to a desktop machine as a read-only location, Mixxx will accept that location as its default music library when starting up for the first time. (This location can also be configured after installation by clicking **Options**, **Preferences**, then **Library** in the main Mixxx menu).
|
||||
If you make the LibreTime server's storage directory */srv/airtime/stor/* accessible to a desktop machine as a read-only location, Mixxx will accept that location as its default music library when starting up for the first time. (This location can also be configured after installation by clicking **Options**, **Preferences**, then **Library** in the main Mixxx menu).
|
||||
|
||||

|
||||
|
||||
You may need to adjust file and directory permissions so that the storage directory has read access from the desktop user account. Enabling write access directly to the storage server is not recommended, as this would allow desktop users to delete files which might be needed for playout later.
|
||||
|
||||
If the filesystem path has been configured correctly, the metadata for the files in the Libretime storage server will be displayed in the main window of the Mixxx interface. Individual files from the Libretime storage server can then be added to either of Mixxx's live players with a right-click on the filename, or by using the appropriate hardware buttons on a control surface. Therefore it is possible to manage the station's storage archive remotely and collaboratively through Libretime, while using Mixxx as the live playout client in multiple, remote studios.
|
||||
If the filesystem path has been configured correctly, the metadata for the files in the LibreTime storage server will be displayed in the main window of the Mixxx interface. Individual files from the LibreTime storage server can then be added to either of Mixxx's live players with a right-click on the filename, or by using the appropriate hardware buttons on a control surface. Therefore it is possible to manage the station's storage archive remotely and collaboratively through LibreTime, while using Mixxx as the live playout client in multiple, remote studios.
|
||||
|
||||

|
||||
|
||||
The Libretime storage archive can be exported like any other file server share. The method that you implement would depend on the operating system of your desktop client machines, and whether they were on the same local network as the Libretime server, or remote.
|
||||
The LibreTime storage archive can be exported like any other file server share. The method that you implement would depend on the operating system of your desktop client machines, and whether they were on the same local network as the LibreTime server, or remote.
|
||||
|
||||
For performance and redundancy reasons it is advisable to cache files required for a particular show on the client machine where Mixxx is installed. For example, for a GNU/Linux client machine, a nightly **rsync** download of new media in the archive would guard against network problems at playout time potentially disrupting a broadcast at a remote studio.
|
||||
|
||||
Mixxx users can also record a show, and then upload it through the Libretime web interface on a local or remote server for collaborative or user-generated broadcasts.
|
||||
Mixxx users can also record a show, and then upload it through the LibreTime web interface on a local or remote server for collaborative or user-generated broadcasts.
|
||||
|
||||
Streaming from Mixxx into Libretime
|
||||
Streaming from Mixxx into LibreTime
|
||||
---------------------------------
|
||||
|
||||
Mixxx 1.9.0 or later includes a live streaming client which, like Libretime, is compatible with the **Icecast** and **SHOUTcast** media servers. This feature can also be used to stream from Mixxx directly into Libretime, using either the **Show Source** or **Master Source**.
|
||||
Mixxx 1.9.0 or later includes a live streaming client which, like LibreTime, is compatible with the **Icecast** and **SHOUTcast** media servers. This feature can also be used to stream from Mixxx directly into LibreTime, using either the **Show Source** or **Master Source**.
|
||||
|
||||

|
||||
|
||||
To configure **Mixxx** for streaming into Libretime, click **Options**, **Preferences**, then **Live Broadcasting** on the main Mixxx menu. For server **Type**, select the default of **Icecast 2**. For **Host**, **Mount**, **Port**, **Login** and **Password**, use the **Input Stream Settings** configured in the Libretime **Streams** page, on Libretime's **System** menu. See the chapter *Stream settings* for remote input connection details.
|
||||
To configure **Mixxx** for streaming into LibreTime, click **Options**, **Preferences**, then **Live Broadcasting** on the main Mixxx menu. For server **Type**, select the default of **Icecast 2**. For **Host**, **Mount**, **Port**, **Login** and **Password**, use the **Input Stream Settings** configured in the LibreTime **Streams** page, on LibreTime's **System** menu. See the chapter *Stream settings* for remote input connection details.
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Libretime's media library is inside the */srv/airtime/stor/* folder on your server, by default. Tracks are uploaded into the imported subdirectory and then a separate directory based upon the user ID # of the user who uploaded it and then into a folder based upon the artist.
|
||||
LibreTime's media library is inside the */srv/airtime/stor/* folder on your server, by default. Tracks are uploaded into the imported subdirectory and then a separate directory based upon the user ID # of the user who uploaded it and then into a folder based upon the artist.
|
||||
|
||||
LibreTime unlike Airtime does not currently monitor the files for changes after they are uploaded. The media library is not designed to be edited directly after files are uploaded. This was done as part of a move towards enabling cloud-based file hosting. There are currently two works in progress to support filesystem imports and sync but neither of them have been finished as of the time of this writing. See [#111](https://github.com/LibreTime/libretime/pull/111) and [#514](https://github.com/LibreTime/libretime/pull/514). In addition LibreTime does not write metadata changes back to the files. See [#621](https://github.com/LibreTime/libretime/issues/621)
|
||||
|
|
|
@ -1,31 +1,36 @@
|
|||
Here's how you can use Libretime to manage your broadcasts.
|
||||
Chapter names in this book are shown in *italics*, to help you find the details of each step (if you need to read more).
|
||||
# On Air in 60 Seconds
|
||||
|
||||
1. Log in to your Libretime server with your **Username** and **Password** (*Getting started*).
|
||||
Here's how you can use LibreTime to manage your broadcasts. Chapter names in
|
||||
this book are shown in *italics*, to help you find the details of each step (if
|
||||
you need to read more).
|
||||
|
||||
<img src="static/Screenshot559-Log_in.png" alt="Log in" width="740" />
|
||||
1. Log in to your LibreTime server with your **Username** and **Password**
|
||||
(*Getting started*).
|
||||

|
||||
|
||||
2. Add your files to the Libretime library by clicking **Upload** on the left menu, then click on the the **Drop files here or click to browse your computer.** area. You can drag and drop your files into this window too. The upload will start as soon as you drop a file (*Add media*).
|
||||
2. Add your files to the LibreTime library by clicking **Upload** on the left
|
||||
menu, then click on the the **Drop files here or click to browse your computer**
|
||||
area. You can drag and drop your files into this window too. The upload will
|
||||
start as soon as you drop a file (*Add media*).
|
||||

|
||||
|
||||
<img src="static/Screenshot557-Select_files_a7GflUi.png" alt="Select files" width="740" />
|
||||
3. Create a show by clicking **Calendar** on the main menu, and then clicking
|
||||
the **New Show** button (*Calendar*). Only admins and program managers can add
|
||||
shows (*Users*).
|
||||

|
||||
|
||||
3. Create a show by clicking **Calendar** on the main menu, and then clicking the **New Show** button (*Calendar*). Only admins and program managers can add shows (<span style="font-style: italic;">Users</span>).
|
||||
4. Set a name for your show in the **What** section of the box, and a date and
|
||||
time in the **When** section, then click the **+ Add this show** button at the
|
||||
end of the page (*Calendar*).
|
||||

|
||||
|
||||
<img src="static/Screenshot558-Add_Show.png" alt="Add Show" width="740" />
|
||||
5. Add media to the new show by clicking the name of your show in the
|
||||
**Calendar** and selecting **Schedule Tracks** (*Calendar*).
|
||||

|
||||
|
||||
4. Set a name for your show in the **What** section of the box, and a date and time in the **When** section, then click the **+ Add this show** button at the end of the page (*Calendar*).
|
||||
|
||||
<img src="static/Screenshot560-Show_when.png" alt="Show when" width="740" />
|
||||
|
||||
5. Add media to the new show by clicking the name of your show in the **Calendar** and selecting **Schedule Tracks** (*Calendar*).
|
||||
|
||||
<img src="static/Screenshot561-Add_show_content.png" alt="Add show content" width="740" />
|
||||
|
||||
6. Search for the media in the left side of the pop-up window which will appear, and drag it into your show on the right side (*Now Playing*).
|
||||
|
||||
<img src="static/Screenshot562-Drag_show_content.png" alt="Drag show content" width="740" />
|
||||
6. Search for the media in the left side of the pop-up window which will appear,
|
||||
and drag it into your show on the right side (*Now Playing*).
|
||||

|
||||
|
||||
7. You're on air! Click the **Listen** button to hear available streams.
|
||||
|
||||
<img src="static/Screenshot563-Listen.png" alt="Listen button" width="740" />
|
||||
|
||||

|
||||
|
|
|
@ -28,7 +28,7 @@ With a playlist open, click on an item in the search results and then click **Ad
|
|||
|
||||

|
||||
|
||||
You can also select or deselect a whole page of search results using the **Select** button, just below the simple search field. Alternatively, use the checkboxes in the first column of the search results table to select individual items, then click the **Add to current playlist** button. Items that you own which you no longer require can be deleted from Libretime's library using the **Trashcan** button.
|
||||
You can also select or deselect a whole page of search results using the **Select** button, just below the simple search field. Alternatively, use the checkboxes in the first column of the search results table to select individual items, then click the **Add to current playlist** button. Items that you own which you no longer require can be deleted from LibreTime's library using the **Trashcan** button.
|
||||
|
||||

|
||||
|
||||
|
@ -36,7 +36,7 @@ After adding files to the playlist, the total playlist time is displayed in the
|
|||
|
||||
To audition a playlist file in your web browser, click the white triangle**** button on the left side of its row. (If the format of the file is not supported by your browser, the triangle in this button will be greyed out). If audition of the file format is supported, a pop-up window will open, with the playlist starting at the file you clicked.
|
||||
|
||||
Click the small white **x** icon on the right hand side of each row to remove a file from the playlist. You can also drag and drop files to re-order them, or click the **Shuffle** button to re-order files automatically. Click the **Clear** button to remove all content from the playlist, or click the **Delete** button to remove the playlist from the Libretime library altogether.
|
||||
Click the small white **x** icon on the right hand side of each row to remove a file from the playlist. You can also drag and drop files to re-order them, or click the **Shuffle** button to re-order files automatically. Click the **Clear** button to remove all content from the playlist, or click the **Delete** button to remove the playlist from the LibreTime library altogether.
|
||||
|
||||

|
||||
|
||||
|
@ -62,7 +62,7 @@ If a **Fade In** and **Cue In** are set on the same item in the playlist, the fa
|
|||
|
||||

|
||||
|
||||
When your playlist is complete, click the **New** button in the top left corner to create another playlist, click the close icon (a white cross in a black circle) in the top right corner, or browse to another page of the Libretime interface.
|
||||
When your playlist is complete, click the **New** button in the top left corner to create another playlist, click the close icon (a white cross in a black circle) in the top right corner, or browse to another page of the LibreTime interface.
|
||||
|
||||
If you want to edit the playlist content or metadata later, you can find it by **Title**, **Creator**, **Last Modified** date, **Length**, **Owner** or **Year** using one of the search tools on the Library page. Click the playlist in the search results list, and then click **Edit** from the pop-up menu. You can also **Preview** the entire playlist in a pop-up audition window, **Duplicate** or **Delete** one of your playlists from this menu.
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
Before uploading media to an Libretime server, there are a number of factors which should be considered. Getting your ingest workflow right will save you a lot of time later.
|
||||
Before uploading media to an LibreTime server, there are a number of factors which should be considered. Getting your ingest workflow right will save you a lot of time later.
|
||||
|
||||
Metadata quality
|
||||
----------------
|
||||
|
||||
Libretime automatically imports any metadata that is in the files' ID3 tags. If these tags are incorrect or are missing information, you will have to either edit the metadata manually, or suffer the consequences. For example, if the files have creator or genre metadata missing, it will be impossible to search for, create playlists or generate smart blocks according to these criteria until you add it.
|
||||
LibreTime automatically imports any metadata that is in the files' ID3 tags. If these tags are incorrect or are missing information, you will have to either edit the metadata manually, or suffer the consequences. For example, if the files have creator or genre metadata missing, it will be impossible to search for, create playlists or generate smart blocks according to these criteria until you add it.
|
||||
|
||||
There are a number of programs available which can be used to correct mistakes or incomplete information in ID3 tags. On GNU/Linux, the program **Ex Falso** ([http://code.google.com/p/quodlibet/](http://code.google.com/p/quodlibet/) "http://sourceforge.net/projects/dr14tmeter/")) can be useful for batch setting and editing ID3 tags before importing files into your Libretime server. On a Debian or Ubuntu desktop machine, you can install this program with the command:
|
||||
There are a number of programs available which can be used to correct mistakes or incomplete information in ID3 tags. On GNU/Linux, the program **Ex Falso** ([http://code.google.com/p/quodlibet/](http://code.google.com/p/quodlibet/) "http://sourceforge.net/projects/dr14tmeter/")) can be useful for batch setting and editing ID3 tags before importing files into your LibreTime server. On a Debian or Ubuntu desktop machine, you can install this program with the command:
|
||||
|
||||
sudo apt-get install exfalso
|
||||
|
||||
|
@ -20,7 +20,7 @@ or from the desktop menu. The *Tags From Path* feature of this program is a part
|
|||
Metadata in legacy character sets
|
||||
---------------------------------
|
||||
|
||||
Libretime expects file tag metadata to be stored in the international *UTF-8* character set. Programs such as **Ex Falso** (described above) encode metadata in UTF-8 by default. If you have an archive of files encoded with metadata in a legacy character set, such as the Cyrillic encoding *Windows-1251*, you should convert these files before import.
|
||||
LibreTime expects file tag metadata to be stored in the international *UTF-8* character set. Programs such as **Ex Falso** (described above) encode metadata in UTF-8 by default. If you have an archive of files encoded with metadata in a legacy character set, such as the Cyrillic encoding *Windows-1251*, you should convert these files before import.
|
||||
|
||||
The program **mid3iconv** (part of the **python-mutagen** package in Debian and Ubuntu) can be used to batch convert the metadata character set of files on the command line. You can install **python-mutagen** with the command:
|
||||
|
||||
|
@ -55,15 +55,15 @@ CP1256: Arabic
|
|||
Audio loudness
|
||||
--------------
|
||||
|
||||
On file ingest, Libretime analyzes each Ogg Vorbis, MP3, AAC or FLAC file's loudness, and stores a *ReplayGain* value for that file in its database. At playout time, the ReplayGain value is provided to Liquidsoap so that gain can be automatically adjusted to provide an average output of -14 dBFS loudness (14 decibels below full scale). See <http://www.replaygain.org/> for more details of ReplayGain.
|
||||
On file ingest, LibreTime analyzes each Ogg Vorbis, MP3, AAC or FLAC file's loudness, and stores a *ReplayGain* value for that file in its database. At playout time, the ReplayGain value is provided to Liquidsoap so that gain can be automatically adjusted to provide an average output of -14 dBFS loudness (14 decibels below full scale). See <http://www.replaygain.org/> for more details of ReplayGain.
|
||||
|
||||
Because of this automatic gain adjustment, any files with average loudness higher than -14 dBFS will not sound louder than quieter files at playout time, but the lower crest factor in the louder files (their relatively low peak-to-average ratio) may be apparent in the output, making those files sound less dynamic. This may be an issue for contemporary popular music, which can average at -9 dBFS or louder before ReplayGain adjustment. (See <http://www.soundonsound.com/sos/sep11/articles/loudness.htm> for a detailed analysis of the problem).
|
||||
|
||||
Your station's producers should therefore aim for 14dB between peak and average loudness to maintain the crest factor of their prepared material (also known as *DR14* on some dynamic range meters, such as the command-line DR14 T.meter available from <http://sourceforge.net/projects/dr14tmeter/>). If the producers are working to a different loudness standard, the ReplayGain modifier in Libretime's Stream Settings page can be adjusted to suit their material.
|
||||
Your station's producers should therefore aim for 14dB between peak and average loudness to maintain the crest factor of their prepared material (also known as *DR14* on some dynamic range meters, such as the command-line DR14 T.meter available from <http://sourceforge.net/projects/dr14tmeter/>). If the producers are working to a different loudness standard, the ReplayGain modifier in LibreTime's Stream Settings page can be adjusted to suit their material.
|
||||
|
||||
Large transient peaks in otherwise quiet files should be avoided, to guard against the need for peak limiting when ReplayGain is applied to those quieter files.
|
||||
|
||||
The **vorbisgain** command-line tool, available in the **vorbisgain** package in Debian/Ubuntu, can be used to indicate the ReplayGain of an individual Ogg Vorbis file before ingest into Libretime. (A similar tool for MP3 files is available in the **mp3gain** package in Debian/Ubuntu).
|
||||
The **vorbisgain** command-line tool, available in the **vorbisgain** package in Debian/Ubuntu, can be used to indicate the ReplayGain of an individual Ogg Vorbis file before ingest into LibreTime. (A similar tool for MP3 files is available in the **mp3gain** package in Debian/Ubuntu).
|
||||
|
||||
Here is an example of a very quiet file where the use of ReplayGain would make the output more than 17dB louder:
|
||||
|
||||
|
@ -88,7 +88,7 @@ In the output from vorbisgain, *Peak* is the maximum sample value of the file be
|
|||
Silence in media files
|
||||
----------------------
|
||||
|
||||
Before importing media, it is good practice to check for any silent sections in the media files. While Libretime compensates for leading and trailing silence with the use of automatic cue-in and cue-out points****, it may be preferable to trim these files to the intended length before upload. This is because media in the Libretime library could potentially be re-used in many different systems. **Audacity** is a cross-platform editor suitable for the task of trimming audio files, available from [http://audacity.sourceforge.net/](http://audacity.sourceforge.net "http://sourceforge.net/projects/dr14tmeter/")
|
||||
Before importing media, it is good practice to check for any silent sections in the media files. While LibreTime compensates for leading and trailing silence with the use of automatic cue-in and cue-out points****, it may be preferable to trim these files to the intended length before upload. This is because media in the LibreTime library could potentially be re-used in many different systems. **Audacity** is a cross-platform editor suitable for the task of trimming audio files, available from [http://audacity.sourceforge.net/](http://audacity.sourceforge.net "http://sourceforge.net/projects/dr14tmeter/")
|
||||
|
||||
Very quiet introductions or over-long fades can also lead to apparent gaps in your broadcast playout. Some audio CDs feature a 'hidden track' at the end, which in fact uses a long period of silence within the final track, rather than an actual separate track on the disc. This means that CD encoding programs will often encode both the hidden material and the silence in the media file. For example, the track *Debra* from the CD *Midnite Vultures* by *Beck* includes hidden material preceded by seven minutes of silence, as shown in the screen shot from Audacity below.
|
||||
|
||||
|
|
|
@ -1,17 +1,32 @@
|
|||
The following instructions assume that you have root access (**sudo** on most distributions) to a GNU/Linux server, and are familiar with basic command line tasks.
|
||||
# Preparing the Server
|
||||
|
||||
The recommended Libretime server platform is Ubuntu 16.04 LTS (Xenial Xerus).
|
||||
The following instructions assume that you have root access (**sudo** on most
|
||||
distributions) to a GNU/Linux server, and are familiar with basic command line
|
||||
tasks.
|
||||
|
||||
The server should have at least a 1GHz processor and 1GB of RAM, preferably 2GB RAM or more. If you are using a desktop environment and web browser directly on the server you should install at least 2GB RAM, to avoid swapping to disk.
|
||||
The recommended LibreTime server platform is Ubuntu 16.04 LTS (Xenial Xerus).
|
||||
|
||||
The LibreTime installation does not use much disk space, but you should allow plenty of storage capacity for the Libretime library. A hot-swap RAID array is recommended for media storage, in case of disk failure. You should also consider a UPS or other battery-powered system to offer some protection against short-term power failures.
|
||||
The server should have at least a 1GHz processor and 1GB of RAM, preferably 2GB
|
||||
RAM or more. If you are using a desktop environment and web browser directly on
|
||||
the server you should install at least 2GB RAM, to avoid swapping to disk.
|
||||
|
||||
LibreTime depends on infrastructure and services that need to be configured properly for it to run smoothly. This chapter will go through the individual parts of a LibreTime install and help you assess how you need to manage them.
|
||||
The LibreTime installation does not use much disk space, but you should allow
|
||||
plenty of storage capacity for the LibreTime library. A hot-swap RAID array is
|
||||
recommended for media storage, in case of disk failure. You should also consider
|
||||
a UPS or other battery-powered system to offer some protection against
|
||||
short-term power failures.
|
||||
|
||||
LibreTime depends on infrastructure and services that need to be configured
|
||||
properly for it to run smoothly. This chapter will go through the individual
|
||||
parts of a LibreTime install and help you assess how you need to manage them.
|
||||
|
||||
Firewall
|
||||
--------
|
||||
|
||||
LibreTime should only be run on a Server behind a firewall. This can either be a dedicated firewall in the network (like on some cloud providers) or a local firewall running iptables (as you would use on a root server or a local machine).
|
||||
LibreTime should only be run on a Server behind a firewall. This can either be a
|
||||
dedicated firewall in the network (like on some cloud providers) or a local
|
||||
firewall running iptables (as you would use on a root server or a local
|
||||
machine).
|
||||
|
||||
Setting up a local firewall is done differently on all the supported distros.
|
||||
|
||||
|
@ -19,9 +34,12 @@ Setting up a local firewall is done differently on all the supported distros.
|
|||
* [Ubuntu](https://help.ubuntu.com/lts/serverguide/firewall.html)
|
||||
* [FirewallD](http://www.firewalld.org/) (CentOS)
|
||||
|
||||
There is a vast amount of ways to configure your network, firewall included. Choose the way that best fits your deploy and dont internal expose parts of your LibreTime install on the network.
|
||||
There is a vast amount of ways to configure your network, firewall included.
|
||||
Choose the way that best fits your deploy and dont internal expose parts of your
|
||||
LibreTime install on the network.
|
||||
|
||||
The following ports are relevant to the deploy and need to be opened to varying degrees.
|
||||
The following ports are relevant to the deploy and need to be opened to varying
|
||||
degrees.
|
||||
|
||||
| Port | Description |
|
||||
| ---- | ----------- |
|
||||
|
@ -30,207 +48,68 @@ The following ports are relevant to the deploy and need to be opened to varying
|
|||
| 8000 | Main Icecast instance. This is where your listeners connect if you plan on using your LibreTime server to directly serve such connections. You can also configure external Icecast or ShoutCast instances for this later.|
|
||||
| 8001 and 8002 | Master and Show source input ports. Only open these ports if you plan on letting anyone use these features. You might want to consider usinga fixed IP if you use the master source for studio connections on port 8001 and only allow DJ to connect over a VPN link or similar depending your security needs.|
|
||||
|
||||
The remaining parts of LibreTime might open additional ports that should not be accessible from any untrusted networks. You should consider how to configure their firewall access individually once you configure them.
|
||||
The remaining parts of LibreTime might open additional ports that should not be
|
||||
accessible from any untrusted networks. You should consider how to configure
|
||||
their firewall access individually once you configure them.
|
||||
|
||||
PostgreSQL
|
||||
----------
|
||||
|
||||
You should set up PostgreSQL properly according to the instructions for your distro. Distro provided packages are fine for LibreTime as it does not have any specific version dependencies.
|
||||
You should set up PostgreSQL properly according to the instructions for your
|
||||
distro. Distro provided packages are fine for LibreTime as it does not have any
|
||||
specific version dependencies.
|
||||
|
||||
* [Debian](https://wiki.debian.org/PostgreSql)
|
||||
* [Ubuntu](https://help.ubuntu.com/lts/serverguide/postgresql.html)
|
||||
* [CentOS](https://www.postgresql.org/download/linux/redhat/)
|
||||
|
||||
You should restrict access to the database and create a user specific to LibreTime. The default installer script create a user with the password`airtime` which is far to open and should be replaced with a self provided user and a secure password. See the PostgreSQL docs on [roles](https://www.postgresql.org/docs/7.0/static/newuser.htm) and [databases](https://www.postgresql.org/docs/10/static/managing-databases.html).
|
||||
You should restrict access to the database and create a user specific to
|
||||
LibreTime. The default installer script create a user with the password
|
||||
`airtime` which is far to open and should be replaced with a self provided user
|
||||
and a secure password. See the PostgreSQL docs on
|
||||
[roles](https://www.postgresql.org/docs/7.0/static/newuser.htm) and
|
||||
[databases](https://www.postgresql.org/docs/10/static/managing-databases.html).
|
||||
|
||||
Please take care to ensure that your database is properly backed up at regular intervals. LibreTime uses the database to store your schedule, settings, playout history and more. See [backing up the server](../backing-up-the-server) for more information on this.
|
||||
Please take care to ensure that your database is properly backed up at regular
|
||||
intervals. LibreTime uses the database to store your schedule, settings, playout
|
||||
history and more. See [backing up the server](../backing-up-the-server) for more
|
||||
information on this.
|
||||
|
||||
RabbitMQ
|
||||
--------
|
||||
|
||||
LibreTime uses RabbitMQ interfacing various components like the main interface and parts of the system like the audio analyzer and podcast downloader as well as the playout system through a common message queue.
|
||||
Again, the version provided by your distro will probably work fine for all LibreTime is concerned.
|
||||
LibreTime uses RabbitMQ interfacing various components like the main interface
|
||||
and parts of the system like the audio analyzer and podcast downloader as well
|
||||
as the playout system through a common message queue. Again, the version
|
||||
provided by your distro will probably work fine for all LibreTime is concerned.
|
||||
|
||||
* [Debian/Ubuntu](https://www.rabbitmq.com/install-debian.html)
|
||||
* [CentOS](https://www.rabbitmq.com/install-rpm.html)
|
||||
|
||||
The install script sets `airtime` as the password on the default user. It is recommended to provide your own user using a secure password.
|
||||
The install script sets `airtime` as the password on the default user. It is
|
||||
recommended to provide your own user using a secure password.
|
||||
|
||||
You can use [`rabbitmqctl`](https://www.rabbitmq.com/man/rabbitmqctl.1.man.html) or the [Management Plugin](https://www.rabbitmq.com/management.html) to manage your RabbitMQ users.
|
||||
You can use [`rabbitmqctl`](https://www.rabbitmq.com/man/rabbitmqctl.1.man.html)
|
||||
or the [Management Plugin](https://www.rabbitmq.com/management.html) to manage
|
||||
your RabbitMQ users.
|
||||
|
||||
There is no state in the RabbitMQ system that you need to backup but you want to ensure that your RabbitMQ configuration and user permissions are safe.
|
||||
There is no state in the RabbitMQ system that you need to backup but you want to
|
||||
ensure that your RabbitMQ configuration and user permissions are safe.
|
||||
|
||||
### RabbitMQ hostname
|
||||
|
||||
RabbitMQ requires a fixed and resolvable hostname (see [the docs](http://www.rabbitmq.com/ec2.html#issues-hostname)), which is
|
||||
normal for a server. For a desktop or laptop machine where the hostname changes frequently or is not resolvable, this issue may prevent RabbitMQ from starting.
|
||||
When using a desktop or laptop computer with a dynamic IP address, such as an address obtained from a wireless network, the `rabbitmq-server` daemon must not start up before the `NetworkManager` service or `network.target`.
|
||||
|
||||
You may also choose to configure RabbitMQ to only listen on the loopback interface with a localhost node name. You can use [environment
|
||||
variables](https://www.rabbitmq.com/configure.html#define-environment-variables) or a configuration file to do this.
|
||||
RabbitMQ requires a fixed and resolvable hostname (see
|
||||
[the docs](http://www.rabbitmq.com/ec2.html#issues-hostname)), which is normal
|
||||
for a server. For a desktop or laptop machine where the hostname changes
|
||||
frequently or is not resolvable, this issue may prevent RabbitMQ from starting.
|
||||
When using a desktop or laptop computer with a dynamic IP address, such as an
|
||||
address obtained from a wireless network, the `rabbitmq-server` daemon must not
|
||||
start up before the `NetworkManager` service or `network.target`. You may also
|
||||
choose to configure RabbitMQ to only listen on the loopback interface with a
|
||||
localhost node name. You can use [environment variables](https://www.rabbitmq.com/configure.html#define-environment-variables)
|
||||
or a configuration file to do this.
|
||||
|
||||
See these links for more information:
|
||||
|
||||
* [Networking and RabbitMQ](https://www.rabbitmq.com/networking.html)
|
||||
* [Serverfault Instructions for Debian](https://serverfault.com/a/319166)
|
||||
|
||||
|
||||
----
|
||||
|
||||
***Beware, Here be dragons!***
|
||||
|
||||
The following instructions have been taken verbatim from the Libretime docs and
|
||||
not been brought up to date.
|
||||
|
||||
Sound cards
|
||||
-----------
|
||||
|
||||
If your Libretime machine will only be used to stream directly to an **Icecast** or **SHOUTcast** streaming media server, you do not require a sound card to be installed on the Libretime server side. This option is suitable for Libretime installations at your ISP's data centre, remote from any transmitter. However, you will not be able to take advantage of Libretime's live show recording feature (yet).
|
||||
|
||||
If you intend that your Libretime server will have a direct audio output to a broadcast transmitter or a separate stream encoder, your server machine must have a sound card supported by an **ALSA** driver. Almost all standard sound cards have ALSA drivers built into the Linux kernel, which do not need to be installed separately. If in doubt about driver support for your sound card, check the ALSA support matrix at: <http://www.alsa-project.org/main/index.php/Matrix:Main>
|
||||
|
||||
USB audio device index
|
||||
----------------------
|
||||
|
||||
Some server motherboards do not have a default ALSA device (index number zero, shown as hw:0,0 in ALSA notation), and a USB sound card is often prevented from getting index zero by the GNU/Linux distribution's configuration. This setting may be in a file such as */etc/modprobe.d/alsa-base.conf* in Ubuntu, which can be edited with **nano**:
|
||||
|
||||
sudo nano /etc/modprobe.d/alsa-base.conf
|
||||
|
||||
Comment out the lines beginning *options snd-usb-* to fix the problem:
|
||||
|
||||
# Prevent abnormal drivers from grabbing index 0
|
||||
|
||||
# options snd-usb-audio index=-2
|
||||
# options snd-usb-us122l index=-2
|
||||
# options snd-usb-usx2y index=-2
|
||||
# options snd-usb-caiaq index=-2
|
||||
|
||||
Save the file with **Ctrl+O** and close **nano** with **Ctrl+X**. Then remove and re-insert the cable connecting the USB sound card to the server (making sure any mixer or amplifier connected is faded down, to avoid a 'thump' on the output). The command **aplay -l** should now confirm that the *USB Audio* device has index 0 (shown as card 0, device 0):
|
||||
|
||||
aplay -l
|
||||
**** List of PLAYBACK Hardware Devices ****
|
||||
card 0: MobilePre [MobilePre], device 0: USB Audio [USB Audio]
|
||||
Subdevices: 1/1
|
||||
Subdevice #0: subdevice #0
|
||||
|
||||
When using a USB sound card with ALSA, some how-to documents advocate setting the *nrpacks=1* option, but this is not recommended for Libretime because it can increase CPU load significantly.
|
||||
|
||||
Intel HDA mixer labels
|
||||
----------------------
|
||||
|
||||
If you have an **Intel HDA** sound card, as built in to many contemporary motherboards, you may discover that the recording controls in **alsamixer** have incorrect labels. This problem can make it difficult to adjust mixer levels except by trial and error. To fix these labels, you can pass a specific *model=* parameter to the *snd-hda-intel* module of the Linux kernel. On Debian or Ubuntu GNU/Linux, you can do this by first identifying the model you have, with the command:
|
||||
|
||||
cat /proc/asound/card0/codec* | grep Codec
|
||||
|
||||
The server should respond with a line such as:
|
||||
|
||||
Codec: Realtek ALC882
|
||||
|
||||
Referring to the appendix *HD Audio Models* in this book, find the matching codec and model. In this example, the codec is *ALC882* and the motherboard has six analogue jacks and two S/PDIF sockets, so the model is *6stack-dig*.
|
||||
|
||||
ALC882/883/885/888/889
|
||||
======================
|
||||
3stack-dig 3-jack with SPDIF I/O
|
||||
6stack-dig 6-jack digital with SPDIF I/O
|
||||
|
||||
Edit the file */etc/modprobe.d/alsa-base.conf* with **nano** as follows:
|
||||
|
||||
sudo nano /etc/modprobe.d/alsa-base.conf
|
||||
|
||||
Add an appropriate line for your soundcard model to the end of the file, such as:
|
||||
|
||||
# Realtek ALC882
|
||||
options snd-hda-intel model=6stack-dig
|
||||
|
||||
Save the file with **Ctrl+O** and close **nano** with **Ctrl+X**. Then reboot the server. After the reboot, you should now see that the mixer controls are correctly labelled.
|
||||
|
||||
Disable desktop and other sounds
|
||||
--------------------------------
|
||||
|
||||
If you are installing Libretime on a desktop computer, make sure you disable or remove any programs that could send unintended audio to a sound card you are using for broadcast output. This includes alert sounds which play when the computer is ready for use, or when a user logs in. On Ubuntu, these sounds are configured using *System -> Preferences -> Sound* on the main desktop menu. (This configuration tool only works when the PulseAudio sound server is installed).
|
||||
|
||||
You may prefer to remove all system sound files from the computer, in case they could be played unintentionally via the sound card. For example, on Ubuntu you may wish to remove the **ubuntu-sounds** package, with the following command:
|
||||
|
||||
sudo apt-get purge ubuntu-sounds
|
||||
|
||||
PulseAudio
|
||||
----------
|
||||
|
||||
The PulseAudio sound server is not recommended for Libretime sound card output, but is installed by default on Ubuntu. To remove PulseAudio from an Ubuntu machine, type the following command:
|
||||
|
||||
sudo apt-get purge pulseaudio
|
||||
|
||||
Removing the **pulseaudio** package on a desktop Ubuntu machine may force the removal of the **ubuntu-desktop** metapackage. However, this metapackage is only installed on the system for managing upgrades; removing it does not remove the entire desktop.
|
||||
|
||||
After removing PulseAudio, if your Libretime machine has a desktop, you can install a mixer applet which can control the ALSA soundcard driver directly, such as **gnome-alsamixer**:
|
||||
|
||||
sudo apt-get install gnome-alsamixer
|
||||
|
||||
On a server with a sound card but without a desktop, you can control sound input and output levels using the command line program **alsamixer**:
|
||||
|
||||

|
||||
|
||||
This program should already be installed on an Ubuntu or Debian machine with a sound card. If not, you can install it with the command:
|
||||
|
||||
sudo apt-get install alsa-utils
|
||||
|
||||
The PHP cache
|
||||
-------------
|
||||
|
||||
This dependency, introduced in Libretime 2.5.0, can improve the responsiveness of the Libretime administration interface and reduce server load. Various PHP cache software is available, but the current cache software required by Libretime is **APC** (<http://pecl.php.net/package/APC>). You should uninstall or disable any other PHP cache that may be present on the server, such as **XCache**, before installing Libretime and APC. This is because having multiple caches enabled can cause problems for PHP.
|
||||
|
||||
You can remove the XCache package **php5-xcache** from a Debian or Ubuntu server with the command:
|
||||
|
||||
sudo apt-get remove php5-xcache
|
||||
|
||||
APC is available in Debian or Ubuntu as the **php-apc** package. If you already have Apache installed on the server you are going to use for Libretime, you can install APC and get it working with the following commands:
|
||||
|
||||
sudo apt-get install php-apc
|
||||
sudo invoke-rc.d apache2 restart
|
||||
|
||||
APC has an administration page, which is not installed by default. If you wish, you can install and configure it with the following commands:
|
||||
|
||||
sudo cp /usr/share/doc/php-apc/apc.php /usr/share/airtime/public/
|
||||
sudo nano /usr/share/airtime/public/apc.php
|
||||
|
||||
You should set an admin password for the *apc* user on line 42 of the file, such as *mynewpassword* in this example:
|
||||
|
||||
defaults('ADMIN_PASSWORD','mynewpassword');
|
||||
|
||||
Save the *apc.php* file with **Ctrl+O** and close it with **Ctrl+X**. Then open a web browser at the *apc.php* page of your Libretime server, such as:
|
||||
|
||||
http://libretime.example.com/apc.php
|
||||
|
||||
You will then be able to confirm that APC is working, and view some statistics for the cache.
|
||||
|
||||

|
||||
|
||||
Remove webmin, if installed
|
||||
---------------------------
|
||||
|
||||
The **webmin** control panel (<http://www.webmin.com>) has been known to remove Apache and PHP packages on Debian and Ubuntu systems, which can cause the Libretime package to be removed in turn. This problem is easily reversed by re-installation of the affected packages, but it has the potential to disrupt your broadcast playout from Libretime. Webmin is not likely to be installed on your server unless your system administrator has installed it manually. This is because webmin was removed from official Debian and Ubuntu package repositories some years ago.
|
||||
|
||||
RabbitMQ on Debian squeeze
|
||||
--------------------------
|
||||
|
||||
In Debian 6.0 'squeeze' the **rabbitmq-server** daemon does not start automatically after a reboot. This should be fixed before installing Libretime, to prevent problems at playout time. If the rabbitmq-server package was installed before the last reboot, you will need to run:
|
||||
|
||||
invoke-rc.d rabbitmq-server start
|
||||
|
||||
as the root user before the installation of Libretime. If it is not already installed, run the following command as root:
|
||||
|
||||
apt-get install rabbitmq-server
|
||||
|
||||
After a fresh installation, rabbitmq-server will start automatically, so there is no need to run the **invoke-rc.d** command mentioned above.
|
||||
|
||||
In either case, you should then edit lines 13 and 14 of the file */etc/init.d/rabbitmq-server* (as root) to show:
|
||||
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
|
||||
and then run the command (as root):
|
||||
|
||||
update-rc.d rabbitmq-server defaults
|
||||
|
||||
This should make sure that **rabbitmq-server** starts after the next reboot.
|
||||
|
||||
|
|
|
@ -1,17 +1,82 @@
|
|||
If you're new to broadcasting, or have not streamed your station online before, reading the following brief explanation of compensation rules for songwriters, musicians and other copyright holders may save you a great deal of trouble later.
|
||||
# Rights and Royalties
|
||||
|
||||
Independent music radio on the Internet has faced royalty demands from SoundExchange in the USA, and similar organizations in other territories. These organizations are usually membership societies or government-sanctioned national authorities which are intended to collect money from broadcasters to compensate copyright holders. The royalty collection societies require payment before you can stream just about any music released commercially to the general public — whether you make any money out of streaming, or not. It's not so much the percentage of revenue demanded, but that there are usually annual minimum fees to pay, which can hurt small stations disproportionately.
|
||||
If you're new to broadcasting, or have not streamed your station online before,
|
||||
reading the following brief explanation of compensation rules for songwriters,
|
||||
musicians and other copyright holders may save you a great deal of trouble
|
||||
later.
|
||||
|
||||
For example, in the UK, the MCPS-PRS Limited Online Music Licence covers non-commercial music streaming by groups and individuals, as long as their gross revenue is less then £12,500 per year. The cost is on a sliding scale, up to £1,120 plus 20% tax per year for delivering up to 450,000 individual streams or serving 25,000 files; after that, you have to apply for a full MCPS-PRS Online Music Licence. That doesn't sound too bad at first, but 25,000 files per year works out at less than four downloads per hour for a round-the-clock website. This particular licence only covers publishing (songwriter) rights, not recording (record label and musician's performance) rights, so you have to negotiate an additional licence from Phonographic Performance Limited (PPL) to play music online, including digital recordings converted from commercially released CDs, vinyl or tape.
|
||||
Independent music radio on the Internet has faced royalty demands from
|
||||
SoundExchange in the USA, and similar organizations in other territories. These
|
||||
organizations are usually membership societies or government-sanctioned national
|
||||
authorities which are intended to collect money from broadcasters to compensate
|
||||
copyright holders. The royalty collection societies require payment before you
|
||||
can stream just about any music released commercially to the general public —
|
||||
whether you make any money out of streaming, or not. It's not so much the
|
||||
percentage of revenue demanded, but that there are usually annual minimum fees
|
||||
to pay, which can hurt small stations disproportionately.
|
||||
|
||||
Typically, you have to provide full statistical details to the royalty society of all music streamed or downloaded from your site, which can be onerous. Even if your radio station is mostly speech, there are many limitations in the small print of these music licences. For instance, you can't use music for promotional purposes, and you can't stream a whole opera, without negotiating separate licences. Weirdly, you are not allowed to play a piece of music in a 'derogatory context' to the writer or performers; no drummer jokes allowed, then.
|
||||
For example, in the UK, the MCPS-PRS Limited Online Music Licence covers
|
||||
non-commercial music streaming by groups and individuals, as long as their gross
|
||||
revenue is less then £12,500 per year. The cost is on a sliding scale, up to
|
||||
£1,120 plus 20% tax per year for delivering up to 450,000 individual streams or
|
||||
serving 25,000 files; after that, you have to apply for a full MCPS-PRS Online
|
||||
Music Licence. That doesn't sound too bad at first, but 25,000 files per year
|
||||
works out at less than four downloads per hour for a round-the-clock website.
|
||||
This particular licence only covers publishing (songwriter) rights, not
|
||||
recording (record label and musician's performance) rights, so you have to
|
||||
negotiate an additional licence from Phonographic Performance Limited (PPL) to
|
||||
play music online, including digital recordings converted from commercially
|
||||
released CDs, vinyl or tape.
|
||||
|
||||
However, the biggest pitfall is that these MCPS-PRS licences for publishing rights only cover listeners in the UK. For recording rights, PPL is a member of the IFPI reciprocal scheme for webcasters, which means its licenses cover listeners in some European countries, Australia, New Zealand and a few other countries, but not listeners in the USA or Canada. So if your Internet station picked up a significant number of listeners in countries not covered by the MCPS-PRS licences or the IFPI reciprocal scheme, you would have to pay for similar music licences in those countries as well. It's no wonder that many not-for-profit radio stations have disappeared from the virtual airwaves over the last few years, since not having the right licences could leave the operator liable to legal action.
|
||||
Typically, you have to provide full statistical details to the royalty society
|
||||
of all music streamed or downloaded from your site, which can be onerous. Even
|
||||
if your radio station is mostly speech, there are many limitations in the small
|
||||
print of these music licences. For instance, you can't use music for
|
||||
promotional purposes, and you can't stream a whole opera, without negotiating
|
||||
separate licences. Weirdly, you are not allowed to play a piece of music in a
|
||||
'derogatory context' to the writer or performers; no drummer jokes allowed,
|
||||
then.
|
||||
|
||||
If you want to go down the commercial music route, check out the <http://www.prsformusic.com> and <http://www.ppluk.com> websites for UK licence details. In the USA, the <http://www.soundexchange.com> website currently quotes a 500 dollar minimum annual fee for non-commercial webcasters, plus a usage fee above a certain number of listener hours, for the right to stream music recordings to listeners. See the websites of [ASCAP](http://www.ascap.com), [BMI](http://www.bmi.com) and [SESAC](http://www.sesac.com) for details of music publishing royalties payable by webcasters streaming to the USA.
|
||||
However, the biggest pitfall is that these MCPS-PRS licences for publishing
|
||||
rights only cover listeners in the UK. For recording rights, PPL is a member of
|
||||
the IFPI reciprocal scheme for webcasters, which means its licenses cover
|
||||
listeners in some European countries, Australia, New Zealand and a few other
|
||||
countries, but not listeners in the USA or Canada. So if your Internet station
|
||||
picked up a significant number of listeners in countries not covered by the
|
||||
MCPS-PRS licences or the IFPI reciprocal scheme, you would have to pay for
|
||||
similar music licences in those countries as well. It's no wonder that many
|
||||
not-for-profit radio stations have disappeared from the virtual airwaves over
|
||||
the last few years, since not having the right licences could leave the operator
|
||||
liable to legal action.
|
||||
|
||||
Free content streaming offers an alternative for DIY Internet radio. Since royalty collection societies like MCPS-PRS and SoundExchange can only represent the interests of their own members, it follows that if you are not a member, you can stream your own self-produced content without paying for their licences. If you state somewhere on your website that the stream is of your own copyrighted material, and is made available to the public under a specific licence, then no-one should misunderstand your intentions.
|
||||
If you want to go down the commercial music route, check out the
|
||||
<http://www.prsformusic.com> and <http://www.ppluk.com> websites for UK licence
|
||||
details. In the USA, the <http://www.soundexchange.com> website currently quotes
|
||||
a 500 dollar minimum annual fee for non-commercial webcasters, plus a usage fee
|
||||
above a certain number of listener hours, for the right to stream music
|
||||
recordings to listeners. See the websites of [ASCAP](http://www.ascap.com),
|
||||
[BMI](http://www.bmi.com) and [SESAC](http://www.sesac.com) for details of music
|
||||
publishing royalties payable by webcasters streaming to the USA.
|
||||
|
||||
You might be able to persuade other people to allow you to stream their content too, as long as they do not have a conflicting legal obligation, such as having previously joined one of the many royalty collection societies around the world. You can ask for permission to stream when website visitors upload their own music files to you via a HTML form, much as the likes of SoundCloud do. Or you can collect files licensed under an appropriate Creative Commons licence (<http://www.creativecommons.org>) or other free content licence.
|
||||
Free content streaming offers an alternative for DIY Internet radio. Since
|
||||
royalty collection societies like MCPS-PRS and SoundExchange can only represent
|
||||
the interests of their own members, it follows that if you are not a member, you
|
||||
can stream your own self-produced content without paying for their licences. If
|
||||
you state somewhere on your website that the stream is of your own copyrighted
|
||||
material, and is made available to the public under a specific licence, then
|
||||
no-one should misunderstand your intentions.
|
||||
|
||||
Explicit permission to stream on your particular server is always going to be the ideal, so think about your own terms and conditions before you accept files from third parties for streaming. How, for example, would you know if someone uploaded a file to your online radio station that unknown to you, had been ripped from a commercially released CD? That's the kind of thing that could get you in trouble with the licensing authorities and copyright holders.
|
||||
You might be able to persuade other people to allow you to stream their content
|
||||
too, as long as they do not have a conflicting legal obligation, such as having
|
||||
previously joined one of the many royalty collection societies around the world.
|
||||
You can ask for permission to stream when website visitors upload their own
|
||||
music files to you via a HTML form, much as the likes of SoundCloud do. Or you
|
||||
can collect files licensed under an appropriate Creative Commons licence
|
||||
(<http://www.creativecommons.org>) or other free content licence.
|
||||
|
||||
Explicit permission to stream on your particular server is always going to be
|
||||
the ideal, so think about your own terms and conditions before you accept files
|
||||
from third parties for streaming. How, for example, would you know if someone
|
||||
uploaded a file to your online radio station that unknown to you, had been
|
||||
ripped from a commercially released CD? That's the kind of thing that could get
|
||||
you in trouble with the licensing authorities and copyright holders.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
To increase the security of your server, you can enable encrypted access to the Libretime administration interface, and direct your users towards this more secure login page. The main advantage of using this encryption is that your remote users' login names and passwords are not sent in plain text across the public Internet or untrusted local networks, such as shared Wi-Fi access points.
|
||||
To increase the security of your server, you can enable encrypted access to the LibreTime administration interface, and direct your users towards this more secure login page. The main advantage of using this encryption is that your remote users' login names and passwords are not sent in plain text across the public Internet or untrusted local networks, such as shared Wi-Fi access points.
|
||||
|
||||
The padlock icon in a web browser's address bar depends on the browser's recognition of an encryption certificate. Because the users of your Libretime server will often be known to you personally, it is feasible to use a self-signed certificate for this purpose. Alternatively, you can pay a Certificate Authority to sign the certificate for you. Libretime Pro servers are pre-configured with a certificate signed by a Certificate Authority which is automatically recognised by all popular browsers.
|
||||
The padlock icon in a web browser's address bar depends on the browser's recognition of an encryption certificate. Because the users of your LibreTime server will often be known to you personally, it is feasible to use a self-signed certificate for this purpose. Alternatively, you can pay a Certificate Authority to sign the certificate for you. LibreTime Pro servers are pre-configured with a certificate signed by a Certificate Authority which is automatically recognised by all popular browsers.
|
||||
|
||||
Deploying a self-signed certificate
|
||||
-----------------------------------
|
||||
|
@ -9,11 +9,11 @@ The Debian/Ubuntu package *ssl-cert* creates a *snakeoil* certificate and key ba
|
|||
|
||||
sudo apt-get install ssl-cert
|
||||
|
||||
If the hostname of your server does not match the domain name you intend to use with the Libretime virtual host, the user's browser will present an additional security warning. You can set the domain name of the certificate by editing the file */usr/share/ssl-cert/ssleay.cnf* to replace the *@HostName@* variable:
|
||||
If the hostname of your server does not match the domain name you intend to use with the LibreTime virtual host, the user's browser will present an additional security warning. You can set the domain name of the certificate by editing the file */usr/share/ssl-cert/ssleay.cnf* to replace the *@HostName@* variable:
|
||||
|
||||
commonName = @HostName@
|
||||
|
||||
with the domain name used by Libretime:
|
||||
with the domain name used by LibreTime:
|
||||
|
||||
commonName = airtime.example.com
|
||||
|
||||
|
@ -25,13 +25,13 @@ You should enable additional Apache modules for page redirections, custom header
|
|||
|
||||
sudo a2enmod alias headers ssl
|
||||
|
||||
Next, edit the virtual host configuration for your Libretime server to include a stanza for the https:// interface on port 443 and a redirect for logins from port 80:
|
||||
Next, edit the virtual host configuration for your LibreTime server to include a stanza for the https:// interface on port 443 and a redirect for logins from port 80:
|
||||
|
||||
sudo nano /etc/apache2/sites-available/airtime-vhost.conf
|
||||
|
||||
Using the following configuration for Apache 2.2 as a guide, replace *airtime.example.com* with the name of your server and *admin@example.com* with your email address. The older SSLv2 and SSLv3 protocols and SSL compression should be disabled, as they are generally believed to be insecure. You may wish to create a *ServerAlias* for users to access the administration interface over https:// if required.
|
||||
|
||||
On port 80, Apache's *alias* module is used to set a *Redirect permanent* for the login page. Optionally, access could be denied to all sites except *localhost* and any other Libretime servers on your network, so that unencrypted communication between Libretime components can continue.
|
||||
On port 80, Apache's *alias* module is used to set a *Redirect permanent* for the login page. Optionally, access could be denied to all sites except *localhost* and any other LibreTime servers on your network, so that unencrypted communication between LibreTime components can continue.
|
||||
|
||||
<VirtualHost *:443>
|
||||
SSLEngine on
|
||||
|
@ -84,7 +84,7 @@ When attempting to log into your server via http:// in future, you should be red
|
|||
Importing a self-signed certificate into the browser
|
||||
----------------------------------------------------
|
||||
|
||||
The first time you access an Libretime server with a self-signed certificate over https:// your browser will block the login page and display a security warning. In **Mozilla Firefox**, you can click **Technical Details** to confirm that the warning is due to the certificate being self-signed before clicking the **Add Exception** button. In **Google Chrome**, the button to click on the security warning page is **Proceed Anyway**.
|
||||
The first time you access an LibreTime server with a self-signed certificate over https:// your browser will block the login page and display a security warning. In **Mozilla Firefox**, you can click **Technical Details** to confirm that the warning is due to the certificate being self-signed before clicking the **Add Exception** button. In **Google Chrome**, the button to click on the security warning page is **Proceed Anyway**.
|
||||
|
||||

|
||||
|
||||
|
@ -92,7 +92,7 @@ On the next page in Firefox, click the **Get Certificate** button to inspect the
|
|||
|
||||

|
||||
|
||||
If the users of your Libretime server wish to avoid going through these steps, or they do not trust the remote Libretime server to be what it claims to be, it is also possible to import a trusted local copy of a certificate file into the browser. For example, in Firefox version 30 preferences, you can go into the **Advanced** section, click the **Certificates** tab, then click the **View Certificates** button. On the **Servers** tab of the **Certificate Manager**, there is an **Import** button which enables you to load a certificate file from the local computer.
|
||||
If the users of your LibreTime server wish to avoid going through these steps, or they do not trust the remote LibreTime server to be what it claims to be, it is also possible to import a trusted local copy of a certificate file into the browser. For example, in Firefox version 30 preferences, you can go into the **Advanced** section, click the **Certificates** tab, then click the **View Certificates** button. On the **Servers** tab of the **Certificate Manager**, there is an **Import** button which enables you to load a certificate file from the local computer.
|
||||
|
||||
Mixed encrypted and unencrypted content
|
||||
---------------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Accurate time keeping on your server is vital for Libretime performance. You can confirm that the date and time of your server are set correctly with the **date** command:
|
||||
Accurate time keeping on your server is vital for LibreTime performance. You can confirm that the date and time of your server are set correctly with the **date** command:
|
||||
|
||||
date
|
||||
|
||||
|
@ -6,12 +6,12 @@ The server should respond with the date, time, time zone and year in a format si
|
|||
|
||||
Tue Jul 2 15:08:57 BST 2013
|
||||
|
||||
If the time on your server is wrong, it is recommended that you take Libretime off-air until the problem is fixed.
|
||||
If the time on your server is wrong, it is recommended that you take LibreTime off-air until the problem is fixed.
|
||||
|
||||
Configuring NTP
|
||||
---------------
|
||||
|
||||
Although it is possible to set the date and time of the server manually, this is not recommended because the server clock can drift over time, compromising the accuracy of your broadcast schedule. If your Libretime server is permanently connected to the Internet, you can synchronize your server to a time server with the **ntp** ** program. If **ntp** is not yet installed, you can enter the following command on Debian or Ubuntu:
|
||||
Although it is possible to set the date and time of the server manually, this is not recommended because the server clock can drift over time, compromising the accuracy of your broadcast schedule. If your LibreTime server is permanently connected to the Internet, you can synchronize your server to a time server with the **ntp** ** program. If **ntp** is not yet installed, you can enter the following command on Debian or Ubuntu:
|
||||
|
||||
sudo apt-get install ntp
|
||||
|
||||
|
@ -19,7 +19,7 @@ Optionally, open the **ntp** configuration file in the **nano** editor to add fu
|
|||
|
||||
sudo nano /etc/ntp.conf
|
||||
|
||||
On Ubuntu GNU/Linux, the default time server is *ntp.ubuntu.com*, but there are many other time servers available on the public Internet, including the group of servers listed at <http://www.pool.ntp.org/> for each country. Using a variety of NTP servers located closely to your Libretime server should produce the most accurate results. For example, for a server in the United Kingdom you could use the following list:
|
||||
On Ubuntu GNU/Linux, the default time server is *ntp.ubuntu.com*, but there are many other time servers available on the public Internet, including the group of servers listed at <http://www.pool.ntp.org/> for each country. Using a variety of NTP servers located closely to your LibreTime server should produce the most accurate results. For example, for a server in the United Kingdom you could use the following list:
|
||||
|
||||
# You do need to talk to an NTP server or two (or three).
|
||||
server ntp.ubuntu.com
|
||||
|
@ -51,7 +51,7 @@ Then use the **ntpq -p** command to confirm that **ntp** is working. This comman
|
|||
Adjusting the server time zone
|
||||
------------------------------
|
||||
|
||||
The data centre which hosts your Libretime server could be located anywhere in the world. Some servers are set to *Coordinated Universal Time* or UTC (similar to *Greenwich Mean Time* or GMT), regardless of their location. Libretime uses UTC time in its database for scheduling purposes, independent of the server time zone.
|
||||
The data centre which hosts your LibreTime server could be located anywhere in the world. Some servers are set to *Coordinated Universal Time* or UTC (similar to *Greenwich Mean Time* or GMT), regardless of their location. LibreTime uses UTC time in its database for scheduling purposes, independent of the server time zone.
|
||||
|
||||
If the server time zone is not appropriate for integration with your station's other systems, on a Debian or Ubuntu server you can reconfigure the **tzdata** (time zone data) package with the command:
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
Creating a smart block
|
||||
----------------------
|
||||
|
||||
Smart blocks are automatically filled with media files from the Libretime library, according to the criteria that you specify. This feature is intended to save staff time, compared to selecting items for a playlist manually.
|
||||
Smart blocks are automatically filled with media files from the LibreTime library, according to the criteria that you specify. This feature is intended to save staff time, compared to selecting items for a playlist manually.
|
||||
|
||||
To create a smart block, click the **New** button on the right side of the Library page, and select **New Smart Block** from the pop-up menu. Like a playlist, smart blocks can have a title and **Description**, which you can edit. This helps you find relevant smart blocks in searches.
|
||||
|
||||

|
||||
|
||||
Click the link **Smart Block Options** to display the criteria and modifiers for the smart block. The criteria can be any one of Libretime's metadata categories, such as **Title**, **Creator** or **Genre**. The modifier depends on whether the metadata in question contains letters or numbers. For example, **Title** has modifiers including *contains* and *starts with*, whereas the modifiers for **BPM** include *is greater than* and *is in the range*.
|
||||
Click the link **Smart Block Options** to display the criteria and modifiers for the smart block. The criteria can be any one of LibreTime's metadata categories, such as **Title**, **Creator** or **Genre**. The modifier depends on whether the metadata in question contains letters or numbers. For example, **Title** has modifiers including *contains* and *starts with*, whereas the modifiers for **BPM** include *is greater than* and *is in the range*.
|
||||
|
||||
You can also set the **smart block type**. A **Static** smart block will save the criteria and generate the block content immediately. This enables you to edit the contents of the block in the **Library** page before adding it to a show. A **Dynamic** smart block will only save the criteria, and the specific content will be generated at the time the block is added to a show. After that, the content of the show can be changed or re-ordered in the **Now Playing** page.
|
||||
|
||||
|
@ -30,7 +30,7 @@ By default, a smart block will not contain repeated items, which will limit the
|
|||
|
||||
In addition Smart Blocks by default will never overflow the Time Limit. For instance if you set a time limit of 1 hour. It will add tracks to the schedule until it can't add any more tracks without exceeding the hour. This is to prevent tracks from being cut-off because they exceed the time limit of a show.
|
||||
|
||||
If you want a smartblock to schedule tracks until it is longer than the Time Limit you can check "Allow last track to exceed time limit". This will make LibreTime add tracks that meet the criteria until it equals or is longer than the time limit. The was the default behaviour with the Libretime software.
|
||||
If you want a smartblock to schedule tracks until it is longer than the Time Limit you can check "Allow last track to exceed time limit". This will make LibreTime add tracks that meet the criteria until it equals or is longer than the time limit. The was the default behaviour with the LibreTime software.
|
||||
|
||||
If you have a large number of files which meet the criteria that you specify, you may wish to limit the duration of the smart block using the **Limit to** field, so that it fits within the show you have in mind. Select **hours**, **minutes** or **items** from the drop-down menu, and click the **Generate** button again, if it is a static smart block. Then click the **Save** button.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using an ordinary smartphone and Libretime, you can upload your audio reports to the studio library or put them straight on the air. Here's how...
|
||||
Using an ordinary smartphone and LibreTime, you can upload your audio reports to the studio library or put them straight on the air. Here's how...
|
||||
|
||||
The basic voice recorder app on your phone may not have all the features you need for journalism, but there are plenty of more suitable recording apps available for both iPhone and Android. For instance, searching for 'ogg recorder' in the *Play Store* on an Android phone yields plenty of alternatives. The following example uses *RecForge Lite* because of its configurable recording formats. This free app is limited to three minutes per recording in Ogg and MP3 formats, but there is an unrestricted version available at very modest cost.
|
||||
|
||||
|
@ -10,7 +10,7 @@ Back in the main recording window of RecForge, create a directory such as '*reco
|
|||
|
||||

|
||||
|
||||
Open the web interface of your station's Libretime server in the phone's browser, log in with your username and password, and tap **Add Media** on Libretime's main menu. After tapping the **Add Files** button, the phone will offer a choice of file to upload. By tapping **Select music track** you can browse the */mnt/sdcard/media/audio/* directory on the SD card filesystem, without requiring the installation of a file manager app on the phone.
|
||||
Open the web interface of your station's LibreTime server in the phone's browser, log in with your username and password, and tap **Add Media** on LibreTime's main menu. After tapping the **Add Files** button, the phone will offer a choice of file to upload. By tapping **Select music track** you can browse the */mnt/sdcard/media/audio/* directory on the SD card filesystem, without requiring the installation of a file manager app on the phone.
|
||||
|
||||

|
||||
|
||||
|
@ -18,7 +18,7 @@ Tap one of the date-and-time-stamped files listed from the '*recordings*' direct
|
|||
|
||||

|
||||
|
||||
After tapping the **Start upload** button on the Add Media page, the files are now copied into the remote Libretime library.
|
||||
After tapping the **Start upload** button on the Add Media page, the files are now copied into the remote LibreTime library.
|
||||
|
||||

|
||||
|
||||
|
@ -27,18 +27,18 @@ You can now add the uploaded files directly to a forthcoming show, use them to c
|
|||
Going live
|
||||
----------
|
||||
|
||||
Mobile apps which enable you to stream directly into Libretime's live rebroadcast feature include **KoalaSan** for iOS: <http://koalasan.net/> and **BroadcastMySelf** for Android: <https://play.google.com/store/apps/details?id=sa.broadcastmyself> DemoIcesShout for Android also shows promise, although it can only stream a static file, rather than stream from a microphone: <http://droidtools.sourceforge.net/content/icecast-client-android>
|
||||
Mobile apps which enable you to stream directly into LibreTime's live rebroadcast feature include **KoalaSan** for iOS: <http://koalasan.net/> and **BroadcastMySelf** for Android: <https://play.google.com/store/apps/details?id=sa.broadcastmyself> DemoIcesShout for Android also shows promise, although it can only stream a static file, rather than stream from a microphone: <http://droidtools.sourceforge.net/content/icecast-client-android>
|
||||
|
||||
A live workflow does of course depend on a steady network connection between the phone and Libretime server. Because streaming media on a regular basis can use a lot of bandwidth, it is advisable to use WiFi rather than mobile data (3G/4G) whenever possible, especially when roaming across networks.
|
||||
A live workflow does of course depend on a steady network connection between the phone and LibreTime server. Because streaming media on a regular basis can use a lot of bandwidth, it is advisable to use WiFi rather than mobile data (3G/4G) whenever possible, especially when roaming across networks.
|
||||
|
||||
KoalaSan can stream input from either the built-in microphone or the external jack of the iOS device. An example configuration for the **Settings** tab might be:
|
||||
|
||||
Name: Libretime
|
||||
Name: LibreTime
|
||||
Server: libretime.example.com
|
||||
Port: 8003
|
||||
Mountpoint: mastermount
|
||||
Stream name: Libretime
|
||||
Description: A live stream to Libretime
|
||||
Stream name: LibreTime
|
||||
Description: A live stream to LibreTime
|
||||
Genre: News
|
||||
Username: masterstreamer
|
||||
Password: masterpassword
|
||||
|
@ -82,6 +82,6 @@ You may also wish to configure the **Tracks Folder** setting, which enables you
|
|||
|
||||
/mnt/sdcard/media/audio/
|
||||
|
||||
To connect the Android device to the Libretime server, tap the square button in the lower middle of the main interface. The connection indicator on the button should turn blue, and the message *connected* should be shown. Push up the fader on the left to increase input level from the internal microphone, or push up the fader on the right and tap one of the named files in the upper right window to stream it. Tap either of the **LOCK** buttons to prevent the stream input level being changed accidentally.
|
||||
To connect the Android device to the LibreTime server, tap the square button in the lower middle of the main interface. The connection indicator on the button should turn blue, and the message *connected* should be shown. Push up the fader on the left to increase input level from the internal microphone, or push up the fader on the right and tap one of the named files in the upper right window to stream it. Tap either of the **LOCK** buttons to prevent the stream input level being changed accidentally.
|
||||
|
||||
When the connection is made, Libretime output will fade from scheduled play to the stream from your mobile device. See the chapter *Stream settings* for more details of connection preferences.
|
||||
When the connection is made, LibreTime output will fade from scheduled play to the stream from your mobile device. See the chapter *Stream settings* for more details of connection preferences.
|
||||
|
|
|
@ -1,41 +1,70 @@
|
|||
This page of the Libretime interface enables you to search the media library, sort and display the search results by the criteria that you choose, audition library items, and drag and drop those items into a playlist. You can also adjust fade and cue points, create smart blocks (automatically generated playlists), or add incoming web streams to the library. The **Library** page is not visible to *Guest* users.
|
||||
# Tracks
|
||||
|
||||
This page of the LibreTime interface enables you to search the media library,
|
||||
sort and display the search results by the criteria that you choose, audition
|
||||
library items, and drag and drop those items into a playlist. You can also
|
||||
adjust fade and cue points, create smart blocks (automatically generated
|
||||
playlists), or add incoming web streams to the library. The **Library** page
|
||||
is not visible to *Guest* users.
|
||||
|
||||
Searching the library
|
||||
---------------------
|
||||
|
||||
In the top left corner of the page is an **Upload** button which enables you to add content to Libretime's library.
|
||||
In the library table which opens, the upper section is for the **Advanced
|
||||
Search Options**, which enable you to search within individual fields of the
|
||||
database such as **Title** or **Creator**. Like an Internet search engine, you
|
||||
do not have to type in the correct upper or lower case, press the **Enter** key,
|
||||
or even type the whole of the search term before matches from the LibreTime
|
||||
library are displayed.
|
||||
|
||||

|
||||

|
||||
|
||||
In the library table which opens, the upper section is for the **Advanced Search Options**, which enable you to search within individual fields of the database such as **Title** or **Creator**. Like an Internet search engine, you do not have to type in the correct upper or lower case, press the **Enter** key, or even type the whole of the search term before matches from the Libretime library are displayed.
|
||||
At the bottom of the library table, click the **First**, **Previous**, **Next**,
|
||||
**Last** or individual page number buttons to browse the search results.
|
||||
Right-clicking an item in the search results will display the available options
|
||||
for that item in a pop-up window.
|
||||
|
||||

|
||||
The columns displayed in the search results correspond to the fields available
|
||||
for advanced searches (except for **Scheduled** and **Playlist / Block**, which
|
||||
indicate if a particular item is in use). To change the fields which can be
|
||||
searched, click the **Show / hide columns** button on the right side of the
|
||||
table, just above the search results.
|
||||
|
||||
At the bottom of the library table, click the **First**, **Previous**, **Next**, **Last** or individual page number buttons to browse the search results. Right-clicking an item in the search results will display the available metadata for that item in a pop-up window.
|
||||

|
||||
|
||||

|
||||
Click the metadata column headings such as **Title**, **Creator**, **Album**, or
|
||||
**Genre** to sort the entries in ascending or descending order. In the second
|
||||
column, audio files are represented by a loudspeaker icon, while playlists ares
|
||||
represented by a document icon. Smart blocks have a think bubble icon, and web
|
||||
streams have an arrow icon.
|
||||
|
||||
The columns displayed in the search results correspond to the fields available for advanced searches (except for **Scheduled** and **Playlist / Block**, which indicate if a particular item is in use). To change the fields which can be searched, click the **Show / hide columns** button on the right side of the table, just above the search results.
|
||||
To find all files uploaded by yourself, or another specific member of the
|
||||
station staff, click the **Show / hide columns** checkbox which enables the
|
||||
**Owner** column. After you have made your search, you can click the header of
|
||||
the **Uploaded** column to find the items that person added to the server most
|
||||
recently.
|
||||
|
||||

|
||||
Advanced search terms are matched using 'and' rather than 'or' logic, to narrow
|
||||
your search. Perhaps you have tagged some jazz-flavoured station idents intended
|
||||
for use in a particular show called 'Jazz Maverick' with the **Album** tag of
|
||||
*Jazz Maverick* and a **Genre** of *Ident*. You could then find exactly the
|
||||
idents you are searching for by typing *maverick* and *ident* into the
|
||||
respective advanced search fields.
|
||||
|
||||
Click the metadata column headings such as **Title**, **Creator**, **Album**, or <span style="font-weight: bold;">Genre</span> to sort the entries in ascending or descending order. In the second column, audio files are represented by a loudspeaker icon, while playlists are represented by a document icon. Smart blocks have a think bubble icon, and web streams have an arrow icon.
|
||||
If your jingles are tagged with *Jingle* in the **Genre** or other fields, you
|
||||
can very easily find them by entering *jingle* into the search field. The same
|
||||
technique can be used to find advertising and promotional files. (See the
|
||||
chapter *Preparing media for ingest* for tips on batch tagging files with
|
||||
metadata). Unlike advanced searches, simple searches use 'or' logic for
|
||||
multiple search terms, so a simple search for *jingle ident* will return items
|
||||
matching either keyword.
|
||||
|
||||
To find all files uploaded by yourself, or another specific member of the station staff, click the **Show / hide columns** checkbox which enables the **Owner** column. After you have made your search, you can click the header of the **Uploaded** column to find the items that person added to the server most recently.
|
||||
|
||||
Advanced search terms are matched using 'and' rather than 'or' logic, to narrow your search. Perhaps you have tagged some jazz-flavoured station idents intended for use in a particular show called 'Jazz Maverick' with the **Album** tag of *Jazz Maverick* and a **Genre** of *Ident*. You could then find exactly the idents you are searching for by typing *maverick* and *ident* into the respective advanced search fields.
|
||||
|
||||
Use the drop-down menu at the top of the search results to display **Files**, **Playlists**, **Smart Blocks**, **Web Streams** or **All** items. By default 10 items are listed, but you can click the **Show** drop-down menu to change the list length to between 5 and 100 items.
|
||||
|
||||

|
||||
|
||||
Click the Advanced Search Options link to collapse that area. Beneath the collapsed link is the **Simple Search** field, with a magnifying glass icon, which enables the selection of items based on any tag metadata stored in the Libretime database, whether that metadata column is currently displayed in the table or not. For example, to search for all items between four and five minutes duration, enter *00:04* into the simple search field (for 00 hours and 04 minutes).
|
||||
|
||||

|
||||
|
||||
If your jingles are tagged with *Jingle* in the **Genre** or other fields, you can very easily find them by entering *jingle* into the simple search field. The same technique can be used to find advertising and promotional files. (See the chapter *Preparing media for ingest* for tips on batch tagging files with metadata). Unlike advanced searches, simple searches use 'or' logic for multiple search terms, so a simple search for *jingle ident* will return items matching either keyword.
|
||||
|
||||
Clicking on an item in the library table opens a pop-up menu which enables you to audition the item, or remove it from the Libretime library. Media types which cannot be auditioned directly in a web browser, such as FLAC, have a lock icon instead of a loudspeaker icon, but these files can be downloaded to your local computer for audition instead. The **Delete** option should be used with caution, because this action cannot be undone. For media files, you can also **Edit Metadata** stored for the file using this menu.
|
||||
|
||||

|
||||
Clicking on an item in the library table opens a pop-up menu which enables you
|
||||
to audition the item, or remove it from the LibreTime library. Media types which
|
||||
cannot be auditioned directly in a web browser, such as FLAC, have a lock icon
|
||||
instead of a loudspeaker icon, but these files can be downloaded to your local
|
||||
computer for audition instead. The **Delete** option should be used with
|
||||
caution, because this action cannot be undone. For media files, you can also
|
||||
**Edit Metadata** stored for the file using this menu.
|
||||
|
||||

|
||||
|
|
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 31 KiB |
|
@ -1,4 +1,6 @@
|
|||
How to Setup Genre based AutoDJ - Youtube Video
|
||||
# How to Setup Genre based AutoDJ
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/XNVIDnczrOk "How to Setup Genre based AutoDJ")
|
||||
|
||||
* Text-based Step-by-step [How-to](../../howtos/genre-autodj)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
How to Set Up an Podcast to Play with Autoloading Playlist - Youtube Video
|
||||
# How to Set Up an Podcast to Play with Autoloading Playlist
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/g-4UcD8qvR8 "How to Set Up an Podcast to Play with Autoloading Playlist")
|
||||
|
||||
* Step-by-step Text Based [How-To](../../howtos/podcast)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
How to Build Your Schedule - Youtube Video
|
||||
# How to Build Your Schedule
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/EfNhl-yQcn8 "How to build your schedule")
|
||||
|
||||
* Step-by-step Text Based [How-To](../../howtos/build-schedule)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
How to Upload use Smartblocks to Fill Time Between Shows - Youtube Video
|
||||
# How to Upload use Smartblocks to Fill Time Between Shows
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/kNT9R80Q42I "How to Upload use Smartblocks to Fill Time Between Shows ")
|
||||
|
||||
* Step-by-step Text Based [How-To](../../howtos/outro-playlist)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
##Tutorials##
|
||||
# Tutorials
|
||||
|
||||
This page contains links to number of screencast tutorials.
|
||||
This page contains links to number of screencast tutorials.
|
||||
Please provide any feedback on this [discourse forum post](https://discourse.libretime.org/t/new-tutorials-available-on-libretime-wiki/270/2).
|
||||
There are also a number of tutorials in Spanish on [Vimeo](https://vimeo.com/user90812787)
|
||||
|
||||
|
@ -8,6 +8,7 @@ There are also a number of tutorials in Spanish on [Vimeo](https://vimeo.com/use
|
|||
* [How to upload and schedule tracks on your show](upload-tracks)
|
||||
* [How to upload a promo](upload-promo)
|
||||
* [How to livestream with butt](livestream.md)
|
||||
|
||||
## Program Manager tutorials
|
||||
* [Building a schedule](build-schedule.md)
|
||||
* [How to set up an automatic top of the hour ID with intro playlist feature](top-of-hour-id.md)
|
||||
|
@ -16,6 +17,7 @@ There are also a number of tutorials in Spanish on [Vimeo](https://vimeo.com/use
|
|||
* [Preventing dead air between shows without cutting off tracks](filler.md)
|
||||
* [How to schedule automatic underwriting/advertising announcements](underwriting.md)
|
||||
* [How to schedule a repeating webstream with a linked show](webstream-link.md)
|
||||
|
||||
## Admin tutorials
|
||||
* [Installing LibreTime from Git on a stand-alone VPS](install-vps.md)
|
||||
* [Securing icecast and customizing stream settings ](stream-settings.md)
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
How to Install LibreTime on a VPS- Youtube Video
|
||||
# How to Install LibreTime on a VPS
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/Djo_55LgjXE "How to Install LibreTime on a VPS")
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
How to Livestream Your Show - Youtube Video
|
||||
# How to Livestream Your Show
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/4GLsU9hPTtM "How to Livestream Your Show")
|
||||
|
||||
* Step-by-Step Text-based [How-to](../../howtos/livestream)
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
How to Customize the Stream Settings - YouTube link
|
||||
# How to Customize the Stream Settings - YouTube link
|
||||
[](https://www.youtube-nocookie.com/embed/QPNo52Fc0ck "How to upload a promo")
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
How to set up an automatic top of the hour ID with intro playlist feature - Youtube Video
|
||||
# How to set up an automatic top of the hour ID with intro playlist feature
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/IXHmiqri4PI "How to set up an automatic top of the hour ID with intro playlist feature")
|
||||
|
||||
* Step-by-step Text Based [How-To](../../howtos/intro-playlist)
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
How to schedule underwriting announcements or ad spots - Youtube Video
|
||||
# How to schedule underwriting announcements or ad spots
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/F7rMut7Trb4 "How to schedule underwriting announcements")
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
How to Upload a Promo - Youtube Video
|
||||
# How to Upload a Promo
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/IC0cn3LaAXs "How to upload a promo")
|
||||
|
||||
* Step-by-step Text Based [How-To](../../howtos/upload-promo)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
How to Upload Tracks and Schedule Your Show - Youtube Video
|
||||
# How to Upload Tracks and Schedule Your Show
|
||||
* YouTube video
|
||||
|
||||
[](https://www.youtube-nocookie.com/embed/TJtWUzAlP08 "How to upload tracks")
|
||||
|
||||
* Step-by-step Text Based [How-To](../../howtos/upload)
|
||||
|
|