fiebrink1 / Sound_Control

A desktop app for rapidly making bespoke digital instruments.
8 stars 3 forks source link
Markdown Monster icon

Sound Control

www.soundcontrolsoftware.com

Sound Control is free software that can be used by anyone to create new musical instruments using their choice of movements, sensed with a variety of off-the-shelf devices (including webcam, Leap Motion, micro:bit, mouse, microphone, etc.). Sound Control uses machine learning to enable users to create new musical instruments by demonstrating examples of motions and sounds, so no programming or musical expertise is necessary! These new instruments can be used to play and manipulate musical material, which can be either new material recorded by users or taken from third-party sample libraries.

Sound Control was created in collaboration with youth with special educational needs and disabilities, as well as their music teachers and therapists. Together, we have aimed to create software that makes it easy to create bespoke digital musical instruments that are tailored to individuals’ abilities and preferences, as well as to create new musical interactions for music therapy and fun.

Sound Control is supported by a Paul Hamlyn Foundation “Widening Access and Participation in the Arts” grant. The project is led by the Northamptonshire Music and Performing Arts Trust. The software development and design research were conducted at Goldsmiths University of London.

General: Information for anyone wishing to edit the source code

Externals & 3rd Party Software Used

RapidMax

RapidMax is used for the machine learning component of Sound Control. You can get it here:

To use Sound Control with Micro:Bit (optional)

CBMicroBit (Required for Mac if you want Bluetooth connectivity)

https://github.com/Louismac/CBMicroBit

Shell.mxo (Also required for Mac, if using CBMicrobit)

http://expr-i0.net/shell_170717.zip

Micro:Bit .hex files (Required for all users)

Leap Motion (Optional)

The Leap Motion is a hardware device that senses hand position (of one hand at a time, in this implementation of Sound Control). Currently it is only supported on the Mac version of Sound Control. If you want to use Leap Motion, you'll need to download the following:

Enabling MIDI Routing on Windows (Optional)

loopMIDI is required to enable MIDI routing on Windows. The MIDI Mapper instrument within Sound Control has the capability of communicating with an external DAW. This relies on virtual MIDI ports, which are not available by default on Windows operating systems. The loopMIDI software allows you to create these ports manually: https://www.tobias-erichsen.de/software/loopmidi.html

Acknowledgement of other third-party code

Sound Control's colour tracking uses https://cycling74.com/forums/colour-tracking-with-a-webcam-in-jitter/

Known bugs

Looper

The Looper instrument has been known to crash on some Windows machines.

I/O Audio Settings

The app automatically sets it’s audio I/O to whatever the I/O settings of the Max.app are. If you want to change these you must close the Sound Control app, set the desired audio I/O settings in the Max.app and then reopen Sound Control. However you can then change the audio I/O settings for the Max.app and not change the Sound Control audio I/O settings after the Sound Control app has been opened.

Building a new standalone from source:

Make some edits before building:

Building:

MacOS Pakage Creation:

NOTE: You must first build the Sound Control app using the instructions above before creating a package (.pkg) file.

In order for Sound Control's Micro:Bit Bluetooth functionality to work on MacOS, the CBMicrobit executable must be in the following directory of the user's machine: /Library/Application Support/Sound_Control/CBMicroBit. By creating a .pkg installer, you can bundle the Sound Control app and the CBMicroBit into a package, which will automatically place the CBMicroBit in the correct location on the user's machine when the .pkg is run.

Instructions:

  1. Download the Packages application here: http://s.sudre.free.fr/Software/Packages/about.html
  2. Once installed, open Packages and select the "Raw Package" template.
  3. Enter "Sound Control" in the Project Name field, and hit "Create".
  4. Navigate to the Payload tab, and with the Applications folder highlighted, click the "+" button.
  5. This will open a dialog box. Locate the Sound Control build you want to package, and click "Add".
  6. Once the app is added, staying in the Payload tab, navigate to Library/Application support.
  7. Right-click on Application support and add a new folder. Name this "Sound_Control".
  8. Place the CBMicroBit inside this Sound_Control by highlighting the folder, clicking "+" and navigating to the CBMicroBit exe.
  9. In the Packages menu bar, click Build > Build and Run. You can now test if your package puts the CBMicroBit in the right place on your machine, and if the Sound Control app runs as expected.

alt text alt text alt text