Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build/
externals/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "source/max-sdk-base"]
path = source/max-sdk-base
url = https://github.com/Cycling74/max-sdk-base.git
49 changes: 49 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
cmake_minimum_required(VERSION 3.19)

string(REGEX REPLACE "(.*)/" "" THIS_FOLDER_NAME "${CMAKE_CURRENT_SOURCE_DIR}")
project(${THIS_FOLDER_NAME})

if (APPLE)
if (${CMAKE_GENERATOR} MATCHES "Xcode")
if (${XCODE_VERSION} VERSION_LESS 10)
message(STATUS "Xcode 10 or higher is required. Please install from the Mac App Store.")
return ()
elseif(${XCODE_VERSION} VERSION_GREATER_EQUAL 12)
set(C74_BUILD_FAT YES)
endif ()
endif ()

if (NOT CMAKE_OSX_ARCHITECTURES)
if(C74_BUILD_FAT)
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "macOS architecture" FORCE)
else()
set(CMAKE_OSX_ARCHITECTURES ${CMAKE_SYSTEM_PROCESSOR} CACHE STRING "macOS architecture" FORCE)
endif()
message("CMAKE_OSX_ARCHITECTURES set to ${CMAKE_OSX_ARCHITECTURES}")
endif()
endif()

MACRO(SUBDIRLIST result curdir)
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
SET(dirlist "")
FOREACH(child ${children})
IF(IS_DIRECTORY ${curdir}/${child})
LIST(APPEND dirlist ${child})
ENDIF()
ENDFOREACH()
SET(${result} ${dirlist})
ENDMACRO()

# Generate a project for every folder in the "source/category" folder
SUBDIRLIST(CATEGORY_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/source)
foreach (cat_dir ${CATEGORY_DIRS})
SUBDIRLIST(PROJECT_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/source/${cat_dir})
foreach (project_dir ${PROJECT_DIRS})
set(project_path ${CMAKE_CURRENT_SOURCE_DIR}/source/${cat_dir}/${project_dir})
#message("checking in: ${project_path}")
if (EXISTS "${project_path}/CMakeLists.txt")
message("Generating: ${project_dir}")
add_subdirectory(${project_path})
endif ()
endforeach ()
endforeach ()
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,35 @@
A toolkit of Max objects to use real-time linear predictive coding in creative projects

This project was initially developed in 2007 at Stanford's Center for Computer Research in Music and Acoustics (CCRMA), but it hasn't seen much attention since then. Contributions are welcome.


## Building

```
mkdir build
cd build
```

### 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.

If you are running on a Mac M1 machine, you will likely see an error `cannot be loaded due to system security policy` when loading your externals in Max. To resolve this, you can ad-hoc codesign your external with `codesign --force --deep -s - myobject.mxo`.

### Windows

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

`cmake -G "Visual Studio 16 2019" ..`

Or using Visual Studio 2017 it 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`
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 0 additions & 8 deletions misc/README

This file was deleted.

12 changes: 0 additions & 12 deletions misc/bundlePackage

This file was deleted.

24 changes: 24 additions & 0 deletions package-info.json.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"author" : "Mark Cartwright",
"description" : "A toolkit of Max objects to use real-time linear predictive coding in creative projects.",
"homepatcher" : "lpcToolkitDemo.maxpat",
"max_version_min" : "8.0", "max_version_max" : "none",
"name" : "@C74_PACKAGE_NAME@",
"os" : {
"macintosh" : {
"platform" : [ "x64", "aarch64" ],
"min_version" : "none"
},
"windows" : {
"platform" : [ "x64" ],
"min_version" : "none"
}
},
"package_extra" : {
"reverse_domain" : "com.markcartwright",
"copyright" : "Copyright 2010 Mark Cartwright"
},
"tags" : [ ],
"version" : "@GIT_VERSION_MAJ@.@GIT_VERSION_MIN@.@GIT_VERSION_SUB@",
"website" : "http://www.github.com/mcartwright/LPC-Toolkit"
}
26 changes: 0 additions & 26 deletions sdk-build/mbc.allpole~.mxo/Contents/Info.plist

This file was deleted.

Binary file not shown.
1 change: 0 additions & 1 deletion sdk-build/mbc.allpole~.mxo/Contents/PkgInfo

This file was deleted.

26 changes: 0 additions & 26 deletions sdk-build/mbc.blit~.mxo/Contents/Info.plist

This file was deleted.

Binary file removed sdk-build/mbc.blit~.mxo/Contents/MacOS/mbc.blit~
Binary file not shown.
1 change: 0 additions & 1 deletion sdk-build/mbc.blit~.mxo/Contents/PkgInfo

This file was deleted.

26 changes: 0 additions & 26 deletions sdk-build/mbc.coeffDisp~.mxo/Contents/Info.plist

This file was deleted.

Binary file not shown.
1 change: 0 additions & 1 deletion sdk-build/mbc.coeffDisp~.mxo/Contents/PkgInfo

This file was deleted.

26 changes: 0 additions & 26 deletions sdk-build/mbc.errfilt~.mxo/Contents/Info.plist

This file was deleted.

Binary file not shown.
1 change: 0 additions & 1 deletion sdk-build/mbc.errfilt~.mxo/Contents/PkgInfo

This file was deleted.

26 changes: 0 additions & 26 deletions sdk-build/mbc.lpc~.mxo/Contents/Info.plist

This file was deleted.

Binary file removed sdk-build/mbc.lpc~.mxo/Contents/MacOS/mbc.lpc~
Binary file not shown.
1 change: 0 additions & 1 deletion sdk-build/mbc.lpc~.mxo/Contents/PkgInfo

This file was deleted.

26 changes: 0 additions & 26 deletions sdk-build/mbc.pitch~.mxo/Contents/Info.plist

This file was deleted.

Binary file not shown.
1 change: 0 additions & 1 deletion sdk-build/mbc.pitch~.mxo/Contents/PkgInfo

This file was deleted.

1 change: 1 addition & 0 deletions source/max-sdk-base
Submodule max-sdk-base added at b6d635
27 changes: 27 additions & 0 deletions source/projects/mbc.allpole_tilde/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake)

#############################################################
# MAX EXTERNAL
#############################################################

include_directories(
"${MAX_SDK_INCLUDES}"
"${MAX_SDK_MSP_INCLUDES}"
"${MAX_SDK_JIT_INCLUDES}"
)

file(GLOB PROJECT_SRC
"*.h"
"*.c"
"*.cpp"
)
add_library(
${PROJECT_NAME}
MODULE
${PROJECT_SRC}
)
find_library(ACCELERATE Accelerate REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC ${ACCELERATE})


include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake)
Loading