WebStudio
Even a pandemic can't keep us quiet! URY's new Work From Home Playout System
Install / Use
/learn @UniversityRadioYork/WebStudioREADME
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.10
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, use Poetry create a virtualenv and install Python packages:
$ poetry install
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:
- Change the
versionfield inpackage.jsonto ensure the "about" page is up to date - Push up your version bump and create a pull request to the
productionbranch - https://github.com/UniversityRadioYork/WebStudio/compare/production...master - Once your changes are merged into
productionthey'll get deployed automatically (although you will need to restart the server - ssh to Dolby and runsudo 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



Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
