This repository contains the source code of the BLOCKS SDK, which is licensed under the permissive ISC license.
Much more comprehensive documentation can be found at https://weareroli.github.io/BLOCKS-SDK/.
The SDK
directory contains the source code required to compile a library containing the BLOCKS SDK functionality. In the SDK/Build
directory you will find an Xcode project, a Visual Studio solution and a Linux Makefile which are configured to create a static library on the macOS, Windows and Linux platforms respectively. Simply use the one appropriate for your system. Once you have created this library you can access BLOCKS functionality by linking this library into your application and #include
-ing the provided header file, BlocksHeader.h
.
The examples
directory contains some sample code which uses the BLOCKS SDK library. Here we again provide an Xcode project, a Visual Studio solution and a Linux Makefile to allow the examples to be built on the corresponding platform. The Xcode project and Visual Studio solution compile the BLOCKS SDK library automatically, whereas the Linux Makefile requires the BLOCKS SDK library to be manually built first.
Open examples/BlockFinder/MacOS/BlockFinder.xcodeproj
with Xcode and compile and execute the example application. This will both create the BLOCKS SDK library and provide a very simple demonstration of how to use it. Use this as a base to develop your own BLOCKS creation!
Use the same procedure as macOS, but instead open examples/BlockFinder/Windows/BlockFinder.vcxproj
.
Use the following procedure to compile the demo app:
cd SDK/Build/Linux
make
cd ../../../examples/BlockFinder/Linux/
make
This will produce the executable BlockFinder
in the Debug
directory.
The source code for the BLOCKS SDK library is contained within the SDK
directory of this repository. Here you will find header files that you can include in your own projects and the Build
subdirectory contains an Xcode project, a Visual Studio project and a Linux Makefile for compiling the SDK source code into a static library. Use the appropriate choice for your platform, select either the "Debug" or "Release" configuration, and build the project.
For macOS this will produce libBLOCKS-SDK.a
in either the SDK/Build/MacOS/Debug/
or SDK/Build/MacOS/Release/
directory, for Linux this will produce libBLOCKS-SDK.a
in either the SDK/Build/Linux/Debug/
or SDK/Build/Linux/Release/
directory, and for Windows this will produce BLOCKS-SDK.lib
in either the SDK\Build\Windows\x64\Debug
or SDK\Build\Windows\x64\Release
folder.
To use BLOCKS classes and functions in your application you must include the BlocksHeader.h
file in your source code. You also need to tell the compiler to look in the SDK
directory for additional header files, which you can configure inside your Xcode or Visual Studio project. If you are using the command line to compile your application then you can see an example of how to do this in examples/BlockFinder/Linux/Makefile
or examples/BlockFinder/MacOS/Makefile
.
You must also tell your compiler where to find the SDK static library before your BLOCKS application will compile, and include all of the dependencies for your platform, which are listed in the Dependencies section of this README. Again, this is configured in your Xcode or Visual Studio project, but if you are using the command line you can see an example of how to do this in examples/BlockFinder/Linux/Makefile
or examples/BlockFinder/MacOS/Makefile
.
- A C++17 compatible compiler
- Accelerate
- AudioToolbox
- CoreAudio
- CoreMIDI
- x11
- alsa
- libcurl