|
1 | | -# BMS YouTube Music Bridge |
| 1 | +# MediaBMS |
2 | 2 |
|
3 | | -Emula Winamp para que Falcon BMS pueda controlar YouTube Music desde el ICP/DED. |
| 3 | +Control your music from the cockpit. MediaBMS bridges Falcon BMS's Crew Entertainment System with any modern media player. |
4 | 4 |
|
5 | | -## Como funciona |
| 5 | +Works with **YouTube Music**, **Apple Music**, **Spotify**, and any app that integrates with Windows media controls. |
6 | 6 |
|
7 | | -1. Crea una ventana "fake" con la clase `Winamp v1.x` que BMS busca |
8 | | -2. Recibe los comandos IPC que BMS envia (play, pause, next, prev, etc.) |
9 | | -3. Reenvía esos comandos a YouTube Music usando `WM_APPCOMMAND` de Windows |
| 7 | +## How it works |
10 | 8 |
|
11 | | -## Requisitos |
| 9 | +MediaBMS emulates Winamp by creating a hidden window with the `Winamp v1.x` class that BMS looks for. When BMS sends playback commands through the ICP/DED, MediaBMS translates them into Windows Media Session API calls, controlling whatever media player you have running. |
12 | 10 |
|
13 | | -- Windows 10/11 |
14 | | -- Python 3.8+ |
15 | | -- Falcon BMS 4.37+ |
16 | | -- YouTube Music abierto en el navegador |
| 11 | +``` |
| 12 | +Falcon BMS ---> MediaBMS (Winamp emulation) ---> Your media player |
| 13 | + ICP/DED WM_USER / WM_COMMAND Windows Media API |
| 14 | +``` |
17 | 15 |
|
18 | | -## Instalacion |
| 16 | +## Features |
19 | 17 |
|
20 | | -```bash |
21 | | -pip install -r requirements.txt |
22 | | -``` |
| 18 | +- Play / Pause / Stop (stop pauses without losing your queue) |
| 19 | +- Next / Previous track |
| 20 | +- Per-app volume control (only changes your music player volume, not the game) |
| 21 | +- Track title and artist displayed in the DED |
| 22 | +- Runs silently in the system tray |
23 | 23 |
|
24 | | -O simplemente ejecuta `run.bat` que instala todo automaticamente. |
| 24 | +## Download |
25 | 25 |
|
26 | | -## Uso |
| 26 | +Grab `BMSBridge.exe` from [Releases](https://github.com/gilgonore/MediaBMS/releases) -- no Python or dependencies needed. |
27 | 27 |
|
28 | | -1. Abre YouTube Music en tu navegador (Chrome, Edge, Firefox) |
29 | | -2. Ejecuta `run.bat` o `python bms_bridge_tray.py` |
30 | | -3. Inicia Falcon BMS |
31 | | -4. En el cockpit, usa el ICP para ir a la pagina ENTERTAINMENT en el DED |
32 | | -5. Controla la musica con los comandos del ICP |
| 28 | +## Usage |
33 | 29 |
|
34 | | -## Comandos del DED |
| 30 | +1. Open your music player and start playing something |
| 31 | +2. Run `BMSBridge.exe` (a blue icon appears in the system tray) |
| 32 | +3. Start Falcon BMS |
| 33 | +4. In the cockpit: **LIST > M-SEL 0 > M-SEL 0** to open the Entertainment page |
35 | 34 |
|
36 | | -Segun el manual de BMS (pagina 104), los controles son: |
| 35 | +### DED Controls |
37 | 36 |
|
38 | | -- **DCS UP/DOWN**: Navegar en la playlist |
39 | | -- **INC/DEC**: Volumen |
40 | | -- **RTN**: Play/Pause |
| 37 | +| Control | Action | |
| 38 | +|---------|--------| |
| 39 | +| DCS UP | Next track | |
| 40 | +| DCS DOWN | Previous track | |
| 41 | +| DCS SEQ | Toggle pause | |
| 42 | +| INC / DEC | Volume up / down | |
| 43 | +| DCS RTN | Exit entertainment page | |
41 | 44 |
|
42 | | -## Archivos |
| 45 | +### Keyboard / HOTAS Callbacks |
43 | 46 |
|
44 | | -- `bms_bridge.py` - Version con ventana visible (para debug) |
45 | | -- `bms_bridge_tray.py` - Version con system tray (recomendada) |
46 | | -- `media_controller.py` - Controlador de YouTube Music |
47 | | -- `winamp_constants.py` - Constantes de la API de Winamp |
48 | | -- `run.bat` - Script de ejecucion |
| 47 | +These callbacks can be mapped in your BMS key file (section 6.07 WINAMP): |
| 48 | + |
| 49 | +- `WinAmpNextTrack` / `WinAmpPreviousTrack` |
| 50 | +- `WinAmpTogglePlayback` / `WinAmpTogglePause` |
| 51 | +- `WinAmpStartPlayback` / `WinAmpStopPlayback` |
| 52 | +- `WinAmpVolumeUp` / `WinAmpVolumeDown` |
| 53 | + |
| 54 | +## Requirements |
| 55 | + |
| 56 | +- Windows 10 or 11 |
| 57 | +- Falcon BMS 4.37+ |
| 58 | +- Any media player (YouTube Music, Apple Music, Spotify, etc.) |
49 | 59 |
|
50 | | -## Logs |
| 60 | +## Setup |
51 | 61 |
|
52 | | -Los logs se guardan en `bms_bridge.log` para debug. |
| 62 | +Make sure `g_bPilotEntertainment` is set to `1` in your BMS config file. See the BMS Technical Manual for details. |
| 63 | + |
| 64 | +## Building from source |
| 65 | + |
| 66 | +```bash |
| 67 | +py -m venv venv |
| 68 | +venv\Scripts\pip install -r requirements.txt |
| 69 | +venv\Scripts\pip install pycaw winrt-runtime winrt-Windows.Media.Control winrt-Windows.Foundation pyinstaller |
| 70 | +venv\Scripts\pyinstaller bms_bridge.spec --clean |
| 71 | +``` |
| 72 | + |
| 73 | +The executable will be in `dist/BMSBridge.exe`. |
53 | 74 |
|
54 | 75 | ## Troubleshooting |
55 | 76 |
|
56 | | -**BMS no detecta el bridge:** |
57 | | -- Asegurate que el bridge este corriendo ANTES de iniciar BMS |
58 | | -- Verifica que no haya otra instancia de Winamp corriendo |
| 77 | +**BMS doesn't detect MediaBMS:** |
| 78 | +- Make sure MediaBMS is running BEFORE you start BMS |
| 79 | +- Check that Winamp is not running (BMS can only talk to one Winamp window) |
| 80 | + |
| 81 | +**Music doesn't respond to commands:** |
| 82 | +- Make sure your media player is open and has played at least one song |
| 83 | +- The player can be minimized but must be running |
| 84 | + |
| 85 | +**Volume doesn't change:** |
| 86 | +- MediaBMS controls per-app volume. Check your system volume mixer to confirm |
| 87 | + |
| 88 | +**No track info in DED:** |
| 89 | +- Track info updates every 2 seconds |
| 90 | +- Some players may take a moment to report metadata |
59 | 91 |
|
60 | | -**La musica no responde:** |
61 | | -- Asegurate que YouTube Music este abierto y activo en el navegador |
62 | | -- La ventana del navegador debe estar abierta (puede estar minimizada) |
| 92 | +## Tested with |
63 | 93 |
|
64 | | -**El titulo no aparece en el DED:** |
65 | | -- El titulo se lee de la ventana del navegador |
66 | | -- Formato esperado: "Cancion - Artista - YouTube Music" |
| 94 | +- YouTube Music (Chrome) |
| 95 | +- Apple Music (Windows app) |
67 | 96 |
|
68 | | -## Referencias |
| 97 | +## References |
69 | 98 |
|
70 | | -- [Reddit thread original](https://www.reddit.com/r/falconbms/comments/1f05hyd/bms_crew_entertainment/) |
| 99 | +- [BMS Crew Entertainment discussion](https://www.reddit.com/r/falconbms/comments/1f05hyd/bms_crew_entertainment/) |
71 | 100 | - [Winamp SDK](https://github.com/hugovk/winamp) |
72 | | -- [BMS User Manual - Pagina 104](https://www.falcon-bms.com/) |
| 101 | +- [YASB media widget](https://github.com/amnweb/yasb) (inspiration for Windows Media Session API approach) |
0 commit comments