MusicSDP / MSDP

Music_SDP is a toolbox for Multimedia Synthesis, Design, and Performance
https://msdp.app
GNU General Public License v3.0
40 stars 4 forks source link

The Music and Sound Design Platform (MSDP)

MSDP (also referred to as Music_SDP) is a free and open-source platform for the performance and creation of live electronic music, video, and multimedia work, built in Max 8. Our project's goal is to provide powerful and meaningful tools for live audio and video generation and manipulation using a modular structure that can be expanded to fit the needs of any type of performance. MSDP is available as an application for both Windows and MacOS, and can be downloaded here. The git repository includes all of the source code to open the program in Max 8 and this README will explain how to setup and explore the software.

Quickstart

In order to run the MSDP source code, you must have the latest version of Max 8 installed, and you should install the included custom fonts to ensure UI compatibility. You'll also want to make a modification to the Max 8 preferences window, disabling "Restore Windows on Launch."

  1. Install the latest version of Max 8.

  2. Clone (or download and uncompress the zip of) the MSDP source code.

  3. In the root MSDP folder, look for the included fonts folder. This contains all of the open-source google font files used by the MSDP user interface. Install all of the fonts before attempting to run MSDP.

  4. Before opening MSDP for the first time, you'll need to make one modification to your Max 8 preferences. Open Max, navigate to the Preferences window, then ensure that Restore Windows on Launch is deselected. Close the preferences window to save this state, then close out of Max 8.

  5. Back in the root MSDP directory, double click the _MSDP_Launcher.maxpat file to open Max and launch MSDP.

Exploring MSDP

MSDP's Two Modes

MSDP's source code can be used into two modes: App Mode and Developer Mode.

App Mode functions identically to the application release. The code is locked down, requiring additional steps to unlock, the MSDP menu bar replaces the default Max menus, and several additional patches are opened. App mode is perfect for users that want to run the software to create and perform, or who want to test out their own modifications in an environment identical to the application build.

In Developer Mode, the additional patch locks are removed, the default Max menus are kept in place, and the additional windows required for the application are not opened. This mode is designed to facilitate development, modification, and exploration of the code. Developer mode is perfect for users who want to contribute to MSDP or who want to understand how the project is built.

The source code always opens in Developer Mode, but, as will be discussed below, it is easy to switch to App Mode at any point.

Opening MSDP

To run the MSDP source code, navigate to the root folder of the MSDP directory and open the "_MSDP_Launcher.maxpat" file found within. Opening this initial patch will add all of the subfolders to the Max search path before launching the main system-critical patch. These modifications are temporary, and all subfolders will be removed from the search path when Max is closed. For this reason, always begin any work session in the MSDP code by launching this initialization patch.

The Developer Mode Launch Screen

After launching "_MSDP_Launcher.maxpat", a second window will appear to replace the initial patch. This second patch, titled "The Music and Sound Design Platform" acts as a launching point for both use of the program and for the exploration of the patches.

As mentioned above, MSDP opens in Developer Mode when running the source code, and the initial patch (this will be referred to as the Launch Screen) includes a set of options to facilitate your work in the program. This patch is critical to using MSDP in both modes, and should remain open at all times. It can be hidden by the user by simply minimizing the patch, or in Application mode by using the shortcut "Shift + F" (this shortcut will toggle the fullscreen state, and it can be pressed again to bring this patch back into view).

The Launch Screen consists of several options and access points for the user, and each will be briefly introduced below:

Building, Testing, and Distributing New Modules

Choosing a Template

Several templates have been developed to assist in the creation of different types of MSDP modules. These templates include all of the code required to integrate new modules into the larger MSDP structure, and include instructions, along with demonstration code, to explain how to use them. These templates can be accessed from the umenu included in the Developer Mode launch Screen. Template options include:

Once you've selected and opened the template that you plan to use, make sure to immediately save the file with a new name so as to avoid overwriting the template file. To include it in the module list on your local install, make sure that you save the module file in the "MSDP 2/3rd Part Modules" directory in your Documents folder.

Several videos have been created and uploaded to the MSDP YouTube page that explains the Module creation process in detail. Those videos can be found here.

Starting a new module from a completely blank patch is not recommended. There are many systems included in the templates that streamline the process of integrating custom modules.

Testing and Using Your Module

To test or to use your custom module in MSDP Pedal Boards, add the main patch to the "MSDP 2/3rd Party Modules" folder, and add any additional required files to the "MSDP 2/3rd Party Includes" folder. Both of these folders should be in your computer's Documents directory and are created automatically when MSDP is run for the first time. These directories are added to the Max search path on program launch, and anything in the "3rd Party Modules" folder will be included in the Pedal Board's module list on your local install. Once all of the required files are added to these directories, you should be able to load modules onto Pedal Boards alongside those that are part of the official list.

Ensure that all of your patches have uniquely identifiable file names to avoid conflicts with patches in the official build or with other custom modules that may be installed. No restart of the code should be required to test changes, although modules will need to be re-loaded in Pedal Boards for changes to take effect.

The Module Integration Checklist

There are several steps required to ensure that your custom module integrates properly with the rest of MSDPs modules and communication systems. Below is the official checklist that you should refer to while developing your module:

Distributing Your Module

Since MSDP is distributed under the GNU General Public License v. 3, you are granted the right to use and distribute any of the code included in this project. The only requirement is that, if any amount of our code is included as part of your own, your distribution must contain a copy of the GNU License. Distributions without installers should also include instructions on how to install your modules, following the procedures explained in the above section 'Testing and Using Your Module".

If you'd like your module to be considered as part of the official MSDP build, please reach out to us by contacting Hugh Lobel at hugh.lobel@gmail.com. We are always interested in expanding our module list, and if we decide to include your contribution in the official build, credit will be provided in the software, as well as on the website and on social media.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

Our versioning uses the following structure: status.major.minor.revision. As an example, 1.1.5.2 implies beta status with one major update, five minor updates after it, and two revisions since the minor update. The revisions are only released on GitHub and are generally intended for testing purposes.

License

This project is licensed under the GNU General Public License, version 3 - see the LICENSE.txt file for details

Privacy Policy

By downloading and using Music_SDP, you agree to our privacy policy

Contributors

Current Contributors

Hugh Lobel - Creator, Lead Developer, Web Architect.

Dirk Leas - Code consulting and contributions.

Michelle Cutler - Graphic Design, QA, and Social Media.

Past Contributors

Michael Mnn - Contributes to system design, QA, and module creation.

Dean Berlinerblau - Contributes to graphic design and QA.

Jonathan Chandler Spoon - Contributed to graphic design and QA.

Acknowledgments and Attributions