Launchpad Online is a Progressive Web App (PWA) designed for performing with Novation Launchpad controllers. It provides both a virtual emulator and hardware integration, supported by a built-in project library.
The project serves as a specialized alternative to Ableton Live, focusing exclusively on Launchpad performance and project playback. Unlike a full Digital Audio Workstation (DAW), this application is dedicated to the core functionalities required for playing and managing Launchpad-specific projects.
Coming Soon
Coming Soon
- Modular Animation Engine: Lighting system with over 30 animation types.
- Hardware Integration: Support for Novation Launchpad and compatible controllers via Web MIDI API.
- Audio Core & Visualizer:
- Audio engine based on Web Audio API for sample playback.
- Real-time audio visualizer with customizable rendering options.
- Customization & Aesthetics:
- Launchpad Skins: Change the appearance of the digital controller, including support for button stickers/decals.
- Dynamic Backgrounds: Decorative background images and video loops to enhance performance videos.
- Layout Control: Rotation and scalability settings for optimal visuals.
- PWA Ready: Installable as a native app on desktop and mobile, with offline support.
- Project Management: Project loading via JSON files with support for up to 8 pages (512 total sounds).
- Built-in Project Library: Access a growing collection of pre-configured projects ready to be played immediately.
Planned features for future development:
- Multisampling Support: Ability to assign multiple audio samples to a single button (e.g., for velocity layering or round-robin).
- In-App Project Creator: Integrated tool to build and configure projects directly within the application without manual JSON editing.
- In-App Animation Designer: Visual interface to create and customize lighting patterns and animations.
- Project Library Expansion: Continuous addition of ready-to-play projects to the built-in library.
- Performance Optimization: Continuous research into app optimization to ensure lightweight and fast execution across browsers and the widest possible range of devices.
- Asset Compression & Memory Management: Implementation of methods to reduce or compress the size of video and audio assets (currently .mp4 and .wav) to make the app lighter and less memory-intensive.
- Localization & Multi-language Support: Implement translations for as many languages as possible to make the application accessible to a global audience.
The easiest way to use the application is via the live demo: https://cupomeridio.github.io/Launchpad-Online/
The online version is updated automatically and supports PWA installation directly from the browser.
If you wish to run the project locally or contribute to development:
- Prerequisites: A modern browser with Web MIDI and Web Audio support (Chrome, Edge, Opera).
- Clone the repository:
git clone https://github.com/your-username/Launchpad-Online.git cd Launchpad-Online - Start a local server: A static server is required for MIDI and PWA features.
- VS Code: Use the Live Server extension.
- Terminal: Run
npx http-server.
Launchpad-Online/
βββ assets/ # Media resources
β βββ icons/ # App icons and favicons
β βββ images/ # UI images and launchpad covers
β βββ videos/ # Background video loops
βββ css/ # Application styling
β βββ launchpad.css # Launchpad-specific styles
β βββ style.css # General application styles
βββ js/ # Application logic
β βββ vendor/ # Third-party libraries
β β βββ launchpad-webmidi.js
β βββ animationClasses.js # Animation class definitions
β βββ animationData.js # Animation data and structures
β βββ animationEngine.js # Core animation rendering engine
β βββ animationLibrary.js # Registry of available animations
β βββ app.js # Main application entry point
β βββ audio.js # Web Audio API engine
β βββ interaction.js # User interaction handling
β βββ lights.js # Legacy light management (refactored)
β βββ midi.js # MIDI hardware integration
β βββ physicalInterface.js # Physical Launchpad mapping
β βββ project.js # Project and page management
β βββ static-data.json # Static configuration data
β βββ ui.js # UI components and DOM management
β βββ video.js # Video background controller
β βββ visualizer-controls.js # Visualizer UI controls
β βββ visualizer.js # Audio visualizer logic
β βββ webInterface.js # Virtual Launchpad interface
βββ locales/ # Internationalization (i18n)
β βββ de.json
β βββ en.json
β βββ es.json
β βββ fr.json
β βββ it.json
βββ projects/ # Performance projects (JSON + Samples)
β βββ [Project Name]/
βββ index.html # Main HTML entry point
βββ manifest.json # PWA manifest
βββ package.json # NPM configuration
βββ README.md # Project documentation
Contributions are welcome. If you have proposals for new animations, interface improvements, or compatibility profiles for new MIDI controllers:
- Fork the project.
- Create a branch for your change (
git checkout -b feature/NewFeature). - Commit your changes (
git commit -m 'Add NewFeature'). - Push to the branch (
git push origin feature/NewFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
- LostInBrittany/launchpad-webmidi for the base library.
- All contributors and electronic music enthusiasts.
Developed for the Launchpad community.
