No description
Find a file
2022-06-03 22:32:53 +01:00
.github/workflows Check prettier instead of trying to be smart 2020-04-19 18:57:58 +02:00
config Rework BAPS build to avoid NODE_ENV problems 2021-09-25 21:45:25 +01:00
images Added images to readme file 2020-07-11 01:51:14 +02:00
public Fix BAPS <title> 2021-06-13 18:05:25 +01:00
scripts Rework BAPS build to avoid NODE_ENV problems 2021-09-25 21:45:25 +01:00
src Fix setPlayed on BAPS in channel 0 setting all channels. 2021-12-06 22:14:53 +00:00
.editorconfig Styling tweaking (#77) 2020-04-19 23:17:05 +02:00
.env Merge fixes / tidies from BAPS3 to Webstudio 2021-06-13 16:20:51 +01:00
.env.baps-development Use configurable BAPSicle server info. 2021-09-08 00:08:28 +01:00
.env.baps-production Use configurable BAPSicle server info. 2021-09-08 00:08:28 +01:00
.env.development Fix local development 2021-05-12 20:33:16 +01:00
.env.production Change shittyserver's WS to go via thunderhorn 2020-06-14 19:12:56 +02:00
.gitignore Show audio markers on load, send cue set to server. 2021-04-17 16:57:37 +01:00
Jenkinsfile Patch jenkins file homepage in packages.json 2021-09-08 23:27:54 +01:00
mypy.ini Re-add all deleted files for BAPS3 2021-05-28 00:04:08 +01:00
package.json Replace node-sass with sass to fix build errors 2021-12-28 13:06:43 +00:00
README.md Add note about Python compatibility 2021-12-28 13:31:57 +00:00
requirements.ci.txt Update python requirements. 2021-09-08 23:10:00 +01:00
requirements.txt Update python requirements. 2021-09-08 23:10:00 +01:00
serverconfig.ini.example Re-add all deleted files for BAPS3 2021-05-28 00:04:08 +01:00
shittyserver.py Re-add all deleted files for BAPS3 2021-05-28 00:04:08 +01:00
stateserver.py Re-add all deleted files for BAPS3 2021-05-28 00:04:08 +01:00
tsconfig.json prettier all the things 2020-04-20 14:54:43 +02:00
yarn.lock Replace node-sass with sass to fix build errors 2021-12-28 13:06:43 +00:00

WebStudio

WebStudio is URY's big fun machine for doing radio shows from home, using Web Audio and WebRTC. It's also now home to BAPS Presenter, for the BAPS3 (BAPSicle) project, a stripped down WebStudio with most interactions syphoned off to the BAPSicle server instead.

The clientside is written in TypeScript using React and Redux, the serverside is Python using AsyncIO and JACK.

Development

Requirements

Client:

  • Node.js and Yarn 1.x

Server:

  • Python 3.7-3.9 (note: Python 3.10 is not supported)

Installing

Clone the repo and run yarn.

You'll probably want to change the values in .env to reflect the MyRadio environment and/or where the server is running (e.g. if you're running the server locally, change REACT_APP_WS_URL to ws://localhost:8079/stream).

If you want to hack on the server, create a virtualenv and install Python packages:

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt

Versions

This project provides two different output versions. WebStudio (a client that does all audio in the browser) and BAPS Presenter (a client that controls / displays info from the BAPSicle server).

See below for how to work on each one.

Hacking (WebStudio)

Start the client by running npm start.

Start the server by running python3 stateserver.py and python3 shittyserver.py.

Don't forget to ensure that both TypeScript and MyPy pass, as your code will be rejected by CI otherwise - run tsc --noEmit and/or mypy server.py to check.

Releasing a new version

Every push to master is deployed automatically by Jenkins to https://ury.org.uk/webstudio-dev.

Deploying to https://ury.org.uk/webstudio is also automated but slightly more involved:

  1. Change the version field in package.json to ensure the "about" page is up to date
  2. Push up your version bump and create a pull request to the production branch - https://github.com/UniversityRadioYork/WebStudio/compare/production...master
  3. Once your changes are merged into production they'll get deployed automatically (although you will need to restart the server - ssh to Dolby and run sudo systemctl restart webstudioserver)

Hacking (BAPS Presenter)

Start the client by running npm run start-baps. If you're running non-default settings for your BAPSicle development server, please change .env-baps-development.

Releasing a new version

This is done via the BAPSicle project by updating the /presenter submodule, since BAPS Presenter is built and packaged into the BAPS Server releases there.

If you want to demo build a BAPS Presenter release, run npm run build-baps and the result will be in the build directory.

Screenshots

Mic Live With Main Screen

Home Page of webstudio

Mic Selection Screen