@paddatrapper changes
This commit is contained in:
parent
69f06a6d6f
commit
d7ee6a6f4c
57
.travis.yml
57
.travis.yml
|
@ -77,7 +77,8 @@ install:
|
||||||
if [[ "$PYTHON" == true ]]; then
|
if [[ "$PYTHON" == true ]]; then
|
||||||
pyenv local 3.7
|
pyenv local 3.7
|
||||||
pip3 install -U pip wheel
|
pip3 install -U pip wheel
|
||||||
pip3 install --user mkdocs rgain3
|
# pip3 install --user mkdocs
|
||||||
|
pip3 install --user rgain3
|
||||||
pushd python_apps/airtime_analyzer
|
pushd python_apps/airtime_analyzer
|
||||||
python3 setup.py install --dry-run --no-init-script
|
python3 setup.py install --dry-run --no-init-script
|
||||||
popd
|
popd
|
||||||
|
@ -92,30 +93,30 @@ before_script:
|
||||||
script:
|
script:
|
||||||
- ./travis/php.sh
|
- ./travis/php.sh
|
||||||
- ./travis/python.sh
|
- ./travis/python.sh
|
||||||
deploy:
|
#deploy:
|
||||||
- provider: pages
|
#- provider: pages
|
||||||
skip_cleanup: true
|
# skip_cleanup: true
|
||||||
local_dir: build/docs
|
# local_dir: build/docs
|
||||||
github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard
|
# github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard
|
||||||
target_branch: master
|
# target_branch: master
|
||||||
repo: LibreTime/LibreTime.github.io
|
# repo: LibreTime/LibreTime.github.io
|
||||||
project_name: LibreTime
|
# project_name: LibreTime
|
||||||
fqdn: libretime.org
|
# fqdn: libretime.org
|
||||||
name: R. LibreTime DocBot
|
# name: R. LibreTime DocBot
|
||||||
on:
|
# on:
|
||||||
branch: master
|
# branch: master
|
||||||
condition: $PYTHON = true
|
# condition: $PYTHON = true
|
||||||
- provider: script
|
#- provider: script
|
||||||
skip_cleanup: true
|
# skip_cleanup: true
|
||||||
script: ./travis/release.sh
|
# script: ./travis/release.sh
|
||||||
on:
|
# on:
|
||||||
tags: true
|
# tags: true
|
||||||
condition: $PYTHON = true
|
# condition: $PYTHON = true
|
||||||
- provider: releases
|
#- provider: releases
|
||||||
skip_cleanup: true
|
# skip_cleanup: true
|
||||||
api_key: $GITHUB_TOKEN
|
# api_key: $GITHUB_TOKEN
|
||||||
file_glob: true
|
# file_glob: true
|
||||||
file: build/libretime-*.tar.gz
|
# file: build/libretime-*.tar.gz
|
||||||
on:
|
# on:
|
||||||
tags: true
|
# tags: true
|
||||||
condition: $PYTHON = true
|
# condition: $PYTHON = true
|
||||||
|
|
|
@ -11,7 +11,7 @@ Vagrant.configure("2") do |config|
|
||||||
config.vm.network "forwarded_port", guest: 8001, host:8001
|
config.vm.network "forwarded_port", guest: 8001, host:8001
|
||||||
config.vm.network "forwarded_port", guest: 8002, host:8002
|
config.vm.network "forwarded_port", guest: 8002, host:8002
|
||||||
# mkdocs documentation
|
# mkdocs documentation
|
||||||
config.vm.network "forwarded_port", guest: 8888, host:8888
|
# config.vm.network "forwarded_port", guest: 8888, host:8888
|
||||||
|
|
||||||
# make sure we are using nfs (doesn't work out of the box with debian)
|
# make sure we are using nfs (doesn't work out of the box with debian)
|
||||||
nfsPath = "."
|
nfsPath = "."
|
||||||
|
@ -71,8 +71,8 @@ Vagrant.configure("2") do |config|
|
||||||
config.vm.provision "install", type: "shell", inline: "cd /vagrant; ./install %s --web-port=8080" % installer_args
|
config.vm.provision "install", type: "shell", inline: "cd /vagrant; ./install %s --web-port=8080" % installer_args
|
||||||
|
|
||||||
# Provision docs
|
# Provision docs
|
||||||
config.vm.provision "install-mkdocs", type: "shell", path: "docs/scripts/install.sh"
|
# config.vm.provision "install-mkdocs", type: "shell", path: "docs/scripts/install.sh"
|
||||||
config.vm.provision "start-mkdocs", type: "shell", path: "docs/scripts/serve.sh"
|
# config.vm.provision "start-mkdocs", type: "shell", path: "docs/scripts/serve.sh"
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -127,7 +127,7 @@ Removing content from a show
|
||||||
|
|
||||||
To remove an individual item from a show, click on the show in the **Calendar**, and select **Schedule Tracks** from the pop-up menu. In the window which opens, click any item you wish to remove from the show, then click **Delete** on the pop-up menu, or check the box in the item's row then click the **Remove** icon at the top of the table. To remove all files and playlists from a show, click on the show in the **Calendar**, and select **Clear Show** from the pop-up menu.
|
To remove an individual item from a show, click on the show in the **Calendar**, and select **Schedule Tracks** from the pop-up menu. In the window which opens, click any item you wish to remove from the show, then click **Delete** on the pop-up menu, or check the box in the item's row then click the **Remove** icon at the top of the table. To remove all files and playlists from a show, click on the show in the **Calendar**, and select **Clear Show** from the pop-up menu.
|
||||||
|
|
||||||
Deleting a upcoming show
|
Deleting an upcoming show
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
To delete an upcoming instance of a repeating show, click on the show in the **Calendar**, and select **Delete**, then **Delete Instance** from the pop-up menu. If you wish to delete all future instances of a repeating show, select **Delete Instance and All Following** from the pop-up menu.
|
To delete an upcoming instance of a repeating show, click on the show in the **Calendar**, and select **Delete**, then **Delete Instance** from the pop-up menu. If you wish to delete all future instances of a repeating show, select **Delete Instance and All Following** from the pop-up menu.
|
||||||
|
|
|
@ -32,7 +32,7 @@ will suit you well, use the links for a quick 101.
|
||||||
|
|
||||||
Before submitting code to the project, it's a good idea to test it first. To do this, it's easiest to install
|
Before submitting code to the project, it's a good idea to test it first. To do this, it's easiest to install
|
||||||
LibreTime in a virtural machine on your local system or in a cloud VM. Instructions on how to set up a virtural
|
LibreTime in a virtural machine on your local system or in a cloud VM. Instructions on how to set up a virtural
|
||||||
instance of LibreTime with Vagrant are located [here](vagrant), and with Canonical's Multipass are [here](multipass).
|
instance of LibreTime with Vagrant are located [here](vagrant).
|
||||||
If you would like to try LibreTime in a Docker image,
|
If you would like to try LibreTime in a Docker image,
|
||||||
Odclive has instructions [here](https://github.com/kessibi/libretime-docker) for setting up a test image
|
Odclive has instructions [here](https://github.com/kessibi/libretime-docker) for setting up a test image
|
||||||
and a more persistant install.
|
and a more persistant install.
|
||||||
|
|
|
@ -48,13 +48,13 @@ LibreTime services
|
||||||
|
|
||||||
| Service | Description |
|
| Service | Description |
|
||||||
|---------|-------------|
|
|---------|-------------|
|
||||||
| `libretime-analyzer` | Keeps track of files being added, renamed, moved or removed from storage, and reads their metadata using the Mutagen library. |
|
| libretime-analyzer | Keeps track of files being added, renamed, moved or removed from storage, and reads their metadata using the Mutagen library. |
|
||||||
| [PostgreSQL](https://www.postgresql.org/) | 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. |
|
| [PostgreSQL](https://www.postgresql.org/) | 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. |
|
||||||
| Pypo | (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. |
|
| Pypo | (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. |
|
||||||
| [Liquidsoap](https://www.liquidsoap.info/) | 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. |
|
| [Liquidsoap](https://www.liquidsoap.info/) | 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. |
|
||||||
| [Icecast](https://www.icecast.org/) or [Shoutcast](https://shoutcast.com/) | Audio streaming server, used for creating an internet radio stream from LibreTime. Icecast is included in the LibreTime installation by default. Note: 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. |
|
| [Icecast](https://www.icecast.org/) or [Shoutcast](https://shoutcast.com/) | Audio streaming server, used for creating an internet radio stream from LibreTime. Icecast is included in the LibreTime installation by default. Note: 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. |
|
||||||
| [Monit](https://mmonit.com/monit/) | Monitors the health of pypo, airtime-analyzer and Liquidsoap, and reports the status of these services to LibreTime. |
|
| [Monit](https://mmonit.com/monit/) | Monitors the health of pypo, libretime-analyzer and Liquidsoap, and reports the status of these services to LibreTime. |
|
||||||
| [RabbitMQ](https://www.rabbitmq.com/) | Pushes messages from LibreTime to media-monitor and pypo about changes to media files and the playout schedule. |
|
| [RabbitMQ](https://www.rabbitmq.com/) | Pushes messages from LibreTime to libretime-analyzer and pypo about changes to media files and the playout schedule. |
|
||||||
|
|
||||||
Example studio broadcast system
|
Example studio broadcast system
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
History
|
# 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.
|
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.
|
||||||
|
|
||||||
|
@ -9,35 +8,33 @@ This page has three tabs: **Log Sheet**, **File Summary** and **Show Summary**.
|
||||||
|
|
||||||
In the **Log Sheet** tab, the playout history is sorted by **Start Time** and **End Time** by default.
|
In the **Log Sheet** tab, the playout history is sorted by **Start Time** and **End Time** by default.
|
||||||
|
|
||||||
<img src="img/Screenshot533-Playout_history_250.png" width="595" height="385" />
|

|
||||||
|
|
||||||
The number of times each file was played and the length of the files are shown in the **File Summary** tab. To make optimal use of this feature for royalty reporting purposes, music files must be tagged with **Composer** and **Copyright** metadata. The artist performing a piece of music may not be the original composer of the work, or the copyright holder of the sound recording.
|
The number of times each file was played and the length of the files are shown in the **File Summary** tab. To make optimal use of this feature for royalty reporting purposes, music files must be tagged with **Composer** and **Copyright** metadata. The artist performing a piece of music may not be the original composer of the work, or the copyright holder of the sound recording.
|
||||||
|
|
||||||
<img src="img/Screenshot534-File_summary_250.png" width="595" height="415" />
|

|
||||||
|
|
||||||
On the **Show Summary** tab, click the name of a show within the search range to expand its row and see its playout details.
|
On the **Show Summary** tab, click the name of a show within the search range to expand its row and see its playout details.
|
||||||
|
|
||||||
<img src="img/Screenshot535-Show_summary_250.png" width="595" height="480" />
|

|
||||||
|
|
||||||
Manual logging
|
## 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="img/Screenshot536-Manual_login_250.png" width="530" height="575" />
|

|
||||||
|
|
||||||
Log entries can also be manually deleted, using the button with the trashcan icon, to the right of the **+ Create Entry** button. Pages of entries can be selected for deletion using the **Select** drop-down menu.
|
Log entries can also be manually deleted, using the button with the trashcan icon, to the right of the **+ Create Entry** button. Pages of entries can be selected for deletion using the **Select** drop-down menu.
|
||||||
|
|
||||||
History Templates
|
## History Templates
|
||||||
-----------------
|
|
||||||
|
|
||||||
The **History Templates** page on the History menu enables you to prepare reports with the exact content required by regulatory agencies in the territories that you are broadcasting to. You can begin creating a custom template by clicking the button **New Log Sheet Template** or the button **New File Summary Template**.
|
The **History Templates** page on the History menu enables you to prepare reports with the exact content required by regulatory agencies in the territories that you are broadcasting to. You can begin creating a custom template by clicking the button **New Log Sheet Template** or the button **New File Summary Template**.
|
||||||
|
|
||||||
<img src="img/Screenshot537-History_templates.png" width="221" height="277" />
|

|
||||||
|
|
||||||
Either of these actions opens a page in which you can name the new template, and add or remove elements from the list on the left. To add a new element from the list on the right, click the plus icon for the item you require. If the element you require is not listed, you can use the **Add New Field** box at the lower end of the right side column. Select *string*, *boolean*, *integer*, or *float*, depending on the type of data that you wish to log, and then click the **+ Add** button.
|
Either of these actions opens a page in which you can name the new template, and add or remove elements from the list on the left. To add a new element from the list on the right, click the plus icon for the item you require. If the element you require is not listed, you can use the **Add New Field** box at the lower end of the right side column. Select *string*, *boolean*, *integer*, or *float*, depending on the type of data that you wish to log, and then click the **+ Add** button.
|
||||||
|
|
||||||
<img src="img/Screenshot538-Log_sheet_template_250.png" width="595" height="517" />
|

|
||||||
|
|
||||||
When the template is in the format you require, click the **Save** button, and **Set Default Template** if you wish. The new template will now be listed on the History Templates page. If you have set a new default template, any changes will be visible on the tabs of the Playout History page.
|
When the template is in the format you require, click the **Save** button, and **Set Default Template** if you wish. The new template will now be listed on the History Templates page. If you have set a new default template, any changes will be visible on the tabs of the Playout History page.
|
||||||
|
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
---
|
|
||||||
sidebar: devs
|
|
||||||
---
|
|
||||||
|
|
||||||
# Testing LibreTime with Canonical's Multipass
|
|
||||||
|
|
||||||
Ever wanted to test out LibreTime but didn't want to tango with
|
|
||||||
Virturalbox, Vagrent, or Docker? Canonical released [Multipass](https://multipass.run), a tool for setting up Ubuntu VMs with cloud-init files in a snap.
|
|
||||||
Multipass is available for Windows and macOS, as well as Linux OSes that support snaps.
|
|
||||||
|
|
||||||
Similar to Docker, Multipass works through a CLI. To use, clone this repo and then open a Terminal
|
|
||||||
(or Command Prompt) inside the `libretime` folder and run
|
|
||||||
```
|
|
||||||
multipass launch bionic -n ltTEST --cloud-init libretimeTest.yaml # to launch VM
|
|
||||||
multipass shell ltTEST # to enter VM's shell
|
|
||||||
```
|
|
||||||
|
|
||||||
Due to a known bug, Multipass is not able to perform the entire install using the cloud-init file.
|
|
||||||
Run the LibreTime installer and follow the welcome wizard in your web browser.
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo ./libretime/install -fiap
|
|
||||||
```
|
|
||||||
|
|
||||||
The IP address of your new VM can be found by running `multipass list`.
|
|
||||||
Copy and paste it into your web browser to access the LibreTime interface.
|
|
||||||
|
|
||||||
You can stop the VM with `multipass stop ltTEST` and restart with `multipass start ltTEST`.
|
|
||||||
If you want to delete the image and start again, run `multipass delete ltTEST && multipass purge`.
|
|
||||||
|
|
||||||
---
|
|
||||||
### Cloud-init options in libretimeTest.yaml
|
|
||||||
|
|
||||||
You may wish to change the below fields as per your location.
|
|
||||||
```
|
|
||||||
timezone: America/New York # change as needed
|
|
||||||
ntp:
|
|
||||||
pools: ['north-america.pool.ntp.org']
|
|
||||||
servers: ['0.north-america.pool.ntp.org', '0.pool.ntp.org']
|
|
||||||
```
|
|
||||||
|
|
||||||
If you are running your forked repo of LibreTime for testing purposes,
|
|
||||||
modify the URL on this line:
|
|
||||||
```
|
|
||||||
runcmd:
|
|
||||||
- cd / && git clone https://github.com/LibreTime/libretime.git
|
|
||||||
```
|
|
|
@ -1,24 +0,0 @@
|
||||||
# Maintainer: Zachary Klosko (kloskoz@vcu.edu)
|
|
||||||
|
|
||||||
hostname: libretimeTest
|
|
||||||
timezone: America/New York # change as needed
|
|
||||||
ntp:
|
|
||||||
pools: ['north-america.pool.ntp.org']
|
|
||||||
servers: ['0.north-america.pool.ntp.org', '0.pool.ntp.org']
|
|
||||||
|
|
||||||
password: hackme
|
|
||||||
chpasswd: { expire: False }
|
|
||||||
|
|
||||||
packages:
|
|
||||||
- git
|
|
||||||
apt_update: true
|
|
||||||
apt_upgrade: true
|
|
||||||
|
|
||||||
|
|
||||||
runcmd:
|
|
||||||
- cd / && git clone https://github.com/LibreTime/libretime.git
|
|
||||||
# - sudo ./install -fiap # not working yet, uncomment once Canonical fixes bugs in Multipass
|
|
||||||
# - service airtime-liquidsoap start
|
|
||||||
# - service airtime-playout start
|
|
||||||
# - service airtime-celery start
|
|
||||||
# - service airtime_analyzer start
|
|
Loading…
Reference in New Issue