Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
2f4ed7f
optional args: add to wrapper
weefuzzy Feb 24, 2022
9bc8929
MaxWrapper: Add choices param (list of symbols <-> bitset)
weefuzzy Feb 25, 2022
35b843c
changing preset and interface for noveltyslice examples
tremblap Apr 14, 2022
7c02e23
correct typos and misconnections in helpfiles (onsetslice and bufsele…
tremblap Apr 28, 2022
fac9bba
Buf2List(2Buf): Correct atom type
weefuzzy Apr 29, 2022
45084c0
kdtreehelp: now loads programatically, in order, from the stored labe…
tremblap May 2, 2022
86a38e5
fix #185
weefuzzy May 2, 2022
0e3b69b
Merge branch 'dev' of https://github.com/flucoma/flucoma-max into dev
weefuzzy May 2, 2022
1c0605f
Merge pull request #145 from weefuzzy/enhance/optional-message-args
weefuzzy May 3, 2022
02fef8e
Merge pull request #147 from weefuzzy/enhance/choices-param
weefuzzy May 3, 2022
c7fa046
Enhance/max params (#182)
weefuzzy May 3, 2022
9edcd91
POC for better buffer object chaining (#140)
weefuzzy May 3, 2022
1771d12
Wrapper: fix merge casuality
weefuzzy May 3, 2022
07544d7
[Fix] Broken patches due to new dataset/buffer interface interface (#…
May 9, 2022
b0617e4
[Fix] Missing OnsetSlice Files (#197)
May 10, 2022
5e9695d
Wrapper: Update for new `maxFFTSize`
weefuzzy May 10, 2022
8f366e2
[Docs] BufCompose Help File (#155)
May 11, 2022
2e0b4d8
Wrapper: Fix reset for shared objects. fixes #43
weefuzzy May 11, 2022
b531529
Wrapper: Fix managed object aliasing in message invocations. fixes #190
weefuzzy May 11, 2022
c7bebcc
List2Buf: Correct outlet type. fixes #196
weefuzzy May 11, 2022
e24e4a6
[Docs] BufSpectralShape Help File (#156)
May 11, 2022
9bc4228
translate SC -> Max (#187)
May 11, 2022
653b2d4
Wrapper: call params::set() properly for long array attrs
weefuzzy May 11, 2022
97a4291
touch up ampslice example with Rod's audio
May 13, 2022
390cac7
prepare help file
May 13, 2022
eb9a9ba
shell out the tabs
May 13, 2022
851dd08
ampslice updates
May 13, 2022
17d6a86
Wrapper: Use raw value for maxFFT when refreshing attribute
weefuzzy May 13, 2022
b7648bd
[Help] Pitch and BufPitch SC Translations (#200)
May 13, 2022
0ae8eca
fix various errors in help files (#204)
May 13, 2022
27f9fac
[Docs] NoveltySlice Help Files (#146)
May 13, 2022
53be2cd
[Fix] Saner maximum sizes for modulatable examples (#205)
May 13, 2022
987b001
[Fix] Various Bug Fixes From PA (#210)
May 13, 2022
d7e5fe8
corrected players of 2nd tabs fixing #202
tremblap May 16, 2022
51ef968
Wrapper: Trying once again to get maxParams logic correct
weefuzzy May 16, 2022
adfb728
neaten and provide an example (#216)
May 18, 2022
fc5b03e
[Docs] HPSS and BufHPSS translation (#219)
May 23, 2022
ade069d
[Docs] MFCC and BufMFCC Translation (#217)
May 23, 2022
71eaaa0
[Docs] MelBands + BufMelBands Translation (#214)
May 23, 2022
c18ff7b
[Docs] BufFlatten Translation (#218)
May 23, 2022
7381488
[Docs] Update fluid.list2buf (#188)
May 23, 2022
813edcb
list2buf - list typo
tremblap May 23, 2022
81bbceb
bufmelbands - corrected loadbang issue
tremblap May 23, 2022
b8c8193
bufmfcc - typo
tremblap May 23, 2022
5ece1e0
Enhance/generate stubs (#231)
weefuzzy May 26, 2022
a755f78
CMake: typo
weefuzzy May 26, 2022
80dbda4
Wrapper: FFT max set properly after initialization
weefuzzy May 26, 2022
a27eb32
CI: Update nightly workflow
weefuzzy May 26, 2022
d4599a9
CI: use correct branches
weefuzzy May 26, 2022
30b5d0d
CI: remove reference to docs job
weefuzzy May 26, 2022
60c93ea
CMake: belatedly add branch selection for flucoma deps upon which CI …
weefuzzy May 26, 2022
31e4cb9
Reinstate package-json generation
weefuzzy May 26, 2022
6d88ab5
[Docs] NMFFilter Translation (#222)
May 30, 2022
710e553
[Docs] BufStats translation (#220)
May 30, 2022
460ef67
[Docs] NMFMatch Translation (#221)
May 30, 2022
e9b91b0
[Docs] MLPClassifier Translation (#226)
May 30, 2022
fc500e3
[Docs] BufNMF Translation (#229)
Jun 1, 2022
37429e0
mds translation (#235)
Jun 1, 2022
6aefe66
[Docs] RobustScaler SC Translation (#234)
Jun 1, 2022
ab8a64a
[Docs] Standardise SC Translation (#233)
Jun 1, 2022
2d27b85
[Docs] MLPRegressor Translation (#228)
Jun 1, 2022
109b97e
[Fix] Plotter internal state management (#242)
Jun 1, 2022
0a46dc9
CMake: Pick up new Client tag to control tildes in external names better
weefuzzy Jun 2, 2022
141f78c
updated nmf examples with new interface
tremblap Jun 4, 2022
bb262d0
change @size to @history (#243)
Jun 5, 2022
5a31495
[Enhance] Manual Documentation for CCE Objects (#250)
Jun 8, 2022
4da8ef0
[Fix] Various patcher bugs (#253)
Jun 8, 2022
9cd38ca
[Docs] Stats SC Translation (#245)
Jun 10, 2022
c652813
normalize hehe the normalize help file with other scalers (#246)
Jun 10, 2022
e835c34
[Docs] PCA SC Translation (#247)
Jun 10, 2022
e955a92
[Docs] BufNNDSVD SC Translation (#251)
Jun 10, 2022
b629744
translation (#255)
Jun 10, 2022
365e1f0
[Docs] STFT SC Translation (#248)
Jun 10, 2022
afa1751
translate knnregressor (#256)
Jun 10, 2022
087094e
[Docs] NMFMorph SC Translation (#258)
Jun 10, 2022
9944c7c
[Docs] BufNMFCross SC Translation (#254)
Jun 10, 2022
4e13c8e
typo in bufnmf help
tremblap Jun 12, 2022
b3cfa6f
[Fix] Various load issues (#261)
Jun 13, 2022
ba5fe34
non local ezdac (#262)
Jun 13, 2022
e59caa5
change of interface (#260)
tremblap Jun 13, 2022
4b32a75
typo
tremblap Jun 13, 2022
99014d2
skmeans translation from SC (missing one tab also missing in kmeans) …
tremblap Jun 14, 2022
011bee8
[CI] Update Release Workflow (#266)
Jun 14, 2022
58c839b
[Docs] Transients Family Translation (#259)
Jun 14, 2022
4dccd84
[Docs] AmpGate SC Translation (#241)
Jun 14, 2022
078bf8e
MaxWrapper: Ensure box is properly released from `progress` upon cancel
weefuzzy Jun 14, 2022
b595fba
[Docs] (S)Kmeans Distances Tab (#267)
Jun 14, 2022
ef9eeb2
beta testing patches updated for beta7 (#268)
tedmoore Jun 14, 2022
b69ee1e
typo
Jun 14, 2022
a6ab8ec
typo
Jun 14, 2022
0b333ef
typo
Jun 14, 2022
840ba99
fix release worflow
Jun 14, 2022
1924dbc
fix bad path
Jun 14, 2022
3f1e9a0
fix branch
Jun 14, 2022
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
37 changes: 10 additions & 27 deletions .github/workflows/nightly.yaml → .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,15 @@ on:
push:
branches: [ dev, ci/** ]

jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: flucoma/actions/env@v4
- uses: flucoma/actions/docs@v4
with:
target: MAKE_MAX_REF

- uses: actions/upload-artifact@v2
with:
name: docsbuild
path: build/max_ref

jobs:
winbuild:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v4
- uses: flucoma/actions/max@v4
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/max@v5
with:
branch: origin/dev

- uses: actions/upload-artifact@v2
with:
Expand All @@ -35,8 +24,10 @@ jobs:
runs-on: macos-11
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v4
- uses: flucoma/actions/max@v4
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/max@v5
with:
branch: origin/dev

- uses: actions/upload-artifact@v2
with:
Expand All @@ -45,7 +36,7 @@ jobs:

release:
runs-on: ubuntu-latest
needs: [winbuild, macbuild, docs]
needs: [winbuild, macbuild]

steps:
- name: make parent folder
Expand All @@ -60,18 +51,10 @@ jobs:
with:
name: winbuild
path: "FluidCorpusManipulation/externals"

- uses: actions/download-artifact@v2
with:
name: docsbuild
path: "FluidCorpusManipulation/docs"

- name: zip
run: zip -r FluCoMa-Max-nightly.zip "FluidCorpusManipulation"

- name: see
run: ls

- uses: dev-drprasad/[email protected]
with:
delete_release: true # default: false
Expand Down
44 changes: 9 additions & 35 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,16 @@
name: Release
on:
workflow_dispatch:
inputs:
base:
description: 'Base branch to deploy core from'
required: false
default: 'main'

jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: flucoma/actions/env@v4
with:
branch: ${{ github.event.inputs.base }}
- uses: flucoma/actions/docs@v4
with:
target: MAKE_MAX_REF
branch: ${{ github.event.inputs.base }}

- uses: actions/upload-artifact@v2
with:
name: docsbuild
path: build/max_ref

jobs:
winbuild:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v4
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/max@v5
with:
branch: ${{ github.event.inputs.base }}
- uses: flucoma/actions/max@v4
branch: origin/main

- uses: actions/upload-artifact@v2
with:
Expand All @@ -44,10 +23,10 @@ jobs:
version: ${{ steps.get-version.outputs.version }}
steps:
- uses: actions/checkout@v2
- uses: flucoma/actions/env@v4
- uses: flucoma/actions/env@v5
- uses: flucoma/actions/max@v5
with:
branch: ${{ github.event.inputs.base }}
- uses: flucoma/actions/max@v4
branch: origin/main

- uses: actions/upload-artifact@v2
with:
Expand All @@ -56,11 +35,11 @@ jobs:

- id: get-version
run: echo "::set-output name=version::$(cat flucoma.version.rc)"
working-directory: core
working-directory: build/_deps/flucoma-core-src

release:
runs-on: ubuntu-latest
needs: [winbuild, macbuild, docs]
needs: [winbuild, macbuild]

steps:
- name: make parent folder
Expand All @@ -75,11 +54,6 @@ jobs:
with:
name: winbuild
path: "FluidCorpusManipulation/externals"

- uses: actions/download-artifact@v2
with:
name: docsbuild
path: "FluidCorpusManipulation/docs"

- name: zip
run: zip -r FluCoMa-Max-"${{ needs.macbuild.outputs.version }}".zip "FluidCorpusManipulation"
Expand Down
133 changes: 78 additions & 55 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@
# under the European Union’s Horizon 2020 research and innovation programme
# (grant agreement No 725899).

cmake_minimum_required(VERSION 3.11)
cmake_minimum_required(VERSION 3.18)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging" CACHE PATH "")
################################################################################
# Paths
set(MAX_TARGET_NAMESPACE "" CACHE STRING "Optional namesapce to prepend to targets to prevent collision in superbuilds")
Expand All @@ -17,6 +23,8 @@ endif()

set(FLUID_PATH "" CACHE PATH "Optional path to the Fluid Decomposition repo")

set(FLUID_BRANCH "origin/main" CACHE STRING "Branch to pull flucoma dependencies from")

option(DOCS "Generate Max XML documentation" OFF)
set(FLUID_DOCS_PATH "" CACHE PATH "Optional path to flucoma-docs (needed for docs)")

Expand All @@ -30,31 +38,35 @@ endif()

################################################################################
# Main Action
project (flucoma-max LANGUAGES CXX)
project (flucoma-max LANGUAGES C CXX)

set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY ON)
set(AUTHOR_DOMAIN "org.flucoma")
string(TIMESTAMP "%Y" THISYEAR)
set(COPYRIGHT_STRING "Copyright (c) 2017-${THISYEAR} University of Huddersfield")
set_property(GLOBAL PROPERTY USE_FOLDERS ON)


set(MAX_INSTALL_PREFIX "." CACHE PATH "Prefix for assembling max package")
set(FLUID_PACKAGE_NAME "FluidCorpusManipulation" CACHE STRING "Name for published package")
set(MAX_PACKAGE_ROOT ${MAX_INSTALL_PREFIX}/${FLUID_PACKAGE_NAME})
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/source/script")
################################################################################
# Fetch / link to dependencies
include(FetchContent)

set(FETCHCONTENT_QUIET FALSE)

FetchContent_Declare(
flucoma-core
GIT_REPOSITORY https://github.com/flucoma/flucoma-core.git
GIT_PROGRESS TRUE
GIT_TAG origin/main
GIT_TAG ${FLUID_BRANCH}
)

FetchContent_Declare(
flucoma-docs
GIT_REPOSITORY https://github.com/flucoma/flucoma-docs.git
GIT_PROGRESS TRUE
GIT_TAG origin/main
GIT_TAG ${FLUID_BRANCH}
)

if(FLUID_PATH)
Expand All @@ -63,42 +75,36 @@ if(FLUID_PATH)
)
endif()

FetchContent_GetProperties(flucoma-core)
FetchContent_MakeAvailable(flucoma-core)

file(GLOB FLUCOMA_CORE_RESOURCES "${flucoma-core_SOURCE_DIR}/Resources/Data/*.*")
file(COPY ${FLUCOMA_CORE_RESOURCES} DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/misc")
include(flucoma_version)
include(flucoma-buildtools)
include(flucoma-buildtype)

get_property(FLUCOMA_VERSION_TAG GLOBAL PROPERTY FLUCOMA_VERSION_SHA)
configure_file(package-info.json.in "${CMAKE_CURRENT_SOURCE_DIR}/package-info.json")

if(NOT flucoma-core_POPULATED)
FetchContent_Populate(flucoma-core)
add_subdirectory(${flucoma-core_SOURCE_DIR} ${flucoma-core_BINARY_DIR})
file(GLOB FLUCOMA_CORE_RESOURCES ${flucoma-core_SOURCE_DIR}/Resources/Data/*.*)
file(COPY ${FLUCOMA_CORE_RESOURCES} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/misc)
include(flucoma_version)
include(flucoma-buildtools)
include(flucoma-buildtype)
endif()

set_if_toplevel(VAR CMAKE_LIBRARY_OUTPUT_DIRECTORY
TOPLEVEL "${CMAKE_CURRENT_SOURCE_DIR}/externals"
SUPERBUILD "${CMAKE_SOURCE_DIR}/max_externals")

if(DOCS)

if(DOCS)
set(MAX_DOC_OUT "${CMAKE_SOURCE_DIR}/docs" CACHE PATH "")

if(FLUID_DOCS_PATH)
get_filename_component(
FETCHCONTENT_SOURCE_DIR_FLUCOMA-DOCS ${FLUID_DOCS_PATH} ABSOLUTE
)
endif()

FetchContent_GetProperties(flucoma-docs)
if(NOT flucoma-docs_POPULATED)
FetchContent_Populate(flucoma-docs)
file(GLOB_RECURSE DOC_SOURCE RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${flucoma-docs_SOURCE_DIR}/**/*.cpp" )
source_group("\\XML Doc Gen" FILES ${DOC_SOURCE})
add_subdirectory(${flucoma-docs_SOURCE_DIR} ${flucoma-docs_BINARY_DIR})
endif()



FetchContent_MakeAvailable(flucoma-docs)
include(FlucomaDocs)
set(MAX_DOC_OUT "${CMAKE_BINARY_DIR}/max_ref")
add_ref_target(max "Making Max ref")
# endif()
add_custom_target(MAX_MAKE_DOCS ALL DEPENDS MAKE_MAX_REF)
endif()

Expand All @@ -108,13 +114,8 @@ FetchContent_Declare(
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
)
FetchContent_MakeAvailable(fluid_waveform)

if(NOT fluid_waveform_POPULATED)
FetchContent_Populate(fluid_waveform)
endif()

# Misc setup and subroutines
include("${CMAKE_CURRENT_SOURCE_DIR}/source/script/max-package.cmake")

################################################################################
# Max Wrapper
Expand All @@ -125,41 +126,63 @@ target_sources(
"${CMAKE_CURRENT_SOURCE_DIR}/source/include/MaxBufferAdaptor.hpp"
)

################################################################################
# Generate a project for every folder in the "source/projects" folder
SUBDIRLIST(PROJECT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/source/projects")
foreach (project_dir ${PROJECT_DIRS})
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/source/projects/${project_dir}/CMakeLists.txt")
message("Generating: ${MAX_TARGET_NAMESPACE}${project_dir}")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/source/projects/${project_dir}")
source_group("" FILES "${project_dir}.cpp")
endif ()
endforeach ()
target_include_directories(FLUID_MAX INTERFACE
"${CMAKE_CURRENT_SOURCE_DIR}/source/include"
)

include(MakeMaxSources)
include(SetupMaxSDK)

# generate targets for standalone clients
get_client_group(NONE client_list)
foreach(client ${client_list})
get_core_client_header(${client} header)
get_core_client_class(${client} class)
generate_max_source(
CLIENTS ${client}
HEADERS ${header}
CLASSES ${class}
)
endforeach()

#generate target for MANIPULATION group
get_client_group(MANIPULATION client_list)
foreach(client ${client_list})
get_core_client_header(${client} header)
get_core_client_class(${client} class)
list(APPEND MANIPULATION_CLIENTS ${client})
list(APPEND MANIPULATION_HEADERS ${header})
list(APPEND MANIPULATION_CLASSES ${class})
endforeach()

generate_max_source(
CLIENTS ${MANIPULATION_CLIENTS}
HEADERS ${MANIPULATION_HEADERS}
CLASSES ${MANIPULATION_CLASSES}
FILENAME fluid.libmanipulation
)

add_max_external(fluid.list2buf "${CMAKE_CURRENT_SOURCE_DIR}/source/projects/fluid.list2buf/fluid.list2buf.cpp")
add_max_external(fluid.buf2list "${CMAKE_CURRENT_SOURCE_DIR}/source/projects/fluid.buf2list/fluid.buf2list.cpp")

################################################################################
#install bits. Max packages bundle Windows and Mac builds together
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging")
set(MAX_INSTALL_PREFIX "." CACHE PATH "Prefix for assembling max package")
set(FLUID_PACKAGE_NAME "FluidCorpusManipulation" CACHE STRING "Name for published package")
set(MAX_PACKAGE_ROOT ${MAX_INSTALL_PREFIX}/${FLUID_PACKAGE_NAME})

foreach(PACKAGE_DIRECTORY examples;extras;help;init;patchers;interfaces;javascript;jsui;misc)
install(DIRECTORY ${PACKAGE_DIRECTORY} DESTINATION ${MAX_PACKAGE_ROOT})
endforeach(PACKAGE_DIRECTORY)

install(DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/
DESTINATION ${MAX_PACKAGE_ROOT}/externals
FILES_MATCHING REGEX "\\.(mxo|mxe|mxe64)")

install(DIRECTORY "${flucoma-core_SOURCE_DIR}/Resources/AudioFiles/"
DESTINATION ${MAX_PACKAGE_ROOT}/media)
DESTINATION "${MAX_PACKAGE_ROOT}/media")
install(DIRECTORY "${flucoma-core_SOURCE_DIR}/Resources/Data/"
DESTINATION ${MAX_PACKAGE_ROOT}/misc)
DESTINATION "${MAX_PACKAGE_ROOT}/misc")
install(FILES icon.png package-info.json QuickStart.md
DESTINATION ${MAX_PACKAGE_ROOT})
install(FILES ${flucoma-core_SOURCE_DIR}/distribution.lic
DESTINATION ${MAX_PACKAGE_ROOT}
RENAME LICENSE.md)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/local_docs/"
DESTINATION "${MAX_PACKAGE_ROOT}/docs")

if(DOCS)
install(DIRECTORY "${MAX_DOC_OUT}/"
DESTINATION "${MAX_PACKAGE_ROOT}/docs"
Expand Down
Loading