{"id":29262410,"url":"https://github.com/00xbad/blip","last_synced_at":"2025-07-04T10:11:47.259Z","repository":{"id":300375317,"uuid":"1003761980","full_name":"00xBAD/BLIP","owner":"00xBAD","description":"A fast and reliable Bluetooth LE to MIDI bridge for the AKAI LPK25 Wireless — plug, pair, and play on Windows!","archived":false,"fork":false,"pushed_at":"2025-06-21T10:04:33.000Z","size":92,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T10:41:24.598Z","etag":null,"topics":["akai","akai-lpk25-wireless","audio","ble","bluetooth","daw","lpk25","midi","music","realtime","rust","virtual-midi","windows","wireless"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/00xBAD.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-17T16:17:23.000Z","updated_at":"2025-06-21T10:04:36.000Z","dependencies_parsed_at":"2025-06-21T10:51:46.501Z","dependency_job_id":null,"html_url":"https://github.com/00xBAD/BLIP","commit_stats":null,"previous_names":["00xbad/blip"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/00xBAD/BLIP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00xBAD%2FBLIP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00xBAD%2FBLIP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00xBAD%2FBLIP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00xBAD%2FBLIP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/00xBAD","download_url":"https://codeload.github.com/00xBAD/BLIP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/00xBAD%2FBLIP/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263489720,"owners_count":23474529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["akai","akai-lpk25-wireless","audio","ble","bluetooth","daw","lpk25","midi","music","realtime","rust","virtual-midi","windows","wireless"],"created_at":"2025-07-04T10:11:42.844Z","updated_at":"2025-07-04T10:11:47.245Z","avatar_url":"https://github.com/00xBAD.png","language":"Rust","funding_links":["https://ko-fi.com/N4N4RWQX7"],"categories":[],"sub_categories":[],"readme":"![Logo](./img/BLIP.png)\n\n# 🎹 BLE LPK25 INTERFACE PROGRAM\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n![Build Status](https://github.com/00xBAD/BLIP/actions/workflows/release-on-tag.yml/badge.svg)\n\n\nA high-performance Bluetooth LE MIDI bridge for the AKAI LPK25 Wireless keyboard, enabling seamless integration with Windows DAWs and music software!\n\n## 🌟 Why This Project?\n\nThe AKAI LPK25 Wireless keyboard is a fantastic portable MIDI controller, but it faces a common challenge on Windows: native Bluetooth MIDI support is limited. This bridge solves that problem by:\n\n- 🔵 Connecting directly to your LPK25 via Bluetooth LE\n- 🎯 Creating a virtual MIDI port that your DAW can recognize\n- 🚀 Providing ultra-low latency MIDI message forwarding\n- 💪 Offering robust connection management and auto-reconnection\n\n## 🤨 Note on AKAI's Windows Support\n\nDespite the AKAI LPK25 Wireless having full hardware capabilities and Bluetooth LE MIDI being natively supported on modern Windows systems, AKAI did not provide an official solution for using the keyboard wirelessly on Windows. This project was born out of that unnecessary gap — proving that a seamless and performant bridge is not only possible, but relatively straightforward to implement with existing open technologies.\n\nSometimes, if you want something done right, you have to do it yourself.\n\n## 📦 Prerequisites\n\nBefore using this bridge, you'll need:\n\n1. Windows OS (tested on Windows 11)\n2. [loopMIDI](https://www.tobias-erichsen.de/software/loopmidi.html) installed for virtual MIDI port creation\n3. AKAI LPK25 Wireless keyboard with Bluetooth capability\n4. A compatible USB Bluetooth BLE adapter (if not built-in)\n\n## 🚀 Installation\n\n1. Download the latest release from the [releases page](https://github.com/00xBAD/BLIP/releases)\n2. Create a new virtual MIDI port in loopMIDI named \"AKAI_LPK25_IN_BLE\"\n![alt](./img/loopMIDI_port_name.png)\n3. Run the executable\n\n## 💻 Usage\n\n1. Turn on your AKAI LPK25 Wireless keyboard\n2. Pair the keyboard with Windows via Bluetooth settings\n    \u003e Note: It's normal for Windows to drop the connection after pairing\n3. Launch the bridge application\n4. Wait for the BLE scanning message in the terminal\n5. Press the PAIR button on your LPK25\n6. Wait for the connection to establish\n7. The virtual MIDI port is now ready to use in your DAW!\n\n## ⚙️ Configuration\n\nYou can modify these settings in the source code if needed:\n\n```rust\n//-----------------------------------------------------------------------------\n// USER CONFIGURATION\n// You can safely modify these values to customize the bridge behavior\n//-----------------------------------------------------------------------------\n\n// Set the loopMIDI virtual port name\n// This must match the name of the virtual port created in loopMIDI\nconst VIRTUAL_MIDI_PORT_NAME: \u0026str = \"AKAI_LPK25_IN_BLE\";\n\n// BLE device scan timeout\nconst BLE_SCAN_TIMEOUT_SECS: u64 = 30;\n\n// Connection keepalive interval\nconst BLE_KEEPALIVE_SECS: u64 = 10;\n\n// Connection status check interval\nconst BLE_STATUS_CHECK_SECS: u64 = 1;\n\n// Octave offset for transposing MIDI notes (-11 to +11 octaves)\nconst OCTAVE_OFFSET: i8 = 0;\n```\n\n## 🔧 Technical Details\n\nThe bridge works by:\n\n1. 🔍 Scanning for BLE MIDI devices\n2. 🤝 Establishing a connection with your LPK25\n3. 📡 Converting BLE MIDI messages to standard MIDI\n4. ▶️ Forwarding messages to the virtual MIDI port (loopMIDI)\n5. 🔄 Maintaining connection stability with keepalive signals\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n1. **Keyboard Not Found During Scanning**\n   - Ensure the keyboard is powered on and in pairing mode (PAIR button pressed)\n   - Verify that your Bluetooth adapter supports BLE\n   - Try removing the keyboard from Windows Bluetooth devices and re-pair\n\n2. **Connection Drops Frequently**\n   - Check keyboard battery level\n   - Ensure you're within reasonable range (10-15 feet) of the receiver\n   - Try adjusting `BLE_KEEPALIVE_SECS` to a lower value\n\n3. **No MIDI Input in DAW**\n   - Verify loopMIDI port name matches `VIRTUAL_MIDI_PORT_NAME` in settings\n   - Check if loopMIDI is running\n   - Ensure your DAW has the virtual MIDI port enabled in its settings\n\n4. **High Latency**\n   - Close other Bluetooth applications that might interfere\n   - Try reducing `BLE_STATUS_CHECK_SECS` value\n   - Check if your system is under heavy load\n\nFor additional support, please [open an issue](https://github.com/00xBAD/BLIP/issues) on GitHub.\n\n## 🏗️ Building from Source\n\n### Prerequisites\n\n1. Install [Rust and Cargo](https://rustup.rs/)\n2. Install [Git](https://git-scm.com/downloads)\n3. Install [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) with the following components:\n   - Windows SDK\n   - C++ build tools\n4. Install [loopMIDI](https://www.tobias-erichsen.de/software/loopmidi.html)\n\n### Build Steps\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/00xBAD/BLIP.git\n   cd BLIP\n   ```\n\n2. Build the project:\n   ```bash\n   cargo build --release\n   ```\n\n3. Find the executable in `target/release/BLIP.exe`\n\n### Development Build\n\nFor development and debugging, you can use:\n```bash\ncargo build\n```\nThis will create a debug build in `target/debug/`.\n\n### Running Tests\n\nTo run the test suite:\n```bash\ncargo test\n```\n\n## ⚠️ Legal Disclaimer\n\nBLIP is an open-source tool for BLE communication with AKAI LPK25.\nThis project is not affiliated with AKAI Professional or the Bluetooth SIG.\nLPK25 is a trademark of AKAI Professional, used here solely for descriptive purposes.\n\n## 👥 Credits\n\nThis project was made possible by:\n\n- 🧠 Main Code Implementation: Claude Sonnet 3.5\n- 💡 Project Brainstorming \u0026 Overview: GPT-4o\n- 👨‍💼 Project Supervision \u0026 Management: Fabio Corona\n\n## ⭐ Contributing\n\nContributions are welcome! Feel free to:\n\n- 🐛 Report bugs\n- 💡 Suggest features\n- 🔧 Submit pull requests\n- 🐧 Port to Linux\n\n## ☕️ Support Me!\n\nIf you find this project helpful, consider buying me a coffee!\nYour support helps me create and maintain more tools like this.\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N4RWQX7)\n\nThank you for your support! It means a lot and keeps the creativity flowing! ❤️\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 📞 Support\n\nIf you encounter any issues or have questions, please:\n\n1. Check the [issues page](https://github.com/00xBAD/BLIP/issues)\n2. Create a new issue if needed\n\nHappy music making! 🎵✨\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F00xbad%2Fblip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F00xbad%2Fblip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F00xbad%2Fblip/lists"}