msdpfs is a Max 7 (Cycling74) external used by Music_SDP (source) for basic file services cp, exists, mkdir, and rm. Environment variables can also be looked up via env. Quickstart below provides step-by-step instructions for MacOS and Windows to compile, link, and install this external for Max 7. It uses Cycling74's max-devkit for C++ and CMake for build automation.
For your convenience, pre-compiled binaries are also available in the project Releases menubar. Add them to your Max 7 file path via the Options, File Preferences... menu.
Using the msdpfs external whether you install the pre-compiled binary or build it via the Quickstart below is simple -- add a [msdpfs] object to your patcher, then connect message objects with the appropriate argument symbols for your desired result. Refer to the project help patcher for examples of each of the behaviors for MacOS and Windows -- here's a screenshot.
msdpfs Behaviors/Rules:
Everything supports native MacOS/Windows and Max 7 path-oriented naming conventions.
- cp - copy a file from source to destination with override
- env - look up environment variable if defined
- exists - check to see if a file or directory exists
- mkdir - create a new directory where it doesn't exist
- rm - delete file or directory if allowed and it exists
All msdpfs requests respond to message input, sending 1 for success, and 0 for failure as object output, with failure details sent to the Max Console.
Complete the following steps for your preferred MacOS or Windows platform.
Build and install a MacOS compatible 64-bit external as follows:
- download and install the latest version of Xcode along with the CLI tools from the Apple App Store
- download and install CMake binary for MacOS, then run it and click on the Tools menu, then click the How to Install For Command Line Use submenu and follow along to expose from the shell/teminal
- clone/download Cycling74 max-devkit, untar if downloaded, rename resulting directory to "max-devkit"
- clone/download Cycling74 max-api subproject, untar if downloaded, rename it as "max-api", and move it to the max-devkit\source directory
- change directory to max-devkit
- create build directory: mkdir build
- add this repo to the source projects directory: cd ../source/projects, clone/download this project, untar if downloaded, rename resulting directory to "msdpfs"
- return to the build directory and build the external binary: cd ../../build and cmake .. && cmake --build .
- add max-devkit directory to your Max 7 path via Options, File Preferences... menu
- test the external with the included msdpfs help patcher msdpfs.maxhelp
Build and install a Windows compatible 64-bit external as follows:
- download and install the latest free version of Visual Studio Community
- download and install CMake binary for Windows
- clone/download Cycling74 max-devkit, untar if downloaded, rename resulting directory to "max-devkit"
- clone/download Cycling74 max-api subproject, untar if downloaded, rename it as "max-api", and move it to the max-devkit\source directory
- change directory to max-devkit
- create build directory: mkdir build
- add this repo to the source projects directory: cd ../source/projects, clone/download this project, unzip if downloaded, rename resulting directory to "msdpfs"
- return to the build directory and build the external binary:
cd ../../build
cmake -G "Visual Studio 15 2017 Win64" -DWIN64:Bool=True ..
cmake --build . --config Release
- add max-devkit directory to your Max 7 path via Options, File Preferences... menu
- test the external with the included msdpfs help patcher msdpfs.maxhelp
Unprioritized toDo items:
- security/vulnerability/reliability peer review, and more peer review
- verify general/edge file I/O behaviors
- enhance msdpfs help patcher, refactor other UX aspects based on feedback
--
Feel free to submit issues or pull requests for this project through the associated tabs above. Feedback/suggestions is also greatly appreciated.
[[[[Enjoy!]joy!]oy!]!]