Skip to content
Tools, documentation, and reference implementation of a Max Package built using the Min-API.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs initial example of an MC operator Dec 18, 2018
extras/Min launcher: path fix when creating new packages on windows Dec 20, 2018
help initial example of an MC operator Dec 18, 2018
init mc.min.phasor~: initial MC support for min.phasor~ (using the wrapper) Nov 26, 2018
javascript documentation update, including script to update website. Dec 19, 2017
misc cmake updated to 3.10 on the mac Dec 21, 2017
script deploy.rb: normalizing path name to lower case to eliminate problem p… Dec 20, 2018
source example source formatting sweep Dec 21, 2018
.clang-format applying clang-format Jun 12, 2018
.gitignore cmake used by the package manager (min.project) is now included. Oct 12, 2017
.gitmodules updating submodules to use https for public access Apr 13, 2018
.travis.yml updating minreqs Dec 3, 2018
Authors.md Copyright updated to 2018 Mar 30, 2018
CMakeLists.txt updating minreqs Dec 3, 2018
HowTo-Contribute.md doc: instructions for updating the Min API version now more easily di… Feb 27, 2017
HowTo-NewObject.md documenting the step for including the unit test source file. see #69. Dec 20, 2018
HowTo-NewPackage.md additional doc updates Sep 23, 2016
HowTo-UpdateTheAPI.md doc: instructions for updating the Min API version now more easily di… Feb 27, 2017
License.md Copyright updated to 2018 Mar 30, 2018
ReadMe-Public.md readme for pm: now linking to proper docs. see #92. Dec 20, 2018
ReadMe.md ReadMe: now linking to the main documentation hub. see #115. Dec 20, 2018
appveyor.yml updating minreqs Dec 3, 2018
icon.png
package-info.json.in launcher: moving into subfolder so that it behaves nicely in the extr… Dec 20, 2018

ReadMe.md

Min-DevKit

Build Status Build status

Tools, documentation, and reference implementation of a Max Package built using the Min-API.

This package is EXPERIMENTAL. Changes, including changes that break existing code, can happen at any time as we undertake continued development. USE AT YOUR OWN RISK.

Structure

There are two layers of material included in the Min-DevKit package.

  • min-devkit is an example package following current best-practices for package creation.
  • min-api is a folder within the devkit containing all of the support files you will need to compile an external object written in modern C++. This folder you will include in your own package's source folder.
  • min-lib contains building blocks, helper classes, and unit generators that may be useful in authoring C++ code for audio, video, and data processing.

Prerequisites

To build the externals in this package you will need some form of compiler support on your system.

  • On the Mac this means Xcode 9 or later (you can get from the App Store for free).
  • On Windows this means Visual Studio 2017 (you can download a free version from Microsoft). The installer for Visual Studio 2017 offers an option to install Git, which you should choose to do.

You will also need to install a recent version of CMake.

Building

  1. Clone the Min-DevKit from Github (or download from inside of Max using the Package Manager). If you clone it from Github, you should clone it into Max's Packages folder. If you clone it elsewhere you will need to make an alias to it in your Packages folder. The Packages folder can be found inside of your Max 8 folder which is inside of your user's Documents folder.
  2. In the Terminal or Console app of your choice, change directories (cd) into the Min-Devkit folder you cloned/installed in step 0.
  3. mkdir build to create a folder with your various build files
  4. cd build to put yourself into that folder
  5. Now you can generate the projects for your choosen build environment:

Mac

Run cmake -G Xcode ..

Next run cmake --build . or open the Xcode project from this "build" folder and use the GUI.

Note: you can add the -j4 option where "4" is the number of cores to use. This can help to speed up your builds, though sometimes the error output is interleaved in such a way as to make troubleshooting more difficult.

Windows

You can run cmake --help to get a list of the options available. Assuming some version of Visual Studio 2017, the commands to generate the projects will look like this:

cmake -G "Visual Studio 15 2017 Win64" ..

Having generated the projects, you can now build by opening the .sln file in the build folder with the Visual Studio app (just double-click the .sln file) or you can build on the command line like this:

cmake --build . --config Release

Unit Testing

On the command like you can run all unit tests using Cmake:

  • on debug builds: ctest -C Debug .
  • on release builds: ctest -C Release .

Or you can run an individual test, which is simply a command line program:

  • cd ..
  • cd tests
  • mac example: ./test_dcblocker_tilde -s
  • win example: test_dcblocker_tilde.exe -s

Or you can run them your IDE's debugger by selecting the "RUN_TESTS" target.

Continuous Integration

Continuous Integration (CI) is a process by which each code check-in is verified by an automated build and automated tests to allow developers to detect problems early and distribute software easily.

The Min-DevKit project models CI using two different services, both of which are free and very easy to set up if your project is hosted publicly on Github.

  • Mac: go to http://travis-ci.org and sign up. If your repository follows the same model as Min-DevKit, you can copy .travis.yml directly with no changes. Now every push to your repository will trigger an automatic build for the Mac with Travis CI.
  • Windows: go to http://appveyor.com and sign up. If your repository follows the same model as Min-DevKit, you can copy appveyor.yml directly with no changes. Now every push to your repository will trigger automatic builds for both 32 and 64-bit Windows with Appveyor.

Fetching your builds

  • Windows: On Appveyor it is simple. You go to the latest build, choose the "Platform" and then look under the "Artifacts" tab.
  • Mac: Travis CI does not host your build files for you like Appveyor. Instead, you need to configure a place for Travis to upload your builds. This is most easily done by signing up for a free Amazon Web Services account.

S3 Integration

The builds from Travis for this package can be found on this S3-hosted page.

To setup your own page:

  1. Sign up for a free AWS account as mentioned above
  2. Create a "bucket" for your Travis builds
  3. Add the correct info to your .travis.yml file for your S3 bucket as described in the Travis S3 Documentation.
  4. At this point, builds should go from Travis to a folder in your S3 bucket.
  5. To access the build, you can log in to your S3 account and download it. Alternatively you may want to make your builds publically available. If you wish to do the later, read on...
  6. upload the files from this folder's source/min-api/max-api/site folder to your S3 bucket's root folder. For more information on the content of these files, please visit the Github page for the S3 Bucket Listing Code.
  7. As described on the above Github page, you will need to set the permissions for your bucket such that "Everyone" has both listing and viewing access.

Additional Documentation

Contributors / Acknowledgements

Support

For support, please use the developer forums at: http://cycling74.com/forums/

You can’t perform that action at this time.