Giter Club home page Giter Club logo

soundboard-electron's Introduction

soundboard

soundboard is a live-performance music playground inviting everybody to get creative and to experiment with sounds. It is designed to be straightforward to use and to be understandable without knowing all the muso slang. Behind the scenes, it is a React-based Electron app backed by a C++ native module built around the JUCE framework. It started out as a personal project to learn audio programming, but everyone is invited to contribute :).

some nice screenshot

Contents

Build Instructions

soundboard is known to work under macOS Big Sur on Intel and M1 macs. If someone wants to get their hands dirty and add Linux or Windows support, that'll make a great first contribution :).

  1. Prerequisites
    • Install Node.js
    • Setup SSH key authentication for your GitHub account (technically not required, but you have to adjust the submodule urls otherwise)
  2. Clone the repo
    git clone --recurse-submodules [email protected]:deermichel/soundboard.git
  3. Install npm dependencies
    cd soundboard
    npm install
  4. Build and start the app
    npm start
    
    # or compile on multiple threads to speed up the build
    JOBS=max npm start
  5. Optional: After changing native code, you have to remove the built addon to force a rebuild
    rm -rf build && npm start

Architecture

TODO: write some history starting from Pedalboard and the four attempts before this one.

Features

  • One super-boring instrument: Sine-wave oscillator - BUT with MIDI support
  • Channel mixer with panning and gain controls
  • Here's some music while you wait for new features...

Roadmap

1.0.0 (release date: unknown)

  • [backend&frontend] audio input mono & stereo
  • [backend&frontend] configure audio & midi inputs, outputs
  • [backend&frontend] piano sampler unit
  • [backend&frontend] session handling
  • [backend&frontend] volume meter
  • [backend] fix compile warnings
  • [backend] review TODOs
  • [backend] complete code review (const correctness, method ordering, dead imports, private vs public)
  • [backend] setup and add unit tests
  • [frontend] complete code review
  • [frontend] fix missing or wrong key props
  • [frontend] i18n: en, muso slang
  • [frontend] review eslint ignores
  • [frontend] setup and add unit tests
  • [org] design a logo (idea: spotlight, knob, fader)
  • [org] package app
  • [org] write architecture section in readme

Ideas

  • [backend&frontend] quick transpose
  • [frontend] first steps builtin tutorial
  • [frontend] i18n: church slang
  • [org] setup CI/CD pipeline with GitHub Actions
  • [org] publish in app store
  • [org] use GitHub projects for this roadmap
  • [org] write contribution guide

Third-Party Credits

  • Electron (MIT): They invest an incredible effort to make cross-platform desktop development a breeze.
  • Feather Icons (MIT): Big shout-out to my former co-intern @colebemis for providing these gorgeous icons.
  • JUCE (GPL v3): I consider JUCE as being the washing machine of audio programmers.
  • And thanks to all the unmentioned thousands of contributers behind the amazing projects that keep this app running.

License

This project is released under the GNU GPL v3 License. (See LICENSE for more information.)

soundboard - live-performance music playground
Copyright (c) 2021 Micha Hanselmann

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

soundboard-electron's People

Contributors

deermichel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

soundboard-electron's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.