• Stars
    star
    253
  • Rank 160,776 (Top 4 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created almost 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Will be a sampler when its done!

Shortcircuit XT

CI Build Status

Welcome to Shortcircuit XT.

Shortcircuit was a popular creative sampler in the mid 2000s from vembertech, the company that originally created surge. In 2021, Claes Johansen, the principle at vembertech (and now at Bitwig), open sourced a version of Shortcircuit2 and gave the source to the Surge Synth Team.

After several false starts getting this code running, we made a decision in early 2023 to preserve much of the design and DSP code from SC2, but to rebuild a sampler in the spirit of the first two versions of Shortcircuit using modern C++ and JUCE. This project, which you are looking at here, is called Shortcircuit XT (SCXT) and is underway.

Right now, you can download our pre-alpha version of the instrument here or you can build it using the instructions below.

What Works, and How Can I Help?

Well first, thanks for asking! As we proceed through summer 2023, more and more stuff is starting to work, but we have a lot to do to get to a working beta. We have a rather complete wireframe of the final product, though, and have made quite a few core decisions about selection, mechanics, playback, and more, some of which are reflected in the code.

If you are going to use the product now, though, many things will be incomplete or mysteriously not work. Really the best way to particpate is to join the surge synth team discord and come say hi in the #sc-development channel.

There's lots of ways you can help. Of course, developers are always welcome. But testers, design partners, and just generally nice people who want to shoot-the-you-know-what about a sample-initiated instrument can join in the fun. Also, folks who loved and used SC1 and 2 are welcome to come and see what we are thinking is different and the same, and help us determine if we are right!

I would love to build it myself. What do I do?

To build, first configure your machine. Basically set up your machien the same way you would to build Surge XT then fork this repo and:

git clone <this repo or your fork>
cd shortcircuit-xt
git submodule update --init --recursive
cmake -Bignore/build -DCMAKE_BUILD_TYPE=Release
cmake --build ignore/build --config Release --target scxt_plugin_All

Our production build use clang and macos, and gcc on linux. We we test with a wide variety of compilers, including msvc on windows and several gcc versions. If you are using a new compiler and have changes to the CMake or so on, please do send them to us.

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. We had a couple of false starts, but are confident in the path and architecture we have now!

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.

More Repositories

1

surge

Synthesizer plug-in (previously released as Vember Audio Surge)
C
3,127
star
2

stochas

The Stochas Sequencer
C++
410
star
3

monique-monosynth

Monique monosynth
C++
361
star
4

surge-rack

Take Surge and factor it into modules for VCV Rack
C++
168
star
5

surge-synthesizer.github.io

Surge synthesizer website @ https://surge-synthesizer.github.io
MDX
127
star
6

releases-xt

100
star
7

tuning-library

Micro-tuning format parsing and frequency finding as a header-only C+ library
C++
83
star
8

clap-saw-demo

A silly little saw into filter synth to test CLAP
C++
51
star
9

tuning-workbench-synth

A simple JUCE synth which uses our tuning-library
C++
48
star
10

b-step

The MonoPlugs b-step sequencer
C++
42
star
11

releases

Releases for https://github.com/surge-synthesizer/surge Synthesizer
40
star
12

surge-python

This repo contains examples of how to use surgepy, Python bindings for the Surge synthesizer.
Jupyter Notebook
23
star
13

sst-waveshapers

Surge waveshapers as a GPL3 library
C++
23
star
14

sst-filters

Surge filters as a GPL3 library
C++
18
star
15

midi-monitor

A JUCE-based midi monitor we wrote to help us debug and visualize midi flows (and to learn some JUCE)
C++
15
star
16

conduit

The Surge Synth Team Conduit Plugin Suite
C++
13
star
17

surge-fx

Surge FX as a separate plugin, built with JUCE.
C++
12
star
18

tuning-note-claps

WIP
C++
8
star
19

sst-cpputils

Various C++ utilities we have collected for cross product use
C++
8
star
20

sst-basic-blocks

Basic building blocks for the audio thread
C++
8
star
21

surgesynthteam_tuningui

JUCE UI Components for tuning synths
C++
7
star
22

surge-extra-content

surge-extra-content
6
star
23

surge-synth-team.org

Repo for https://surge-synth-team.org
MDX
5
star
24

sst-effects

The SST Effects Repo
C++
5
star
25

pffft

C++
5
star
26

sst-voicemanager

Ultra-early voice manager draft
C++
4
star
27

libgig-modified

A slightly modified version of lib gig
C++
4
star
28

tunings

Tuning files in various formats for use in our tuning-aware synths
4
star
29

sst-plugininfra

Plugin Infrastructure we share across several SST properties
C++
3
star
30

stochas.org

Website for Stochas
JavaScript
3
star
31

sst-oscillators-mit

Shared oscillator code (MIT Licensed)
C++
2
star
32

build-assets

Build assets we want to cache as binaries but keep out of the code repos
1
star
33

test-assets

Various documents we use to maintain test information and test scripts.
1
star
34

sst-jucegui

JUCE GUI for SC and XT2
C++
1
star
35

sst-rackhelpers

Code we've used across a variety of vcv rack projects
C++
1
star
36

sst-clap-helpers

Helpers to write a CLAP-first plugin with juce gui and cmake
C++
1
star