Giter Site home page Giter Site logo

cklein / shortcircuit-xt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from surge-synthesizer/shortcircuit-xt

0.0 0.0 0.0 15.18 MB

License: GNU General Public License v3.0

CMake 0.88% C++ 76.22% C 1.74% Scheme 20.87% Shell 0.02% Batchfile 0.01% PowerShell 0.05% Perl 0.04% Inno Setup 0.18%

shortcircuit-xt's Introduction

Shortcircuit XT

CI Build Status

What? Shortcircuit is open source? Well yes, but there are big big caveats. Right now we are in the middle of rebuilding Shortcircuit from a (very generously) open sourced copy of the SC2 beta codebase. That codebase was old, ran only on windows, etc... so we are in the middle of a rebuild.

In early 2022 with Surge XT 1.0 out the door, we turned back to SC. Right now we have a super-pre-alpha downloadable version with an incomplete ui and a not very well tested engine. But it can make sounds on mac win and lin all three. If you want to participate, really joining our discord is the best way, but we also welcome github issues with problems. Please include the version number (from the about screen) with your issue.

How we got here?

Vember Audio, founded by @kurasu/Claes Johanson, released Surge and Shortcircuit in the 2000s. In 2018, Claes, realizing he would not complete Surge 1.6, open sourced it. A community arose around it, leading to Surge we have today.

In late 2020, @baconpaul (one of the maintainers of Surge) sent a thank you note to Claes for open sourcing Surge and they got to chatting about Shortcircuit. That led to Claes sending Paul the source code, and that led to this repository and plan.

Where we are

This repository contains a snapshot of the Shortcircuit 2 source code which Paul has been chipping away on a bit, but it requires a lot of work to get into a running state. Right now, it is only of interest to developers and there are no downloadable assets or available binaries that make music.

The state of the code is much more primitive than the state of the Surge code when it was open sourced (which is one of the things that gave Claes and Paul pause about proceeding). For instance:

  1. It uses windows-only APIs in fundamental ways.
  2. It is older C++, not using modern C++-11 and C++-14-isms.
  3. It only compiles as a VST2 on windows, which of course doesn't work for a FOSS project.
  4. That VST2 on Windows doesn't work even if you do get it to compile.

But that gives us a plan of attack:

  1. Try and get it to build and link all platforms by having a dumb Windows stub library, so we at least know which Windows APIs matter. This repo meets that constraint.
  2. Build a 'headless' Shortcircuit, bound to Python at first, which lets us test and individually run the individual components of the sampler, rename stuff, clean up bugs, refactor code, etc...
  3. Rewrite the front-end using JUCE and that sampler back-end.
  4. Call it Shortcircuit XT if we get it done.

Ambitious!

An important note about licensing

Just like with Surge, we welcome any and all contributions from anyone who wants to work on open source music software.

At the initial open-sourcing, the copyright to the Shortcircuit source was held by Claes (on the initial code) and Paul (on his diffs since Claes shared the code). This repository is licensed under GPL3. We know that, if we end up with Shortcircuit XT, we will end up with a GPL3 plugin, since it will depend on JUCE or VST3SDK, which are GPL3 if used in an open source context.

But, Paul and Claes are discussing refactoring the code to be a mix of MIT and GPL3 code, with some critical things like sample format loaders, some DSP code, and some utilities at least being released under MIT in a subordinate library (and in a separate repo). We don't know where that line is yet, but we do want to reserve the right to re-license any or all of the code here under an MIT license at our discretion.

As a result, we are asking individual contributors who want to contribute to Shortcircuit XT to sign a CLA. We have used the Canonical/Harmony 1.0 CLA http://selector.harmonyagreements.org with the following choices:

  1. You retain copyright to your code. We do not need you to assign copyright to us.
  2. You grant us a license to distribute your code under GPL3 or MIT; and your content under CC3 attribution

You can read the entire document here.

To agree to this document, please add your name to the AUTHORS list in a git transaction where you indicate in the git log message that you consent to the CLA. You only need to do this once, and you can do it in your first commit to the repo.

How to build what we have?

You know the drill:

git submodule update --init --recursive
cmake -Bbuild
cmake --build build --config Release --target ShortcircuitXT_Standalone

This will build the rudimentary standalone app. Other targets exist, such as sc3-test which runs the existing test suite.

If you don't have the prerequisites for build installed it might fail, (We will update this section soon. For now please have a look at the Surge XT docs for prerequisites and dependencies)

Issues building

  • Windows - Some JUCE targets have an issue if you are using nmake (specifically you might get an error that looks like this: 'Synth\""' is not recognized as an internal or external command). To solve this, use the Ninja generator by passing -G Ninja to the first cmake command (you might need to download Ninja from https://ninja-build.org/ if you don't already have it.)

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.