1317 Commits

Author SHA1 Message Date
Alex Harker 40a6a52aa5 Formatting 2020-06-16 14:25:34 +01:00
Alex Harker 8e8190407c Prefer std::min and std::max where possible 2020-06-09 18:25:36 +01:00
Alex Harker 5d72984257 Formatting 2020-06-09 17:58:35 +01:00
Alex Harker 8db77ecc7c Code layout 2020-06-09 15:03:41 +01:00
Alex Harker 7f5262ccd3 Reorder parameter enum 2020-06-09 14:55:58 +01:00
Alex Harker fe43a67b00 Improved parameter ordering 2020-06-09 13:33:01 +01:00
Alex Harker 1e0262f397 Coding layout 2020-06-09 13:23:55 +01:00
Alex Harker 7c04ea9b9c Add parameter input to the sample rate conversion object (for consistency with conversion object) 2020-06-09 12:22:40 +01:00
Alex Harker 9fff3e194f Code formatting/style 2020-06-09 12:22:16 +01:00
Alex Harker d6554c5576 Fix message handlers to be specific to a context (including realtime state) 2020-06-08 23:07:12 +01:00
Alex Harker 1516b37fdc Merge branch 'master' into object-review (and add change to context for paths)
# Conflicts:
#	FrameLib_Max_Objects/Common/FrameLib_MaxClass.h
2020-06-08 17:10:02 +01:00
Alex Harker 1877ffd224 Update include paths 2020-06-08 17:02:57 +01:00
Alex Harker 1083293642 Fix build issues for newer versions of XCode 2020-06-08 17:01:29 +01:00
Alex Harker b0d4950049 Removed Sallen and Key as it duplicates SVF and extra modes are not clearly beneficial 2020-06-08 16:34:13 +01:00
Alex Harker 561417e213 Update demos for changes in filter object names 2020-05-25 19:36:11 +01:00
Alex Harker 0aba5a6324 Note error reporting issues 2020-05-25 19:29:32 +01:00
Alex Harker 7b56e41983 Fix parameter names for the dispatch object 2020-05-25 19:29:15 +01:00
Alex Harker f90d9a21cd Don't use hyphen in multistream 2020-05-25 12:20:31 +01:00
Alex Harker 77e8658c11 Rework filter template such that multi mode output is optional 2020-05-22 15:53:11 +01:00
Alex Harker fc8a44ed5a Update the filter template to allow tagged output for coefficient calculators 2020-05-20 16:15:48 +01:00
Alex Harker 44ebd05120 Remove resonant filter (due to the fact resonance is highly variable with freq) 2020-05-20 14:00:38 +01:00
Alex Harker 18a70ed379 Rename the single max object build 2020-05-20 13:50:15 +01:00
Alex Harker 114148016f Added biquad and biquad coefficients calculator objects 2020-05-20 13:14:11 +01:00
Alex Harker e92d58fd39 Correct filter template for template arguments in both cases 2020-05-20 13:07:58 +01:00
Alex Harker dd840acf43 Refactor the main wrapper filter class back into a single class with implementation switching as nested classes 2020-05-17 01:24:45 +01:00
Alex Harker 80d5a13bc0 Refactor filter/coefficient calculator into base and two inheriting classes 2020-05-15 17:40:55 +01:00
Alex Harker 5d8684ab66 Add branching for mode types for filter coefficient calculators 2020-05-15 13:23:36 +01:00
Alex Harker 60c9b25938 Updates for coefficient info 2020-05-15 12:36:34 +01:00
Alex Harker 5d15dd3296 Correct calculation of length for coefficient calculators 2020-05-15 12:01:47 +01:00
Alex Harker 131df640ec Formatting 2020-05-15 02:12:13 +01:00
Alex Harker d6cd34fadf Fix caching of coefficients in coefficient calculators 2020-05-15 02:11:44 +01:00
Alex Harker 6f8bbbbad3 Remove unneccessary tests/template parameters 2020-05-15 00:11:51 +01:00
Alex Harker 80480398b1 Reduce need for empty filter implementations 2020-05-15 00:04:58 +01:00
Alex Harker ded13f20e2 Updates for coefficient calculators 2020-05-14 23:58:15 +01:00
Alex Harker f30e58613d Formatting 2020-05-14 20:02:48 +01:00
Alex Harker f814caa38c Initial work on adapting the filter templates to be suitable for coefficient calculators 2020-05-14 20:02:09 +01:00
Alex Harker 5596a2404f Implement filter object descriptions 2020-05-14 16:15:33 +01:00
Alex Harker c2876ed3fb Improved filter parameter info 2020-05-14 15:41:28 +01:00
Alex Harker 764ced6972 Filter object name 0dfsvf -> svf 2020-05-14 15:30:30 +01:00
Alex Harker 1cbbdf1769 Improvements to parameter ordering and info 2020-05-14 15:25:31 +01:00
Alex Harker 9a16057dfa Add basic mechanisms for filter specific info 2020-05-14 15:16:32 +01:00
Alex Harker 790317cd26 Higher resolution constant 2020-05-12 14:48:15 +01:00
Alex Harker 1eaf0672c2 Rename SVF filter files 2020-05-07 21:18:02 +01:00
Alex Harker 9d8fff10e0 Fix sallen and key filter (rename and correct main method) 2020-05-07 16:39:23 +01:00
Alex Harker df03fb790f Correct filter cutoff frequency 2020-05-07 16:05:06 +01:00
Alex Harker 9b97a8577b Make sure filters recalculate when the sampling rate changes 2020-05-07 16:04:49 +01:00
Alex Harker e304f8e9b0 \Filter clean-up 2020-05-07 16:04:01 +01:00
Alex Harker 839ef198fd Update onepole to a better filter 2020-05-07 14:20:56 +01:00
Alex Harker f8d5965128 Stop clang complaining about 'missing' braces 2020-04-27 21:43:32 +01:00
Alex Harker 76604b0a03 Clearer naming, comments and namespacing 2020-04-27 18:42:58 +01:00
Alex Harker 1e66974780 Style / layout / formatting 2020-04-27 16:43:40 +01:00
Alex Harker eb87e6317d Constrain parameters when dynamic 2020-04-27 16:43:21 +01:00
Alex Harker 290fe86acf Merge branch 'object-review' into filter-templates 2020-04-26 20:09:30 +01:00
Alex Harker 26741fff05 Formatting 2020-04-26 20:09:04 +01:00
Alex Harker 673411042d Refactor for constexpr filter information 2020-04-26 20:08:44 +01:00
Alex Harker 74ee1e905f More code minimisation 2020-04-26 18:10:53 +01:00
Alex Harker 4e330bcecb Small refactor to minimise code 2020-04-26 18:08:04 +01:00
Alex Harker 0095eb2c6b Reduce code 2020-04-26 12:45:04 +01:00
Alex Harker 8f214753be Add multi-mode output to filters 2020-04-26 11:58:09 +01:00
Alex Harker 814c771b08 Use operator() rather than process() and deal with filters with one mode 2020-04-26 04:28:19 +01:00
Alex Harker 2dc026c76e Store coefficients with the filter object 2020-04-26 01:08:59 +01:00
Alex Harker 6c2f20435b Merge branch 'object-review' into filter-templates 2020-04-26 00:37:44 +01:00
Alex Harker 00e7e20d62 Type error 2020-04-26 00:37:21 +01:00
Alex Harker 611c7777cf Formatting 2020-04-26 00:35:14 +01:00
Alex Harker c219db02f9 All filter objects are now templates, with dynamic input and optional reset features. 2020-04-26 00:13:07 +01:00
Alex Harker ebdb1b39a7 Refactor to FrameLib_ToHost and the max handling of messages (fl.tomax~ and the global class) 2020-04-22 14:50:22 +01:00
Alex Harker 28a4df1fcb Add getContext() to max objects 2020-04-22 14:38:06 +01:00
Alex Harker 07de023fc5 Formatting 2020-04-22 14:35:06 +01:00
Alex Harker 915596733d Allow serial objects to be moved 2020-04-16 16:39:23 +01:00
Alex Harker b96e7de910 Remove deleted target from scheme 2020-04-16 16:33:26 +01:00
Alex Harker 2b6ac0ec1b Add the ability to retrieve block start and end times from the processing queue and DSP objects 2020-04-14 12:19:12 +01:00
Alex Harker 4a76fd75cd Add const dereferencing of managed pointers 2020-04-14 12:16:57 +01:00
Alex Harker 39176246cf Correct numeric testing target (remove extra source files) 2020-04-14 12:13:17 +01:00
Alex Harker 2787cc5f39 Merge branch 'object-review' of https://github.com/AlexHarker/FrameLib into object-review
# Conflicts:
#	FrameLib_Dependencies/SpectralProcessor.hpp
2020-04-13 13:29:28 +01:00
Alex Harker 00f93317e6 Refactor the pattern object (taking features from ticks) 2020-04-08 12:45:25 +01:00
Alex Harker ca63ee280e Rework reset default and add idle parameter to control output when idle 2020-04-08 12:44:38 +01:00
Alex Harker 1a35f55c61 Consistency of enum names 2020-04-08 12:37:10 +01:00
Alex Harker d5adf697e3 Consistency with Modes/Mode enums (use Modes) 2020-04-07 12:35:43 +01:00
Alex Harker 06dd82216f Add mirror mode to the convolution and correlation objects 2020-04-07 10:58:02 +01:00
Alex Harker 29bd478445 Fix folding issues in the spectral processor and add a repeating fold (to go to HISSTools_Library) 2020-04-06 19:25:14 +01:00
Alex Harker e6cadd79de Changes for complex folding operations (to go to HISSTools_Library) 2020-04-03 15:05:36 +01:00
Alex Harker 24f99006f3 More info string consistency 2020-02-13 15:51:23 +00:00
Alex Harker 590799809e Info strings revised for all generator objects 2020-02-13 15:48:19 +00:00
Alex Harker 88fef00b7d Add edges parameter to allow different kinds of normalised behaviours 2020-02-13 15:32:24 +00:00
Alex Harker b6984c06b1 Rename stddev parameter to deviation 2020-02-13 15:31:30 +00:00
Alex Harker d44d9b5f0a Refactor gaussian generator for speed and rework the parameters to make it more flexible 2020-02-13 12:36:56 +00:00
Alex Harker 9ddb751aff Rewrite info strings for the prioritise object 2020-02-13 11:39:23 +00:00
Alex Harker 25c07c5131 Info string consistency 2020-02-13 11:16:59 +00:00
Alex Harker afe8acb8d9 Timing objects review (ticks rewritten/refactored) 2020-02-13 11:16:15 +00:00
Alex Harker 9b7c3eeb1b Correct FFT normalisation 2020-02-10 15:14:29 +00:00
Alex Harker f2c2faeda7 Naming consistency for pack/unpack parameters 2020-02-02 17:26:08 +00:00
Alex Harker 1af65fd674 Move comment 2020-02-02 16:23:58 +00:00
Alex Harker 60dbc030af Rename methods to use term streams and update pack and unpack to check for changes 2020-02-01 14:52:48 +00:00
Alex Harker 0a469c9dbe Fix issue with wiping changes if inputCheck() is called twice before inputUpdate() 2020-02-01 14:52:19 +00:00
Alex Harker 15e5dcdc20 Small refactor 2020-02-01 11:49:47 +00:00
Alex Harker 2ec09ed2aa Refactor to allow reduced connection updates 2020-02-01 11:40:27 +00:00
Alex Harker 926150b037 Formatting 2020-02-01 00:14:20 +00:00
Alex Harker 298a746c8e Safely deal with objects that don't own their own streams without direct recursion 2020-01-31 01:05:04 +00:00
Alex Harker fe3dc12e0c Add single-queued stack 2020-01-31 01:02:53 +00:00
Alex Harker 264b4ba94f Formatting 2020-01-30 14:59:25 +00:00
Alex Harker c78b61a4ed Fix issue with testing connections 2020-01-30 11:45:08 +00:00
Alex Harker 278158244d Unneeded config line 2020-01-30 11:44:12 +00:00
Alex Harker 87b546c797 Use relative paths to other headers for ease of inclusion in a variety of contexts 2020-01-30 11:43:46 +00:00
Alex Harker 8ea4c7c1f8 Fix issue with testing connections 2020-01-30 11:34:02 +00:00
Alex Harker 5f313aeb14 Use angled brackets for export include path 2020-01-30 11:04:30 +00:00
Alex Harker a47495f38a Fix std::__1:: namespaces on mac on export by find and replacing 2020-01-30 11:01:23 +00:00
Alex Harker 2339742eb1 Windows casts 2020-01-30 11:00:49 +00:00
Alex Harker 0663b64ed4 Remove FrameLib_Future and rename FrameLib_AccumPoint on windows 2020-01-30 11:00:36 +00:00
Alex Harker 1ee842e552 Add auto ordering connections to the export 2020-01-12 21:15:16 +00:00
Alex Harker e67a41fa38 Avoid reallocation in the vector set if the memory size is not changing 2020-01-12 13:29:06 +00:00
Alex Harker 63c50401a8 Update TimeBuffer template to allow quicker resets 2020-01-11 23:35:30 +00:00
Alex Harker 51babee327 Allow priority to be either high or low numbered inputs 2020-01-11 19:56:30 +00:00
Alex Harker 9c3583cbd0 Add explicit denormal handling to framelib 2020-01-11 19:54:55 +00:00
Alex Harker 478377c930 Add prioritise object 2020-01-08 11:36:02 +00:00
Alex Harker 49978a572c Add facility to produce two independent gaussian random numbers at the same time 2020-01-07 18:03:44 +00:00
Alex Harker f23c8cb430 Whitespace 2020-01-07 01:07:56 +00:00
Alex Harker e2d96b3e2d Correct code export 2020-01-06 12:29:06 +00:00
Alex Harker bd097d3195 Use "ordering" rather than "synchronisation" 2019-12-14 11:13:18 +00:00
Alex Harker b203a22672 Revise info strings 2019-12-14 11:08:19 +00:00
Alex Harker 22a1c1e6cc Implement wrap and pad modes for the lookup object 2019-12-14 10:29:55 +00:00
Alex Harker 2292350582 Correct parentheses from merge conflict 2019-12-12 07:05:32 +00:00
Alex Harker 8c6622a86e Merge branch 'master' into dynamic-contexts
# Conflicts:
#	FrameLib_Max_Objects/Common/FrameLib_MaxClass.h
2019-12-12 07:03:21 +00:00
Alex Harker b7d60b0074 Use case insensitive comparison for patch names 2019-12-12 06:59:22 +00:00
Alex Harker 630a7230f4 Correct test ordering for connections to make sure inlets are valid 2019-12-12 06:56:40 +00:00
Alex Harker 676c81c051 Do patch comparison as lowercase 2019-12-11 14:59:00 +00:00
Alex Harker 3d1bc3cb70 Use constexpr class members, rather than static methods for type related info 2019-12-09 00:59:32 +00:00
Alex Harker d99c79ea03 Use final keyword to prevent unneeded overrides 2019-12-08 23:20:19 +00:00
Alex Harker 29b28ef6ac More efficient context servicing 2019-12-08 12:37:06 +00:00
Alex Harker f18950fa15 Set default realtime status according to object type 2019-12-08 12:36:49 +00:00
Alex Harker b3e9714793 Consistent and shorter info strings 2019-12-07 23:04:55 +00:00
Alex Harker b40da8d57f Formatting and info strings 2019-12-07 17:07:51 +00:00
Alex Harker c0db65b725 Formatting and info strings 2019-12-07 16:55:37 +00:00
Alex Harker 6238384aee Shorter info strings 2019-12-07 16:23:01 +00:00
Alex Harker 0f5579f047 Remove OPT comments 2019-12-07 16:16:48 +00:00
Alex Harker d71a8f552e Reduce FIX comments 2019-12-07 16:15:59 +00:00
Alex Harker 2faa537018 Correct the length to use the buffer sampling rate for conversion 2019-12-07 16:05:31 +00:00
Alex Harker 805bb34ae4 Formatting and info strings 2019-12-07 13:28:55 +00:00
Alex Harker cca7f1a636 Formatting 2019-12-07 13:12:16 +00:00
Alex Harker 7bab420c9c Formatting 2019-12-07 13:11:40 +00:00
Alex Harker ff62ea1319 Redo median filter info strings for object review 2019-12-06 19:52:24 +00:00
Alex Harker f400636638 Error reporting 2019-12-06 19:52:04 +00:00
Alex Harker 92b9d943b6 Remove function by rolling into template 2019-12-06 19:47:59 +00:00
Alex Harker 1c0d02bcc1 Refactor median filter and apply fix for even number widths 2019-12-06 19:27:52 +00:00
Alex Harker 2a04579713 Correctly correct argument numbers 2019-12-06 16:05:07 +00:00
Alex Harker 0a966529fa Fix argument number 2019-12-06 16:04:40 +00:00
Alex Harker de7d1f0e66 Remove comment 2019-12-06 15:51:14 +00:00
Alex Harker 0a7d995414 Updates of FRIPhase for object review 2019-12-06 14:38:32 +00:00
Alex Harker ba19986124 Update with HISSTools_Library changes for FIR processing with padding 2019-12-06 14:36:56 +00:00
Alex Harker 352f3a2223 Updates projects and object code 2019-12-06 14:36:32 +00:00
Alex Harker 250f04e6ee Remove the fl future object from the single object max compile 2019-12-06 13:53:20 +00:00
Alex Harker dd3dc1cda0 Formatting 2019-12-06 13:27:47 +00:00
Alex Harker f4bfa2c777 Remove fl.future~ 2019-12-06 13:27:33 +00:00
Alex Harker ed73141007 Fix unwrapping of connections and therefore connection acceptance 2019-12-06 13:04:10 +00:00
Alex Harker 410be29a45 Fix nodes to be safe when parsing functions, and hence achieve correct constant folding 2019-12-05 20:55:32 +00:00
Alex Harker 975fc912fc Correct testing for valid tags in the expression parser 2019-12-05 20:31:29 +00:00
Alex Harker 209b7d7e77 Rework expression parsing on max object to get the exact contents of the max object box in order to get better error reporting 2019-12-05 20:01:54 +00:00
Alex Harker 60ca459c80 Pass object pointers through to max object constructors in case they are needed 2019-12-05 20:01:14 +00:00
Alex Harker 2e43133150 Fix SC build 2019-12-05 19:06:13 +00:00
Alex Harker 1532ced082 Ignore non-cpp files for documentation 2019-12-05 18:40:52 +00:00
Alex Harker 0ad3ba8a52 Safely clone and cast proxies 2019-12-05 18:35:44 +00:00
Alex Harker 1ced48ecfb Fix C++ build issues for documentation 2019-12-05 17:56:53 +00:00
AlexHarker ea96f770fa Merge pull request #48 from AlexHarker/master
Merging SC changes into dynamic contexts
2019-12-05 17:38:30 +00:00
Alex Harker 02f7a52dcc Correct the SC global object to work across compilation units 2019-12-05 17:01:01 +00:00
Alex Harker 129950e576 Update issues file 2019-12-05 16:33:10 +00:00
Alex Harker 4ac729638d Move to new FLParam model for passing parameters 2019-12-05 16:24:55 +00:00
Alex Harker 225cd5bb59 Allow calculations in the string sizes are known, without needing the actual strings 2019-12-05 16:24:17 +00:00
Alex Harker a14063fd8a Reduced code in sclang with help from Sam Pluta with SC syntax 2019-11-28 15:56:58 +00:00
Alex Harker 68d185099f Remove debug posts 2019-11-27 14:00:59 +00:00
Alex Harker f058efa01b Fix object type 2019-11-27 13:59:35 +00:00
Alex Harker 63702ca2c8 Compress SC strings and store global in the FLParam UGen 2019-11-27 11:20:55 +00:00
Alex Harker 018f50f013 Fix parameter loading for three main possible inputs 2019-11-27 07:29:07 +00:00
Alex Harker d83338155b Fix FLParam class 2019-11-27 00:44:40 +00:00
Alex Harker dc8359deb6 Proof of concept for FLParam in SC 2019-11-26 21:42:43 +00:00
Alex Harker 033e4e912e Update SC Issues 2019-11-26 10:23:50 +00:00
Alex Harker 09984274b2 Update supercollider issues list 2019-11-24 23:20:20 +00:00
Alex Harker 66ec0c0116 Update calc function to use a forwarding function so that the test for framelib objects is always quick 2019-11-24 23:20:06 +00:00
Alex Harker 6dd0c4a64f Rework error reporting to allow either immediate or amalgamated error reporting 2019-11-24 23:09:17 +00:00
Alex Harker 678e987a40 Add ability to retrieve errors to fixed size buffers 2019-11-24 22:19:26 +00:00
Alex Harker 09f02fbdb5 Add error functionality to allow remove errors from the list for immediate reporting 2019-11-24 17:40:56 +00:00
Alex Harker 18f5a7d1b9 Correct array size 2019-11-24 17:29:10 +00:00
Alex Harker e5b1b9fcc4 Remove unneeded public keyword. 2019-11-24 17:23:15 +00:00
Alex Harker f9ff92d0b9 Use calculation functions to identify FrameLib units in SC 2019-11-24 12:32:34 +00:00
Alex Harker b1b948924e Improved expression error reporting 2019-11-24 11:59:23 +00:00
Alex Harker b736b94b99 Respect parameter ordering 2019-11-21 18:13:50 +00:00
Alex Harker 1150acea0d Add a normalised mode to FrameLib_Read 2019-11-20 15:15:16 +00:00
Alex Harker 572788e506 Add object reset to FrameLib_Future 2019-11-20 11:44:52 +00:00
Alex Harker 66baea67af Enchanced expression error checking 2019-11-19 00:19:27 +00:00
Alex Harker 0ff405fa70 Report errors if the maximum number of expression inputs is exceeded. 2019-11-18 10:48:12 +00:00
Alex Harker 11101ba6be Allow error reporting with ints to avoid ambiguity 2019-11-18 10:47:47 +00:00
Alex Harker 6b9b37fedc Constant outputs for expressions now always have length one 2019-11-18 10:42:39 +00:00
Alex Harker ff2d52439d Use common tag parsing code (make public) 2019-11-18 10:13:47 +00:00
Alex Harker 495e6786e5 Do error reporting as parsing occurs 2019-11-17 23:35:35 +00:00
Alex Harker ea2fa92578 Reordering in XCode project 2019-11-17 17:02:26 +00:00
Alex Harker 2ed845b7e5 Remove double semicolon 2019-11-17 16:50:23 +00:00
Alex Harker faa2c785bd Unify expression parsing for max objects 2019-11-17 16:42:56 +00:00
Alex Harker 025a01a1e8 Error reporting for expression parsing 2019-11-17 16:29:38 +00:00
Alex Harker 869e0f182a Set arguments on buffer objects 2019-11-15 21:34:21 +00:00
Alex Harker 040de27447 Improved buffer object info strings 2019-11-15 21:31:40 +00:00
Alex Harker fc40367f70 Mode for from host object is instantiation only 2019-11-15 20:47:57 +00:00
Alex Harker 14272b0327 Improved FrameLib_FromHost info strings 2019-11-15 20:46:51 +00:00
Alex Harker c14922a0c9 Info string consistency 2019-11-15 20:46:26 +00:00
Alex Harker 8459932154 Info string improvements for generators 2019-11-15 20:38:44 +00:00
Alex Harker a516765a89 Improved info strings for convolution and correlation objects 2019-11-15 19:10:59 +00:00
Alex Harker b84e4a72e8 Correct iFFT info string 2019-11-15 19:09:17 +00:00
Alex Harker 3984de849e Add error reporting when convolution or correlation objects cannot process 2019-11-15 18:38:56 +00:00
Alex Harker f3565d974f Correct FFT/iFFT error reporting 2019-11-15 18:36:22 +00:00
Alex Harker 9bddaa60bd Fix correlation/convolution object argument order/numbers 2019-11-15 18:36:02 +00:00
Alex Harker 1e0b30dde0 reportError -> void operator() of FrameLib_ErrorReproter - allow objects to retrieve the reporter directly by reference 2019-11-15 18:20:02 +00:00
Alex Harker 2d0d9ce285 Improved info strings for audio trigger object 2019-11-09 15:51:12 +00:00
Alex Harker 4d2e0b9074 Set parameters even if there are none in order to throw errors 2019-11-09 15:50:12 +00:00
Alex Harker ed77a6ab29 Correct input info strings to account for parameter input 2019-11-09 14:43:04 +00:00
Alex Harker 7fed347b25 Refactor and improve info strings 2019-11-09 14:06:14 +00:00
Alex Harker 8a5ee996be Correct size of temp and make safe 2019-11-09 13:40:16 +00:00
Alex Harker d47304f7ee IFx FrameLib_DSP to allow memory to be released through local allocators 2019-11-09 12:40:43 +00:00
Alex Harker c4e4a2bc50 Avoid using temporary memory by looping twiceTidy up comments and info strings 2019-11-09 10:42:28 +00:00
Alex Harker 01ec0dbcfe Correct statPDFPercentile 2019-11-08 19:51:55 +00:00
Alex Harker 30698a6720 Scheme name 2019-11-08 19:51:42 +00:00
Alex Harker a3b8476122 Refactor vector template and convert FrameLib_Percentile and FrameLib_AccumPos (previously AccumPosition) to use it 2019-11-08 18:54:14 +00:00
Alex Harker 8e3ea27f88 Better info strings for schedulers and recall/store 2019-11-08 15:57:11 +00:00
Alex Harker 2641d3e64d Improvements to FFT-related info strings 2019-11-08 14:56:36 +00:00
Alex Harker d872526930 Add error for cases where the FFT setup is not large enough 2019-11-08 13:53:40 +00:00
Alex Harker a41f763eee Better info strings for FrameLib_Shift 2019-11-08 13:05:28 +00:00
Alex Harker 2eab2e185b Clean up info string 2019-11-08 13:05:04 +00:00
Alex Harker 81ced79ccd Normalise FFTs by default 2019-11-08 12:17:23 +00:00
Alex Harker 30f838de44 Better consistency for output info 2019-11-08 11:50:44 +00:00
Alex Harker 17a997876c Info string consistency 2019-11-08 10:23:28 +00:00
Alex Harker cf3d480ac8 Simplify info strings for FrameLib_Split 2019-11-07 16:01:31 +00:00
Alex Harker a0b578c26d Correct argument number for units 2019-11-07 15:53:01 +00:00
Alex Harker 09165c790d Simplify info text on FrameLib_Chop 2019-11-07 15:52:45 +00:00
Alex Harker 0b51787179 Finish correctly reordering constants 2019-11-07 15:32:57 +00:00
Alex Harker e6780daa74 Reorder constants for better extensibility 2019-11-07 15:26:10 +00:00
Alex Harker a0d98e9b34 Simplify info text 2019-11-07 15:24:41 +00:00
Alex Harker 91ad5530c5 Object review on fl.join~ 2019-10-27 20:20:46 +00:00
Alex Harker 279038bed6 Object reviews 2019-10-27 17:51:49 +00:00
Alex Harker ac4c6e8526 Formatting 2019-10-27 17:50:44 +00:00
Alex Harker bfc9f6a292 Merge branch 'dynamic-contexts' of https://github.com/AlexHarker/FrameLib into dynamic-contexts 2019-10-27 15:21:55 +00:00
Alex Harker 18bf7b2b16 Cast type for windows 2019-10-27 15:21:37 +00:00
Alex Harker 2b7dba73cd Casts for windows (from HISSTools_Library) 2019-10-27 15:21:10 +00:00
Alex Harker 265c39ca30 More type changes from HISSTools_Library 2019-10-27 15:12:51 +00:00
Alex Harker a2aba83239 Type consistency changes from HISSTools_Library 2019-10-27 15:06:21 +00:00
Alex Harker 8247e4a239 Updates to add new objects to windows 2019-10-27 14:49:56 +00:00
Alex Harker b2bd3a4f7e Add additional project files for windows 2019-10-27 14:18:57 +00:00
Alex Harker 50067c14c1 Update object names on windows 2019-10-27 13:58:38 +00:00
Alex Harker 4ca06febcc Reorder items in project file 2019-10-27 11:53:43 +00:00
Alex Harker a9af45fcbd Overhaul vector template to allow different responses to empty input frames 2019-10-27 11:38:02 +00:00
Alex Harker 444bef2de4 Fix error reproting for parameters (unary and other objects) 2019-10-27 11:19:31 +00:00
Alex Harker e799a3d5fd Whitespace 2019-10-26 23:18:57 +01:00
Alex Harker cfa3fb92e7 [BREAKING] Rename various single output vector objects - fl.vmin~ / fl.max~ / fl.argmin~ / fl.argmax~ / fl.geometricmean~ / fl.standarddeviation~ become fl.framemin~ / fl.framemax~ / fl.minpos~ / fl.maxpos~ / fl.geomean~ / fl.stddev~ 2019-10-26 19:47:06 +01:00
Alex Harker bbf7d0211b Template formatting 2019-10-26 16:22:48 +01:00
Alex Harker 2e2c121ee1 Fix padding on complex binary objects 2019-10-26 14:50:01 +01:00
Alex Harker 6b894aed85 Better info text 2019-10-26 14:49:47 +01:00
Alex Harker d50c55e446 Rename arithmetic operators classes 2019-10-26 12:12:51 +01:00
Alex Harker 0f35314574 Fix PD issue 2019-10-26 12:11:18 +01:00
Alex Harker b62d8b90a8 Fix fl.complex.expr~ target name. 2019-10-25 18:17:23 +01:00
Alex Harker 4912958852 More consistent info strings 2019-10-25 17:56:25 +01:00
Alex Harker 3ed07dfe72 Add namespace to avoid spillage into the global namespace 2019-10-25 17:44:45 +01:00
Alex Harker 947ed2f7d9 Update info strings for complex unary objects 2019-10-25 17:43:38 +01:00
Alex Harker a7ae9fb122 Formatting 2019-10-25 17:32:05 +01:00
Alex Harker f99d854c2a Fix object naming 2019-10-25 17:31:53 +01:00
Alex Harker 25f04f3321 Rename all complex objects and alias the basic complex maths operators 2019-10-25 17:05:52 +01:00
Alex Harker 38ada87311 Update aliases for complex objects (except basic types) 2019-10-25 16:18:29 +01:00
Alex Harker da673b5dce Remove extra full stops 2019-10-25 15:23:28 +01:00
Alex Harker 5f74571f8f Update info strings for the ternary objects 2019-10-25 15:21:29 +01:00
Alex Harker b00d673103 Change context tags to look more pleasant {id} and {rt} 2019-10-25 14:58:22 +01:00
Alex Harker b04dfaede0 Whitespace 2019-10-24 15:13:25 +01:00
Alex Harker 95364e547f Update ternary input modes for non-main input 2019-10-24 15:13:11 +01:00
Alex Harker 19935119be Ensure output dependency counts are always correct 2019-10-18 17:42:21 +01:00
Alex Harker f2c7a2cd24 Updates to doc building (there are also issues with proxies that require resolution) 2019-10-18 14:38:51 +01:00
Alex Harker 60bd19d072 Merge commit '4cf8cf27a5bf7807292fbaa30ed41e37ca6e7a81' into dynamic-contexts 2019-10-14 14:33:47 +01:00
James Bradbury 4cf8cf27a5 remove arg from 8th stage 2019-10-14 12:02:42 +01:00
James Bradbury 1afac50c7f move import to specific class 2019-10-14 12:02:15 +01:00
James Bradbury 314803434c put imports into classes 2019-10-14 12:02:08 +01:00
James Bradbury fb7e404b34 clean out docs before running the scripts 2019-10-14 12:01:54 +01:00
Alex Harker 8ff9f996b2 Fix output completion test in FrameLib_DSP 2019-10-12 15:35:47 +01:00
Alex Harker ca0adc7668 Merge commit '641762afb03c0f3996b5c34b17e2ae193d357284' into dynamic-contexts 2019-10-12 10:56:49 +01:00
James Bradbury 641762afb0 cleanup 2019-10-12 10:52:22 +01:00
Alex Harker 815319d101 Remove post to max window on graph update 2019-10-12 09:09:34 +01:00
Alex Harker 389079aa6a Merge branch 'docs' into dynamic-contexts 2019-10-12 09:01:24 +01:00
Alex Harker 089ae89ac3 Merge branch 'master' into dynamic-contexts 2019-10-12 08:55:08 +01:00
Alex Harker bb4562b1fa Update .gitignore for documenation 2019-10-12 08:54:33 +01:00
James Bradbury 139811ed70 refactor and uniform formatting 2019-10-12 02:17:20 +01:00
James Bradbury a4d2196cee Merge remote-tracking branch 'upstream/docs' 2019-10-12 01:17:37 +01:00
Alex Harker a44ba7cf23 Merge commit '8235c55ef9566f69fc138e47c686ea3d1854375c' into docs
# Conflicts:
#	.gitignore
2019-10-12 01:15:19 +01:00
James Bradbury 8235c55ef9 make PyYAML a dependency of FrameLibDocs 2019-10-12 01:13:46 +01:00
Alex Harker 450927969e Update .gitignore for docs items 2019-10-12 01:05:11 +01:00
James Bradbury 82751f154e Merge remote-tracking branch 'upstream/docs-james-master' 2019-10-12 00:50:22 +01:00
James Bradbury cf691dca5b make project wide variables 2019-10-12 00:49:59 +01:00
Alex Harker b7224f9f25 Add objects to exclude from docs 2019-10-12 00:49:22 +01:00
Alex Harker dfb757d746 Merge commit 'cab22ca3649adace0dd51a8641319c40d4a48eec' into docs-james-master 2019-10-12 00:49:06 +01:00
Alex Harker ed87131b46 Merge commit 'd774412ae98db5270d1d51de7c0b7ea7d11e8471' into docs-james-master 2019-10-12 00:48:30 +01:00
James Bradbury cab22ca364 append .cpp to arg 2019-10-12 00:47:44 +01:00
James Bradbury d774412ae9 add option to ignore files by passing arguments 2019-10-12 00:44:48 +01:00
Alex Harker bf0cd56905 .gitignore updates for docs 2019-10-12 00:31:37 +01:00
James Bradbury ec5c2dd91b no need to duplicate variable 2019-10-12 00:14:05 +01:00
Alex Harker 3231e612ee Correct path fo MaxObjectList.h and turn build script back on 2019-10-12 00:13:15 +01:00
James Bradbury b7174f80e5 Merge branch 'integration' 2019-10-12 00:04:58 +01:00
James Bradbury 0020e6a205 Merge remote-tracking branch 'upstream/docs-james-master' into integration 2019-10-12 00:04:50 +01:00
Alex Harker d04f8b2e31 Uncomment clean-up 2019-10-12 00:02:39 +01:00
Alex Harker f8245a4833 Ensure python scripts are called correctly at runtime, with the correct build variable settings 2019-10-11 23:57:12 +01:00
Alex Harker 97ee603a7b More path and build fixes 2019-10-11 23:52:06 +01:00
Alex Harker c45eaf1550 Updates for path issues with building documentation and running prior to 10.14 2019-10-11 22:31:55 +01:00
Alex Harker 930540a3db Ignore windows log files 2019-10-11 17:21:41 +01:00
Alex Harker 6bac2cc6be Enable parallel building of core windows projects 2019-10-11 17:07:09 +01:00
Alex Harker 4e582e2b30 Cast to silence compiler warnings 2019-10-11 17:04:56 +01:00
Alex Harker e8a683281f Silence type-warnings on windows in core max files 2019-10-11 16:15:54 +01:00
Alex Harker cbb9453b2a Complete prevision commit with missing type clarification 2019-10-11 16:05:55 +01:00
Alex Harker 2930622f71 Update for HISSTools_Library to reduce compiler warnings 2019-10-11 15:59:18 +01:00
Alex Harker 00dd6e5f3a Fix compilation errors for windows (64bit only fully completed) 2019-10-11 15:27:50 +01:00
Alex Harker 163c185a9b Merge branch 'master' into dynamic-contexts 2019-10-11 14:27:12 +01:00
Alex Harker 6d87a2dae4 Updates from HISSTools_Library 2019-10-11 14:26:56 +01:00
James Bradbury 787c29a2cb simplify readme 2019-10-11 13:12:37 +01:00
James Bradbury 4d6c186960 Merge branch 'integration' 2019-10-11 12:50:21 +01:00
James Bradbury af7bffc7be Merge branch 'master' of github.com:AlexHarker/FrameLib into integration 2019-10-11 12:49:53 +01:00
James Bradbury 315ef9d307 prototype new design 2019-10-11 12:47:05 +01:00
James Bradbury 981806b444 consolidate text descriptions 2019-10-11 12:35:35 +01:00
James Bradbury f3fe508f55 new tutorial placeholder 2019-10-11 12:35:19 +01:00
James Bradbury 2e56135c96 change FL_ prefix 2019-10-11 12:35:14 +01:00
James Bradbury b8177e96c7 prepend FL_ 2019-10-11 12:35:06 +01:00
James Bradbury 7ddc1e01f7 update index 2019-10-11 12:35:00 +01:00
James Bradbury 9ec397f799 js for tutorial navigation 2019-10-11 12:33:42 +01:00
Alex Harker f810d7214a Correct error reporting printing of symbol 2019-10-11 12:23:24 +01:00
Alex Harker 22ad2e55fb Improve error reporting for input / parameter parsing 2019-10-11 12:19:13 +01:00
Alex Harker 0482229b00 Add test for out of bounds input numbers 2019-10-11 12:00:16 +01:00
Alex Harker 7c0e7a7ccc Typo 2019-10-10 19:19:31 +01:00
Alex Harker 8e04d9888b Simplify parameter parsing again 2019-10-10 19:08:24 +01:00
Alex Harker 09876f533f Roll test into loop condition 2019-10-10 18:25:36 +01:00
Alex Harker 880b9f113a Fix parsing of contexts 2019-10-10 17:48:12 +01:00
Alex Harker a39671196f Simplify parseNumericalList 2019-10-10 17:42:21 +01:00
Alex Harker a538f0fdff Fix logical operator precedence issue 2019-10-10 17:03:08 +01:00
Alex Harker b94dfa4565 Refactor parameter parsing to reduce code 2019-10-10 16:58:18 +01:00
Alex Harker 1413dda9ba Initial support for named contexts 2019-10-10 16:36:10 +01:00
Alex Harker 3c2a011e97 Add return for clarity of code 2019-10-10 15:55:26 +01:00
Alex Harker 0b484f6a50 Refactor input parsing to be more compact and easier to read 2019-10-10 15:54:36 +01:00
Alex Harker 0550158c61 Simplify input/parameter parsing 2019-10-10 15:36:27 +01:00
Alex Harker 998514b49c Missing space 2019-10-10 11:10:40 +01:00
Alex Harker 767aa338dc Format 2019-10-10 11:09:35 +01:00
Alex Harker d14a74cd44 Merge branch 'master' into dynamic-contexts 2019-10-07 23:36:24 +01:00
Alex Harker 9e5a16f84b Updated FFT from HISSTools_Library 2019-10-07 23:36:05 +01:00
James Bradbury 3ddba3a39d tutorial_names.txt update 2019-10-04 10:24:00 +01:00
James Bradbury d7aa90e3a0 update refs with new tutorials 2019-10-04 10:23:50 +01:00
James Bradbury d5a510a380 Merge branch 'integration' 2019-10-01 16:29:48 +01:00
James Bradbury 24cc0ec908 Merge branch 'master' of github.com:AlexHarker/FrameLib into integration 2019-10-01 16:28:11 +01:00
James Bradbury 34876205b3 template for objects that have mismatch and trigger ins params 2019-10-01 16:27:39 +01:00
James Bradbury cd2377e2c7 move from folder to vignettes 2019-10-01 16:26:56 +01:00
James Bradbury 7ed682f41b ideas for vignettes 2019-10-01 16:26:30 +01:00
James Bradbury ffbd008222 fix empty bpatchers 2019-10-01 16:21:37 +01:00
James Bradbury 9cf29db791 change order of tutorials 2019-10-01 16:01:18 +01:00
James Bradbury ca2c01c24c prefix tutorials 2019-10-01 16:01:10 +01:00
James Bradbury 7dc404d6c9 prefix stuff 2019-10-01 16:00:54 +01:00
James Bradbury f90fafda04 prefix everything so the patchers are less likely to conflict 2019-10-01 16:00:44 +01:00
James Bradbury 0f4295a511 start work on multi-res-fft 2019-10-01 15:04:17 +01:00
James Bradbury 8e2b54217f skeleton for tutorial xml 2019-10-01 15:03:47 +01:00
James Bradbury c418bfe192 more help files 2019-10-01 15:03:39 +01:00
James Bradbury 74428385f9 finished multi-stream tutorial 2019-10-01 15:02:49 +01:00
James Bradbury ff6baec29b update sizing to be mirrored and use proper loadbang scheme 2019-09-27 15:05:57 +01:00
James Bradbury be2d5196f2 update indexing and black out if no params 2019-09-27 15:05:34 +01:00
James Bradbury 3ab15e8bba help file work 2019-09-27 15:05:17 +01:00
James Bradbury 8a20175f7a update with new tutorial names 2019-09-27 14:46:43 +01:00
James Bradbury 0af47e0446 updated work on help files 2019-09-27 14:46:27 +01:00
James Bradbury 201adb4aae updated work on internal tabs 2019-09-27 14:46:17 +01:00
James Bradbury 1ad2aff0db add yaml to utilities recipes 2019-09-27 14:45:57 +01:00
James Bradbury eda5b58b77 remove old py 2019-09-27 14:45:37 +01:00
James Bradbury c4208827ce keep copy of internal_tab template for posterity 2019-09-27 14:45:28 +01:00
James Bradbury 21db810b7e use natural sorting instead of lexicographical 2019-09-27 14:45:15 +01:00
James Bradbury 3f66bc1e8a suppress annoying error (this will need to be fixed another way) 2019-09-27 14:44:54 +01:00
James Bradbury 2f12a6fd24 cd the right level of parent folders up 2019-09-27 14:44:39 +01:00
James Bradbury aa0c8eb4b1 remove completed help files 2019-09-27 14:44:26 +01:00
James Bradbury f825443e13 re-do some javascript helpers 2019-09-27 14:44:09 +01:00
James Bradbury 9183b0ded6 remove old patch 2019-09-27 14:38:05 +01:00
James Bradbury b82df495ff give unique name to abstraction 2019-09-27 14:37:54 +01:00
James Bradbury 72a26432d6 ir and spectral tutorials 2019-09-25 15:17:14 +01:00
James Bradbury 7094947c20 update helper patchers 2019-09-25 15:16:00 +01:00
James Bradbury f0e9a41969 templates for last 2 tutorials 2019-09-25 15:15:44 +01:00
James Bradbury d61376ce4a rejig arrangement 2019-09-25 15:15:33 +01:00
James Bradbury 89ce9d9997 remove unnecessary js 2019-09-25 15:08:20 +01:00
James Bradbury 38f85346a3 update docs readame.md 2019-09-25 15:08:06 +01:00
James Bradbury 11c5e5241c early work on new help files 2019-09-25 15:07:56 +01:00
Alex Harker ae21daae76 Bring in fix to window functions from HISSTools_Library 2019-09-23 19:34:41 +01:00
Alex Harker 308f55d212 Make methods static if they don't use class members 2019-09-18 11:17:38 +01:00
Alex Harker 7f636a815f No longer any need to copy the serial parameters when switching contexts 2019-09-18 08:59:54 +01:00
Alex Harker 5441aa86bd Objects are now constructed with const FrameLib_Parameters::Serial * (const-correctness) 2019-09-18 08:58:28 +01:00
Alex Harker 47448eb795 Make sure stream specifiers and attributes are passed through to the base 2019-09-18 01:11:19 +01:00
Alex Harker 0a1eb854b8 Comment typo 2019-09-18 01:05:27 +01:00
Alex Harker 028d993c44 Simplify code to do with DSP recompiles and add userconnect handling to the wrapper class 2019-09-18 00:40:14 +01:00
Alex Harker dcbd1ece6c Updates for correct behaviour of spectral functions 2019-09-17 01:25:15 +02:00
Alex Harker 6aecd2c677 Add assert for output memory count 2019-09-16 23:30:10 +02:00
Alex Harker a228336a07 Correct connection tests to update realtime network patching when audio is on 2019-09-16 22:45:01 +02:00
Alex Harker b6235d5e43 Merge branch 'master' into dynamic-contexts 2019-09-16 21:56:24 +02:00
Alex Harker 7ec4d88b1d Fix loop condition for inputs of size 1 or less 2019-09-16 21:56:00 +02:00
Alex Harker ad92ba7e78 Fix comment brackets 2019-09-16 21:42:26 +02:00
Alex Harker 976f9d11a0 Allow copying from the first stream owner in FrameLib_FromHost::Proxy for context switching in max 2019-09-16 20:44:12 +02:00
Alex Harker f1290dd459 Better timing on clever granular demo 2019-09-16 20:42:16 +02:00
Alex Harker e4a308a2ad Basic work on NRT thread safety 2019-09-16 10:17:16 +02:00
Alex Harker cf787bd1e2 Formatting 2019-09-16 10:16:39 +02:00
Alex Harker c6258fb99b Unify audio only init (and add code export to this to reduce compiled sizes) 2019-09-16 10:04:06 +02:00
Alex Harker 5177674e62 Rework config and project setup for LTO 2019-09-16 00:06:14 +02:00
Alex Harker 4930d2be6e Add code to generate context references for named contexts 2019-09-15 22:30:06 +02:00
Alex Harker d8ab8a525d Add the infrastructure to support context storage in FrameLib_MaxGlobals 2019-09-15 13:33:32 +02:00
Alex Harker 9c8d166008 Fix context object to detect realtime/nrt correctly 2019-09-15 11:14:31 +02:00
Alex Harker b32d3504e2 No need to test context, as only schedulers trigger context resolution and these have immutable contexts 2019-09-15 09:03:23 +02:00
Alex Harker c137480184 Remove unnecessary brackets 2019-09-15 09:02:31 +02:00
Alex Harker c770d9a292 Safe graph resolution and switching of NRT operations 2019-09-15 08:43:05 +02:00
Alex Harker ea13e64497 Complete last commit (fix test) 2019-09-15 01:26:54 +02:00
Alex Harker e0730a48c9 Correct test for forced realtime graph resolution 2019-09-15 01:17:47 +02:00
Alex Harker 10e7a21ffd Force realtime graph resolution when called via sync() 2019-09-15 01:04:52 +02:00
Alex Harker c27aab0559 Add options to resolveGraph to leave in the correct resolved/unresolved state 2019-09-15 01:01:03 +02:00
Alex Harker 056226e8c5 Use realtime as flag (not non-realtime) and derive state from context when matching 2019-09-15 00:49:01 +02:00
Alex Harker 4ff458d475 Typos 2019-09-15 00:48:24 +02:00
Alex Harker c7696778b6 Use direct context matching when traversing patches 2019-09-15 00:32:53 +02:00
Alex Harker f09054c6f2 Rework to reduce external calls and overall code 2019-09-15 00:25:36 +02:00
Alex Harker a654a5fbae Rework graph resolution such that a null object is never tested, and patchline connections trigger graph resolution rather than directly chhanging contexts, so that context changes are minimised. 2019-09-14 23:35:53 +02:00
Alex Harker d7c6cd789c Remove test code 2019-09-14 22:59:29 +02:00
Alex Harker fbd4cb514e Resolve graphs as early as possible to keep networks up to date 2019-09-14 18:53:16 +02:00
Alex Harker 9cc842d826 Move related code together 2019-09-14 09:35:16 +02:00
Alex Harker cf35488bdc Minor cleanups 2019-09-14 09:22:11 +02:00
Alex Harker 8f59ab8cb2 Fix the test for resolving the graph when exporting code 2019-09-14 07:25:20 +02:00
Alex Harker 65dcac80a8 Remove comment 2019-09-14 07:14:13 +02:00
Alex Harker 5b08824023 Use composite method 2019-09-14 07:12:57 +02:00
Alex Harker 0fcd6bce14 Rework objects to be less reliant on full DSP initilisation/setup and to break the dsp chain when needed 2019-09-14 00:22:46 +02:00
Alex Harker c4b9d38f8c Tidy up/simplify external methods 2019-09-14 00:21:58 +02:00
Alex Harker 926b0a3f7c Const correctness 2019-09-14 00:17:27 +02:00
Alex Harker 3b9c2187c0 Allow context errors to be switched on and off 2019-09-14 00:17:00 +02:00
Alex Harker 2a917a8b3a Update global queue to use deque directly, so as to allow clearing before patch traversal 2019-09-14 00:15:45 +02:00
Alex Harker 609ffb93d1 use "to" rather than "get" for conversion method names 2019-09-14 00:14:06 +02:00
Alex Harker 3c0ff6bf3b Also use correct call for updating args in relation to realtime/non-realtime 2019-09-14 00:12:15 +02:00
Alex Harker 673c3014f9 Finish previous commit 2019-09-14 00:10:50 +02:00
Alex Harker 9385b436ef Use realtime rather than non-realtime as the stored value 2019-09-14 00:09:43 +02:00
Alex Harker 04f7dbbc23 Require t_object * to set dsp chain broken 2019-09-14 00:06:36 +02:00
Alex Harker 2b12748951 Test for realtime externally when traversing patches 2019-09-13 12:06:12 +02:00
Alex Harker da6dcd4e9a Formatting 2019-09-13 12:05:28 +02:00
Alex Harker 4020201a35 Allow setting DSP broken on external objects 2019-09-13 11:47:37 +02:00
Alex Harker 85b82dc526 Only caryy out patchline connect actions on valid inputs 2019-09-13 10:52:02 +02:00
Alex Harker bcb74fe532 Fix reference counting on globals 2019-09-13 10:49:39 +02:00
Alex Harker ee49c6a443 Preliminary wo9rk on allowing processor objects to change context 2019-09-13 09:30:53 +02:00
Alex Harker 33de763489 Add getters to FrameLib_Context 2019-09-12 08:45:33 +02:00
Alex Harker 42eeb25c4c Reinstate mResolve as a flag that applies to both realtime and non-realtime states 2019-09-12 00:47:13 +02:00
Alex Harker ab331830ba Default multithreading off for realtime (also allow hosts to set this) 2019-09-08 10:51:34 +01:00
Alex Harker 58bf5c5e91 Make code clearer where possible 2019-09-08 03:39:34 +01:00
Alex Harker 78a53bc361 Fix call to member function from static method 2019-09-08 03:05:31 +01:00
Alex Harker 4b804b0f0f Don't respond to double-clicks in realtime mode 2019-09-08 03:00:17 +01:00
Alex Harker 314f6ca2ac Fix unwanted implicit bool conversion due to missing arguments 2019-09-08 02:58:52 +01:00
Alex Harker 5bcb5af856 Fixes for object creation 2019-09-08 02:56:05 +01:00
Alex Harker 40adad2b9d Add a mechanism for non-realtime switching 2019-09-08 02:42:06 +01:00
Alex Harker 1a9e80cdc9 Simplify the process method 2019-09-08 02:34:37 +01:00
Alex Harker 5f76ac564b Shorter lines where possible and further tidying 2019-09-08 02:20:32 +01:00
Alex Harker e811207040 Code clarity 2019-09-08 01:46:33 +01:00
Alex Harker fccabf865d Manage t_objects using unique_ptr and reduce code of Max classes 2019-09-07 22:01:37 +01:00
Alex Harker 77d0aca1f8 Substantial layout changes/renaming/neatening 2019-09-07 19:30:25 +01:00
Alex Harker 213fb182c2 Reduce and clarify code for reset() 2019-09-07 18:23:56 +01:00
Alex Harker fbac6e0bb2 Layoutt 2019-09-07 18:14:01 +01:00
Alex Harker 22b66e217f Always use objectMethod, and use it to cast return types 2019-09-07 17:24:11 +01:00
Alex Harker 0f91627be1 Reduce code and neaten 2019-09-07 17:06:55 +01:00
Alex Harker 1ff59d40b1 More concise/accurate naming 2019-09-07 17:06:18 +01:00
Alex Harker f874837ef1 Further refactor connection code to simplify and reduce code 2019-09-07 16:02:40 +01:00
Alex Harker 77e8265f51 Add dblclick functionality 2019-09-07 16:00:40 +01:00
Alex Harker e71c6f39d9 Rework connection code to localise confirmation and reduce code 2019-09-07 15:17:05 +01:00
Alex Harker 5ff397b9fa Remove mPatch which is never reused 2019-09-07 14:32:04 +01:00
Alex Harker a1281eb5ab Access buffer attributes from the wrappe 2019-09-07 13:04:34 +01:00
Alex Harker 87cc7e9e8d Refactor buffer reading and writing into generic header 2019-09-07 11:23:03 +01:00
Alex Harker f2b0cb5b11 Merge branch 'multithreading-speed' into non-realtime
# Conflicts:
#	FrameLib_Max_Objects/Common/FrameLib_MaxClass.h
2019-09-07 00:50:41 +01:00
Alex Harker ecd1dd0724 Merge branch 'master' into multithreading-speed 2019-09-07 00:49:04 +01:00
Alex Harker 4816f2a474 Correct patch traversal 2019-09-07 00:48:41 +01:00
Alex Harker 3cb0208935 Implement buffer attribute 2019-09-07 00:40:53 +01:00
Alex Harker cc9134989b Delete comments 2019-09-07 00:40:35 +01:00
Alex Harker 67ab537f0f Reuse code more effectively and fix traversal bug 2019-09-07 00:33:34 +01:00
Alex Harker 62bc33cb27 Add support for declaring DEFFLOAT and DEFLONG methohds 2019-09-06 10:24:20 +01:00
Alex Harker d40f65e8c5 Formatting 2019-09-06 10:23:48 +01:00
Alex Harker dc5691e44f Missing semicolon 2019-09-06 09:24:40 +01:00
Alex Harker ffb1235091 Add facility to specify the sample rate 2019-09-06 09:24:10 +01:00
Alex Harker c275f8553a Move NRT code from wrapper class to the main class 2019-09-06 01:49:11 +01:00
Alex Harker cd563b2b88 type cast 2019-09-06 01:43:39 +01:00
Alex Harker 6c3413a3c1 Fix the buffer edge constraints 2019-09-06 01:39:51 +01:00
Alex Harker bb63227648 Add the ability to retrieve the block time so as to allow progressive NRT processing 2019-09-06 01:26:36 +01:00
Alex Harker 25d86dd351 Neaten formatting 2019-09-06 01:26:07 +01:00
Alex Harker 240b4460c0 use local method 2019-09-06 00:23:55 +01:00
Alex Harker 20d82c582b Add call to set buffer dirty and ability to change render length (just in samples for now) 2019-09-06 00:23:44 +01:00
Alex Harker 7eddde9ef1 Fixed various conditions about NRT processing that were incorrect 2019-09-06 00:23:12 +01:00
Alex Harker 6d6b72fcd2 Fix set dirty call 2019-09-05 23:51:50 +01:00
Alex Harker e6f240eb05 Add code for reading and writing to buffers when non-realtime processing 2019-09-05 23:32:38 +01:00
Alex Harker 08b4543eae Correct return type 2019-09-05 23:29:32 +01:00
Alex Harker e59f39759b Add header for accessing max buffers with RAII 2019-09-05 23:28:13 +01:00
Alex Harker 602e628f3f Rationalise constants and variables for NRT processing 2019-09-05 21:45:28 +01:00
Alex Harker 74d1891de5 Rework to facilitate adding buffer outputs to non-realtime processing 2019-09-05 21:27:14 +01:00
Alex Harker bcaeed8058 Correct test for the block size of offline processing 2019-09-05 20:35:12 +01:00
Alex Harker 593c79743a Fix stack corruption by making an explicit void* parameter. 2019-09-05 20:34:08 +01:00
Alex Harker a803bd8b90 Refactor to make sensible process and reset calls 2019-09-05 19:56:30 +01:00
Alex Harker 6c19e51121 Rework to add basic offline processing test to the wrapper class 2019-09-05 19:45:15 +01:00
Alex Harker 4d85612d2d Detect changes in the graph that are from making new connections and ensure they are detected once only 2019-09-05 18:30:33 +01:00
Alex Harker 9b1139f971 Clean up 2019-09-05 17:49:57 +01:00
Alex Harker 1d7c2314c1 Rework object method call to allow a safely implemented variadic template 2019-09-05 17:41:53 +01:00
Alex Harker 086cd33552 Refactor graph resolution to better fit the three current use cases and add reset code for testing the non-realtime graph code 2019-09-05 16:52:41 +01:00
Alex Harker 35678d7d5e Simplify confirmation and update tests 2019-09-05 16:13:22 +01:00
Alex Harker 8aa9a275db Formatting 2019-09-05 15:09:55 +01:00
Alex Harker 393ca4620f Improved the detection of graph changes 2019-09-05 15:09:40 +01:00
Alex Harker e1e8443fde Separate graph resolution for realtime and non-realtime objects and allow detection for updates 2019-09-05 14:38:39 +01:00
Alex Harker 45bb3e245d Better comment 2019-09-05 14:37:51 +01:00
Alex Harker c59eb7abf4 Avoid using a parameter name that is also a type 2019-09-05 14:17:55 +01:00
Alex Harker c069315040 Remove duplicate test 2019-09-05 14:14:28 +01:00
Alex Harker 7fad28ed46 Add an offline processing call to the basic max class 2019-09-05 14:02:54 +01:00
Alex Harker d99d33f150 Correctly unwrap connections 2019-09-05 13:56:51 +01:00
Alex Harker 9463b11427 Method cannot be static 2019-09-05 13:12:51 +01:00
Alex Harker 5d9dfdd67e Fix wrapper loop numbers 2019-09-05 13:11:58 +01:00
Alex Harker 10a015df45 Fix local audio IO counts and setup in the max wrapper 2019-09-05 13:10:46 +01:00
Alex Harker f81e119905 Remove unused code 2019-09-05 12:51:01 +01:00
Alex Harker 6dffe447c5 Fix missing method from cherry-picked commit 2019-09-05 12:50:16 +01:00
Alex Harker 07cfe702e3 Update Wrapper constructor loop conditions to be easier to understand and safer 2019-09-05 12:46:24 +01:00
Alex Harker 2154498eb2 Adapt the context max object to cope with non-realtime mode 2019-09-05 12:39:53 +01:00
Alex Harker cc638b14ae Adapt the Wrapper to behave differently in non-realtime mode 2019-09-05 12:39:28 +01:00
Alex Harker a617cad1ad Update Wrapper constructor loop conditions to be easier to understand and safer 2019-09-05 12:38:59 +01:00
Alex Harker 9d53ef7fed Change the behaviour of the max objects if they are non-realtime 2019-09-05 12:37:20 +01:00
Alex Harker be12750227 Make load time method static 2019-09-05 12:36:03 +01:00
Alex Harker 06b4d0e1b7 Distinguish between realtime and non-realtime contexts in max 2019-09-05 12:35:27 +01:00
Alex Harker 757c4a6071 Remove unused code 2019-09-05 12:33:20 +01:00
James Bradbury 49e2cf4dda ignore editable package info 2019-09-04 12:31:50 +01:00
James Bradbury 9fe53833d0 cleanup 2019-09-04 12:31:45 +01:00
James Bradbury 3db27ee1bb script to generate internal tabs for all help 2019-09-04 12:31:39 +01:00
James Bradbury 00b0359b6b moved to old dir 2019-09-04 12:31:25 +01:00
James Bradbury a2a0e583df looks for maxhelp in internal tabs 2019-09-04 12:31:17 +01:00
James Bradbury dc2aff44a8 cleanup templates 2019-09-04 12:31:03 +01:00
James Bradbury 255fc9bcba js for creating internal patcher headers 2019-09-04 12:30:34 +01:00
James Bradbury 527f81dbbf internal tabs templates 2019-09-04 12:30:16 +01:00
James Bradbury 746e137aee organise 2019-09-04 12:30:04 +01:00
James Bradbury ef5eca761c move to editable python package 2019-09-04 12:29:47 +01:00
Alex Harker a0ede9540f Merge branch 'master' into multithreading-speed
# Conflicts:
#	FrameLib_Max_Objects/Common/framelib_max.cpp
2019-09-03 13:18:23 +01:00
Alex Harker 01c3928987 Register requires kAllInputs in max 2019-09-03 13:17:48 +01:00
Alex Harker 3ca13fe335 Fix compilation of special objects in single object build 2019-09-03 13:14:23 +01:00
Alex Harker 58788958be Correct object type 2019-09-03 13:10:28 +01:00
Alex Harker 92a3c205da Compile special case objects correctly in one object version 2019-09-03 13:05:43 +01:00
James Bradbury 4d98b0722e make basic tempaltes for help files 2019-09-01 22:23:56 +01:00
Alex Harker 930dc77af9 Merge branch 'master' into multithreading-speed 2019-09-01 15:25:06 +01:00
Alex Harker f96bcd54ed Add runtime to single object scheme 2019-09-01 15:24:53 +01:00
Alex Harker 1be5348b26 Vectorise FrameLib_Window when interpolating the window coefficients 2019-09-01 15:24:32 +01:00
Alex Harker 37c632d75f Merge branch 'master' into multithreading-speed 2019-09-01 13:28:25 +01:00
Alex Harker 0ee8e5d234 Ignore single object build 2019-09-01 13:28:11 +01:00
Alex Harker 7cc061deb0 Correct naming of object 2019-09-01 13:23:22 +01:00
Alex Harker 171f7e6a00 Update for the context object 2019-09-01 13:18:48 +01:00
Alex Harker b350594ec3 Merge branch 'master' into multithreading-speed 2019-09-01 13:14:04 +01:00
Alex Harker 22f070112f Rework XCode project and config settings, including single object max build for speedy testing 2019-09-01 13:09:16 +01:00
Alex Harker edb7aa346c Added header guard 2019-09-01 12:52:56 +01:00
Alex Harker 4e1e532221 Automatically set the namespace to CLASS_BOX for max objects 2019-09-01 12:17:47 +01:00
Alex Harker c01176f198 Finish previous commit 2019-09-01 11:51:36 +01:00
Alex Harker bcbf00783e Rename dequeue()/enqueue() to pop()/push() 2019-09-01 11:50:32 +01:00
Alex Harker 29e9f3a260 Fix time out testing when multithreading 2019-08-31 22:42:19 +01:00
James Bradbury 31edbd7a83 adjust template 2019-08-31 21:16:04 +01:00
James Bradbury 60bfd11950 edit some js when copying to avoid extra patching in each file 2019-08-31 21:15:11 +01:00
James Bradbury d9a718ac5e minor changes 2019-08-31 21:14:20 +01:00
James Bradbury 938f914251 js for getting patcher name 2019-08-31 21:13:55 +01:00
James Bradbury f6ca56df51 remove old help files 2019-08-31 21:13:43 +01:00
AlexHarker 7cedadaaa2 Merge pull request #34 from AlexHarker/master
Silence audio outputs wen objects have timed out
2019-08-31 21:01:20 +01:00
Alex Harker a69480c66e Silence audio outputs wen objects have timed out 2019-08-31 21:00:54 +01:00
Alex Harker 82bcb79c95 Merge branch 'master' into multithreading-speed 2019-08-31 19:41:25 +01:00
Alex Harker 2f6da499aa Add on/off switching to FrameLib_Interval 2019-08-31 19:21:14 +01:00
Alex Harker 8bb427add0 Set config on pd / framework / framework with objects 2019-08-31 17:20:47 +01:00
James Bradbury 8046eea5f8 first internal guts patch 2019-08-31 16:25:42 +01:00
James Bradbury 3e05003ed9 remove old template 2019-08-31 16:25:20 +01:00
James Bradbury 808b80120c merge 'companion' files with templates 2019-08-31 16:25:01 +01:00
James Bradbury b6b05e40f7 keep a record of the old template 2019-08-31 16:24:29 +01:00
James Bradbury 6abfdbf73c update to template 2019-08-31 16:24:06 +01:00
Alex Harker 61d612acd7 Fix issues with inheritance of FrameLib_Node 2019-08-31 16:18:14 +01:00
James Bradbury 1904d028c6 count params from 1 2019-08-31 14:07:33 +01:00
James Bradbury bd62caaeb0 dont cleanup for now 2019-08-31 14:07:26 +01:00
James Bradbury cda29ecee0 cleanup 2019-08-31 14:07:16 +01:00
James Bradbury a6f4f20171 count from 1 for params 2019-08-31 14:07:04 +01:00
James Bradbury 7ccf325943 geometry 2019-08-31 14:06:31 +01:00
James Bradbury d94ad6e3bb function for reading YAML 2019-08-31 14:04:13 +01:00
James Bradbury c97a9bd8b9 geometry 2019-08-31 14:04:06 +01:00
James Bradbury 5e2a99f9af variation of helpdetails.js 2019-08-31 14:03:18 +01:00
James Bradbury fdeebcd338 use a custom js over default 2019-08-31 14:03:08 +01:00
Alex Harker 58d94c6f50 Minor formatting and typos 2019-08-31 12:19:28 +01:00
Alex Harker 60ec8006fc Formatting 2019-08-31 11:43:29 +01:00
Alex Harker 7eaf801336 Names: FrameLib_FreeBlocks / FrameLib_FreeBlocksSet -> FrameLib_LocalAllocator / FrameLib_LocalAllocatorSet 2019-08-31 10:52:40 +01:00
Alex Harker f8507fd1a6 Finish previous commit 2019-08-31 10:41:35 +01:00
Alex Harker d2862a6168 Renamed FrameLib_LocalAllocator to FrameLib_ContextAllocator 2019-08-31 10:25:12 +01:00
Alex Harker dd7e480f8c Reduce memory pruning 2019-08-31 08:22:44 +01:00
Alex Harker ffdce38854 Safely check if dsp is on 2019-08-30 17:24:49 +01:00
Alex Harker d617b2aded Safely check if dsp is on 2019-08-30 17:24:30 +01:00
Alex Harker bf0be0c417 Add the facility to tweak threading priorities from the host 2019-08-30 16:19:28 +01:00
James Bradbury 4a9e98d136 tidy templating script 2019-08-30 14:21:13 +01:00
James Bradbury 22e29894e4 ignore auto gen interfaces 2019-08-30 14:20:55 +01:00
James Bradbury 7c19b9ce95 ignore help file templates 2019-08-30 14:17:29 +01:00
James Bradbury 572ecc1996 move down to own folder 2019-08-30 14:17:18 +01:00
Alex Harker 998620199c Combine nodes internally to FrameLib_ProcessingQueue 2019-08-30 13:42:37 +01:00
Alex Harker 4e4cde1e79 Formatting 2019-08-30 13:38:23 +01:00
Alex Harker 03c2b79004 Updates to comments and error message 2019-08-30 13:37:45 +01:00
Alex Harker 2083f1b6a1 Restructure as on the simplify branch 2019-08-30 13:34:36 +01:00
Alex Harker dcdbd4232b Remove mainThread() 2019-08-30 13:32:16 +01:00
Alex Harker 45ea5af602 Prefer using to typedef 2019-08-30 13:29:38 +01:00
Alex Harker 122ab9a408 Merge branch 'master' into multithreading-speed 2019-08-30 12:10:19 +01:00
Alex Harker 9ee3c9e261 Use FrameLib_DSP::Allocator and not a context allocator for composed functioanility 2019-08-30 12:09:31 +01:00
Alex Harker b24b282f45 Proxies must not store thread local data - fix FrameLib_ToHost by passing the allocator when needed 2019-08-30 11:57:43 +01:00
Alex Harker 2a16ff6f06 Proxies must not store thread local data - fix FrameLib_ToHost by passing the allocator when needed 2019-08-30 11:50:23 +01:00
Alex Harker 429d79f7d0 Merge branch 'master' into multithreading-speed 2019-08-30 09:34:16 +01:00
Alex Harker 307d8e6a67 Add missing source file 2019-08-30 09:33:53 +01:00
Alex Harker 016d73d066 Change the locking period for error reporting 2019-08-29 11:06:51 +01:00
Alex Harker 699a9128f1 Update the spin lock so it will be as fast, but eventually yield the thread with a short sleep in case there is priority inversion 2019-08-29 11:06:23 +01:00
Alex Harker adc3f784f4 Only decrement dependency count when it is the right time to do so 2019-08-28 21:18:35 +01:00
Alex Harker 35212d131b Fix threadsafety of error reporting 2019-08-28 20:59:46 +01:00
Alex Harker 684ef80ca2 Mark WorkerThreads as final 2019-08-28 17:57:01 +01:00
James Bradbury 66e9a1b514 Merge branch 'integration' 2019-08-28 15:37:26 +01:00
James Bradbury 3acaaf8b90 Merge branch 'master' of github.com:AlexHarker/FrameLib into integration 2019-08-28 15:36:55 +01:00
Alex Harker 3102d3bfa2 Merge commit 'd12b329df62b0ece92b9a3361a3f5177c4ef93b5' into multithreading-speed
# Conflicts:
#	FrameLib_Framework/FrameLib_ProcessingQueue.cpp
2019-08-28 14:10:24 +01:00
AlexHarker d12b329df6 Merge pull request #32 from AlexHarker/docs
Docs
2019-08-28 14:08:30 +01:00
AlexHarker d297efc7d8 Merge pull request #31 from AlexHarker/master
Update docs from master
2019-08-28 14:08:05 +01:00
AlexHarker e6a6cafc04 Merge pull request #30 from AlexHarker/ir-manipulation
Ir manipulation
2019-08-28 14:01:26 +01:00
Alex Harker 111d9b6d13 Remove new objects from main scheme 2019-08-28 13:58:42 +01:00
Alex Harker 12d52d7599 Merge branch 'master' into ir-manipulation 2019-08-28 13:56:38 +01:00
Alex Harker a0cb663657 Merge branch 'master' into multithreading-speed
# Conflicts:
#	FrameLib_Objects/Buffer/FrameLib_Info.cpp
2019-08-28 13:55:57 +01:00
Alex Harker 8be2de7656 Chnages to data layout may apple queue broken (which was for testing purposes only in any case) 2019-08-28 12:35:48 +01:00
Alex Harker 352ab2b2a9 Fix constructor 2019-08-28 11:34:57 +01:00
Alex Harker 2fefec6a33 Formatting 2019-08-28 10:46:08 +01:00
Alex Harker e2409e0aa9 Always use queues for notification 2019-08-28 10:42:17 +01:00
Alex Harker a41e815223 Rework the way that workers are woken 2019-08-28 00:02:14 +01:00
Alex Harker e843c6c25b Reinstate DSP time out 2019-08-27 12:55:38 +01:00
Alex Harker 83bf340492 Add .gitattributes (for cases where we do want to merge projects with less hassle) 2019-08-24 11:42:17 +01:00
Alex Harker 81455412a2 The Documentation folder in the XCode project should not have a path 2019-08-24 11:39:41 +01:00
James Bradbury 5808774ba2 Merge branch 'docs-update' 2019-08-24 11:03:07 +01:00
Alex Harker df61474de8 Merge branch 'master' into ir-manipulation 2019-08-24 10:17:15 +01:00
AlexHarker 26b3f1a3bd Merge pull request #29 from AlexHarker/docs
Docs
2019-08-24 10:16:26 +01:00
AlexHarker 6103325087 Merge pull request #28 from jamesb93/docs-update
Docs update
2019-08-24 10:14:09 +01:00
James Bradbury 33fd1adce7 Merge branch 'docs-update' 2019-08-24 09:59:20 +01:00
James Bradbury 0542070f7b dont ignore interfaces 2019-08-24 09:59:12 +01:00
James Bradbury 75b5ae052a some template lookups 2019-08-24 09:59:05 +01:00
James Bradbury 287d964b4b change to sh 2019-08-24 09:50:41 +01:00
James Bradbury c692f37b12 unify import structure 2019-08-24 09:49:14 +01:00
James Bradbury 59b91e241e Merge branch 'cleanup' 2019-08-24 01:23:09 +01:00
James Bradbury 5d706d3a91 fix scheme 2019-08-24 01:22:40 +01:00
James Bradbury 17e70f5d8a update pre-actions 2019-08-23 19:27:12 +01:00
James Bradbury f54b528f0a add object list header to the project 2019-08-23 19:16:42 +01:00
James Bradbury 6bac3de675 fix '__tmp__' and add other files 2019-08-23 19:14:37 +01:00
James Bradbury a73ef3dc79 separate target from scheme by name 2019-08-23 19:14:05 +01:00
James Bradbury d5d10e4e90 simplify string 2019-08-23 19:12:06 +01:00
James Bradbury f9b8d6f01c correct cleanup script call 2019-08-23 18:45:43 +01:00
James Bradbury 217c67f3d3 commas 2019-08-23 18:45:34 +01:00
James Bradbury 62f94d2f9c pass root from top level script to main function 2019-08-23 18:45:21 +01:00
James Bradbury db129a2fef adjust for temporary path 2019-08-23 18:39:53 +01:00
James Bradbury 4844bdbad4 make cleanup script 2019-08-23 18:39:39 +01:00
James Bradbury 3e5f10df17 cleanup 2019-08-23 18:39:33 +01:00
James Bradbury 8e19c369a2 a folder for creating the temporary directories 2019-08-23 18:39:19 +01:00
James Bradbury 6b0a07bc04 add cleanup to build process 2019-08-23 18:39:05 +01:00
James Bradbury ab106c66bb function that checks if folder exists, if no, make 2019-08-23 18:38:57 +01:00
James Bradbury 1124e243a8 do a cleanup step 2019-08-23 18:09:19 +01:00
James Bradbury a7f337964d respect new temporary directory 2019-08-23 18:09:08 +01:00
James Bradbury 9d5e58bd5f sub foldered tmp 2019-08-23 18:08:58 +01:00
James Bradbury 045835e88e new tmp directory 2019-08-23 18:06:50 +01:00
James Bradbury 96ac4a810d help file templating 2019-08-23 18:06:42 +01:00
James Bradbury 874545dbd6 rename 2019-08-23 18:04:39 +01:00
James Bradbury ec1da8790a rename 2019-08-23 18:04:33 +01:00
James Bradbury 4813d2936a move help file scripts to own file 2019-08-23 18:04:12 +01:00
James Bradbury 31f1f5b366 untrack auto-genned header 2019-08-23 18:03:53 +01:00
James Bradbury 56d9ffd98c add info about seealso and keywords 2019-08-23 18:00:51 +01:00
James Bradbury b21115737e cleanup .gitignores 2019-08-23 18:00:41 +01:00
James Bradbury f58fe8a80c rename as prior stage for manual processing 2019-08-23 18:00:25 +01:00
Alex Harker 3de671f7c4 Stop tracking Max_Object_List.h 2019-08-23 17:50:16 +01:00
James Bradbury 41ac2184ac Merge remote-tracking branch 'upstream/docs' into cleanup 2019-08-23 17:46:32 +01:00
James Bradbury 227d3bee8d Merge branch 'update' into cleanup 2019-08-23 17:45:53 +01:00
James Bradbury 42477fbea6 Merge branch 'exe' into update 2019-08-23 17:45:32 +01:00
James Bradbury af3d0b2bbd make windows friendly 2019-08-23 17:43:05 +01:00
Alex Harker 2feb651162 Fix FrameLib_Info (untested) and make code names more expressive 2019-08-23 17:42:12 +01:00
Alex Harker 246105723b Consistent header guards 2019-08-23 17:35:45 +01:00
Alex Harker 49f63da7fd Remove documentation schemes from main framelib XCode project 2019-08-23 17:32:48 +01:00
Alex Harker 2d63e04f06 Revert "retarget"
This reverts commit e25150ad6d.
2019-08-23 17:29:21 +01:00
Alex Harker 364385e8c8 Updates to make documentation build 2019-08-23 16:53:15 +01:00
Alex Harker f8d13f75fa Type corrections for FrameLib_Typelist etc. 2019-08-23 16:40:21 +01:00
James Bradbury 3e18dae07b typo 2019-08-23 15:15:39 +01:00
James Bradbury 55e8374160 ignore the Max_Object_List.h
this should be generated automatically
2019-08-23 15:14:08 +01:00
James Bradbury b105e19189 remove gitattributes 2019-08-23 15:13:51 +01:00
James Bradbury df01fd96cb dont parallel build - maintain pre and post order 2019-08-23 15:13:00 +01:00
James Bradbury 2c2d19d229 more info on cmd-line building 2019-08-23 15:05:18 +01:00
James Bradbury c7b9e650c5 formatting and more explanation 2019-08-23 15:04:08 +01:00
James Bradbury 988eda8c7a cleanup script to remove tmp and intermediate 2019-08-23 15:03:58 +01:00
James Bradbury c75d31578f A read me explaining how to use docs 2019-08-23 14:53:55 +01:00
James Bradbury 60a53aa51e scheme cleanup 2019-08-23 14:20:07 +01:00
James Bradbury 5643ca8971 remove duplicate FrameLib_Info 2019-08-23 14:12:15 +01:00
James Bradbury 06660bc42d revert to Alex's project 2019-08-23 13:54:47 +01:00
James Bradbury f7ae773990 Merge branch 'threading-integration' 2019-08-22 19:04:02 +01:00
James Bradbury d8a4aa33e8 Merge branch 'master' of https://github.com/AlexHarker/FrameLib into threading-integration
# Conflicts:
#	FrameLib_Exports/FrameLib_TypeList.h
2019-08-22 18:42:30 +01:00
Alex Harker 9337162c4d Merge branch 'master' into queue-refactor 2019-08-22 16:12:45 +01:00
Alex Harker d37f87c639 Use another FrameLib_Node base for thread local DSP queuing 2019-08-22 14:35:56 +01:00
Alex Harker a4287083d9 Typo 2019-08-22 14:30:38 +01:00
Alex Harker 03d69a4fa6 Tidying and renaming for more consistent use of queue (not list/notifier) and moving threading items to the correct place 2019-08-22 14:11:16 +01:00
Alex Harker 4caa782744 Make code more expressive and fix basic queue issues 2019-08-22 03:10:08 +01:00
Alex Harker bd79e09801 Refactor and rename all queues for concision and code reuse 2019-08-22 02:00:14 +01:00
Alex Harker 288c46c644 Header ordering 2019-08-22 01:58:58 +01:00
Alex Harker 83c973c299 Formatting 2019-08-22 01:41:53 +01:00
Alex Harker 0a4d1bd44d Must actually have a main function 2019-08-21 22:12:08 +01:00
Alex Harker d04e3c18a5 Make a specific object for switching multithreading on and off (fl.context~) and remove common code 2019-08-21 19:27:51 +01:00
Alex Harker bd12f97da2 Add the facility to switch multithreading on and off (review) 2019-08-21 13:58:42 +01:00
Alex Harker cbbf8d8350 Whitepace 2019-08-21 13:43:00 +01:00
Alex Harker 741d252c3b Updated HISSTools_FFT to line up with the HISSTools_Library 2019-08-21 13:11:30 +01:00
Alex Harker ef2c8e5699 Merge branch 'master' into ir-manipulation 2019-08-21 09:36:17 +01:00
Alex Harker 0dbab74dd7 Use nodelists for the audio updates, but otherwise add individually 2019-08-21 01:44:23 +01:00
Alex Harker e92978c3a8 Use object life-cycle to complete notifications 2019-08-21 01:33:10 +01:00
Alex Harker 94cddb4c24 Separate starting and adding to queue 2019-08-21 00:06:20 +01:00
Alex Harker 7ad1da921e Rework framework and objects to allow deferral of adding to the processing queue for audio calls (see FrameLib_Expand) 2019-08-20 23:00:35 +01:00
Alex Harker 33ac7e44b1 Move field for initialisation order 2019-08-20 22:45:46 +01:00
Alex Harker 88858e9803 Updated .gitignore 2019-08-20 17:31:30 +01:00
Alex Harker 1c3c3ffe54 Updated .gitignore 2019-08-20 17:31:07 +01:00
Alex Harker 9878814123 Updated gitignore 2019-08-20 17:30:24 +01:00
Alex Harker 245e83f1de Try a the threading system that enqueues multiple items at a time 2019-08-20 17:26:28 +01:00
Alex Harker 9aa6b0a286 Remember to set mNext to nullptr when removing 2019-08-20 17:13:38 +01:00
Alex Harker 81f00ca45b Updae the NodeList for correctness 2019-08-20 17:04:29 +01:00
Alex Harker 68d44e48bd added NodeList 2019-08-20 16:40:50 +01:00
Alex Harker f216738f34 Add the facility to switch multithreading on and off 2019-08-20 14:18:45 +01:00
Alex Harker dcc368f4b3 Tidy up 2019-08-20 14:15:06 +01:00
Alex Harker 4512c83f87 Separate out the process of waking workers to enable different approaches 2019-08-20 11:36:28 +01:00
Alex Harker c48be719fd Merge branch 'threading-custom-queue' into threading
# Conflicts:
#	FrameLib_Framework/FrameLib_ProcessingQueue.cpp
2019-08-20 11:18:58 +01:00
Alex Harker 5bf593a76f Keep thread local queue in FrameLib_DSP and move to separate processing queue and lock free queue/stack code 2019-08-20 11:17:20 +01:00
Alex Harker d5895db66d Complete lock free options so far 2019-08-20 11:14:57 +01:00
Alex Harker fd7588cda1 Clone buffer proxies for thread safety 2019-08-20 11:00:49 +01:00
Alex Harker a47a2900e3 Add Apple queue to lock free code for testing 2019-08-20 10:53:47 +01:00
Alex Harker 8be1db9da7 Add a lock free stack (which is simple and meets requirements for the queue/stack) 2019-08-20 10:48:15 +01:00
Alex Harker b70ab4b088 Comment out call to get thread priority 2019-08-19 23:31:05 +01:00
Alex Harker 6244dcef4f Tweaks (queue is slow and suffers an issue when an item re-adds itself) 2019-08-19 15:40:38 +01:00
James Bradbury 9ee7105671 work on tutorial 0 2019-08-19 14:47:44 +01:00
James Bradbury 6d0bc80eb0 patch for explaining overlap add 2019-08-19 14:46:18 +01:00
James Bradbury 9bc02f8cd3 polish 2019-08-19 14:46:10 +01:00
James Bradbury 5f22ce3dae final touchups 2019-08-19 14:46:03 +01:00
Alex Harker 41a56120bb Attempt to implement custom queue code 2019-08-19 13:19:06 +01:00
Alex Harker 96c328f725 Use <cstdint> not <stdint.h> 2019-08-19 12:28:05 +01:00
Alex Harker e2dfa46396 Prefer while (true) to while (1) 2019-08-19 11:12:06 +01:00
Alex Harker 56b27cc639 Rework queue to make queue/enqueue private methods ready for custom impelementation 2019-08-19 09:43:02 +01:00
Alex Harker 6a794bdbbe Threading priority work (and retrieval) 2019-08-18 23:42:50 +01:00
Alex Harker 6adc8ca626 Rework details of ThreadSet class and move sleeping functionality into FrameLib_Threading for potential future platform optimisation 2019-08-18 21:35:47 +01:00
Alex Harker fd1eac9ba4 Use cross-platform std::this_thread::sleep_for() and try some other tweaks for performance 2019-08-18 21:19:18 +01:00
Alex Harker f8a668499d Fix code to compile in the expression parser 2019-08-18 15:53:41 +01:00
Alex Harker 60af25c574 Make the reverse iterations more standards compliant by not decrementing past begin() 2019-08-18 15:01:24 +01:00
Alex Harker 8bd753e941 Try clear/prune only in main audio thread (review later) 2019-08-18 12:25:45 +01:00
Alex Harker 57621001d9 Remember to default mFreeBlocks to nullptr 2019-08-18 10:58:34 +01:00
Alex Harker decf492a2f Rework threads so that they use a consistent set of free blocks 2019-08-18 09:05:53 +01:00
Alex Harker 3e3caf05b2 Free blocks should be set on the object (thread local) and not the local allocator (which is not) 2019-08-18 09:05:27 +01:00
Alex Harker 3033472669 Remember to start worker threads! / Set free blocks in a safer manner 2019-08-18 06:38:39 +01:00
Alex Harker d4fc3e3cd1 Shorten method name and comments / more debug asserts before the code can re-enter 2019-08-18 06:37:31 +01:00
Alex Harker 85ac5f667a Add thread-local free blocks to the processing queue 2019-08-18 00:27:19 +01:00
Alex Harker 0a0539ee96 Allow memory free blocks to be set on FrameLib_Object<> with protected methods 2019-08-18 00:26:55 +01:00
Alex Harker 3fbe326846 Clarify friend classes 2019-08-18 00:26:11 +01:00
Alex Harker 67a8c84342 Whitespace 2019-08-18 00:25:20 +01:00
Alex Harker 060d192cc9 Separate the local allocator and free blocks in FrameLib_Memory.h/.cpp to allow use with multithreaded processing queue 2019-08-17 23:57:58 +01:00
Alex Harker 8ab798185a Fix bugs with multithreading and achieve basic proof of concept with new scheduling code 2019-08-17 22:52:12 +01:00
Alex Harker 2e203e53ad Refactor to simplify the processing queue and do all the work inside the queue, rather than in DSP 2019-08-16 12:13:13 +01:00
Alex Harker a70d8e98eb Change types again 2019-08-16 12:11:11 +01:00
Alex Harker 72a4b26820 NULL -> nullptr 2019-08-16 11:38:11 +01:00
Alex Harker 034f33bf6a Types 2019-08-16 11:37:55 +01:00
Alex Harker 3d9231209d Type change to silence compiler warning 2019-08-16 10:55:10 +01:00
Alex Harker 81743dacc3 Formatting 2019-08-16 08:36:07 +01:00
Alex Harker 9ba60c7898 Formatting 2019-08-16 08:35:28 +01:00
Alex Harker f9201dc3a9 Delete old file 2019-08-16 08:34:18 +01:00
Alex Harker cce9c11488 Merge branch 'master' into threading
# Conflicts:
#	FrameLib_Framework/FrameLib_DSP.cpp
#	FrameLib_Framework/FrameLib_DSP.h
#	FrameLib_Framework/FrameLib_DSPQueue.cpp
#	FrameLib_Framework/FrameLib_DSPQueue.h
#	FrameLib_Framework/FrameLib_Memory.cpp
#	FrameLib_Framework/FrameLib_Threading.h
2019-08-16 08:30:43 +01:00
Alex Harker b09bcc7929 Fixed normalisation of real FFTs 2019-08-15 15:13:42 +01:00
Alex Harker 5380c1a8aa Typo 2019-08-15 15:13:23 +01:00
James Bradbury 3072425536 deeper explanation of audio conversion process 2019-08-15 14:12:38 +01:00
James Bradbury 5f5204579e slight adjustments to positioning 2019-08-15 14:12:19 +01:00
James Bradbury 6bf2a9a3bf bpatcher to explain overlap-add 2019-08-15 14:12:06 +01:00
James Bradbury 6010672826 duplicate fl.template.maxhelp script 2019-08-14 20:50:39 +01:00
James Bradbury 13044eeb3a use bpatcher for the header rather than hard coded 2019-08-14 20:49:39 +01:00
James Bradbury 05ef6d0135 black formatting 2019-08-14 20:48:30 +01:00
James Bradbury 9d0bdbf140 black formatting 2019-08-14 20:46:18 +01:00
James Bradbury 098200cdb7 black formatting 2019-08-14 20:45:57 +01:00
James Bradbury 8fa666319c black formatting 2019-08-14 20:45:48 +01:00
James Bradbury f966462484 Use a bpatcher for the header 2019-08-14 20:45:24 +01:00
Alex Harker 5b8014d7c4 Bug fixes for kernel smoother code 2019-08-14 18:35:43 +01:00
Alex Harker ec8c87f0f4 Project changes for new objects 2019-08-14 16:08:59 +01:00
Alex Harker 4d457345fd Merge branch 'master' into ir-manipulation 2019-08-14 16:08:31 +01:00
Alex Harker 4e095b4b14 Fix error with scientific notation in object boxes 2019-08-14 16:07:08 +01:00
Alex Harker 817458b827 Formatting 2019-08-14 16:06:08 +01:00
Alex Harker d09b61940c Change name of fl.irphase~ to fl.firphase~ (and similar chnages) and add this plus the kernal smoohter to the max object scheme 2019-08-14 15:59:47 +01:00
Alex Harker 2996f9ae10 Update kernel smoother 2019-08-14 15:32:24 +01:00
Alex Harker a71f846020 Fix enable ifs in HISSTools_Library code 2019-08-14 15:24:08 +01:00
Alex Harker 31c5f4cf08 Attempt to deduce type traits for HISSTools_Library class constructors 2019-08-14 15:09:16 +01:00
Alex Harker 1f84220a10 Updates from HISSTools_Library 2019-08-14 13:57:21 +01:00
Alex Harker 50474b2985 Updates to spectral code from HISSTools_Library 2019-08-14 00:24:19 +01:00
Alex Harker 0b3d5d7c4b Updates to spectral code from HISSTools_Library 2019-08-13 23:34:37 +01:00
Alex Harker 757ff58d5b Fix output retrieval for complex convolution and correlation 2019-08-13 23:07:31 +01:00
Alex Harker 8ecb5635b2 Update spectral processor from HISSTools_Library 2019-08-13 17:22:53 +01:00
Alex Harker 26d0223a21 Updates from HISSTools_Library 2019-08-13 12:52:32 +01:00
James Bradbury c07f0429bb Merge branch 'pull-branch' 2019-08-13 00:53:14 +01:00
James Bradbury c89c153989 Merge branch 'master' of github.com:AlexHarker/FrameLib into pull-branch 2019-08-13 00:52:44 +01:00
James Bradbury 68abf4955a toolbars and fonts 2019-08-13 00:50:28 +01:00
James Bradbury 28ca411149 additional documentation of internal patches 2019-08-13 00:50:13 +01:00
James Bradbury c5d9cefb58 added toolbars and made font 13 standardised 2019-08-13 00:49:42 +01:00
Alex Harker 9059ea766a Correct detection for patterns being sent 2019-08-13 00:45:52 +01:00
Alex Harker 1bc73b2701 Remove space from info string 2019-08-13 00:33:08 +01:00
Alex Harker 5b237170b0 Use number of audio ins/outs from the internal framelib object for info() calls 2019-08-13 00:32:50 +01:00
Alex Harker abdc57b613 Updates from HISSTools_Library 2019-08-12 23:32:12 +01:00
Alex Harker 8401b51825 Spectral code reordering and renaming 2019-08-12 23:19:27 +01:00
Alex Harker c929640496 Refactor the spectral processor as a dependency compose rather than inherit 2019-08-12 18:24:35 +01:00
Alex Harker 9304383b1a Update IR manipulation in line with HISSTools_Library 2019-08-12 15:53:23 +01:00
Alex Harker 9c41138845 Refactor the spectral processor as a template class 2019-08-12 15:48:20 +01:00
Alex Harker 9521f321db Add general purpose allocator to the framework 2019-08-12 15:47:26 +01:00
Alex Harker dfe6a8361b Whitespace 2019-08-12 12:15:41 +01:00
Alex Harker 78cebec0b9 Retrieve max FFT size from the Spectral_Processor object 2019-08-12 10:52:31 +01:00
Alex Harker 8bd4446fc1 Refactor all spectral objects to use a common processor 2019-08-12 10:29:18 +01:00
Alex Harker aa7ca31841 Update IR Manipulation as in HISSTools_Library 2019-08-11 21:40:50 +01:00
Alex Harker e84fde38c5 Commit KernelSmoother code form HISSTools_Library 2019-08-10 23:35:05 +01:00
Alex Harker 5144e41b62 Don't use the smoothing path if there is no kernel 2019-08-10 23:34:16 +01:00
Alex Harker cb035f4b8b Remove unused header include 2019-08-10 09:47:11 +01:00
Alex Harker 4438a2da4d Correct IO on irphase 2019-08-10 09:46:57 +01:00
Alex Harker 4a0346ed7b Add kernel smoother code 2019-08-10 09:46:38 +01:00
Alex Harker ce8c8f1a20 Initial irphase code commit 2019-08-08 23:52:45 +01:00
James Bradbury b867435919 Make neater with toolbars 2019-08-07 14:28:52 +01:00
James Bradbury 70974b5110 re-add python files to proj 2019-08-07 14:26:59 +01:00
James Bradbury dce332f6ad dont need numeric types 2019-08-07 14:25:34 +01:00
James Bradbury 7b0cbb2dd2 update names of tutorials and make some toolbar adjustments 2019-08-07 14:24:52 +01:00
James Bradbury 409b97c021 go up 1 dir because of package 2019-08-07 12:11:29 +01:00
James Bradbury 2f914862de name change for package 2019-08-07 12:11:18 +01:00
James Bradbury 6f49cf72ed move to a package rather than modules 2019-08-07 12:11:05 +01:00
James Bradbury bc0bc83991 updates to tutorials 2019-08-03 01:34:53 +01:00
Alex Harker 435e3126c2 Update dependencies from HISSTools_Library 2019-08-02 15:54:52 +01:00
James Bradbury b63eb545de yaml file containing seealso and keyword info 2019-07-15 14:10:24 +01:00
James Bradbury 231fa953dc update module names 2019-07-15 14:09:53 +01:00
James Bradbury cc7a45ef0f minor refactor 2019-07-15 14:09:44 +01:00
James Bradbury e0fb6fbd53 add tilde~ to the raw xml files for obj names 2019-07-15 14:09:35 +01:00
James Bradbury 25a04b5780 add a thinning function 2019-07-15 14:09:23 +01:00
James Bradbury 4d16c0d731 conversion from raw writing to dict
also includes safe writing of yaml
2019-07-15 14:09:04 +01:00
James Bradbury aa66c5c1c4 remove old keywords method 2019-07-13 10:56:41 +01:00
James Bradbury 3fa94520b1 ignore temp file 2019-07-13 10:53:49 +01:00
James Bradbury 85b54c53bf do keywords and seealso 2019-07-13 10:51:07 +01:00
James Bradbury cd047375b1 generates a simplistic yaml file with keywords and seealso 2019-07-12 16:11:02 +01:00
James Bradbury 2176881f37 basic yaml file that is auto gen by yaml_template.py 2019-07-12 16:10:37 +01:00
James Bradbury efa5205ea4 extracts keywords and seealso from yaml file and implements this in the automated process 2019-07-12 16:10:19 +01:00
James Bradbury 6ceafc5922 yaml file containing keywords and seealso 2019-07-12 14:51:06 +01:00
James Bradbury 138bc314cc create a template for yaml containing keywords and seealso
possibly remove this later as it will overwrite any custom work
2019-07-12 14:50:48 +01:00
James Bradbury bb0e71efdf superfluous text file 2019-07-12 14:50:18 +01:00
James Bradbury ad31ac2f29 Make categories more human readable 2019-07-12 14:24:21 +01:00
James Bradbury e25150ad6d retarget 2019-07-08 23:34:32 +01:00
James Bradbury 46d48f3ced Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-07-08 23:31:51 +01:00
Alex Harker c344e9c4a3 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-07-08 23:22:29 +01:00
Alex Harker 6ddb836622 Make the visual studio compiler happy (for now) about types 2019-07-08 23:03:15 +01:00
James Bradbury e7ef3c6fc7 Merge branch 'master' of https://github.com/AlexHarker/FrameLib into Alex-Integration
# Conflicts:
#	Current Test Version/FrameLib/docs/tutorial-patchers/_1_What_is_FrameLib?.maxpat
#	Current Test Version/FrameLib/docs/tutorial-patchers/_1_What_is_FrameLib__.maxpat
#	Current Test Version/FrameLib/docs/tutorial-patchers/_2_What_is_FrameLib.maxpat
2019-07-08 20:23:35 +01:00
Alex Harker feb9d6925f Update SIMDSupport.hpp again 2019-07-04 13:08:21 +01:00
Alex Harker 6d5ddcb231 Update SIMDSupport.hpp 2019-07-04 12:49:54 +01:00
James Bradbury 6901ed2674 more organisation 2019-06-22 11:01:36 +01:00
James Bradbury d6bd1d9d00 avoid Non-portable path errors in xcode 2019-06-20 14:12:12 +01:00
James Bradbury 5399efa414 disclaimer 2019-06-20 14:10:09 +01:00
James Bradbury 4d9cc3b6fd create sh scripts for pre/post actions on build docs 2019-06-20 14:10:03 +01:00
James Bradbury efbde97b9a windows friendly python scripts 2019-06-20 13:50:05 +01:00
James Bradbury 6616d057b4 ignore workspace 2019-06-20 13:05:26 +01:00
James Bradbury ea5170df62 make toolbars great again on extras 2019-06-20 13:00:27 +01:00
Alex Harker 353fa20d4c Require AVX on windows for now and compile for that 2019-06-20 11:29:15 +01:00
Alex Harker 71aa6d6f73 Correct mm256 shuffles so that the code works (needs testing for speed) 2019-06-20 10:18:23 +01:00
Alex Harker 99ff5f476d Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-19 16:31:58 +01:00
Alex Harker 5ce0317e72 Correct type in FFT code 2019-06-19 16:31:50 +01:00
Alex Harker bd9cfe329d Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-19 13:58:12 +01:00
Alex Harker f3f988007b Adapt FFT to recognise SSE support under MSVS 2019-06-19 13:50:30 +01:00
Alex Harker 0b95c9662f Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-19 13:45:58 +01:00
Alex Harker fb32f54346 Move FFT to objects project 2019-06-19 13:45:43 +01:00
Alex Harker 12a972df89 Deal with __SSE__ define on windows with MSVS 2019-06-19 13:44:34 +01:00
Alex Harker 1ac523c910 Typecasting for overly compliant compilers 2019-06-18 16:48:52 +01:00
Alex Harker 2c0745abe4 Formatting 2019-06-18 16:48:28 +01:00
Alex Harker 5db9668f00 Added trunc and round functions to SIMDSupport.hpp 2019-06-18 16:24:59 +01:00
Alex Harker a78dde0eb9 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-18 16:18:00 +01:00
Alex Harker db4fb327c3 Improvements for compiler flags under windows 2019-06-18 16:17:48 +01:00
Alex Harker 043ebe24d3 Better typing for ibuffer access / ibuffer 2019-06-18 16:16:52 +01:00
James Bradbury 2320ff8468 Change to numbered stages from letters 2019-06-18 14:13:10 +01:00
Alex Harker 36d17094c1 Integer casting for max objects with their own code to remove warnings under Win64 2019-06-18 10:46:03 +01:00
Alex Harker c45fccdfd3 Formatting 2019-06-18 10:24:23 +01:00
Alex Harker 5e750fafa1 Add explicit type casting to table reader to allow higher warning level on compiler 2019-06-18 10:01:01 +01:00
Alex Harker 13b3564529 Correct tests for valid input in the max class when checking remotely 2019-06-17 02:25:31 +01:00
Alex Harker ef3263d35a Fix reversal of audio ins and outs in the Max class 2019-06-17 02:05:19 +01:00
Alex Harker eb9c2c42e6 Move additional files out of the main output directory on windows or avoid generating them 2019-06-17 01:31:19 +01:00
Alex Harker bb7701c777 Update to ensure all windows externals build 2019-06-17 01:20:23 +01:00
Alex Harker 5a64d42dd1 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-17 00:58:52 +01:00
Alex Harker a0982ce752 Correct type on template to convince windows to compile 2019-06-17 00:54:46 +01:00
Alex Harker 17ba66a050 Make sure all headers are available when compiling max objects 2019-06-17 00:51:24 +01:00
Alex Harker 2d645267fb Include missing headers on complex unary and binary operators 2019-06-17 00:32:20 +01:00
Alex Harker 6f547228ad Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-17 00:28:00 +01:00
Alex Harker 10d2447cb3 Add missing headers 2019-06-17 00:26:55 +01:00
Alex Harker 4caf97f537 Update all projects and solution 2019-06-17 00:23:40 +01:00
Alex Harker 054fb2e141 Removed extra project 2019-06-17 00:22:14 +01:00
Alex Harker 992ed515b8 Add project for each framelib object on windows 2019-06-17 00:00:02 +01:00
Alex Harker b6cb7886da Get project structure ready for full externals set 2019-06-16 22:41:35 +01:00
Alex Harker 95e54d9508 Fix config files for windows x64 debug build 2019-06-16 22:17:17 +01:00
Alex Harker 208c0649f6 Improevements to configs to get win32 compiling in debug mode 2019-06-16 21:51:47 +01:00
Alex Harker 750b9aa741 Project / Solution / Config updates for windows compilation 2019-06-16 21:30:04 +01:00
Alex Harker cadf8574c4 Update projects/solutions/configs 2019-06-16 20:07:01 +01:00
Alex Harker 566189c495 Rework source to use unsigned long for buffer offset 2019-06-16 17:42:50 +01:00
Alex Harker 0ff7ff101a Finalise (hopefully) changes to framework integer types 2019-06-16 17:32:36 +01:00
Alex Harker 831ee2f712 Update DSP / Object / Memory to improve integer types 2019-06-16 17:18:57 +01:00
Alex Harker 3ecb810d5f FrameLib_MaxClass add explicit integer casts 2019-06-16 16:53:18 +01:00
Alex Harker 0ad2745c02 Safer integer typecasting from void* 2019-06-16 16:44:21 +01:00
Alex Harker 336234d3f2 Update integer types in FrameLib_Multistream 2019-06-16 16:18:31 +01:00
Alex Harker c08c093444 FrameLib_MaxClass update integer types 2019-06-16 16:08:55 +01:00
Alex Harker d0239fc757 Type cast size_t to unsigned long / make sure all paths return in function 2019-06-16 15:33:37 +01:00
Alex Harker 0bc3899dea NanFilter - correct cast 2019-06-16 15:15:35 +01:00
Alex Harker 3795065c4c Deleted unneeded line 2019-06-16 15:12:11 +01:00
Alex Harker 37538ff479 From Host integer types 2019-06-16 15:10:03 +01:00
Alex Harker f23a5e169c Missed one cast 2019-06-16 15:05:45 +01:00
Alex Harker 554a55f599 Update HISSTools_FFT for sypes 2019-06-16 15:04:33 +01:00
Alex Harker f1c95a838a Upadte HISSTools_FFT 2019-06-16 15:00:30 +01:00
Alex Harker bb9f71b6a3 Misc integer types and casting 2019-06-16 14:51:41 +01:00
Alex Harker d5407ce095 Expressions - don't use size_t where unsigned long should be used. 2019-06-16 14:44:53 +01:00
Alex Harker 75a3273ef4 Const correctness 2019-06-16 14:37:31 +01:00
Alex Harker ad15c77ce8 Correct last commit by not calling through to non-const methods 2019-06-16 14:36:19 +01:00
Alex Harker 7f18a162d0 IO objects buffer size as unsigned long 2019-06-16 14:33:21 +01:00
Alex Harker 988dc4e0a5 Formatting 2019-06-16 14:33:01 +01:00
Alex Harker 894a3fc79d Even more work on parameters integer types 2019-06-16 14:25:02 +01:00
Alex Harker 3aabdd7cc9 More work on parameter integer types 2019-06-16 14:18:56 +01:00
Alex Harker 50a408e850 work integer types in FrameLib_Parameters 2019-06-16 14:09:54 +01:00
Alex Harker 2f038375d3 Whitespace 2019-06-16 13:51:45 +01:00
Alex Harker 375ea661ea Routing setting active IO using cast 2019-06-16 13:47:36 +01:00
Alex Harker 3f2949feb0 Routing integer types 2019-06-16 13:45:12 +01:00
Alex Harker 62a8924bd6 Type cast 2019-06-16 13:44:40 +01:00
Alex Harker 6689b4b4f7 Correct previous commit for snprintf warnings 2019-06-16 13:41:54 +01:00
Alex Harker 608ff0ca15 sprintf warning 2019-06-16 13:39:24 +01:00
Alex Harker 83d1b1c0d3 Peaks and Percentile integer types 2019-06-16 13:32:37 +01:00
Alex Harker 526f64cb09 Multitaper and spatial integer types 2019-06-16 13:23:37 +01:00
Alex Harker 36b123770a Tags/Parameters integer types 2019-06-16 13:15:15 +01:00
Alex Harker d2013ba707 Expressions integer types 2019-06-16 13:02:05 +01:00
Alex Harker 25b657e062 Median filter integer types 2019-06-16 12:15:00 +01:00
Alex Harker 665483ae8c Typo 2019-06-16 12:02:46 +01:00
Alex Harker 3c326672b2 ParamAlias types 2019-06-16 11:58:44 +01:00
Alex Harker 0def066ecb Integer types 2019-06-16 11:24:13 +01:00
Alex Harker af53737ae2 Simplify code / types / return value 2019-06-16 11:19:07 +01:00
Alex Harker 887d657ce1 Integer type matching 2019-06-16 10:52:16 +01:00
Alex Harker d27d33fc3b FrameLib_MaxClass types 2019-06-16 10:35:50 +01:00
Alex Harker 6d423383ba Explicit type casts when moving from double to int 2019-06-16 09:27:37 +01:00
Alex Harker 5ad3504874 Use auto to ensure type consistency 2019-06-15 23:48:02 +01:00
Alex Harker d010ed6efc More work on size_t vs unsigned long 2019-06-15 23:39:49 +01:00
Alex Harker f453f02cee Whitespace 2019-06-15 23:36:26 +01:00
Alex Harker c11f0a3cf4 Tabs->Spaces 2019-06-15 23:34:05 +01:00
Alex Harker 1a4e616cfd Further work on types to make things compile on windows 2019-06-15 23:18:45 +01:00
Alex Harker 2248d7d843 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-15 22:47:49 +01:00
Alex Harker e8aa7d415b Change parameter types 2019-06-15 22:46:57 +01:00
Alex Harker 24a4eaac26 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-15 22:37:13 +01:00
Alex Harker 17bf1196a7 Correct type 2019-06-15 22:36:47 +01:00
Alex Harker 33c5b95372 Formatting 2019-06-15 22:29:46 +01:00
Alex Harker f8ab683440 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-15 22:28:55 +01:00
Alex Harker 95798bf862 Add serialisation to the framework library 2019-06-15 22:27:54 +01:00
Alex Harker 2295dfd9a6 Use correct type for windows 2019-06-15 22:27:36 +01:00
Alex Harker 55b4994485 Use unsigned long for frame sizes 2019-06-15 22:24:19 +01:00
Alex Harker 34d12fba78 formatting of comment 2019-06-15 22:17:49 +01:00
Alex Harker d2d944e005 Cast to avoid warning again / formatting 2019-06-15 18:06:02 +01:00
Alex Harker 8ce3a120bc Silence warnings with cast / formatting 2019-06-15 17:59:51 +01:00
Alex Harker f2cfdcb2e8 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-15 17:48:38 +01:00
Alex Harker b9e7c7381f Attempt to fix closing of semaphores on windows 2019-06-15 17:48:29 +01:00
Alex Harker 820036591a Test project for compiling framelib max externals on windows 2019-06-15 17:21:53 +01:00
Alex Harker b4d99e9fa0 Use compiler specific name unmangling (requires windows implementation) 2019-06-15 17:21:05 +01:00
Alex Harker 8717c5c0fa Add dependencies to the framelib project 2019-06-15 16:52:00 +01:00
Alex Harker 34a35696fd Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-15 14:54:10 +01:00
Alex Harker 06b61f6701 Rework connection data to use a separate class so it can be used safely in wrappers 2019-06-15 14:53:59 +01:00
Alex Harker 8875ec7239 Include project for building objects and update framework project 2019-06-15 13:16:22 +01:00
Alex Harker 0f7a7a84c7 Clarify expected operator ordering 2019-06-15 12:51:33 +01:00
Alex Harker 0c87136401 Don't try to compile code with a vector size that might be 0 2019-06-15 12:44:35 +01:00
Alex Harker 7a9ed92697 Use config file for vector settings 2019-06-15 12:37:43 +01:00
Alex Harker 12eeb0ab1a Correct type 2019-06-15 12:02:37 +01:00
Alex Harker c91efd823d Add previous fix to ramp object 2019-06-15 11:46:27 +01:00
Alex Harker e5c855aac0 retrieve modes with getInt() before casting to enum types to keep the windows compiler happy 2019-06-15 11:45:49 +01:00
Alex Harker 29f13bc3b4 Correct style of path for Statistics.hpp 2019-06-15 11:29:52 +01:00
Alex Harker e40d9621db Correct style of paths 2019-06-15 11:26:47 +01:00
Alex Harker dd169eca44 Always use snprintf 2019-06-15 10:59:59 +01:00
Alex Harker 8afb86b812 Change to portable type 2019-06-15 10:42:01 +01:00
Alex Harker 0b75d1803f Formatting 2019-06-15 10:41:43 +01:00
Alex Harker e5ee012c9e Include <cmath> for constants 2019-06-15 10:32:31 +01:00
Alex Harker 283c7e93ac Basic VS solution and project 2019-06-15 00:44:31 +01:00
Alex Harker dbb876eea4 Use std::copy to copy strings that we have explicitly tested that we have space for. 2019-06-15 00:42:53 +01:00
Alex Harker 58ab2544d2 Make explicit that string copies are safe 2019-06-15 00:28:15 +01:00
Alex Harker 3a38bf04a2 Typo 2019-06-15 00:22:50 +01:00
Alex Harker 3f6cab845f Safer string manipulation 2019-06-15 00:18:29 +01:00
Alex Harker f9ea2abdff Corrected .gitignore syntax 2019-06-14 23:55:00 +01:00
Alex Harker 646cc91783 Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-06-14 23:53:18 +01:00
Alex Harker c6e448abad Updated .gitignore 2019-06-14 23:53:00 +01:00
Alex Harker 46b0936dbc Use binary minus to avoid compiler warnings/errors 2019-06-14 23:49:58 +01:00
Alex Harker e88097e69a Fix class name 2019-06-14 23:46:16 +01:00
James Bradbury 1ff3d23c52 rename so git.clone on windows plays nice 2019-06-14 19:26:59 +01:00
Alex Harker 6f218b00fb Remove punctuation in file name 2019-06-14 19:21:58 +01:00
James Bradbury 16a28151d9 Terse documentation of each stage 2019-06-14 17:02:15 +01:00
James Bradbury 14b61cf920 remove excess messages 2019-06-14 17:02:06 +01:00
James Bradbury 66c479c3a4 change location of RawXML to tmp 2019-06-13 18:39:26 +01:00
James Bradbury 9f471e781a make python run as part of the build of Documentation 2019-06-13 18:39:12 +01:00
James Bradbury 6747b8c8d6 make tilde great again 2019-06-13 18:38:57 +01:00
James Bradbury 3aa19d9b00 Merge branch 'docs' of https://github.com/AlexHarker/FrameLib
# Conflicts:
#	Documentation/Max Documentation/Build_Max_Docs.cpp
2019-06-13 18:09:11 +01:00
Alex Harker 787f5a3019 Fix folder name 2019-06-13 18:07:11 +01:00
Alex Harker b3dad2c90c Fixed linking of documentation 2019-06-13 18:00:46 +01:00
James Bradbury c811868849 fixed pathing 2019-06-13 17:59:06 +01:00
Alex Harker 4e01f1ea0f Fixed linking of documentation 2019-06-13 17:54:16 +01:00
James Bradbury 413f1d6ce3 Updated object_list script and file 2019-06-13 17:10:19 +01:00
James Bradbury d5898a4902 fixed template issue 2019-06-13 17:01:26 +01:00
James Bradbury 20c24c0bda update object_list generator 2019-06-13 16:59:01 +01:00
James Bradbury b03363ba75 Max_Object_List.h 2019-06-13 16:52:00 +01:00
James Bradbury a59beab12e Fixed .DS_Store issue 2019-06-13 16:50:57 +01:00
James Bradbury 97fecf4a3e remove custom targets 2019-06-13 16:47:06 +01:00
James Bradbury 723de75604 : -> ; 2019-06-13 16:46:07 +01:00
James Bradbury 78bca63471 Remove custom objects from this branch 2019-06-13 16:45:46 +01:00
James Bradbury ba2e7f7be9 Get rid of busted helpers 2019-06-13 16:41:26 +01:00
James Bradbury 72ec3a0793 Generate Max_Object_List.h 2019-06-13 16:39:32 +01:00
James Bradbury d7eb79c1a5 whitespace 2019-06-13 16:39:18 +01:00
James Bradbury f7fbf76ba7 creates first part of file, no commas 2019-06-13 15:46:10 +01:00
James Bradbury 8fd21d4dbd Merge branch 'docs' of https://github.com/AlexHarker/FrameLib 2019-06-13 14:12:46 +01:00
James Bradbury 27aabdf50e walk dirs for files 2019-06-13 14:12:23 +01:00
James Bradbury 81c9f66e6b Generate Max_Object_List.h 2019-06-13 14:08:16 +01:00
Alex Harker 065df86faf Add infrastructure for auto generating max object lists and hence documentation 2019-06-13 13:47:31 +01:00
James Bradbury 21cabdfbdf make toolbars great again 2019-06-13 11:50:01 +01:00
James Bradbury 49584e0677 XML Generator for FrameLib Objects 2019-06-13 10:05:38 +01:00
James Bradbury ac3441b6e4 suppress issue compile issues (for now) 2019-06-13 10:05:16 +01:00
James Bradbury 6edb0d30bc Merge branch 'master' of https://github.com/AlexHarker/FrameLib 2019-05-30 13:37:54 +01:00
James Bradbury 2b542abbe5 Refactorising python code, and subsequent ammendments to output docs 2019-05-30 13:37:04 +01:00
James Bradbury ddb4d9e0dd Checking of the raw xml exists - otherwise continue 2019-05-30 13:09:58 +01:00
Alex Harker aca0c8b251 Add support for adding size_t items to error reports 2019-05-30 08:25:33 +01:00
Alex Harker fb735055c5 Updates to the threading model to avoid priority inversion in the memory system 2019-05-30 08:14:39 +01:00
Alex Harker e2aa1b57e8 Don't dynamic cast on a nullptr 2019-05-30 08:07:12 +01:00
Alex Harker 0e36245172 Added to TODO 2019-05-27 22:59:05 +01:00
Alex Harker 34b596773d Formatting 2019-05-27 22:58:53 +01:00
James Bradbury 322b35ecf2 error checking for xml 2019-05-25 18:34:03 +01:00
James Bradbury 1577f17c42 move seed generation to object from process() 2019-05-25 18:09:58 +01:00
James Bradbury a9a125d2aa cosmetic update 2019-05-25 18:09:42 +01:00
James Bradbury 29552de930 dont build fl.scramble~ with whole set 2019-05-25 18:09:32 +01:00
James Bradbury f4f21f29e1 make if more clear 2019-05-25 18:08:18 +01:00
James Bradbury d85b388e16 try: statement to check if xml actually exists 2019-05-25 18:07:54 +01:00
James Bradbury 36b984412e updated tutorials to reflect a new preliminary tutorial 1 2019-05-25 18:07:17 +01:00
James Bradbury 388135477c Merge branch 'master' of https://github.com/AlexHarker/FrameLib
* 'master' of https://github.com/AlexHarker/FrameLib:
  Documentation fo alpha 2.6
  Fixed build of fl.info~
  TypeList updates
  Project and build updates to align all targets
  User Read Updates
  Updated info strings
  Set parameters correctly/safely on object constructors for time smoothing objects.
  Initial TypeList work
  Sorted bugs with making sure that the number of frames is correct under all conditions
  Update project and scheme for pattern object
  Updated SC to include auto ordering connections
  Added code for pattern object
  Info strings correction
  Don't try to process when the input is empty
2019-05-25 12:26:15 +01:00
James Bradbury 39ad136441 handle merging of pbxproj 2019-05-25 12:25:34 +01:00
James Bradbury 101861072f try: to avoid situations where there is no folders to cull 2019-05-25 11:58:23 +01:00
James Bradbury 5ea770984d change location of python exec 2019-05-25 11:54:31 +01:00
James Bradbury 7a87996681 Move random seed generation out of process 2019-05-25 01:42:19 +01:00
James Bradbury 51c51f46df Merge branch 'fl.scramble'
* fl.scramble:
  use std::shuffle not std::random_shuffle
2019-05-25 01:34:20 +01:00
James Bradbury 8156b5966f Update FrameLib.maxpat
small updates to extras file
2019-05-24 21:42:56 +01:00
James Bradbury 99a9755de1 Update .gitignore
ignore help file_templates
2019-05-24 21:42:41 +01:00
James Bradbury a522e2e506 Create help_file_templating.py
generate help files from template
2019-05-24 21:42:29 +01:00
James Bradbury 587fc62d20 Delete f_create_tutorial_coll.py
change name of file
2019-05-24 21:41:00 +01:00
James Bradbury 22a0f45e91 Update f_parse_to_jlookup.py
create dictionary containing parameters
2019-05-24 21:40:51 +01:00
James Bradbury b856f915d0 Create fl.template.maxhelp
help file template
2019-05-24 21:40:32 +01:00
James Bradbury 2c0f9d8b92 Update _Build_All_Files.py
update build_all_files.py to include new scripts
2019-05-24 21:40:07 +01:00
James Bradbury 3867d08704 Delete params.js
remove params.js
2019-05-24 21:39:42 +01:00
James Bradbury e262f6e9da Create fldocs.getparams.maxpat
bpatcher to display parameters
2019-05-24 21:39:31 +01:00
James Bradbury f32d11d324 Delete fl_helpdetails.js
remove fl_helpdetails.js
2019-05-24 21:39:23 +01:00
James Bradbury 6ddcaf477f Create fl.getname.js
js script to get the file name of the patcher
2019-05-24 21:38:27 +01:00
James Bradbury 724ba33615 use std::shuffle not std::random_shuffle 2019-05-09 10:31:09 +01:00
James Bradbury 0d63bd8841 rename stage 2019-05-09 10:30:23 +01:00
James Bradbury e2642e5329 jsui to grab parameters 2019-05-09 10:30:06 +01:00
James Bradbury b33906442d make a dict containing all the params/digest/description 2019-05-09 10:29:47 +01:00
James Bradbury 6ea6d3adc4 js file for help files to print information to a text box 2019-05-01 21:21:05 +01:00
James Bradbury 7ea1d45b76 cleanup 2019-05-01 21:20:42 +01:00
James Bradbury 4cf1f27f40 cleanup 2019-05-01 21:20:24 +01:00
James Bradbury 4766730f98 Merge branch 'fl.closest' 2019-04-01 20:41:05 +01:00
James Bradbury 5f69df86f8 added FrameLib_Scramble.cpp source 2019-04-01 20:40:02 +01:00
James Bradbury 9e1e7d3433 added target for fl.scramble and added fl.scramble to max objects scheme 2019-04-01 20:39:44 +01:00
James Bradbury c9f4d40ed4 closest matches are now scrambled 2019-04-01 20:39:20 +01:00
James Bradbury c079a652a1 Addended definition name 2019-04-01 20:16:20 +01:00
James Bradbury 00bd3e37e3 add files to proj 2019-04-01 20:15:37 +01:00
James Bradbury 0882b2398e add files for fl.scramble 2019-04-01 20:15:26 +01:00
James Bradbury dbd9b2c92e much more finessed concatenative synthesis using fl.closest~ 2019-04-01 20:12:25 +01:00
James Bradbury 692f1e5723 added target for fl.closest~ 2019-04-01 20:12:06 +01:00
James Bradbury da54ff78b1 object which finds the closest value in a frame and returns the index 2019-04-01 20:11:46 +01:00
James Bradbury 1c5a4f5f4b adjusted target for fl.find~ 2019-03-31 21:29:07 +01:00
James Bradbury 3f2fffb68e crude concatenation in vignette 2019-03-31 21:28:50 +01:00
James Bradbury 4cb7b0b6ff adjusted inputs and parameter input to properly construct 2019-03-31 21:28:30 +01:00
James Bradbury e07bf25a5b std::nan when no match is found 2019-03-31 19:54:24 +01:00
James Bradbury bf9825efde fl.find~ now searches within given /range parameter for a value that satisfies criteria. 2019-03-31 15:03:58 +01:00
James Bradbury f86fc9f0bc integrating fl.find~ into descriptor vignette 2019-03-31 10:27:11 +01:00
James Bradbury da1433b712 fl.find~ objects 2019-03-31 10:26:42 +01:00
James Bradbury 2af60ac5a5 stores sound file descriptors in real time 2019-03-30 19:06:24 +00:00
James Bradbury 8802bf6bfe A musical usage of descriptors 2019-03-30 18:45:29 +00:00
James Bradbury 368d087265 Merge branch 'PyRefactor' 2019-03-30 18:01:01 +00:00
James Bradbury be83aa5bf2 project updates 2019-03-30 17:59:14 +00:00
James Bradbury 45af634f09 js file to assist in drawing help maxpat text 2019-03-30 17:58:43 +00:00
James Bradbury 59a9ae4a7a a descriptors vignette 2019-03-30 17:58:16 +00:00
James Bradbury 29271ff586 ignore vscode 2019-03-30 17:58:00 +00:00
James Bradbury f1700dced1 updated tutorials 2019-03-30 17:56:50 +00:00
James Bradbury 8a9363b425 work on generating all xml in crude brute force manner 2019-03-19 17:15:07 +00:00
James Bradbury cec93b0f6c adjusted the landing page to work with new categories of framelib objects 2019-03-19 17:14:16 +00:00
Alex Harker 04911b6809 Documentation fo alpha 2.6 2019-03-14 13:13:55 +00:00
Alex Harker 8063c1622d Fixed build of fl.info~ 2019-03-14 12:51:13 +00:00
Alex Harker 5212f49386 TypeList updates 2019-03-14 12:45:20 +00:00
Alex Harker 16da2496fa Project and build updates to align all targets 2019-03-14 12:03:19 +00:00
Alex Harker 715bccc4b2 Merge branch 'master' of https://github.com/jamesb93/FrameLib
# Conflicts:
#	framelib~.xcodeproj/project.pbxproj
#	framelib~.xcodeproj/xcshareddata/xcschemes/framelib~ Max Objects.xcscheme
2019-03-14 11:43:41 +00:00
Alex Harker db5d07e5e8 User Read Updates 2019-03-14 11:34:24 +00:00
Alex Harker 8b6c6ca4b2 Updated info strings 2019-03-14 11:34:08 +00:00
Alex Harker 7834415a03 Set parameters correctly/safely on object constructors for time smoothing objects. 2019-03-13 14:59:20 +00:00
James Bradbury 7c28a8b06f Add FrameLib_Info.h to the max objects header. 2019-03-12 14:03:02 +00:00
Alex Harker 5ccf8b346c Initial TypeList work 2019-03-10 16:44:09 +00:00
James Bradbury acb2094d9a ignore the q/t/dlookup.json 2019-03-10 15:38:41 +00:00
James Bradbury c821304921 minor cleanup 2019-03-10 15:38:14 +00:00
James Bradbury 393cf49d9b remove obj-lookups from git and source control 2019-03-10 15:37:53 +00:00
James Bradbury 6100cd4a93 Doc strings 2019-03-10 15:36:11 +00:00
James Bradbury 2ff7fbd62b Missing a ">" from the formatting 2019-03-10 15:35:57 +00:00
James Bradbury 5d1dad7bcb Ignore all further .maxref.xml files 2019-03-10 15:35:38 +00:00
James Bradbury 20a6b90d9a Remove .maxref files from git 2019-03-10 15:35:13 +00:00
James Bradbury fca744f9dc Removed Build_XML.maxpat and added a new cpp terminal app to replicate 2019-03-10 14:55:52 +00:00
James Bradbury 5b6a995b75 Removed junk files 2019-03-10 14:55:30 +00:00
James Bradbury c577f218aa made prefixes for file to make ordering more visible 2019-03-10 14:36:49 +00:00
James Bradbury c9312a13e1 adjusted description to match function 2019-03-10 14:25:14 +00:00
James Bradbury f88372a739 Added docstrings to all the functions. 2019-03-10 13:47:21 +00:00
James Bradbury cdb046b89a Flag so that __pycache__ isn't created. 2019-03-10 13:16:48 +00:00
James Bradbury 8a46b4c9f9 Prefix the class of ParseAndBuild() to make them unique 2019-03-10 13:12:13 +00:00
James Bradbury 7af197d936 Add jb e-mail 2019-03-10 13:10:22 +00:00
James Bradbury 20b6997db2 clean up language 2019-03-09 18:28:08 +00:00
James Bradbury b183005a5f main() functions are now passed an argument containing the root. This simplifies code if I need to change the location of the folder. 2019-03-09 18:26:55 +00:00
James Bradbury 7f1f706246 File of helper functions for directory vars 2019-03-09 18:25:53 +00:00
James Bradbury 76759b407a Easier to read printing 2019-03-09 18:25:32 +00:00
James Bradbury a76d4ac236 Added some helper functions to reduce code duplication 2019-03-09 17:36:23 +00:00
Alex Harker b698127bfd Sorted bugs with making sure that the number of frames is correct under all conditions 2019-03-09 09:44:06 +00:00
Alex Harker e2822fdb85 Update project and scheme for pattern object 2019-03-09 09:26:03 +00:00
Alex Harker 85aeb0e3d3 Updated SC to include auto ordering connections 2019-03-09 09:23:55 +00:00
Alex Harker b1c4c39ef4 Added code for pattern object 2019-03-09 09:22:15 +00:00
Alex Harker 9af4b81910 Info strings correction 2019-03-09 08:49:00 +00:00
Alex Harker ab82158b14 Don't try to process when the input is empty 2019-03-08 19:18:51 +00:00
James Bradbury 9341587954 Ignore an easily generated file. 2019-03-08 16:31:22 +00:00
James Bradbury 3549758777 Xcode can build python target separately, or as a post-script for the c++ terminal app 2019-03-08 16:25:45 +00:00
James Bradbury 82e4b0d2eb Added new target to build python files in xcode 2019-03-08 15:48:28 +00:00
James Bradbury 4a9e051f0b Start incorporating python work 2019-03-08 15:21:26 +00:00
James Bradbury fcb8e42a0d Remove unnecessary header 2019-03-08 15:20:33 +00:00
James Bradbury 1a9571c3c8 Update Build_Max_Docs.cpp
Removed header. Can now create an xml for FrameLib_Interval
2019-03-07 15:45:18 +00:00
James Bradbury 5bc498c18c Keep maxclass.h consistent across branches 2019-03-07 14:58:47 +00:00
James Bradbury 64d5ef0778 Update FrameLib_MaxClass.h
Remove unnecessary #includes
2019-03-07 14:48:37 +00:00
James Bradbury 44c87bb7d5 Script for generating docs
Script for generating docs
2019-03-07 14:37:36 +00:00
James Bradbury f26c588a28 Update FrameLib_MaxClass.h
Remove write_info from master.
2019-03-07 14:36:37 +00:00
James Bradbury aec2b0cf0f Update project.pbxproj
Remove extra fl.chain~ plist
2019-03-07 14:36:25 +00:00
James Bradbury 6af70ce202 Update project.pbxproj
New command-line target for Documentation
2019-03-07 14:33:43 +00:00
James Bradbury b40df1f848 Update FrameLib_MaxClass.h
Remove write_info method. This is no longer necessary
2019-03-06 15:44:36 +00:00
James Bradbury 23d738c76a Update project.pbxproj
Added ibuffer_access.cpp as a compile source to stop linking errors when building.
2019-03-01 14:24:05 +00:00
James Bradbury 46576513d2 Added fl.chain~ to objectlist 2019-03-01 11:56:05 +00:00
James Bradbury a62e268e5d updated build_xml.maxpat 2019-03-01 11:51:17 +00:00
James Bradbury a77d21f9be Project updated to match upstream/master 2019-03-01 11:24:43 +00:00
James Bradbury 2fc0166511 Removed fl.info~ testing scheme 2019-03-01 11:24:22 +00:00
James Bradbury 56614a6680 Ammended build path 2019-03-01 11:23:57 +00:00
James Bradbury 1773d3ea7c Removed unnecessary file 2019-03-01 11:17:04 +00:00
James Bradbury 6a932badce Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	framelib~.xcodeproj/project.pbxproj
#	framelib~.xcodeproj/xcshareddata/xcschemes/framelib~ Max Objects.xcscheme
2019-03-01 01:31:43 +00:00
James Bradbury 65f42636b1 Re-ordered targets for fl.info~ 2019-02-23 01:14:16 +00:00
James Bradbury 1da47a7c40 Merge branch 'master' of https://github.com/jamesb93/FrameLib
# Conflicts:
#	.gitignore
2019-02-23 00:59:58 +00:00
James Bradbury 596acd08c4 Clean up ignored files 2019-02-23 00:49:52 +00:00
James Bradbury e6a230c87b Updated gitignore 2019-02-23 00:45:20 +00:00
James Bradbury 92e5a3c5b7 Updated XML build patch 2019-02-23 00:41:48 +00:00
James Bradbury de2c32da6e Updated category database 2019-02-23 00:39:04 +00:00
James Bradbury 78882a9921 Removed dummy file 2019-02-23 00:38:48 +00:00
James Bradbury cb9c1a3127 Fixed typos 2019-02-23 00:38:27 +00:00
James Bradbury e66b48c1d4 Tutorial 0 added 2019-02-23 00:35:38 +00:00
Alex Harker a33d07f79a Clean-up and small bug fix if output memory is not allocated 2019-01-31 23:45:45 +00:00
Alex Harker f848aaef80 Formatting and clean-up 2019-01-31 23:45:12 +00:00
Alex Harker a659a78d50 Fix input parsing to avoid infinite loops when no values are present, and removing extra errors caused by inputs 2019-01-31 22:25:27 +00:00
Alex Harker 2c376aa4f0 Added the chain scheduler 2019-01-31 15:29:35 +00:00
AlexHarker 2e1f44ed1b Merge pull request #23 from AlexHarker/next
Next
2019-01-29 14:25:27 +00:00
Alex Harker 0bb227a75c Merge branch 'master' into next 2019-01-29 14:19:48 +00:00
James Bradbury f4b47455a5 ignores XML externals 2018-12-07 17:22:25 +00:00
James Bradbury c928c2e722 Ignore XML enabled externals 2018-12-05 15:14:14 +00:00
James Bradbury 1d8ea6a69d Automated patch that produces XML files from all current framelib objects 2018-12-05 15:13:03 +00:00
James Bradbury d3db9c128d Removed boost from string concatenation 2018-12-05 15:12:36 +00:00
James Bradbury 15a476b746 Build XML enabled max objects into the documentation folder 2018-12-05 15:11:38 +00:00
James Bradbury e7cfa9d2cf Added fl.dispatch~ to objectlist 2018-12-05 15:11:10 +00:00
James Bradbury 5a86a12e34 Merge branch 'master' of https://github.com/jamesb93/FrameLib into XML-Documentation
# Conflicts:
#	Current Test Version/FrameLib/docs/refpages/Binary/fl.greaterthaneq~.maxref.xml
2018-12-04 17:50:13 +00:00
James Bradbury 7f5957ac30 minor updates to landing page 2018-12-04 17:44:32 +00:00
James Bradbury 24a8e39a7e Object List for auto-building the XML max patch 2018-12-04 17:43:57 +00:00
James Bradbury b36a826457 Fixed typos (Issue #89) 2018-12-04 16:39:54 +00:00
James Bradbury 0265d85be9 Info for each outputs in fl.info~ 2018-12-02 14:36:28 +00:00
James Bradbury 9dce5e8989 minor update to fl.trace~.maxhelp 2018-11-30 17:17:14 +00:00
James Bradbury 78bb81db82 Removed tildes from info strings 2018-11-30 17:16:12 +00:00
James Bradbury 637b080fef Corrected parameter strings. Moved setIO higher in the constructor. Unit parameter, output of size defaults to ms 2018-11-29 01:52:26 +00:00
James Bradbury 00d834af89 Update Max Documentation with fl.info~ 2018-11-29 01:51:17 +00:00
James Bradbury fbdad41c0c Small typo in Alex's notes 2018-11-26 14:40:26 +00:00
James Bradbury a7ea4258d8 cleanup 2018-11-26 00:19:23 +00:00
James Bradbury d7792781cc fl.info~ now uses the generic info.plist 2018-11-25 19:28:42 +00:00
James Bradbury 05e75c70e5 fl.info~ now acquires and outputs the number of channels. 2018-11-25 19:28:19 +00:00
James Bradbury 93cd331415 Modified the acquire function to return channels 2018-11-25 19:27:17 +00:00
James Bradbury 1e5a9795e1 Updated build targets for fl.info~ Also removed some extraneous copying from fl.read~ config. 2018-11-25 19:12:04 +00:00
James Bradbury 3480d0a6c7 fl.info~ initial work - outputs size and sr of a buffer 2018-11-25 19:11:16 +00:00
James Bradbury 3aab7a1b58 Merge branch 'next' of github.com:AlexHarker/FrameLib
# Conflicts:
#	framelib~.xcodeproj/project.pbxproj
2018-11-25 17:50:56 +00:00
James Bradbury 60204ac6fe Minor updates to documentation help files. 2018-11-24 13:42:41 +00:00
Alex Harker a975f86630 Replace all tabs with spaces in code which is not a dependency 2018-11-03 11:14:06 +00:00
Alex Harker 28a6d5011c Updated naming of fl.dispatch~ target 2018-10-28 22:05:06 +00:00
Alex Harker e49f93abda Fix error reporting with join object 2018-10-21 10:02:31 +01:00
James Bradbury 09d736d180 minor position adjustment 2018-10-19 23:47:52 +01:00
James Bradbury c6893b9037 modified some small elements of landing page 2018-10-19 23:47:18 +01:00
James Bradbury 274a7a03f8 added some qol changes to the latter patches 2018-10-19 23:47:01 +01:00
James Bradbury a137eed040 made noise bipolar from unipolar 2018-10-19 23:46:38 +01:00
James Bradbury 1cfe33b7ca fixed fl.timemedian~ objects parameters 2018-10-19 23:39:31 +01:00
James Bradbury 34f2f05eeb Fixed trigger frames not attached 2018-10-19 23:34:33 +01:00
Alex Harker 6a0d409804 Update issues 2018-10-17 16:50:55 +01:00
Alex Harker dc1888ea34 SC Reduce flags, set source to run as audio rate and update issues file 2018-10-17 00:09:28 +01:00
Alex Harker 9e73b207ee Make optimisation levels global to the project 2018-10-17 00:08:25 +01:00
Alex Harker 26c0be5047 Support for fixed inputs 2018-10-16 16:59:10 +01:00
James Bradbury 59ad31d33b Fixed minor tutorial bugs and adjusted landing page with new credits 2018-10-16 12:40:21 +01:00
James Bradbury 7a1f811772 Remove dead files 2018-10-16 12:32:17 +01:00
James Bradbury ba065746af Timing category conflicts with existing Max category. Now it is 'FL_Timing'. 2018-10-16 12:32:01 +01:00
Alex Harker 1b063ebf32 Const-correctness 2018-10-16 12:06:58 +01:00
Alex Harker 06960473ea Rework namespaces to prevent conflicts and fix diff() function within expression object 2018-10-16 09:21:37 +01:00
Alex Harker aae13fc385 More SC Objects and build into place 2018-10-16 08:54:13 +01:00
Alex Harker e1920f0753 Simplifications to the SC codebase 2018-10-16 00:25:49 +01:00
Alex Harker 26862361f0 Updated names and schemes for SuperCollider 2018-10-15 21:15:10 +01:00
Alex Harker 535a7d410a Fix comment 2018-10-15 18:02:43 +01:00
Alex Harker f62d245c4e SuperCollider initialisation parameters and buffer reading 2018-10-15 18:02:08 +01:00
James Bradbury fc3d9c8f1b Updated fl.sink~ help file 2018-10-15 16:54:00 +01:00
James Bradbury 2b699288e5 Minor changes to landing page, tutorials. Addition of fl.sink~ max help file. 2018-10-15 16:41:43 +01:00
James Bradbury 930cfb659d Removed bad help files, made existing ones Max 8 style compliant
Minor changes and bug fixes (/trigger_ins boths)
2018-10-15 15:41:06 +01:00
Alex Harker 9165073833 SuperCollider restructure + Issues 2018-10-14 23:36:42 +01:00
James Bradbury 4041c265b1 First iteration of auto-reference output 2018-10-14 22:26:56 +01:00
James Bradbury 17a451ee57 remove main() function from inside the file 2018-10-14 22:25:38 +01:00
James Bradbury 2afa294b0d edits raw xml and replaces text for categories 2018-10-14 22:25:11 +01:00
James Bradbury e7c55c046b white space removal 2018-10-14 22:24:36 +01:00
James Bradbury 041cf8c97a Object category database updated to reflect changes in naming of source files 2018-10-14 22:23:43 +01:00
James Bradbury b4a625aa29 Updated to include new tasks 2018-10-14 22:23:03 +01:00
Alex Harker b57b45907a Merge branch 'master' of https://github.com/AlexHarker/FrameLib into next 2018-10-14 22:03:21 +01:00
Alex Harker 397be6a6f7 Merge branch 'master' of https://github.com/AlexHarker/FrameLib into next 2018-10-14 21:59:29 +01:00
James Bradbury fd52e5540b Match source name to mxo target 2018-10-14 21:57:50 +01:00
James Bradbury d17ef06426 Matched source file with mxo output 2018-10-14 21:55:48 +01:00
Alex Harker 4c7314f0df SuperCollider Initial Work 2018-10-14 21:54:31 +01:00
James Bradbury 1ab9ea47bd fixed period in fl.fold~.cpp 2018-10-14 21:36:55 +01:00
James Bradbury 704fa8483b minor error 2018-10-14 21:29:14 +01:00
James Bradbury f3ad3518e3 more fstring conversion 2018-10-14 21:28:37 +01:00
James Bradbury eb0eed990e added tilde to fl.coordinatesystem.cpp file 2018-10-14 21:23:51 +01:00
James Bradbury 0530c50d7f Revert "Extra schemes for testing builds on smaller set of objects"
This reverts commit 623169fa2b.
2018-10-14 16:51:02 +01:00
James Bradbury 623169fa2b Extra schemes for testing builds on smaller set of objects 2018-10-14 16:49:31 +01:00
James Bradbury 5c45487ce9 Minor changes to Build XML maxpat 2018-10-14 09:53:33 +01:00
Alex Harker 2b187cd165 Allow fl.tomax~ to separate streams if required 2018-10-13 18:15:40 +01:00
Alex Harker 2dc1778446 Build directly into the package location 2018-10-13 18:13:43 +01:00
James Bradbury 8c3a31d3cd Remove junk xml 2018-10-13 12:47:14 +01:00
James Bradbury ebab9812d6 Corrected spelling mistake and adjusted category wildcard to not contain escaped characters
Commented object_post to reduce overhead on producing XML documentation
Fixed error where it was posting the number of parameters to XML output
2018-10-13 11:06:41 +01:00
James Bradbury 99339425c5 Merge branch 'master' of github.com:jamesb93/FrameLib into XML-Documentation 2018-10-13 10:53:29 +01:00
James Bradbury 5eca1ee983 Move old XML references 2018-10-13 10:53:03 +01:00
James Bradbury c223a6d8cf Merge branch 'master' of github.com:jamesb93/FrameLib into XML-Documentation 2018-10-13 10:52:06 +01:00
James Bradbury fe8323bf86 edit_raw_xml to add in categories from json 2018-10-13 10:50:46 +01:00
James Bradbury 7be81025bf Converted string concatenation to fstring 2018-10-13 10:47:58 +01:00
James Bradbury b001aed4da renamed category creator python script to match other similar scripts in batch 2018-10-12 21:04:20 +01:00
James Bradbury 55bef4a3c7 Updated master python script to include category building 2018-10-12 21:03:55 +01:00
James Bradbury d6fd72e3e1 Now ignores the RawXML folder inside Max Documentation 2018-10-12 20:56:14 +01:00
James Bradbury 332d8aaca7 py file to create an object category database 2018-10-12 20:54:23 +01:00
James Bradbury 09387ab35d Object Category Database 2018-10-12 20:53:34 +01:00
James Bradbury ea669a0b3f Updated stripping tool for any number of splits 2018-10-12 20:53:04 +01:00
James Bradbury 247b08bfdf python file to create a category database 2018-10-12 19:53:41 +01:00
James Bradbury 97ef1d8144 register write_info method and output xml not txt 2018-10-12 19:39:05 +01:00
James Bradbury f8fdebe89e File containing all framelib objects to produce xml files. 2018-10-12 18:24:53 +01:00
James Bradbury bd012ddc01 Added includes for boost related functions 2018-10-12 17:24:51 +01:00
James Bradbury c82f692cab Properly added method for write_info 2018-10-12 17:10:05 +01:00
James Bradbury b83e2433df Merge branch 'master' of github.com:jamesb93/FrameLib into XML-Documentation 2018-10-12 16:57:35 +01:00
James Bradbury d7b01ac43a Update tutorials 2018-10-12 16:55:39 +01:00
James Bradbury a13ddc47b5 Changed how directories are formed 2018-10-12 16:55:20 +01:00
James Bradbury a71aefad30 Changed how directories are formed in python files 2018-10-12 16:54:54 +01:00
James Bradbury f6b0dee4e4 Removed junk files from package 2018-10-12 16:53:19 +01:00
James Bradbury deaa7ffc81 tutorial xml index updated with proper digest
basic terminology changed to beginner
2018-10-12 16:52:59 +01:00
James Bradbury ac7df7e313 Updated t-lookup now pulls proper digest about tutorial 1 2018-10-12 16:51:13 +01:00
James Bradbury c94a961905 Updated help files 2018-10-12 16:50:43 +01:00
James Bradbury 39fe3ae24e Landing page updated 2018-10-12 16:49:59 +01:00
James Bradbury 46820055fd Moved reference xml files 2018-10-12 16:13:07 +01:00
James Bradbury 75a5eb824d Difficult file 2018-10-12 15:31:17 +01:00
James Bradbury ca69cd95b1 git ignore updated to ignore notes 2018-10-12 15:20:21 +01:00
James Bradbury bebfadd733 Python files moved to Max Documentation folder 2018-10-12 15:18:08 +01:00
James Bradbury 93406613c6 Move keywords python file 2018-10-12 15:14:16 +01:00
James Bradbury 35c82c4c67 Deleted python from old location 2018-10-12 15:10:58 +01:00
James Bradbury 74eff81528 Moved python to new Max Documentation folder 2018-10-12 15:06:52 +01:00
James Bradbury 509b6bee83 write_info function added to Max Class 2018-10-12 15:06:04 +01:00
James Bradbury c9fccbc54b Stop tracking python caches 2018-10-12 14:50:54 +01:00
James Bradbury 9fb2a52b28 Updated .gitignore to ignore python caches 2018-10-12 14:47:23 +01:00
James Bradbury a28fb0b9ef Merge branch 'master' of github.com:AlexHarker/FrameLib into documentation 2018-10-12 14:37:27 +01:00
James Bradbury 4baafca6f8 python, tutorials, extras landing page and object lookups 2018-10-11 14:26:11 +01:00
James Bradbury e6443c724d tutorial xml reference for in max docs 2018-10-11 14:24:05 +01:00
James Bradbury 37297e786f old tutorials removed 2018-10-11 14:23:28 +01:00
James Bradbury aecf3ea8fb new tutorials and cleanup 2018-10-11 14:23:07 +01:00
James Bradbury 75c21952da python files for auto-doc generation 2018-10-11 14:22:28 +01:00
James Bradbury 3b92c4f770 Merge branch 'master' of github.com:AlexHarker/FrameLib into documentation 2018-10-11 14:20:11 +01:00
James Bradbury 90ff5e94cf Merge branch 'master' of github.com:AlexHarker/FrameLib into documentation 2018-10-05 11:38:10 +01:00
James Bradbury b7c848d7ea Merge branch 'master' of github.com:AlexHarker/FrameLib into documentation 2018-10-05 00:16:32 +01:00
James Bradbury 34108d6cbc Merge branch 'master' of github.com:AlexHarker/FrameLib into documentation 2018-10-04 13:38:22 +01:00
James Bradbury c414168a7d abstractions for tutorials 2018-09-10 14:29:33 +01:00
James Bradbury 22113fade6 new tutorials and organisation 2018-09-10 14:29:10 +01:00
James Bradbury 8dea7fcd6d builds object lookup files for tutorials, docs and landing page system 2018-09-10 14:28:51 +01:00
James Bradbury 92f8c350af tutorial cleanup 2018-09-10 14:28:06 +01:00
James Bradbury 169d486ed1 delete junk files 2018-09-10 14:27:24 +01:00
James Bradbury fb5d13be4c updated tutorials 2018-09-10 14:26:36 +01:00
James Bradbury f2225a3556 Modify package-info file 2018-08-18 23:05:29 +01:00
James Bradbury 33b612b0e3 Python file to auto-generate the object lookup.json 2018-08-18 23:05:03 +01:00
James Bradbury b25d4c81ef Removed old dr.max source files 2018-08-18 23:04:34 +01:00
James Bradbury 19e4aa910d Vector objects ref 2018-08-16 16:29:26 +01:00
James Bradbury 1c3365e3e2 Bracket typo 2018-08-13 14:38:25 +01:00
James Bradbury 1af1d21d20 Uniform styling (sallenkey) and storage refs 2018-08-13 13:51:56 +01:00
James Bradbury 2975add7fb Fixed multi-taper typo 2018-08-03 13:56:43 +01:00
James Bradbury c8e55534dd fl.times~ wasn't loading its reference properly. Remade the file. 2018-08-02 10:42:00 +01:00
James Bradbury 66bdec7c96 Extras file
Made all XML's to date part of the FrameLib 'module'
2018-07-29 15:07:20 +01:00
James Bradbury 726d6dbed6 Fixed fl.max~ typo
Added Schedulers XML files.
2018-07-29 14:31:50 +01:00
James Bradbury 7a11820006 Host Communication XML files 2018-07-29 14:09:59 +01:00
James Bradbury 12cbfcbf77 Generators XML files 2018-07-29 13:48:03 +01:00
James Bradbury 155cd47e59 Added XML Filter files 2018-07-29 13:19:33 +01:00
James Bradbury 5d8cb27e19 XML Filter references complete 2018-07-29 13:19:12 +01:00
James Bradbury 591d0028fb took python file out of project 2018-07-28 23:14:29 +01:00
James Bradbury ba6749e5d6 Binary Ops xml references 2018-07-28 23:08:01 +01:00
James Bradbury 513f397f25 major edits of CSS and XLS files to get custom reference formats.
Adopted some Jamoma style formatting for the references to get categories
2018-07-28 19:46:21 +01:00
James Bradbury 57e277a188 Python script now correctly copies files to new location and removes old ones. 2018-07-27 15:13:12 +01:00
James Bradbury d71ec94c94 Multi-stream tutorial draft 2018-07-27 15:02:07 +01:00
James Bradbury b5f501c1c5 Correct streamID typo 2018-07-27 14:16:32 +01:00
James Bradbury 6053c76b8f FFT Tutorial first draft 2018-07-27 13:37:13 +01:00
James Bradbury 8f5cfbba61 Merge branch 'master' of github.com:AlexHarker/FrameLib 2018-07-27 12:16:41 +01:00
James Bradbury 9de3c08f0f Modified tutorial 5
Added an FFT tutorial
Multi-stream FFT tutorial added (possibly will be removed)
2018-07-26 17:33:27 +01:00
James Bradbury d5b2530b44 modification of tutorial sub-patchers (freeze, granulator) and multi-stream tutorial 2018-07-20 13:26:48 +02:00
James Bradbury 42ac63f2ee Cleanup and modified tutorials 2018-07-20 13:25:38 +02:00
James Bradbury 994b629f44 Successfully produced source file that is parsed by doctor max. Python file for updating Package 2018-06-21 16:23:51 +02:00
James Bradbury b54cc63163 added python file for duplicating source files 2018-06-20 12:18:54 +02:00
Alex Harker 192fda00b0 Merge branch 'master' into threading
# Conflicts:
#	FrameLib_Framework/FrameLib_DSP.cpp
2017-08-04 16:23:11 +01:00
Alex Harker 91c8c6cbb0 Merge branch 'master' into threading 2017-08-01 12:08:46 +01:00
Alex Harker c48d9bc4e5 Merge branch 'master' into threading 2017-07-30 15:29:53 +01:00
Alex Harker 507ed9b0f4 Merge branch 'master' into threading
# Conflicts:
#	FrameLib_Framework/FrameLib_Memory.cpp
2017-07-29 23:48:58 +01:00
Alex Harker 44414d9c37 Merge branch 'master' into threading 2017-07-27 10:49:47 +01:00
Alex Harker 8b5bb7b358 Merge branch 'master' into threading 2017-07-26 17:18:01 +01:00
Alex Harker b313065d94 Merge branch 'master' into threading 2017-07-26 15:57:29 +01:00
Alex Harker e514edddda Merge branch 'master' into threading
# Conflicts:
#	FrameLib_Framework/FrameLib_DSP.cpp
2017-07-25 11:42:09 +01:00
Alex Harker 119e044276 Merge branch 'master' into threading 2017-07-22 16:31:45 +01:00
Alex Harker c04e05dc2a Merge branch 'master' into threading 2017-07-19 16:08:02 +01:00
Alex Harker c8ab4fb3e3 Merge branch 'master' into threading 2017-07-13 21:31:59 +01:00
Alex Harker 5217e966b7 Merge branch 'master' into threading 2017-07-12 23:49:19 +01:00
Alex Harker 29469d90e5 Merge branch 'master' into threading 2017-07-12 18:21:10 +01:00
Alex Harker fb3a3751da Merge branch 'master' into threading 2017-07-12 17:58:06 +01:00
Alex Harker 9673944d12 Merge branch 'master' into threading 2017-07-11 16:43:52 +01:00
Alex Harker daa63798d0 Moved time spec 2017-07-11 16:41:47 +01:00
Alex Harker a2c03f7ec4 Merge branch 'master' into threading 2017-07-11 09:52:57 +01:00
Alex Harker eaed3d96bc Merge branch 'master' into threading 2017-07-11 00:23:29 +01:00
Alex Harker 75f7876f76 Always start with an extra thread 2017-07-10 23:55:31 +01:00
Alex Harker 9436a4b8e0 Signal Threads as Needed 2017-07-10 23:09:35 +01:00
Alex Harker 1888dae952 Moved to Thread Set Model 2017-07-10 21:09:36 +01:00
Alex Harker faa94359ec Trialling a few methods of determining when the work is done 2017-07-10 18:29:56 +01:00
Alex Harker 99cc375e1b Changed to nanosleep 2017-07-10 17:28:11 +01:00
Alex Harker 9e76a29cf2 Merge branch 'master' into threading 2017-07-10 16:51:04 +01:00
Alex Harker d7bd70528c Merge branch 'master' into threading 2017-07-10 16:36:22 +01:00
Alex Harker 145a3cbddd Triple thread proof of concept 2017-07-10 14:09:46 +01:00
Alex Harker a02a800c45 Merge branch 'master' into threading 2017-07-10 13:55:42 +01:00
Alex Harker ae3c335a70 Working demo of multithreaded queue (proof of concept) 2017-07-10 11:07:25 +01:00
Alex Harker 6011dc17cb Fixed ordering 2017-07-10 00:27:55 +01:00
Alex Harker e5267f29ae Rough single-threaded using OS X lock-free queue 2017-07-09 22:21:43 +01:00
Alex Harker 671bd97542 Added dependency on the process routine.... 2017-07-09 20:43:17 +01:00
Alex Harker c2bdc9e053 Fixed pool offset calculation 2017-07-09 20:03:20 +01:00
Alex Harker 6b52bd2cc2 Corrected locked memory management 2017-07-09 19:11:38 +01:00
Alex Harker 6e870b77fc Atomic Counters 2017-07-09 19:01:18 +01:00
Alex Harker 41e802fbe8 Move to locked memory access and atomic counter for multithreaded queue testing 2017-07-09 18:59:13 +01:00
1273 changed files with 343680 additions and 152100 deletions
+1
View File
@@ -0,0 +1 @@
*.pbxproj merge=union
+23 -2
View File
@@ -1,3 +1,6 @@
##Max SDK
_MaxSDK_/
## Build generated
build/
DerivedData/
@@ -17,21 +20,39 @@ CVS/
*.perspectivev3
!default.perspectivev3
xcuserdata/
_MaxSDK_/
*.xccheckout
## VS
.vs/
*.tlog/
*.user
## Latex
*.aux
*.synctex.gz
*.toc
*.log
*.out
*.code-workspace
## Binaries
externals/
maxframelib.mxo/
*.o
*.d_fat
## Package Testing
test-builds/
## Documentation
__pycache__/
__tmp__/
*.maxref.xml
Documentation/Max Documentation/help_files/templates/
Current Test Version/FrameLib/interfaces
Documentation/Max Documentation/FrameLibDocs/FrameLibDocs.egg-info
Max_Object_List.h
## Other
*.moved-aside
*.xccheckout
+3 -2
View File
@@ -7,11 +7,12 @@ PRODUCT_NAME = $(TARGET_NAME)
ARCHS = i386 x86_64
//GCC_VERSION = com.apple.compilers.llvm.clang.1_0
MACOSX_DEPLOYMENT_TARGET = 10.7
CLANG_CXX_LANGUAGE_STANDARD = c++11
CLANG_CXX_LIBRARY = libc++
CLANG_X86_VECTOR_INSTRUCTIONS = avx
LLVM_LTO = Monolithic
OTHER_CFLAGS = -fvisibility=hidden
OTHER_CPLUSPLUSFLAGS = -fvisibility=hidden -Winconsistent-missing-override
OTHER_CPLUSPLUSFLAGS = -fvisibility=hidden -Winconsistent-missing-override -Wno-missing-braces
@@ -2,13 +2,14 @@
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 5,
"architecture" : "x86",
"major" : 8,
"minor" : 1,
"revision" : 3,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 59.0, 104.0, 685.0, 604.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
@@ -44,7 +45,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 422.0, 142.0, 44.0, 22.0 ],
"style" : "",
"text" : "fl.+~ 1"
}
@@ -56,7 +56,6 @@
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 238.0, 440.0, 133.0, 20.0 ],
"style" : "",
"text" : "Look at the CPU Meter"
}
@@ -68,7 +67,6 @@
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 28.0, 96.0, 135.0, 20.0 ],
"style" : "",
"text" : "Much overlapped noise"
}
@@ -81,7 +79,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 118.0, 58.0, 22.0 ],
"style" : "",
"text" : "fl.*~ 0.06"
}
@@ -94,7 +91,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 282.0, 45.0, 96.0, 22.0 ],
"style" : "",
"text" : "fl.interval~ 1000"
}
@@ -107,7 +103,6 @@
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 340.5, 491.0, 42.0, 22.0 ],
"style" : "",
"text" : "*~ 0.2"
}
@@ -118,8 +113,7 @@
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 369.0, 247.531372, 104.0, 20.0 ],
"style" : "",
"patching_rect" : [ 369.0, 247.531372000000005, 104.0, 20.0 ],
"text" : "Do not much stuff"
}
@@ -131,7 +125,6 @@
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 58.0, 252.0, 87.0, 20.0 ],
"style" : "",
"text" : "Do lots of stuff"
}
@@ -144,7 +137,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 533.0, 180.0, 73.0, 22.0 ],
"style" : "",
"text" : "fl.tag~ input"
}
@@ -157,7 +149,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 407.0, 381.0, 22.0 ],
"style" : "",
"text" : "fl.select~"
}
@@ -170,7 +161,6 @@
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 171.0, 440.0, 48.0, 22.0 ],
"style" : "",
"text" : "fl.sink~"
}
@@ -181,8 +171,7 @@
"maxclass" : "ezdac~",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 340.5, 534.5, 45.0, 45.0 ],
"style" : ""
"patching_rect" : [ 340.5, 534.5, 45.0, 45.0 ]
}
}
@@ -194,7 +183,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 422.0, 109.0, 42.0, 22.0 ],
"style" : "",
"text" : "fl.*~ 2"
}
@@ -207,7 +195,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 422.0, 78.0, 161.0, 22.0 ],
"style" : "",
"text" : "fl.random~ /mode requested"
}
@@ -220,7 +207,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 381.0, 180.0, 80.0, 22.0 ],
"style" : "",
"text" : "fl.tag~ output"
}
@@ -233,7 +219,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 83.0, 241.0, 22.0 ],
"style" : "",
"text" : "fl.source~ /buffer_size 44100 /length 44100"
}
@@ -246,7 +231,6 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 422.0, 41.0, 102.0, 22.0 ],
"style" : "",
"text" : "fl.interval~ 44100"
}
@@ -259,7 +243,6 @@
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 171.0, 45.0, 40.0, 22.0 ],
"style" : "",
"text" : "pink~"
}
@@ -273,8 +256,7 @@
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 171.0, 491.0, 127.0, 80.0 ],
"range" : [ -3.0, 3.0 ],
"style" : ""
"range" : [ -3.0, 3.0 ]
}
}
@@ -286,7 +268,6 @@
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 171.0, 215.0, 200.0, 22.0 ],
"style" : "",
"text" : "fl.route~ 2"
}
@@ -298,9 +279,8 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 363.531372, 126.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.6 bpf"
"patching_rect" : [ 171.0, 363.531371999999976, 107.0, 22.0 ],
"text" : "fl.svf~ 500. 0.6 bpf"
}
}
@@ -311,9 +291,8 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 334.531372, 126.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.6 bpf"
"patching_rect" : [ 171.0, 334.531371999999976, 107.0, 22.0 ],
"text" : "fl.svf~ 500. 0.6 bpf"
}
}
@@ -324,9 +303,8 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 305.531372, 126.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.6 bpf"
"patching_rect" : [ 171.0, 305.531371999999976, 107.0, 22.0 ],
"text" : "fl.svf~ 500. 0.6 bpf"
}
}
@@ -337,9 +315,8 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 276.531372, 126.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.6 bpf"
"patching_rect" : [ 171.0, 276.531371999999976, 107.0, 22.0 ],
"text" : "fl.svf~ 500. 0.6 bpf"
}
}
@@ -350,9 +327,8 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 171.0, 246.531372, 126.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.6 bpf"
"patching_rect" : [ 171.0, 246.531372000000005, 107.0, 22.0 ],
"text" : "fl.svf~ 500. 0.6 bpf"
}
}
@@ -529,7 +505,7 @@
}
],
"dependency_cache" : [ {
"name" : "fl.0dfsvf~.mxo",
"name" : "fl.svf~.mxo",
"type" : "iLaX"
}
, {
@@ -540,6 +516,14 @@
"name" : "fl.interval~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.interval~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.source~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.source~.mxo",
"type" : "iLaX"
@@ -560,6 +544,10 @@
"name" : "fl.sink~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.sink~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.select~.mxo",
"type" : "iLaX"
@@ -4,8 +4,8 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 5,
"architecture" : "x86",
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
,
@@ -591,9 +591,9 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 79.0, 205.5, 287.0, 22.0 ],
"patching_rect" : [ 79.0, 205.5, 109.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.7 bpf"
"text" : "fl.svf~ 500. 0.7 bpf"
}
}
@@ -748,7 +748,7 @@
, {
"patchline" : {
"destination" : [ "obj-23", 1 ],
"midpoints" : [ 96.0, 178.25, 356.5, 178.25 ],
"midpoints" : [ 96.0, 178.25, 178.5, 178.25 ],
"order" : 1,
"source" : [ "obj-41", 0 ]
}
@@ -902,7 +902,11 @@
"type" : "iLaX"
}
, {
"name" : "fl.0dfsvf~.mxo",
"name" : "fl.interval~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.svf~.mxo",
"type" : "iLaX"
}
, {
@@ -933,6 +937,10 @@
"name" : "fl.trace~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.trace~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.filtertags~.mxo",
"type" : "iLaX"
@@ -4,7 +4,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -342,7 +342,7 @@
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 265.0, 369.0, 149.0, 20.0 ],
"patching_rect" : [ 247.0, 370.0, 149.0, 20.0 ],
"style" : "",
"text" : "A good filter (for extra fun)",
"textcolor" : [ 0.466667, 0.254902, 0.607843, 1.0 ]
@@ -383,9 +383,9 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 101.0, 369.0, 126.0, 22.0 ],
"patching_rect" : [ 101.0, 369.0, 109.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.7 bpf"
"text" : "fl.svf~ 500. 0.7 bpf"
}
}
@@ -584,7 +584,7 @@
"mode" : 0,
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 87.0, 359.0, 151.0, 45.0 ],
"patching_rect" : [ 87.0, 357.5, 142.0, 45.0 ],
"proportion" : 0.39,
"rounded" : 20,
"style" : ""
@@ -886,7 +886,7 @@
, {
"patchline" : {
"destination" : [ "obj-23", 1 ],
"midpoints" : [ 672.5, 350.5, 217.5, 350.5 ],
"midpoints" : [ 672.5, 350.5, 200.5, 350.5 ],
"source" : [ "obj-41", 0 ]
}
@@ -951,7 +951,7 @@
"type" : "iLaX"
}
, {
"name" : "fl.0dfsvf~.mxo",
"name" : "fl.svf~.mxo",
"type" : "iLaX"
}
, {
@@ -2,9 +2,9 @@
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 8,
"minor" : 0,
"revision" : 0,
"major" : 7,
"minor" : 3,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -155,7 +155,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 160.0, 575.0, 42.0, 22.0 ],
"patching_rect" : [ 201.0, 587.0, 42.0, 22.0 ],
"presentation_rect" : [ 160.0, 575.0, 42.0, 22.0 ],
"style" : "",
"text" : "*~ 0.3"
@@ -284,9 +284,8 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 31.0, 460.0, 132.0, 22.0 ],
"presentation_rect" : [ 31.0, 460.0, 132.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500. 0.75 bpf"
"text" : "fl.svf~ 500. 0.75 bpf"
}
}
@@ -296,7 +295,7 @@
"maxclass" : "ezdac~",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 178.0, 623.0, 45.0, 45.0 ],
"patching_rect" : [ 178.0, 630.0, 45.0, 45.0 ],
"presentation_rect" : [ 178.0, 623.0, 45.0, 45.0 ],
"style" : ""
}
@@ -309,7 +308,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 31.0, 575.0, 42.0, 22.0 ],
"patching_rect" : [ 31.0, 582.0, 42.0, 22.0 ],
"presentation_rect" : [ 31.0, 575.0, 42.0, 22.0 ],
"style" : "",
"text" : "*~ 0.3"
@@ -351,7 +350,7 @@
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "float", "bang" ],
"patching_rect" : [ 178.0, 709.0, 133.0, 22.0 ],
"patching_rect" : [ 178.0, 716.0, 133.0, 22.0 ],
"presentation_rect" : [ 178.0, 709.0, 133.0, 22.0 ],
"style" : "",
"text" : "buffer~ jongol jongly.aif"
@@ -436,7 +435,7 @@
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "signal", "signal" ],
"patching_rect" : [ 31.0, 545.0, 172.0, 22.0 ],
"patching_rect" : [ 32.0, 547.0, 188.0, 22.0 ],
"presentation_rect" : [ 31.0, 545.0, 172.0, 22.0 ],
"style" : "",
"text" : "fl.sink~ =2 /buffer_size 720000"
@@ -449,7 +448,7 @@
"maxclass" : "scope~",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 31.0, 612.0, 130.0, 130.0 ],
"patching_rect" : [ 31.0, 619.0, 130.0, 130.0 ],
"presentation_rect" : [ 31.0, 612.0, 130.0, 130.0 ],
"style" : ""
}
@@ -506,9 +505,8 @@
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 31.0, 255.0, 174.0, 22.0 ],
"presentation_rect" : [ 31.0, 255.0, 174.0, 22.0 ],
"style" : "",
"text" : "fl.map~ exp 0 1 1200 20 /clip 0"
"text" : "fl.map~ exp 0 1 1200 90 /clip 0"
}
}
@@ -769,7 +767,7 @@
, {
"patchline" : {
"destination" : [ "obj-23", 0 ],
"midpoints" : [ 40.5, 607.5, 187.5, 607.5 ],
"midpoints" : [ 40.5, 614.5, 187.5, 614.5 ],
"order" : 0,
"source" : [ "obj-22", 0 ]
}
@@ -842,7 +840,7 @@
, {
"patchline" : {
"destination" : [ "obj-23", 1 ],
"midpoints" : [ 169.5, 602.5, 213.5, 602.5 ],
"midpoints" : [ 210.5, 609.5, 213.5, 609.5 ],
"source" : [ "obj-34", 0 ]
}
@@ -1027,7 +1025,7 @@
"type" : "iLaX"
}
, {
"name" : "fl.0dfsvf~.mxo",
"name" : "fl.svf~.mxo",
"type" : "iLaX"
}
, {
@@ -4,7 +4,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -215,7 +215,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -619,7 +619,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -1295,7 +1295,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -1339,7 +1339,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -1797,7 +1797,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -2432,7 +2432,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -2663,7 +2663,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -2894,7 +2894,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3084,7 +3084,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3310,7 +3310,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3354,7 +3354,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3761,7 +3761,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4032,7 +4032,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4115,7 +4115,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4408,7 +4408,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4641,7 +4641,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4940,7 +4940,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -5411,7 +5411,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -5816,7 +5816,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -6618,7 +6618,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -6688,7 +6688,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -6837,7 +6837,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -7016,7 +7016,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -7271,7 +7271,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -8461,7 +8461,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -9474,7 +9474,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -9896,12 +9896,12 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 781.0, 439.0, 333.0, 325.0 ],
"rect" : [ 781.0, 442.0, 333.0, 325.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
@@ -9989,7 +9989,7 @@
"outlettype" : [ "" ],
"patching_rect" : [ 99.5, 85.0, 139.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500 /mode bpf"
"text" : "fl.svf~ 500 /mode bpf"
}
}
@@ -10718,7 +10718,7 @@
"implicit" : 1
}
, {
"name" : "fl.0dfsvf~.mxo",
"name" : "fl.svf~.mxo",
"type" : "iLaX"
}
, {
@@ -4,7 +4,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -215,7 +215,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -619,7 +619,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -1295,7 +1295,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -1339,7 +1339,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -1797,7 +1797,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -2432,7 +2432,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -2663,7 +2663,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -2894,7 +2894,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3084,7 +3084,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3310,7 +3310,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3354,7 +3354,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -3761,7 +3761,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4032,7 +4032,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4115,7 +4115,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4408,7 +4408,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4641,7 +4641,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -4940,7 +4940,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -5411,7 +5411,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -5816,7 +5816,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -6618,7 +6618,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -6688,7 +6688,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -6837,7 +6837,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -7016,7 +7016,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -7271,7 +7271,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -8461,7 +8461,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -9474,7 +9474,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -9896,7 +9896,7 @@
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
@@ -9989,7 +9989,7 @@
"outlettype" : [ "" ],
"patching_rect" : [ 99.5, 85.0, 139.0, 22.0 ],
"style" : "",
"text" : "fl.0dfsvf~ 500 /mode bpf"
"text" : "fl.svf~ 500 /mode bpf"
}
}
@@ -10718,7 +10718,7 @@
"implicit" : 1
}
, {
"name" : "fl.0dfsvf~.mxo",
"name" : "fl.svf~.mxo",
"type" : "iLaX"
}
, {
@@ -1,47 +0,0 @@
Packages are a convenient means of bundling objects, media, patchers, and resources for distribution.
A package is simply a folder adhering to a prescribed structure and placed in the 'packages' folder. Folders adhering to this structure can be accessed by Max to integrate seamlessly at launch time.
To install a package, simply copy it to your 'packages' folder.
To uninstall a package, simply remove it from your 'packages' folder.
There are two packages folders you may use.
One is called 'packages' in your Max folder.
The other is the 'Max/Packages' in your Documents (Mac) or My Documents (Windows) folder.
Creating A Package
You may create your own packages, either for your own use or for distribution to others. The folders comprising a package may optionally include the following:
* clippings Patchers to list in the "Paste From..." contextual menu when patching
* code Gen patchers
collections Collections to list in the File Browser that are associated with the package
default-definitions Definition info for Object Defaults support in UI externals
default-settings Saved color schemes for Object Defaults
* docs Reference pages and Vignettes to be accessible from the Documentation Window
* examples Example patchers and supporting material
* extensions Special external objects loaded on Max launch
* externals External objects
* extras Patchers to be listed in the "Extras" menu
* help Help patchers and supporting material
init Text files interpreted by Max at launch
interfaces Supporting files for objects to display in the Object Explorer and other Max integration.
* java-classes Compiled Java classes for use in mxj/mxj~
java-doc Documentation for Java classes
* javascript Javascript files to be used by js
* jsextensions Extensions to JS implemented as special externals or js files
* jsui Javascript files to be used by jsui, and listed in the contextual menu for jsui
license.txt Terms of use / redistribution of your package
* media Media files to be included in the searchpath
* misc Anything
* patchers Patchers or abstractions to be included in the searchpath
* object-icons An SVG-format object icon for a particular Max object (named <objectname>.svg), used in the Object Browser
object-prototypes Object Prototypes will be listed in the context menu for a selected UI object
readme.txt Information about your package
snippets Snippets associated with this package
source Source code for external objects, ignored by Max
support Special location for DLL or dylib dependencies of external objects. Added to the DLL search path on Windows.
templates Patchers to be listed in the "File > New From Template" menu
Items in folders marked with a star will automatically be included in the searchpath.
View File
-13
View File
@@ -298,18 +298,6 @@
</span>
</xsl:template>
<xsl:template match="ar">
<span class="objectarg">
<xsl:apply-templates />
</span>
</xsl:template>
<xsl:template match="at">
<span class="attrname">
<xsl:value-of select="normalize-space(.)"/>
</span>
</xsl:template>
<xsl:template match="j">
<xsl:choose>
<xsl:when test="$jargon_enable=1">
@@ -589,7 +577,6 @@
</xsl:for-each>
</table>
</div>
<!-- id="seealso_section" -->
</xsl:template>
<xsl:template name="docurl">
@@ -1,3 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<root>
</root>
@@ -1,28 +0,0 @@
<?xml version="1.0"?>
<!--
Copyright (c) 2012 Cycling '74
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:include href="../_c74_ref_common.xsl"/> <!-- must come first - defines platform-specific stuff -->
<xsl:include href="../../_c74_common.xsl"/>
</xsl:stylesheet>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

@@ -1,964 +0,0 @@
<?xml version="1.0"?>
<!--
Copyright (c) 2012 Cycling '74
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:variable name="doctype" select="'refpage'"/>
<xsl:include href='../_c74_platform.xsl'/>
<xsl:variable name="jargon_enable">
<xsl:choose>
<xsl:when test="$compliant=1">
<xsl:value-of select="document('../_c74_common.xml')/root/setting[@name='jargon_enable']/@value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="document('../../_c74_common.xml')/root/setting[@name='jargon_enable']/@value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="jargon_mouseover">
<xsl:choose>
<xsl:when test="$compliant=1">
<xsl:value-of select="document('../_c74_common.xml')/root/setting[@name='jargon_mouseover']/@value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="document('../../_c74_common.xml')/root/setting[@name='jargon_mouseover']/@value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="refs_root_loc">
<xsl:choose>
<xsl:when test="$compliant=1">
<xsl:value-of select="'./refpages'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'../../refpages'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="refs_root_loc_local">
<xsl:choose>
<xsl:when test="$compliant=1">
<xsl:value-of select="'../refpages'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'../../refpages'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="refs_root_link" select="'../../refpages'"/>
<xsl:variable name="patchname" /> <!-- for openfilefront -->
<xsl:variable name="patchfile" /> <!-- for openfilefront -->
<xsl:variable name="reftitle">
<xsl:choose>
<xsl:when test="/liveapidoc/@title">
<xsl:value-of select="/liveapidoc/@title"/>
</xsl:when>
<xsl:when test="/c74object/@title">
<xsl:value-of select="/c74object/@title"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/c74object/@name"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../_c74_common.css"/>
<title><xsl:value-of select="$reftitle"/>
<xsl:if test="not(/c74object/@title)"><xsl:text> Reference</xsl:text></xsl:if>
</title>
<script src="../../resources/MathJax/MathJax.js">
</script>
</head>
<body>
<!--
Go and apply all the templates for the root
-->
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<!--
c74object: root element; this determines how the entire doc will be rendered
-->
<xsl:template match="c74object">
<xsl:choose>
<xsl:when test="@private='1'"><h2>This file for Cycling '74 internal use only.</h2></xsl:when>
<xsl:otherwise>
<h1>
<xsl:value-of select="$reftitle"/>
</h1>
<p class="digest">
<xsl:apply-templates select="digest"/>
</p>
<h2>Description</h2>
<xsl:apply-templates select="description"/>
<xsl:apply-templates select="liveapi_object"/>
<xsl:apply-templates select="mop"/>
<xsl:apply-templates select="OB3D"/>
<xsl:apply-templates select="objarglist"/>
<xsl:apply-templates select="apiinletlist"/>
<xsl:apply-templates select="apioutletlist"/>
<xsl:apply-templates select="methodlist"/>
<xsl:apply-templates select="attributelist"/>
<xsl:apply-templates select="entrylist"/>
<xsl:apply-templates select="parameter"/>
<!-- box attr link -->
<xsl:if test="/c74object/@name != 'jbox' and not(/c74object/@box=0)">
<h4>
<a>
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="document(concat($refs_root_loc_local,'/max-ref/_c74_contents.xml'))/root/refpage[@name='jbox.maxref.xml']">
<xsl:value-of select="concat($refs_root_link,'/max-ref/jbox.maxref.xml')"/>
</xsl:when>
<xsl:when test="document(concat($refs_root_loc_local,'/kernel-ref/_c74_contents.xml'))/root/refpage[@name='jbox.maxref.xml']">
<xsl:value-of select="concat($refs_root_link,'/kernel-ref/jbox.maxref.xml')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($refs_root_link,'/max-ref/jbogus.maxref.xml')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
Information for box attributes common to all objects
</a>
</h4>
</xsl:if>
<!-- end box attr link -->
<xsl:apply-templates select="menuitemlist"/>
<xsl:apply-templates select="misc"/>
<xsl:apply-templates select="examplelist"/>
<xsl:apply-templates select="seealsolist"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
a few common elements
-->
<xsl:template match="digest">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="description">
<xsl:if test="normalize-space() != 'TEXT_HERE'">
<xsl:apply-templates/>
</xsl:if>
</xsl:template>
<xsl:template match="sig">
<i>
<xsl:apply-templates/>
</i>
</xsl:template>
<!--
don't draw metadata
-->
<xsl:template match="metadatalist"/>
<!--
markup elements
-->
<!--
Inlets
-->
<xsl:template match="inletlist">
<div id="inlet_section">
<h2>Inlets</h2>
<table>
<tr>
<th>
<xsl:text>Name</xsl:text>
</th>
<th>
<b>Description</b>
</th>
</tr>
<xsl:for-each select="inlet">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:apply-templates/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
<!-- id="inlet_section" -->
</xsl:template>
<!--
Outlets
-->
<xsl:template match="outletlist">
<div id="outlet_section">
<h2>Outlets</h2>
<table>
<tr>
<td width="30%">
<b>Name</b>
</td>
<td>
<b>Description</b>
</td>
</tr>
<xsl:for-each select="outlet">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:apply-templates/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
<!-- id="outlet_section" -->
</xsl:template>
<!--
Arguments
-->
<xsl:template match="objarglist">
<div id="argument_section">
<h2>Arguments</h2>
<xsl:variable name="none">
<!-- <xsl:for-each select="objarg"> -->
<xsl:if test="not(objarg) or translate(objarg/description, ' &#9;&#13;&#10;', ' ')='None.' or (count(objarg)=1 and translate(objarg/description, ' &#9;&#13;&#10;', ' ')='TEXT_HERE')">1</xsl:if>
<!-- </xsl:for-each> -->
</xsl:variable>
<xsl:variable name="nested">
<xsl:if test="parent::objarg">1</xsl:if>
</xsl:variable>
<xsl:choose>
<xsl:when test="$none='1' and $nested=''">
<div class="description">None.</div>
</xsl:when>
<xsl:otherwise>
<table>
<xsl:choose>
<xsl:when test="$nested=''">
<xsl:attribute name="width">100%</xsl:attribute>
<tr>
<th>Name</th>
<th>Units</th>
<th>Type</th>
<th>Opt</th>
<th class="description">Description</th>
</tr>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="width">95%</xsl:attribute>
<xsl:attribute name="class">indented</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:for-each select="objarg">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:choose>
<xsl:when test="$nested=''">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_even_nested</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$nested=''">
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd_nested</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:value-of select="@units"/>
</td>
<td>
<xsl:value-of select="@type"/>
</td>
<td class="optional">
<xsl:if test="@optional = 1">
<xsl:text>opt</xsl:text>
</xsl:if>
</td>
<td class="description">
<xsl:choose>
<xsl:when test="description and normalize-space(description) != '' and normalize-space(description) != 'TEXT_HERE'">
<xsl:apply-templates select="description"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="digest"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<!-- TODO: Is the following needed anymore? come back to it later [TAP] ... -->
<xsl:if test="objarglist">
<tr>
<td colspan="4">
<xsl:apply-templates select="./objarglist"/>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:otherwise>
</xsl:choose>
</div><!-- id="argument_section" -->
</xsl:template>
<!--
Methods
-->
<xsl:template name="method">
<xsl:param name="showname"/>
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:choose>
<xsl:when test="$showname=''">
<xsl:value-of select="@name"/>
</xsl:when>
<xsl:otherwise>
<span class="inletname">&#xA0;&#xA0;(inlet<xsl:value-of select="$showname"/>)</span>
</xsl:otherwise>
</xsl:choose>
</td>
<xsl:choose>
<xsl:when test="arglist">
<xsl:apply-templates select="arglist"/>
</xsl:when>
<xsl:otherwise><td/></xsl:otherwise>
</xsl:choose>
<td class="description">
<xsl:choose>
<xsl:when test="description and normalize-space(description) != '' and normalize-space(description) != 'TEXT_HERE'">
<xsl:apply-templates select="description"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="digest"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:template>
<xsl:template match="methodlist">
<div id="method_section">
<h2>Messages</h2>
<table>
<xsl:for-each select="method">
<xsl:choose>
<xsl:when test="@name='int'">
<xsl:call-template name="method">
<xsl:with-param name="showname"/>
</xsl:call-template>
<xsl:for-each select="../method">
<xsl:sort select="@name"/>
<xsl:if test="starts-with(@name,'in') and string-length(@name)=3 and translate(@name, '123456789', '')='in'">
<xsl:call-template name="method">
<xsl:with-param name="showname" select="substring-after(@name,'in')"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:when test="@name='float'">
<xsl:call-template name="method">
<xsl:with-param name="showname"/>
</xsl:call-template>
<xsl:for-each select="../method">
<xsl:sort select="@name"/>
<xsl:if test="starts-with(@name,'ft') and string-length(@name)=3 and translate(@name, '123456789', '')='ft'">
<xsl:call-template name="method">
<xsl:with-param name="showname" select="substring-after(@name,'ft')"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:when test="starts-with(@name,'in') and string-length(@name)=3 and translate(@name, '123456789', '')='in'"/>
<xsl:when test="starts-with(@name,'ft') and string-length(@name)=3 and translate(@name, '123456789', '')='ft'"/>
<xsl:otherwise>
<xsl:call-template name="method">
<xsl:with-param name="showname"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</table>
</div>
<!-- id="method_section" -->
</xsl:template>
<!--
Attributes
-->
<xsl:template match="attributelist">
<div id="method_section">
<h2>Attributes</h2>
<table>
<tr>
<th>Name</th>
<th>Type</th>
<th>g/s</th>
<th class="description">Description</th>
</tr>
<xsl:for-each select="attribute">
<!-- using a variable to filter out box attrs! -->
<xsl:variable name="boxattr">
<xsl:if test="/c74object[@name!='jbox'] and attributelist/attribute[@name='jboxattr'] and attributelist/attribute[@value=1]">1</xsl:if>
</xsl:variable>
<xsl:variable name="alias">
<xsl:if test="attributelist/attribute[@name='alias']">1</xsl:if>
</xsl:variable>
<xsl:if test="$boxattr='' and $alias=''">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:value-of select="@type"/>
<xsl:if test="attributelist/attribute[@name='default']"><br />
<span class="defaultval">def.:<xsl:value-of select="attributelist/attribute[@name='default']/@value"/></span>
</xsl:if>
</td>
<td>
<xsl:choose>
<xsl:when test="@get=1 and @set=1">
</xsl:when>
<xsl:when test="@get=1">
(get)
</xsl:when>
<xsl:when test="@set=1">
(set)
</xsl:when>
<xsl:otherwise>
invisible <!-- should not be shown -->
</xsl:otherwise>
</xsl:choose>
</td>
<td class="description">
<xsl:choose>
<xsl:when test="description and normalize-space(description) != '' and normalize-space(description) != 'TEXT_HERE'">
<xsl:apply-templates select="description"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="digest"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="attributelist/attribute[@name='enumvals']/enumlist">
<xsl:for-each select="attributelist/attribute[@name='enumvals']/enumlist/enum">
<br/>'<xsl:value-of select="normalize-space(@name)"/>' = <xsl:value-of select="digest"/>
</xsl:for-each>
</xsl:if>
</td>
</tr>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="attribute_rgb_legacy">
<xsl:variable name="boxattr">
<xsl:if test="/c74object[@name!='jbox'] and attributelist/attribute[@name='jboxattr'] and attributelist/attribute[@value=1]">1</xsl:if>
</xsl:variable>
<xsl:if test="position() = 1">
<tr><td colspan="4"><h3>Legacy</h3></td></tr>
</xsl:if>
<xsl:if test="$boxattr=''">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:text>list (3 ints)</xsl:text>
</td>
<xsl:choose>
<xsl:when test="@get=1 and @set=1">
<td/>
</xsl:when>
<xsl:when test="@get=1">
<td>(get)</td>
</xsl:when>
<xsl:when test="@set=1">
<td>(set)</td>
</xsl:when>
<xsl:otherwise>
<td>invisible</td>
<!-- should not be shown -->
</xsl:otherwise>
</xsl:choose>
<td class="description">
<xsl:if test="attributelist/attribute[@name='default']">
<xsl:attribute name="rowspan">2</xsl:attribute>
</xsl:if>
<!-- <span class="attrname"><xsl:value-of select="@name"/></span> is a legacy RGB alias for the <span class="attrname"><xsl:value-of select="attributelist/attribute[@name='alias']/@value"/></span> attribute. See <a href="../../vignettes/core/maxcolor/maxcolor.maxvig.xml">here</a> for more information. -->
<xsl:choose>
<xsl:when test="description and normalize-space(description) != '' and normalize-space(description) != 'TEXT_HERE'">
<xsl:apply-templates select="description"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="digest"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</div>
<!-- id="attr_section" -->
</xsl:template>
<xsl:template match="entrylist">
<div id="method_section">
<h2><xsl:value-of select="@name"/></h2>
<table>
<tr>
<th>Name</th>
<th>Type</th>
<th class="description">Description</th>
</tr>
<xsl:for-each select="entry">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:value-of select="@type"/>
</td>
<td>
<xsl:choose>
<xsl:when test="description and normalize-space(description) != '' and normalize-space(description) != 'TEXT_HERE'">
<xsl:apply-templates select="description"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="digest"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
<!--
Arguments (methods)
-->
<xsl:template match="arglist">
<td>
<xsl:for-each select="*">
<xsl:choose>
<xsl:when test="name()='arg'">
<xsl:apply-templates select="."/>
</xsl:when>
<xsl:when test="name()='arggroup'">
<span class="arglist_arggroup">
<u>
<xsl:if test="@type"><xsl:value-of select="@type"/> </xsl:if>
group
<xsl:if test="@optional"> (optional)</xsl:if>
</u>
<br/>
<xsl:apply-templates select="."/>
<u>end<xsl:if test="@type"> <xsl:value-of select="@type"/></xsl:if> group</u><br/>
</span>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</td>
</xsl:template>
<xsl:template match="arg">
<span class="arglist_arg">
<xsl:value-of select="@name"/>
<xsl:if test="@unit"> (<xsl:value-of select="@units"/>)</xsl:if>
[<xsl:value-of select="@type"/>]
<br/>
</span>
</xsl:template>
<xsl:template match="arggroup">
<xsl:for-each select="*">
<xsl:apply-templates select="."/>
</xsl:for-each>
</xsl:template>
<!--
Menu Items
-->
<xsl:template match="menuitemlist">
<xsl:if test="menuitem">
<div id="argument_section">
<h2>Menu Items</h2>
<table>
<tr>
<th class="name">Name</th>
<th class="description">Description</th>
</tr>
<xsl:for-each select="menuitem">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td class="description">
<xsl:choose>
<xsl:when test="description and normalize-space(description) != '' and normalize-space(description) != 'TEXT_HERE'">
<xsl:apply-templates select="description"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="digest"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:if>
</xsl:template>
<!--
Examples
-->
<xsl:template match="examplelist">
<xsl:variable name="imgname">
<xsl:call-template name="name_replace">
<xsl:with-param name="name" select="/c74object/@name"/>
</xsl:call-template>
</xsl:variable>
<div id="examples_section">
<h2>Examples</h2>
<div class="imagebox">
<xsl:for-each select="example">
<img>
<xsl:attribute name="src">
<xsl:value-of select="concat('images/', $imgname, '.png')" />
</xsl:attribute>
</img>
<div class="caption"><xsl:value-of select="@caption"/></div>
</xsl:for-each>
</div>
<xsl:apply-templates/>
</div>
<!-- id="examples_section" -->
</xsl:template>
<!--
"misc": Output, Inspector, etc.
-->
<xsl:template match="misc">
<div id="misc_section">
<h2>
<xsl:value-of select="@name"/>
</h2>
<xsl:for-each select="entry">
<xsl:sort select="@name"/>
<div class="outputmessage">
<xsl:value-of select="@name"/>:
<span class="description">
<xsl:choose>
<xsl:when test="description and normalize-space(description) != '' and normalize-space(description) != 'TEXT_HERE'">
<xsl:apply-templates select="description"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="digest"/>
</xsl:otherwise>
</xsl:choose>
</span>
</div>
<!-- I WANT TO BE ABLE TO FILTER OUT LABEL IF PREVIOUS MATCHES @name
BUT THIS IS IMPOSSIBLE IN XSLT 1.0 -->
<!-- <div class="outputmessage">
<xsl:if test="$oldname != @name">
<div class="name"><xsl:value-of select="@name"/>:</div>
</xsl:if>
<xsl:apply-templates select="digest"/>
</div>
<div class="description">
<xsl:apply-templates select="description"/>
</div> -->
</xsl:for-each>
</div>
<!-- id="misc_section" -->
</xsl:template>
<!--
MOP: Jitter
-->
<xsl:template match="mop">
<div id="mop_section">
<h2>Matrix Operator</h2>
<div>matrix inputs:<xsl:value-of select="@matrixinputcount"/>, matrix outputs:<xsl:value-of select="@matrixoutputcount"/></div>
<table>
<tr>
<td>Name</td>
<td>IOProc</td>
<td>Planelink</td>
<td>Typelink</td>
<td>Dimlink</td>
<td>Plane</td>
<td>Dim</td>
<td>Type</td>
</tr>
<xsl:for-each select="matrixinput">
<tr>
<td><xsl:value-of select="@name"/></td>
<td><xsl:value-of select="@ioproc"/></td>
<td><xsl:value-of select="@planelink"/></td>
<td><xsl:value-of select="@typelink"/></td>
<td><xsl:value-of select="@dimlink"/></td>
<td><xsl:value-of select="@minplanecount"/></td>
<td><xsl:value-of select="@mindimcount"/></td>
<td><xsl:value-of select="types"/></td>
</tr>
</xsl:for-each>
<xsl:for-each select="matrixoutput">
<tr>
<td><xsl:value-of select="@name"/></td>
<td><!--<xsl:value-of select="@ioproc"/> -->n/a</td>
<td><xsl:value-of select="@planelink"/></td>
<td><xsl:value-of select="@typelink"/></td>
<td><xsl:value-of select="@dimlink"/></td>
<td><xsl:value-of select="@minplanecount"/></td>
<td><xsl:value-of select="@mindimcount"/></td>
<td><xsl:value-of select="types"/></td>
</tr>
</xsl:for-each>
</table>
</div>
<!-- <xsl:value-of select="concat($refs_root_loc_local,'/jit-ref/_c74_contents.xml')" /> -->
<a>
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="document(concat($refs_root_loc_local,'/jit-ref/_c74_contents.xml'))/root/refpage[@name='jit.group-mop.maxref.xml']">
<xsl:value-of select="concat($refs_root_link,'/jit-ref/jit.group-mop.maxref.xml')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($refs_root_link,'/max-ref/jbogus.maxref.xml')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<h4>Information for Jitter Matrix Operator (MOP) messages and attributes to this object</h4>
</a>
<!-- id="mop_section" -->
</xsl:template>
<!--
OB3D: Jitter
-->
<xsl:template match="OB3D">
<div id="ob3d_section">
<a>
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="document(concat($refs_root_loc_local,'/jit-ref/_c74_contents.xml'))/root/refpage[@name='jit.group-gl.maxref.xml']">
<xsl:value-of select="concat($refs_root_link,'/jit-ref/jit.group-gl.maxref.xml')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($refs_root_link,'/max-ref/jbogus.maxref.xml')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<h4>Information for Jitter 3D Object (OB3D) messages and attributes to this object</h4>
</a>
</div>
<!-- id="ob3d_section" -->
</xsl:template>
<!-- Parameter section -->
<xsl:template match="parameter">
<div id="parameter_section">
<a>
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="document(concat($refs_root_loc_local,'/m4l-ref/_c74_contents.xml'))/root/refpage[@name='parameters.maxref.xml']">
<xsl:value-of select="concat($refs_root_link,'/m4l-ref/parameters.maxref.xml')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($refs_root_link,'/max-ref/jbogus.maxref.xml')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<h4>Information about attributes available for Parameter-aware objects</h4>
</a>
</div>
</xsl:template>
<xsl:template match="o">
<xsl:call-template name="object_link">
<xsl:with-param name="name" select="."/>
<xsl:with-param name="objname" select="@objname"/>
<xsl:with-param name="dispname" select="."/>
</xsl:call-template>
</xsl:template>
<xsl:template match="text()">
<xsl:variable name="trim" select="normalize-space(.)"/>
<xsl:variable name="first" select="substring($trim,1,1)"/>
<xsl:variable name="length" select="string-length($trim)"/>
<xsl:variable name="last" select="substring($trim,$length,1)"/>
<xsl:if test="$first = translate($first, '.,?!:;-)&quot; &#9;&#13;&#10;', '#')">
<xsl:text> </xsl:text>
</xsl:if>
<xsl:value-of select="$trim"/>
<xsl:if test="$last = translate($last, '(&quot;', '#')">
<xsl:text> </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="apiinletlist">
<div id="inlet_section">
<h2>Inlets</h2>
<table>
<tr>
<th width="20%"><xsl:text>Name</xsl:text></th>
<th><xsl:text>Description</xsl:text></th>
</tr>
<xsl:for-each select="inlet">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:apply-templates/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
<!-- id="inlet_section" -->
</xsl:template>
<!--
Outlets
-->
<xsl:template match="apioutletlist">
<div id="outlet_section">
<h2>Outlets</h2>
<table>
<tr>
<th width="20%"><xsl:text>Name</xsl:text></th>
<th><xsl:text>Description</xsl:text></th>
</tr>
<xsl:for-each select="outlet">
<tr>
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:attribute name="class">row_even</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">row_odd</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:apply-templates/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
<!-- id="outlet_section" -->
</xsl:template>
</xsl:stylesheet>
@@ -18,9 +18,26 @@
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
<root>
<module>jit-ref</module>
<module>m4l-ref</module>
<module>max-ref</module>
<module>msp-ref</module>
<module>FrameLib_ref</module>
<module>FrameLib Binary</module>
<module>FrameLib Buffer</module>
<module>FrameLib Complex_Binary</module>
<module>FrameLib Complex_Unary</module>
<module>FrameLib Expressions</module>
<module>FrameLib Filters</module>
<module>FrameLib Generators</module>
<module>FrameLib Host_Communication</module>
<module>FrameLib IO</module>
<module>FrameLib Mapping</module>
<module>FrameLib Parameters</module>
<module>FrameLib Routing</module>
<module>FrameLib Schedulers</module>
<module>FrameLib Spatial</module>
<module>FrameLib Spectral</module>
<module>FrameLib Storage</module>
<module>FrameLib Streaming</module>
<module>FrameLib Ternary</module>
<module>FrameLib Time_Smoothing</module>
<module>FrameLib Timing</module>
<module>FrameLib Unary</module>
<module>FrameLib Vector</module>
</root>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,288 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 1,
"revision" : 0,
"architecture" : "x86",
"modernui" : 1
}
,
"rect" : [ 563.0, 183.0, 469.0, 273.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "",
"boxes" : [ {
"box" : {
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 292.0, 66.0, 35.0, 22.0 ],
"style" : "",
"text" : "== 2"
}
}
, {
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 188.0, 66.0, 35.0, 22.0 ],
"style" : "",
"text" : "== 1"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 188.0, 31.0, 79.0, 22.0 ],
"style" : "",
"text" : "loadmess #4"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 124.0, 147.0, 83.0, 22.0 ],
"style" : "",
"text" : "loadmess #3"
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 353.0, 66.0, 79.0, 22.0 ],
"style" : "",
"text" : "loadmess #1"
}
}
, {
"box" : {
"id" : "obj-10",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.333336, 31.0, 83.0, 22.0 ],
"style" : "",
"text" : "loadmess #2"
}
}
, {
"box" : {
"id" : "obj-25",
"maxclass" : "newobj",
"numinlets" : 4,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 40.0, 179.0, 271.0, 22.0 ],
"style" : "",
"text" : "LinFilter 1 32768"
}
}
, {
"box" : {
"id" : "obj-21",
"maxclass" : "newobj",
"numinlets" : 4,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 40.0, 107.0, 167.0, 22.0 ],
"style" : "",
"text" : "LinFilter 2 32768"
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-14",
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 40.0, 62.0, 30.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-15",
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 40.0, 219.0, 30.0, 30.0 ],
"style" : ""
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-25", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 1 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"color" : [ 1.0, 0.0, 0.0, 1.0 ],
"destination" : [ "obj-21", 2 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 362.5, 97.0, 148.166672, 97.0 ],
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"color" : [ 1.0, 0.0, 0.0, 1.0 ],
"destination" : [ "obj-25", 2 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 362.5, 171.0, 217.5, 171.0 ],
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"disabled" : 0,
"hidden" : 0,
"midpoints" : [ 197.5, 59.0, 301.5, 59.0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-21", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-15", 0 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-25", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 3 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 3 ],
"disabled" : 0,
"hidden" : 0,
"source" : [ "obj-4", 0 ]
}
}
],
"dependency_cache" : [ {
"name" : "LinFilter.maxpat",
"bootpath" : "~/Desktop/Framelib Demos/FL Internal Alpha 0.02/Demos",
"type" : "JSON",
"implicit" : 1
}
, {
"name" : "multiconvolve~.mxo",
"type" : "iLaX"
}
],
"autosave" : 0
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,446 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 8,
"minor" : 0,
"revision" : 0,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 142.0, 199.0, 961.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 0,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-17",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 329.0, 248.0, 24.0, 21.0 ],
"text" : "t b"
}
}
, {
"box" : {
"id" : "obj-15",
"linecount" : 3,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 756.0, 193.5, 150.0, 43.0 ],
"text" : "Using bin index information take data out of jitter matrices."
}
}
, {
"box" : {
"id" : "obj-10",
"linecount" : 2,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 361.0, 289.5, 164.0, 31.0 ],
"text" : "When it receives a bang store the frame in jit.matrix"
}
}
, {
"box" : {
"id" : "obj-6",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 336.0, 101.5, 87.0, 19.0 ],
"text" : "Compute FFT"
}
}
, {
"box" : {
"id" : "obj-4",
"linecount" : 4,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 15.0, 14.0, 584.0, 56.0 ],
"text" : "This patch uses jitter matrices to store frames of data produced by pfft~. When a bang is received at jit.catch~ the frame is stored in a 2d jitter matrix 'oneframe'. Each 'row' of the jitter matrix stores the real and imaginary components respectively. Using the bin index outlet of fftin~, this held frames are recalled and passed to an inverse FFT calculation."
}
}
, {
"box" : {
"id" : "obj-2",
"linecount" : 4,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 78.0, 100.0, 149.0, 56.0 ],
"text" : "Extract the fft window size and match dimensions of our matrix and catch objects to it"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-14",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "" ],
"patching_rect" : [ 563.0, 186.0, 130.0, 22.0 ],
"text" : "jit.peek~ oneframe 1 0"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-39",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "" ],
"patching_rect" : [ 620.0, 224.0, 130.0, 22.0 ],
"text" : "jit.peek~ oneframe 1 1"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-36",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 563.0, 331.0, 107.0, 22.0 ],
"text" : "fftout~ 1 blackman"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-35",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 235.0, 295.0, 124.0, 22.0 ],
"text" : "jit.catch~ 2 @mode 2"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-34",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 235.0, 327.0, 189.0, 22.0 ],
"text" : "jit.matrix oneframe 2 float32 2048"
}
}
, {
"box" : {
"id" : "obj-29",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 28.5, 186.0, 46.0, 21.0 ],
"text" : "dim $1"
}
}
, {
"box" : {
"id" : "obj-28",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 74.5, 186.0, 77.0, 21.0 ],
"text" : "framesize $1"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-26",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "int", "int", "int", "int" ],
"patching_rect" : [ 15.0, 100.0, 59.5, 22.0 ],
"text" : "fftinfo~"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-24",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "signal", "signal", "signal" ],
"patching_rect" : [ 235.0, 100.0, 99.0, 22.0 ],
"text" : "fftin~ 1 blackman"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-23",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 329.0, 211.0, 30.0, 22.0 ],
"text" : "in 1"
}
}
, {
"box" : {
"background" : 1,
"bgcolor" : [ 0.784314, 0.145098, 0.023529, 1.0 ],
"fontface" : 1,
"hint" : "",
"id" : "obj-18",
"ignoreclick" : 1,
"legacytextcolor" : 1,
"maxclass" : "textbutton",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "", "", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 908.0, 207.0, 20.0, 20.0 ],
"rounded" : 60.0,
"text" : "3",
"textcolor" : [ 1.0, 1.0, 1.0, 1.0 ]
}
}
, {
"box" : {
"background" : 1,
"bgcolor" : [ 0.784314, 0.145098, 0.023529, 1.0 ],
"fontface" : 1,
"hint" : "",
"id" : "obj-11",
"ignoreclick" : 1,
"legacytextcolor" : 1,
"maxclass" : "textbutton",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "", "", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 513.0, 296.0, 20.0, 20.0 ],
"rounded" : 60.0,
"text" : "2",
"textcolor" : [ 1.0, 1.0, 1.0, 1.0 ]
}
}
, {
"box" : {
"background" : 1,
"bgcolor" : [ 0.784314, 0.145098, 0.023529, 1.0 ],
"fontface" : 1,
"hint" : "",
"id" : "obj-12",
"ignoreclick" : 1,
"legacytextcolor" : 1,
"maxclass" : "textbutton",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "", "", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 419.0, 101.5, 20.0, 20.0 ],
"rounded" : 60.0,
"text" : "1",
"textcolor" : [ 1.0, 1.0, 1.0, 1.0 ]
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-36", 0 ],
"midpoints" : [ 572.5, 210.0, 572.5, 210.0 ],
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"source" : [ "obj-17", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-17", 0 ],
"source" : [ "obj-23", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"midpoints" : [ 324.5, 171.0, 572.5, 171.0 ],
"order" : 1,
"source" : [ "obj-24", 2 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 1 ],
"midpoints" : [ 284.5, 282.0, 349.5, 282.0 ],
"source" : [ "obj-24", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"source" : [ "obj-24", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-39", 0 ],
"midpoints" : [ 324.5, 171.0, 629.5, 171.0 ],
"order" : 0,
"source" : [ "obj-24", 2 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-28", 0 ],
"order" : 0,
"source" : [ "obj-26", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-29", 0 ],
"order" : 1,
"source" : [ "obj-26", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"source" : [ "obj-28", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-34", 0 ],
"source" : [ "obj-29", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-34", 0 ],
"source" : [ "obj-35", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 1 ],
"midpoints" : [ 629.5, 249.0, 660.5, 249.0 ],
"source" : [ "obj-39", 0 ]
}
}
],
"styles" : [ {
"name" : "newobjBlue-1",
"default" : {
"accentcolor" : [ 0.317647, 0.654902, 0.976471, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjYellow-1",
"default" : {
"fontsize" : [ 12.059008 ],
"accentcolor" : [ 0.82517, 0.78181, 0.059545, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "numberGold-1",
"default" : {
"accentcolor" : [ 0.764706, 0.592157, 0.101961, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
],
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ]
}
}
@@ -0,0 +1,208 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 8,
"minor" : 0,
"revision" : 5,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 34.0, 78.0, 652.0, 788.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-2",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 124.0, 237.199996999999996, 233.0, 20.0 ],
"text" : "Window each frame with a cosine function"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 17.0, 237.199996999999996, 105.0, 22.0 ],
"text" : "fl.window~ cosine"
}
}
, {
"box" : {
"id" : "obj-22",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 65.0, 304.200012000000015, 146.0, 20.0 ],
"text" : "Convert frames into MSP"
}
}
, {
"box" : {
"id" : "obj-21",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 145.0, 171.199996999999996, 144.0, 20.0 ],
"text" : "Read from the rain buffer"
}
}
, {
"box" : {
"id" : "obj-17",
"linecount" : 2,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 241.0, 97.699996999999996, 240.0, 33.0 ],
"text" : "Generate a frame of sequential millisecond positions to read from the buffer 'rain'."
}
}
, {
"box" : {
"id" : "obj-5",
"linecount" : 2,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 127.0, 30.5, 150.0, 33.0 ],
"text" : "Generate a trigger frame 75 milliseconds"
}
}
, {
"box" : {
"id" : "obj-9",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 17.0, 304.200012000000015, 48.0, 22.0 ],
"text" : "fl.sink~"
}
}
, {
"box" : {
"id" : "obj-8",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 17.0, 36.0, 102.0, 22.0 ],
"text" : "fl.interval~ 75 ms"
}
}
, {
"box" : {
"id" : "obj-7",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 17.0, 103.199996999999996, 222.0, 22.0 ],
"text" : "fl.ramp~ /length 150 /units ms /scale ms"
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 17.0, 170.199996999999996, 126.0, 22.0 ],
"text" : "fl.read~ rain /units ms"
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-27",
"index" : 1,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 17.0, 371.200012000000015, 30.0, 30.0 ]
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-9", 0 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-1", 0 ],
"source" : [ "obj-4", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-7", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-7", 0 ],
"source" : [ "obj-8", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-27", 0 ],
"source" : [ "obj-9", 0 ]
}
}
]
}
}
@@ -9,10 +9,10 @@
"modernui" : 1
}
,
"rect" : [ 175.0, 201.0, 640.0, 600.0 ],
"rect" : [ 766.0, 180.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
@@ -20,7 +20,7 @@
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"toolbarvisible" : 0,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
@@ -37,156 +37,15 @@
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-54",
"maxclass" : "newobj",
"numinlets" : 3,
"numoutlets" : 4,
"outlettype" : [ "signal", "signal", "signal", "signal" ],
"patching_rect" : [ 25.5, 437.0, 76.0, 22.0 ],
"style" : "",
"text" : "svf~ 500 0.5"
}
}
, {
"box" : {
"id" : "obj-51",
"maxclass" : "button",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 216.0, 80.0, 24.0, 24.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-45",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 25.5, 308.0, 43.0, 22.0 ],
"style" : "",
"text" : "zl sort"
}
}
, {
"box" : {
"id" : "obj-44",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 25.5, 268.0, 63.0, 22.0 ],
"style" : "",
"text" : "zl group 2"
}
}
, {
"box" : {
"id" : "obj-43",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "int", "int" ],
"patching_rect" : [ 28.0, 198.0, 29.5, 22.0 ],
"style" : "",
"text" : "t i i"
}
}
, {
"box" : {
"id" : "obj-37",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 25.5, 235.0, 126.0, 22.0 ],
"style" : "",
"text" : "expr random($f1\\, $f2)"
}
}
, {
"box" : {
"id" : "obj-26",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "bang", "bang" ],
"patching_rect" : [ 28.0, 96.0, 34.0, 22.0 ],
"style" : "",
"text" : "t b b"
}
}
, {
"box" : {
"id" : "obj-25",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 25.5, 487.0, 44.0, 22.0 ],
"style" : "",
"text" : "out~ 1"
}
}
, {
"box" : {
"id" : "obj-22",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "bang", "bang" ],
"patching_rect" : [ 28.0, 51.0, 143.75, 22.0 ],
"style" : "",
"text" : "t b b"
}
}
, {
"box" : {
"id" : "obj-21",
"maxclass" : "newobj",
"numinlets" : 1,
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 132.5, 151.0, 46.0, 22.0 ],
"patching_rect" : [ 120.0, 188.0, 69.0, 21.0 ],
"style" : "",
"text" : "v rMax"
}
}
, {
"box" : {
"id" : "obj-20",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 28.0, 151.0, 43.0, 22.0 ],
"style" : "",
"text" : "v rMin"
}
}
, {
"box" : {
"id" : "obj-18",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 25.5, 339.0, 81.0, 22.0 ],
"style" : "",
"text" : "prepend start"
"text" : "0, 1024 150"
}
}
@@ -194,38 +53,93 @@
"box" : {
"id" : "obj-15",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 28.0, 17.0, 30.0, 22.0 ],
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "signal", "bang" ],
"patching_rect" : [ 120.0, 225.0, 34.0, 21.0 ],
"style" : "",
"text" : "in 1"
"text" : "line~"
}
}
, {
"box" : {
"id" : "obj-13",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "bang", "bang" ],
"patching_rect" : [ 30.0, 131.0, 32.0, 21.0 ],
"style" : "",
"text" : "t b b"
}
}
, {
"box" : {
"id" : "obj-10",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 120.0, 274.0, 83.0, 21.0 ],
"style" : "",
"text" : "index~ window"
}
}
, {
"box" : {
"id" : "obj-14",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 30.0, 350.0, 29.5, 21.0 ],
"style" : "",
"text" : "*~"
}
}
, {
"box" : {
"id" : "obj-6",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 150.25, 449.0, 61.0, 22.0 ],
"patching_rect" : [ 30.0, 225.0, 84.0, 21.0 ],
"style" : "",
"text" : "mute 0, 1"
"text" : "start 0 150 150"
}
}
, {
"box" : {
"id" : "obj-12",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 30.0, 415.0, 41.0, 21.0 ],
"saved_object_attributes" : {
"attr_comment" : ""
}
,
"style" : "",
"text" : "out~ 1"
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 218.25, 449.0, 61.0, 22.0 ],
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "bang" ],
"patching_rect" : [ 30.0, 274.0, 59.0, 21.0 ],
"style" : "",
"text" : "mute 1, 0"
"text" : "play~ rain"
}
}
@@ -234,11 +148,11 @@
"id" : "obj-9",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 218.25, 415.0, 60.0, 22.0 ],
"numoutlets" : 2,
"outlettype" : [ "bang", "bang" ],
"patching_rect" : [ 30.0, 76.0, 32.0, 21.0 ],
"style" : "",
"text" : "loadbang"
"text" : "t b b"
}
}
@@ -247,169 +161,186 @@
"id" : "obj-8",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "int", "int" ],
"patching_rect" : [ 150.25, 487.0, 58.0, 22.0 ],
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 30.0, 39.0, 28.0, 21.0 ],
"saved_object_attributes" : {
"attr_comment" : ""
}
,
"style" : "",
"text" : "thispoly~"
"text" : "in 1"
}
}
, {
"box" : {
"id" : "obj-7",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 203.0, 188.0, 56.0, 21.0 ],
"style" : "",
"text" : "mute 0, 1"
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 261.0, 188.0, 56.0, 21.0 ],
"style" : "",
"text" : "mute 1, 0"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "bang" ],
"patching_rect" : [ 261.0, 147.0, 56.0, 21.0 ],
"style" : "",
"text" : "loadbang"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "bang" ],
"patching_rect" : [ 25.5, 374.0, 81.0, 22.0 ],
"outlettype" : [ "int", "int" ],
"patching_rect" : [ 261.0, 228.0, 54.0, 21.0 ],
"style" : "",
"text" : "play~ jongles"
"text" : "thispoly~"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-8", 0 ],
"destination" : [ "obj-14", 1 ],
"midpoints" : [ 129.5, 336.0, 50.0, 336.0 ],
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-8", 0 ],
"source" : [ "obj-13", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-22", 0 ],
"source" : [ "obj-15", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-7", 0 ],
"source" : [ "obj-18", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-43", 0 ],
"source" : [ "obj-20", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 1 ],
"source" : [ "obj-21", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"source" : [ "obj-22", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-26", 0 ],
"source" : [ "obj-22", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-20", 0 ],
"source" : [ "obj-26", 0 ]
"destination" : [ "obj-4", 0 ],
"midpoints" : [ 79.5, 315.0, 105.0, 315.0, 105.0, 315.0, 320.0, 315.0, 320.0, 174.0, 270.5, 174.0 ],
"source" : [ "obj-11", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"source" : [ "obj-26", 1 ]
"source" : [ "obj-13", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-44", 0 ],
"source" : [ "obj-37", 0 ]
"destination" : [ "obj-6", 0 ],
"source" : [ "obj-13", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 0 ],
"source" : [ "obj-43", 1 ]
"destination" : [ "obj-12", 0 ],
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 0 ],
"source" : [ "obj-43", 0 ]
"destination" : [ "obj-10", 0 ],
"source" : [ "obj-15", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-45", 0 ],
"source" : [ "obj-44", 0 ]
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-18", 0 ],
"source" : [ "obj-45", 0 ]
"destination" : [ "obj-15", 0 ],
"source" : [ "obj-21", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-22", 0 ],
"source" : [ "obj-51", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 0 ],
"source" : [ "obj-54", 2 ]
"destination" : [ "obj-1", 0 ],
"source" : [ "obj-4", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"source" : [ "obj-7", 1 ]
"source" : [ "obj-6", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-54", 0 ],
"destination" : [ "obj-1", 0 ],
"source" : [ "obj-7", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"destination" : [ "obj-9", 0 ],
"source" : [ "obj-8", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"source" : [ "obj-9", 0 ]
}
}
]
, {
"patchline" : {
"destination" : [ "obj-7", 0 ],
"midpoints" : [ 52.5, 105.0, 212.5, 105.0 ],
"source" : [ "obj-9", 1 ]
}
}
],
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_angle" : 270.0,
"bgfillcolor_proportion" : 0.39
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,108 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 59.0, 103.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 0,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-12",
"linecount" : 5,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 26.0, 36.0, 150.0, 68.0 ],
"style" : "",
"text" : "Sine\n\nPhasor\n\nRandom"
}
}
, {
"box" : {
"disabled" : [ 0, 0, 0 ],
"id" : "obj-5",
"itemtype" : 0,
"maxclass" : "radiogroup",
"numinlets" : 1,
"numoutlets" : 1,
"offset" : 25,
"outlettype" : [ "" ],
"parameter_enable" : 0,
"patching_rect" : [ 6.0, 36.0, 18.0, 77.0 ],
"size" : 3,
"style" : "",
"value" : 0
}
}
, {
"box" : {
"id" : "obj-4",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 58.0, 7.0, 57.0, 19.0 ],
"style" : "",
"text" : "LFO Rate"
}
}
, {
"box" : {
"format" : 6,
"id" : "obj-2",
"maxclass" : "flonum",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 6.0, 6.0, 50.0, 21.0 ],
"style" : ""
}
}
],
"lines" : [ ],
"dependency_cache" : [ ],
"autosave" : 0,
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_angle" : 270.0,
"bgfillcolor_proportion" : 0.39
}
}
@@ -2,14 +2,15 @@
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"major" : 8,
"minor" : 0,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 59.0, 103.0, 640.0, 480.0 ],
"classnamespace" : "box",
"rect" : [ 34.0, 79.0, 652.0, 788.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
@@ -37,15 +38,73 @@
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-38",
"linecount" : 2,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 235.0, 551.600037000000043, 170.0, 33.0 ],
"text" : "Convolve the jongles and cello frames."
}
}
, {
"box" : {
"id" : "obj-37",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 281.0, 495.0, 170.0, 20.0 ],
"text" : "Window the frames."
}
}
, {
"box" : {
"id" : "obj-36",
"linecount" : 2,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 377.0, 458.0, 170.0, 33.0 ],
"text" : "Read sample positions from the jongles and cello buffer."
}
}
, {
"box" : {
"id" : "obj-25",
"linecount" : 6,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 212.5, 109.0, 98.0, 87.0 ],
"text" : "Convert some white noise into 1 sample frames. These will be used as an offset later."
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-14",
"index" : 2,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 223.0, 742.100037000000043, 30.0, 30.0 ]
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 203.0, 415.600037, 96.0, 22.0 ],
"style" : "",
"text" : "fl.timemean~ 30"
"patching_rect" : [ 171.0, 618.600037000000043, 113.0, 22.0 ],
"text" : "fl.timemean~ 30 10"
}
}
@@ -56,8 +115,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 203.0, 457.100037, 60.0, 22.0 ],
"style" : "",
"patching_rect" : [ 171.0, 660.100037000000043, 60.0, 22.0 ],
"text" : "fl.tomax~"
}
@@ -68,8 +126,7 @@
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 203.0, 539.100037, 37.0, 22.0 ],
"style" : "",
"patching_rect" : [ 171.0, 742.100037000000043, 37.0, 22.0 ],
"text" : "out 1"
}
@@ -80,12 +137,11 @@
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 95.0, 539.100037, 44.0, 22.0 ],
"patching_rect" : [ 63.0, 742.100037000000043, 44.0, 22.0 ],
"saved_object_attributes" : {
"attr_comment" : ""
}
,
"style" : "",
"text" : "out~ 1"
}
@@ -97,8 +153,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 246.0, 332.0, 67.0, 22.0 ],
"style" : "",
"patching_rect" : [ 214.0, 495.0, 67.0, 22.0 ],
"text" : "fl.window~"
}
@@ -110,8 +165,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 332.0, 67.0, 22.0 ],
"style" : "",
"patching_rect" : [ 18.0, 495.0, 67.0, 22.0 ],
"text" : "fl.window~"
}
@@ -126,8 +180,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 246.0, 300.0, 159.0, 22.0 ],
"style" : "",
"patching_rect" : [ 214.0, 458.0, 159.0, 22.0 ],
"text" : "fl.read~ cello /units samples"
}
@@ -141,8 +194,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 311.0, 162.0, 62.0, 22.0 ],
"style" : "",
"patching_rect" : [ 164.5, 211.0, 62.0, 22.0 ],
"text" : "*~ 30000."
}
@@ -156,8 +208,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 311.0, 131.0, 35.0, 22.0 ],
"style" : "",
"patching_rect" : [ 164.5, 154.0, 35.0, 22.0 ],
"text" : "+~ 1"
}
@@ -171,8 +222,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 311.0, 100.0, 46.0, 22.0 ],
"style" : "",
"patching_rect" : [ 164.5, 109.0, 46.0, 22.0 ],
"text" : "noise~"
}
@@ -187,8 +237,7 @@
"numinlets" : 3,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 311.0, 197.0, 112.0, 22.0 ],
"style" : "",
"patching_rect" : [ 164.5, 280.0, 112.0, 22.0 ],
"text" : "fl.source~ /length 1"
}
@@ -202,8 +251,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 255.0, 49.0, 22.0 ],
"style" : "",
"patching_rect" : [ 18.0, 371.0, 49.0, 22.0 ],
"text" : "fl.plus~"
}
@@ -218,8 +266,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 295.0, 172.0, 22.0 ],
"style" : "",
"patching_rect" : [ 18.0, 458.0, 172.0, 22.0 ],
"text" : "fl.read~ jongles /units samples"
}
@@ -233,9 +280,8 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 202.0, 224.0, 22.0 ],
"style" : "",
"text" : "fl.ramp~ /mode requested /length 10000"
"patching_rect" : [ 18.0, 280.0, 122.0, 22.0 ],
"text" : "fl.ramp~ /length 4096"
}
}
@@ -248,8 +294,7 @@
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 158.0, 98.0, 22.0 ],
"style" : "",
"patching_rect" : [ 18.0, 28.0, 98.0, 22.0 ],
"text" : "fl.interval~ 1000"
}
@@ -263,9 +308,8 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 376.600037, 215.0, 22.0 ],
"style" : "",
"text" : "fl.convolve~ /maxlength 32768"
"patching_rect" : [ 18.0, 551.600037000000043, 215.0, 22.0 ],
"text" : "fl.convolve~"
}
}
@@ -278,8 +322,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 415.600037, 89.0, 22.0 ],
"style" : "",
"patching_rect" : [ 18.0, 618.600037000000043, 89.0, 22.0 ],
"text" : "fl.times~ 0.015"
}
@@ -293,8 +336,7 @@
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 50.0, 457.100037, 48.0, 22.0 ],
"style" : "",
"patching_rect" : [ 18.0, 660.100037000000043, 48.0, 22.0 ],
"text" : "fl.sink~"
}
@@ -303,12 +345,28 @@
"box" : {
"comment" : "",
"id" : "obj-32",
"index" : 0,
"index" : 1,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 50.0, 539.100037, 30.0, 30.0 ],
"style" : ""
"patching_rect" : [ 18.0, 742.100037000000043, 30.0, 30.0 ]
}
}
, {
"box" : {
"angle" : 270.0,
"background" : 1,
"bgcolor" : [ 0.0, 0.0, 0.0, 0.0 ],
"border" : 2,
"bordercolor" : [ 0.0, 0.0, 0.0, 1.0 ],
"id" : "obj-26",
"maxclass" : "panel",
"mode" : 0,
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 156.5, 101.0, 159.0, 206.0 ],
"proportion" : 0.39
}
}
@@ -319,10 +377,19 @@
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"order" : 0,
"source" : [ "obj-10", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 0 ],
"order" : 1,
"source" : [ "obj-10", 0 ]
}
@@ -337,7 +404,7 @@
, {
"patchline" : {
"destination" : [ "obj-15", 1 ],
"midpoints" : [ 320.5, 236.5, 89.5, 236.5 ],
"midpoints" : [ 174.0, 357.0, 57.5, 357.0 ],
"source" : [ "obj-12", 0 ]
}
@@ -360,7 +427,6 @@
, {
"patchline" : {
"destination" : [ "obj-30", 0 ],
"midpoints" : [ 59.5, 285.5, 255.5, 285.5 ],
"order" : 0,
"source" : [ "obj-15", 0 ]
}
@@ -382,8 +448,9 @@
}
, {
"patchline" : {
"color" : [ 0.98599, 0.0, 0.027018, 1.0 ],
"destination" : [ "obj-12", 1 ],
"midpoints" : [ 59.5, 191.0, 367.0, 191.0 ],
"midpoints" : [ 27.5, 257.0, 220.5, 257.0 ],
"order" : 0,
"source" : [ "obj-24", 0 ]
}
@@ -391,6 +458,7 @@
}
, {
"patchline" : {
"color" : [ 0.98599, 0.0, 0.027018, 1.0 ],
"destination" : [ "obj-22", 0 ],
"order" : 1,
"source" : [ "obj-24", 0 ]
@@ -0,0 +1,543 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 23.0, 82.0, 610.0, 574.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 0,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-29",
"local" : 1,
"maxclass" : "ezdac~",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 312.0, 400.0, 45.0, 45.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-28",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 18.75, 494.0, 53.0, 21.0 ],
"style" : "",
"text" : "dac~ 1 2"
}
}
, {
"box" : {
"id" : "obj-26",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 18.75, 455.0, 45.0, 21.0 ],
"style" : "",
"text" : "fl.sink~"
}
}
, {
"box" : {
"id" : "obj-25",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 18.75, 423.0, 37.0, 21.0 ],
"style" : "",
"text" : "fl.ifft~"
}
}
, {
"box" : {
"id" : "obj-24",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 18.75, 206.0, 62.0, 21.0 ],
"style" : "",
"text" : "fl.window~"
}
}
, {
"box" : {
"id" : "obj-22",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 70.25, 133.0, 88.0, 21.0 ],
"style" : "",
"text" : "fl.interval~ 2048"
}
}
, {
"box" : {
"id" : "obj-21",
"maxclass" : "newobj",
"numinlets" : 3,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 18.75, 166.5, 122.0, 21.0 ],
"style" : "",
"text" : "fl.source~ /length 4096"
}
}
, {
"box" : {
"id" : "obj-18",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 18.75, 391.0, 137.0, 21.0 ],
"style" : "",
"text" : "fl.times~ /mismatch shrink"
}
}
, {
"box" : {
"id" : "obj-17",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 18.75, 280.0, 58.0, 21.0 ],
"style" : "",
"text" : "fl.pack~ 2"
}
}
, {
"box" : {
"id" : "obj-16",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"patching_rect" : [ 18.75, 238.0, 58.0, 21.0 ],
"style" : "",
"text" : "fl.fft~"
}
}
, {
"box" : {
"args" : [ "@file", "rainstick.aif", "@loop", 1, "@vol", 0 ],
"bgmode" : 0,
"border" : 0,
"clickthrough" : 0,
"enablehscroll" : 0,
"enablevscroll" : 0,
"id" : "obj-23",
"lockeddragscroll" : 0,
"maxclass" : "bpatcher",
"name" : "demosound.maxpat",
"numinlets" : 0,
"numoutlets" : 1,
"offset" : [ 0.0, 0.0 ],
"outlettype" : [ "signal" ],
"patching_rect" : [ 18.75, 30.5, 225.0, 95.0 ],
"viewvisibility" : 1
}
}
, {
"box" : {
"id" : "obj-14",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 179.75, 328.0, 68.0, 21.0 ],
"style" : "",
"text" : "fl.frommax~"
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 136.75, 360.0, 62.0, 21.0 ],
"style" : "",
"text" : "fl.register~"
}
}
, {
"box" : {
"compatibility" : 1,
"contdata" : 1,
"ghostbar" : 95,
"id" : "obj-27",
"maxclass" : "multislider",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "" ],
"parameter_enable" : 0,
"patching_rect" : [ 179.75, 213.0, 332.0, 88.0 ],
"setminmax" : [ 0.0, 1.0 ],
"size" : 2048,
"style" : ""
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-18", 1 ],
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 1 ],
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-17", 1 ],
"source" : [ "obj-16", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-17", 0 ],
"source" : [ "obj-16", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"midpoints" : [ 28.25, 345.0, 146.25, 345.0 ],
"order" : 1,
"source" : [ "obj-17", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"midpoints" : [ 28.25, 315.0, 189.25, 315.0 ],
"order" : 0,
"source" : [ "obj-17", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-18", 0 ],
"midpoints" : [ 28.25, 303.0, 28.25, 303.0 ],
"order" : 2,
"source" : [ "obj-17", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 0 ],
"source" : [ "obj-18", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-24", 0 ],
"source" : [ "obj-21", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 1 ],
"source" : [ "obj-22", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-21", 0 ],
"source" : [ "obj-23", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-16", 0 ],
"source" : [ "obj-24", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-26", 0 ],
"source" : [ "obj-25", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-28", 1 ],
"order" : 0,
"source" : [ "obj-26", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-28", 0 ],
"order" : 1,
"source" : [ "obj-26", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"source" : [ "obj-27", 0 ]
}
}
],
"parameters" : {
"obj-23::obj-35" : [ "[5]", "Level", 0 ],
"obj-23::obj-21::obj-6" : [ "live.tab[3]", "live.tab[1]", 0 ]
}
,
"dependency_cache" : [ {
"name" : "demosound.maxpat",
"bootpath" : "C74:/help/msp",
"type" : "JSON",
"implicit" : 1
}
, {
"name" : "sine.svg",
"bootpath" : "C74:/media/max/picts/m4l-picts",
"type" : "svg ",
"implicit" : 1
}
, {
"name" : "saw.svg",
"bootpath" : "C74:/media/max/picts/m4l-picts",
"type" : "svg ",
"implicit" : 1
}
, {
"name" : "square.svg",
"bootpath" : "C74:/media/max/picts/m4l-picts",
"type" : "svg ",
"implicit" : 1
}
, {
"name" : "random.svg",
"bootpath" : "C74:/media/max/picts/m4l-picts",
"type" : "svg ",
"implicit" : 1
}
, {
"name" : "fl.register~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.frommax~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.fft~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.pack~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.times~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.source~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.source~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.interval~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.interval~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.window~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.ifft~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.sink~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.sink~.mxo",
"type" : "iLaX"
}
],
"autosave" : 0,
"styles" : [ {
"name" : "AudioStatus_Menu",
"default" : {
"bgfillcolor" : {
"type" : "color",
"color" : [ 0.294118, 0.313726, 0.337255, 1 ],
"color1" : [ 0.454902, 0.462745, 0.482353, 0.0 ],
"color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"angle" : 270.0,
"proportion" : 0.39,
"autogradient" : 0
}
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjBlue-1",
"default" : {
"accentcolor" : [ 0.317647, 0.654902, 0.976471, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjBrown-1",
"default" : {
"accentcolor" : [ 0.654902, 0.572549, 0.376471, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjGreen-1",
"default" : {
"accentcolor" : [ 0.0, 0.533333, 0.168627, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjRed-1",
"default" : {
"accentcolor" : [ 0.784314, 0.145098, 0.023529, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjYellow-1",
"default" : {
"fontsize" : [ 12.059008 ],
"accentcolor" : [ 0.82517, 0.78181, 0.059545, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "numberGold-1",
"default" : {
"accentcolor" : [ 0.764706, 0.592157, 0.101961, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "panelViolet",
"default" : {
"bgfillcolor" : {
"type" : "color",
"color" : [ 0.372549, 0.196078, 0.486275, 0.2 ],
"color1" : [ 0.454902, 0.462745, 0.482353, 1.0 ],
"color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"angle" : 270.0,
"proportion" : 0.39,
"autogradient" : 0
}
}
,
"parentstyle" : "",
"multi" : 0
}
],
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_angle" : 270.0,
"bgfillcolor_proportion" : 0.39
}
}
@@ -0,0 +1,327 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 8,
"minor" : 0,
"revision" : 0,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 59.0, 103.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 1,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 0,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"comment" : "",
"id" : "obj-6",
"index" : 4,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 150.949996948242188, 248.0, 30.0, 30.0 ]
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-5",
"index" : 3,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 103.550003051757812, 248.0, 30.0, 30.0 ]
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-4",
"index" : 2,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 89.75, 69.0, 30.0, 30.0 ]
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-1",
"index" : 1,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 8.75, 69.0, 30.0, 30.0 ]
}
}
, {
"box" : {
"fontsize" : 13.0,
"id" : "obj-3",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 179.25, 39.0, 52.0, 21.0 ],
"presentation" : 1,
"presentation_rect" : [ 52.416667938232422, 23.333333969116211, 52.0, 21.0 ],
"text" : "Length"
}
}
, {
"box" : {
"fontsize" : 13.0,
"id" : "obj-2",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 179.25, 6.0, 52.0, 21.0 ],
"presentation" : 1,
"presentation_rect" : [ 52.416667938232422, 0.333332985639572, 52.0, 21.0 ],
"text" : "Interval"
}
}
, {
"box" : {
"id" : "obj-18",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 89.75, 6.0, 85.0, 21.0 ],
"text" : "loadmess 150"
}
}
, {
"box" : {
"id" : "obj-17",
"maxclass" : "number",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 89.75, 39.0, 50.0, 21.0 ],
"presentation" : 1,
"presentation_rect" : [ 0.416666001081467, 23.333333969116211, 50.0, 21.0 ]
}
}
, {
"box" : {
"fontsize" : 14.0,
"id" : "obj-31",
"linecount" : 2,
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 266.75, 179.0, 251.0, 38.0 ],
"text" : "Click and drag to change the minimum and maximum position."
}
}
, {
"box" : {
"hidden" : 1,
"id" : "obj-30",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 201.25, 142.0, 85.0, 21.0 ],
"text" : "loadmess 400"
}
}
, {
"box" : {
"hidden" : 1,
"id" : "obj-29",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 124.25, 142.0, 72.0, 21.0 ],
"text" : "loadmess 0"
}
}
, {
"box" : {
"buffername" : "myGran",
"id" : "obj-25",
"labels" : 0,
"maxclass" : "waveform~",
"norulerclick" : 0,
"numinlets" : 5,
"numoutlets" : 6,
"outlettype" : [ "float", "float", "float", "float", "list", "" ],
"patching_rect" : [ 8.75, 166.0, 256.0, 64.0 ],
"presentation" : 1,
"presentation_rect" : [ 0.416666001081467, 46.333332061767578, 256.0, 64.0 ],
"ruler" : 0,
"selectioncolor" : [ 0.960784, 0.827451, 0.156863, 1.0 ],
"setmode" : 1,
"setunit" : 3,
"vticks" : 0,
"waveformcolor" : [ 0.317647, 0.654902, 0.976471, 1.0 ]
}
}
, {
"box" : {
"hidden" : 1,
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 8.75, 6.0, 79.0, 21.0 ],
"text" : "loadmess 50"
}
}
, {
"box" : {
"id" : "obj-9",
"maxclass" : "number",
"minimum" : 2,
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 8.75, 39.0, 50.0, 21.0 ],
"presentation" : 1,
"presentation_rect" : [ 0.416666001081467, 0.333332985639572, 50.0, 21.0 ]
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-9", 0 ],
"hidden" : 1,
"source" : [ "obj-11", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-17", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-17", 0 ],
"source" : [ "obj-18", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 0 ],
"source" : [ "obj-25", 2 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-6", 0 ],
"source" : [ "obj-25", 3 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 2 ],
"hidden" : 1,
"source" : [ "obj-29", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 3 ],
"hidden" : 1,
"source" : [ "obj-30", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-1", 0 ],
"source" : [ "obj-9", 0 ]
}
}
],
"styles" : [ {
"name" : "newobjBlue-1",
"default" : {
"accentcolor" : [ 0.317647, 0.654902, 0.976471, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjYellow-1",
"default" : {
"accentcolor" : [ 0.82517, 0.78181, 0.059545, 1.0 ],
"fontsize" : [ 12.059008 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "numberGold-1",
"default" : {
"accentcolor" : [ 0.764706, 0.592157, 0.101961, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
],
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ]
}
}
@@ -9,9 +9,9 @@
"modernui" : 1
}
,
"rect" : [ 59.0, 103.0, 640.0, 480.0 ],
"rect" : [ 42.0, 213.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 1,
"openinpresentation" : 0,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
@@ -38,100 +38,99 @@
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"comment" : "",
"id" : "obj-4",
"index" : 0,
"maxclass" : "outlet",
"numinlets" : 1,
"id" : "obj-6",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 107.0, 289.0, 30.0, 30.0 ],
"style" : ""
"patching_rect" : [ 17.0, 136.0, 56.0, 21.0 ],
"style" : "",
"text" : "fftout~ 1"
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-2",
"index" : 0,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 107.0, 132.0, 30.0, 30.0 ],
"style" : ""
"id" : "obj-5",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "signal", "signal" ],
"patching_rect" : [ 17.0, 98.0, 56.0, 21.0 ],
"style" : "",
"text" : "cartopol~"
}
}
, {
"box" : {
"id" : "obj-1",
"id" : "obj-4",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "signal", "signal" ],
"patching_rect" : [ 17.0, 60.0, 56.0, 21.0 ],
"style" : "",
"text" : "poltocar~"
}
}
, {
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 107.0, 59.0, 77.0, 21.0 ],
"numoutlets" : 3,
"outlettype" : [ "signal", "signal", "signal" ],
"patching_rect" : [ 17.0, 22.0, 93.0, 21.0 ],
"style" : "",
"text" : "loadmess -70"
}
}
, {
"box" : {
"channels" : 1,
"id" : "obj-50",
"maxclass" : "live.gain~",
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "signal", "", "float", "list" ],
"parameter_enable" : 1,
"patching_rect" : [ 107.0, 182.0, 50.0, 83.0 ],
"presentation" : 1,
"presentation_rect" : [ -5.0, 3.0, 50.0, 83.0 ],
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "live.gain~[1]",
"parameter_shortname" : "Volume",
"parameter_type" : 0,
"parameter_mmin" : -70.0,
"parameter_mmax" : 6.0,
"parameter_initial" : [ 0.0 ],
"parameter_unitstyle" : 4
}
}
,
"varname" : "live.gain~[1]"
"text" : "fftin~ 1"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-50", 0 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-50", 0 ],
"source" : [ "obj-2", 0 ]
"destination" : [ "obj-4", 1 ],
"source" : [ "obj-3", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-4", 0 ],
"source" : [ "obj-50", 0 ]
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 1 ],
"source" : [ "obj-4", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-5", 0 ],
"source" : [ "obj-4", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-6", 1 ],
"source" : [ "obj-5", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-6", 0 ],
"source" : [ "obj-5", 0 ]
}
}
],
"parameters" : {
"obj-50" : [ "live.gain~[1]", "Volume", 0 ]
}
,
"dependency_cache" : [ ],
"autosave" : 0,
"bgfillcolor_type" : "gradient",
@@ -0,0 +1,189 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 8,
"minor" : 0,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 59.0, 104.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-14",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "bang", "bang" ],
"patching_rect" : [ 50.0, 100.0, 32.0, 22.0 ],
"text" : "t b b"
}
}
, {
"box" : {
"id" : "obj-13",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 135.0, 81.0, 22.0 ],
"text" : "clean, wclose"
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 50.0, 167.0, 84.0, 22.0 ],
"text" : "s wclose_msg"
}
}
, {
"box" : {
"id" : "obj-9",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 141.0, 227.0, 51.0, 22.0 ],
"text" : "pcontrol"
}
}
, {
"box" : {
"id" : "obj-8",
"maxclass" : "message",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 141.0, 135.0, 178.5, 22.0 ],
"text" : "#1"
}
}
, {
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 141.0, 167.0, 57.0, 22.0 ],
"text" : "tosymbol"
}
}
, {
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 141.0, 198.0, 79.0, 22.0 ],
"text" : "prepend load"
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-4",
"index" : 1,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 50.0, 40.0, 30.0, 30.0 ]
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-9", 0 ],
"source" : [ "obj-1", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-11", 0 ],
"source" : [ "obj-13", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-13", 0 ],
"source" : [ "obj-14", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-8", 0 ],
"source" : [ "obj-14", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-1", 0 ],
"source" : [ "obj-3", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-14", 0 ],
"source" : [ "obj-4", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"source" : [ "obj-8", 0 ]
}
}
]
}
}
@@ -0,0 +1,404 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 34.0, 78.0, 892.0, 788.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "",
"boxes" : [ {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-40",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "" ],
"patching_rect" : [ 409.0, 129.0, 130.0, 22.0 ],
"style" : "",
"text" : "jit.peek~ oneframe 1 0"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-39",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "signal", "" ],
"patching_rect" : [ 465.0, 170.0, 130.0, 22.0 ],
"style" : "",
"text" : "jit.peek~ oneframe 1 1"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-38",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 465.0, 206.0, 84.0, 22.0 ],
"style" : "",
"text" : "frameaccum~"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-37",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "signal", "signal" ],
"patching_rect" : [ 409.0, 238.0, 75.0, 22.0 ],
"style" : "",
"text" : "poltocar~"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-36",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 409.0, 270.0, 75.0, 22.0 ],
"style" : "",
"text" : "fftout~ 1"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-35",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 158.0, 238.0, 124.0, 22.0 ],
"style" : "",
"text" : "jit.catch~ 2 @mode 2"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-34",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "jit_matrix", "" ],
"patching_rect" : [ 158.0, 270.0, 189.0, 22.0 ],
"style" : "",
"text" : "jit.matrix oneframe 2 float32 2048"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-31",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 263.0, 206.0, 76.0, 22.0 ],
"style" : "",
"text" : "phasewrap~"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-30",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [ 263.0, 170.0, 74.0, 22.0 ],
"style" : "",
"text" : "framedelta~"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-29",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 19.5, 174.0, 77.0, 22.0 ],
"style" : "",
"text" : "prepend dim"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-28",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 38.0, 129.0, 110.0, 22.0 ],
"style" : "",
"text" : "prepend framesize"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-26",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "int", "int", "int", "int" ],
"patching_rect" : [ 6.0, 43.0, 59.5, 22.0 ],
"style" : "",
"text" : "fftinfo~"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-25",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 2,
"outlettype" : [ "signal", "signal" ],
"patching_rect" : [ 158.0, 129.0, 124.0, 22.0 ],
"style" : "",
"text" : "cartopol~"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-24",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "signal", "signal", "signal" ],
"patching_rect" : [ 158.0, 43.0, 47.0, 22.0 ],
"style" : "",
"text" : "fftin~ 1"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-23",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 225.0, 206.0, 30.0, 22.0 ],
"style" : "",
"text" : "in 1"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"source" : [ "obj-23", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 1 ],
"source" : [ "obj-24", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-25", 0 ],
"source" : [ "obj-24", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-39", 0 ],
"order" : 0,
"source" : [ "obj-24", 2 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-40", 0 ],
"order" : 1,
"source" : [ "obj-24", 2 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-30", 0 ],
"source" : [ "obj-25", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"source" : [ "obj-25", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-28", 0 ],
"order" : 0,
"source" : [ "obj-26", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-29", 0 ],
"order" : 1,
"source" : [ "obj-26", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 0 ],
"source" : [ "obj-28", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-34", 0 ],
"source" : [ "obj-29", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-31", 0 ],
"source" : [ "obj-30", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-35", 1 ],
"source" : [ "obj-31", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-34", 0 ],
"source" : [ "obj-35", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 1 ],
"source" : [ "obj-37", 1 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-36", 0 ],
"source" : [ "obj-37", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 1 ],
"source" : [ "obj-38", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-38", 0 ],
"source" : [ "obj-39", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-37", 0 ],
"source" : [ "obj-40", 0 ]
}
}
]
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,13 @@
0, _1_Tutorial_0.maxpat;
1, _2_What_is_FrameLib.maxpat;
2, _3_Key_Concepts.maxpat;
3, _4_Converting_between_FrameLib_and_Max.maxpat;
4, _5_Generators.maxpat;
5, _6_Your_First_FrameLib.maxpat;
6, _7_FFT_in_FrameLib.maxpat;
7, _8_Multi-stream.maxpat;
8, _9_Multi-resolution_FFT.maxpat;
9, _10_IRSpectral.maxpat;
10, _11_NRT_Mode.maxpat;
11, _12_Threading.maxpat;
12, _13_export.maxpat;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,143 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 8,
"minor" : 0,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 34.0, 79.0, 980.0, 671.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"showrootpatcherontab" : 0,
"showontab" : 0,
"boxes" : [ {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 0,
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 8,
"minor" : 0,
"revision" : 6,
"architecture" : "x64",
"modernui" : 1
}
,
"classnamespace" : "box",
"rect" : [ 34.0, 105.0, 980.0, 645.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"showontab" : 1,
"title" : "Non-realtime basics",
"boxes" : [ ],
"lines" : [ ],
"styles" : [ {
"name" : "newobjBlue-1",
"default" : {
"accentcolor" : [ 0.317647, 0.654902, 0.976471, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjYellow-1",
"default" : {
"fontsize" : [ 12.059008 ],
"accentcolor" : [ 0.82517, 0.78181, 0.059545, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "numberGold-1",
"default" : {
"accentcolor" : [ 0.764706, 0.592157, 0.101961, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
]
}
,
"patching_rect" : [ 21.0, 582.0, 115.0, 21.0 ],
"saved_object_attributes" : {
"description" : "",
"digest" : "",
"globalpatchername" : "",
"tags" : ""
}
,
"text" : "p Non-realtime basics"
}
}
],
"lines" : [ ],
"dependency_cache" : [ ],
"autosave" : 0,
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ]
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,197 +0,0 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 517.0, 338.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 1,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 0,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 158.0, 83.0, 81.0, 21.0 ],
"style" : "",
"text" : "print activestat"
}
}
, {
"box" : {
"id" : "obj-26",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 113.0, 55.0, 29.5, 21.0 ],
"style" : "",
"text" : "!- 1"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "int" ],
"patching_rect" : [ 113.0, 27.0, 42.0, 21.0 ],
"style" : "",
"text" : "active"
}
}
, {
"box" : {
"comment" : "",
"id" : "obj-1",
"index" : 0,
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 9.0, 88.0, 30.0, 30.0 ],
"style" : ""
}
}
, {
"box" : {
"hidden" : 1,
"id" : "obj-76",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 9.0, 4.0, 67.0, 21.0 ],
"style" : "",
"text" : "loadmess 1"
}
}
, {
"box" : {
"id" : "obj-45",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 9.0, 55.0, 88.0, 21.0 ],
"style" : "",
"text" : "prepend mute 0"
}
}
, {
"box" : {
"bgcolor" : [ 0.0, 0.533333, 0.168627, 1.0 ],
"bgoncolor" : [ 0.784314, 0.145098, 0.023529, 1.0 ],
"id" : "obj-44",
"maxclass" : "textbutton",
"mode" : 1,
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "", "", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 9.0, 27.0, 100.0, 20.0 ],
"presentation" : 1,
"presentation_rect" : [ 0.0, 0.0, 100.0, 20.0 ],
"style" : "",
"text" : "Mute",
"textcolor" : [ 1.0, 1.0, 1.0, 1.0 ],
"texton" : "Unmute",
"textoncolor" : [ 1.0, 1.0, 1.0, 1.0 ],
"usebgoncolor" : 1
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-26", 0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"order" : 0,
"source" : [ "obj-26", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-44", 0 ],
"order" : 1,
"source" : [ "obj-26", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-45", 0 ],
"source" : [ "obj-44", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-1", 0 ],
"source" : [ "obj-45", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-44", 0 ],
"hidden" : 1,
"source" : [ "obj-76", 0 ]
}
}
],
"dependency_cache" : [ ],
"autosave" : 0,
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_angle" : 270.0,
"bgfillcolor_proportion" : 0.39
}
}
@@ -1,7 +0,0 @@
autowatch = 1;
inlets = 1;
function bang() {
p = this.patcher
p.wind.scrollto(0, 0);
};
File diff suppressed because it is too large Load Diff
@@ -1,792 +0,0 @@
{
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 757.0, 180.0, 256.0, 600.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 11.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 0,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"fontsize" : 12.0,
"id" : "obj-37",
"maxclass" : "newobj",
"numinlets" : 0,
"numoutlets" : 0,
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 59.0, 103.0, 640.0, 480.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "default",
"boxes" : [ {
"box" : {
"fontface" : 1,
"fontsize" : 12.0,
"id" : "obj-41",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 11.0, 7.0, 195.0, 20.0 ],
"style" : "",
"text" : "Mode: value"
}
}
, {
"box" : {
"id" : "obj-2",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 11.0, 22.0, 183.0, 20.0 ],
"style" : "",
"text" : "Outputs the current sample rate."
}
}
, {
"box" : {
"fontsize" : 14.0,
"format" : 6,
"id" : "obj-24",
"maxclass" : "flonum",
"numinlets" : 1,
"numoutlets" : 2,
"outlettype" : [ "", "bang" ],
"parameter_enable" : 0,
"patching_rect" : [ 11.0, 156.254242, 67.0, 24.0 ],
"style" : ""
}
}
, {
"box" : {
"id" : "obj-22",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 11.0, 121.0, 59.0, 22.0 ],
"style" : "",
"text" : "fl.tomax~"
}
}
, {
"box" : {
"id" : "obj-9",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 11.0, 86.0, 117.0, 22.0 ],
"style" : "",
"text" : "fl.samplerate~ value"
}
}
, {
"box" : {
"id" : "obj-13",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 11.0, 50.0, 71.0, 22.0 ],
"style" : "",
"text" : "fl.perblock~"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-9", 0 ],
"source" : [ "obj-13", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-24", 0 ],
"source" : [ "obj-22", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-22", 0 ],
"source" : [ "obj-9", 0 ]
}
}
],
"styles" : [ {
"name" : "newobjBlue-1",
"default" : {
"accentcolor" : [ 0.317647, 0.654902, 0.976471, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjYellow-1",
"default" : {
"accentcolor" : [ 0.82517, 0.78181, 0.059545, 1.0 ],
"fontsize" : [ 12.059008 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "numberGold-1",
"default" : {
"accentcolor" : [ 0.764706, 0.592157, 0.101961, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
]
}
,
"patching_rect" : [ 328.0, 377.0, 87.0, 22.0 ],
"saved_object_attributes" : {
"description" : "",
"digest" : "",
"globalpatchername" : "",
"style" : "",
"tags" : ""
}
,
"style" : "",
"text" : "p exampleSub"
}
}
, {
"box" : {
"id" : "obj-31",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 569.666687, 383.333344, 19.0 ],
"style" : "",
"text" : "Sets the input delay in the units specified by the units parameter."
}
}
, {
"box" : {
"fontface" : 1,
"id" : "obj-32",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 554.666687, 209.333328, 19.0 ],
"style" : "",
"text" : "Parameter 4: delay (default: 0)"
}
}
, {
"box" : {
"id" : "obj-29",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 521.666687, 383.333344, 19.0 ],
"style" : "",
"text" : "Sets the time units used to determine the buffer size and output length."
}
}
, {
"box" : {
"fontface" : 1,
"id" : "obj-10",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 506.666687, 209.333328, 19.0 ],
"style" : "",
"text" : "Parameter 3: /units (default: samples)"
}
}
, {
"box" : {
"id" : "obj-28",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 470.0, 386.666656, 19.0 ],
"style" : "",
"text" : "Sets the length of output frames in the units specified by the units parameter."
}
}
, {
"box" : {
"id" : "obj-27",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 422.0, 368.0, 19.0 ],
"style" : "",
"text" : "Sets the internal buffer size in the units specificed by the units parameter."
}
}
, {
"box" : {
"fontface" : 1,
"id" : "obj-12",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 455.0, 196.0, 19.0 ],
"style" : "",
"text" : "Parameter 2: length (default: 4096)"
}
}
, {
"box" : {
"fontface" : 1,
"id" : "obj-24",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 407.0, 220.0, 19.0 ],
"style" : "",
"text" : "Parameter 1: buffer_size (default: 16384)"
}
}
, {
"box" : {
"channels" : 1,
"id" : "obj-9",
"maxclass" : "live.gain~",
"numinlets" : 1,
"numoutlets" : 4,
"outlettype" : [ "signal", "", "float", "list" ],
"parameter_enable" : 1,
"patching_rect" : [ 324.0, 163.0, 48.0, 136.0 ],
"saved_attribute_attributes" : {
"valueof" : {
"parameter_longname" : "live.gain~",
"parameter_shortname" : "Volume",
"parameter_type" : 0,
"parameter_mmin" : -70.0,
"parameter_mmax" : 6.0,
"parameter_initial" : [ 0.0 ],
"parameter_unitstyle" : 4
}
}
,
"varname" : "live.gain~"
}
}
, {
"box" : {
"arrows" : 1,
"border" : 4.0,
"id" : "obj-14",
"justification" : 1,
"maxclass" : "live.line",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 238.75, 163.0, 60.25, 15.0 ]
}
}
, {
"box" : {
"id" : "obj-11",
"maxclass" : "ezdac~",
"numinlets" : 2,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 343.055847, 50.0, 50.0 ],
"style" : ""
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"hidden" : 1,
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patcher" : {
"fileversion" : 1,
"appversion" : {
"major" : 7,
"minor" : 3,
"revision" : 4,
"architecture" : "x64",
"modernui" : 1
}
,
"rect" : [ 50.0, 94.0, 264.0, 148.0 ],
"bglocked" : 0,
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 1,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 1,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 1,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0.0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "",
"boxes" : [ {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 99.0, 63.5, 83.0, 20.0 ],
"style" : "",
"text" : "prepend help",
"varname" : "phelp"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 12.0,
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 99.0, 90.5, 56.0, 20.0 ],
"style" : "",
"text" : "pcontrol"
}
}
, {
"box" : {
"comment" : "From umenu label out",
"id" : "obj-4",
"index" : 1,
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [ "" ],
"patching_rect" : [ 99.0, 36.0, 25.0, 25.0 ],
"style" : ""
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-3", 0 ],
"source" : [ "obj-2", 0 ]
}
}
, {
"patchline" : {
"destination" : [ "obj-2", 0 ],
"source" : [ "obj-4", 0 ]
}
}
]
}
,
"patching_rect" : [ 125.000061, 343.055847, 69.0, 22.0 ],
"saved_object_attributes" : {
"description" : "",
"digest" : "",
"globalpatchername" : "",
"style" : "",
"tags" : ""
}
,
"style" : "",
"text" : "p see_also"
}
}
, {
"box" : {
"fontname" : "Arial",
"fontsize" : 11.595187,
"hidden" : 1,
"id" : "obj-2",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 64.000061, 343.055847, 55.0, 21.0 ],
"style" : "",
"text" : "autohelp"
}
}
, {
"box" : {
"fontface" : 1,
"fontname" : "Arial",
"fontsize" : 11.595187,
"id" : "obj-79",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 69.000061, 347.055847, 100.0, 19.0 ],
"style" : "",
"text" : "See Also:",
"varname" : "autohelp_see_title"
}
}
, {
"box" : {
"allowdrag" : 0,
"fontsize" : 11.595187,
"id" : "obj-80",
"items" : [ "(Objects:)", ",", "<separator>", ",", "fl.untag~", ",", "fl.sink~", ",", "fl.0dfsvf~", ",", "fl.pack~", ",", "fl.split~", ",", "<separator>" ],
"maxclass" : "umenu",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "int", "", "" ],
"parameter_enable" : 0,
"patching_rect" : [ 69.000061, 367.055847, 130.0, 21.0 ],
"style" : "",
"varname" : "autohelp_see_menu"
}
}
, {
"box" : {
"border" : 2.0,
"id" : "obj-49",
"linecolor" : [ 0.65098, 0.666667, 0.662745, 1.0 ],
"maxclass" : "live.line",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 333.0, 530.25, 5.0 ]
}
}
, {
"box" : {
"angle" : 270.0,
"bgcolor" : [ 0.290196, 0.309804, 0.301961, 0.0 ],
"border" : 3,
"bordercolor" : [ 0.0, 0.0, 0.0, 1.0 ],
"id" : "obj-55",
"maxclass" : "panel",
"mode" : 0,
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 126.0, 149.333313, 200.666656 ],
"proportion" : 0.39,
"style" : ""
}
}
, {
"box" : {
"fontface" : 1,
"fontsize" : 14.0,
"id" : "obj-30",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 78.0, 260.0, 22.0 ],
"style" : "",
"text" : "Idea:"
}
}
, {
"box" : {
"fontsize" : 12.0,
"id" : "obj-25",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 102.0, 509.0, 20.0 ],
"style" : "",
"text" : "Explanation:"
}
}
, {
"box" : {
"fontface" : 3,
"fontname" : "Arial",
"fontsize" : 20.871338,
"id" : "obj-4",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 8.0, 270.0, 30.0 ],
"style" : "",
"text" : "fl.objectname",
"textcolor" : [ 0.2, 0.2, 0.2, 1.0 ],
"varname" : "autohelp_top_title"
}
}
, {
"box" : {
"fontface" : 0,
"fontname" : "Arial",
"fontsize" : 12.754705,
"id" : "obj-5",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 36.0, 485.0, 21.0 ],
"style" : "",
"text" : "Description",
"textcolor" : [ 0.2, 0.2, 0.2, 1.0 ],
"varname" : "autohelp_top_digest"
}
}
, {
"box" : {
"fontface" : 0,
"fontname" : "Arial",
"fontsize" : 11.595187,
"id" : "obj-3",
"maxclass" : "comment",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 10.0, 57.0, 485.0, 19.0 ],
"style" : "",
"varname" : "autohelp_top_description"
}
}
, {
"box" : {
"bgcolor" : [ 0.0, 0.0, 0.0, 0.0 ],
"bgoncolor" : [ 0.0, 0.0, 0.0, 0.0 ],
"fontface" : 3,
"fontlink" : 1,
"fontsize" : 12.754705,
"id" : "obj-6",
"maxclass" : "textbutton",
"numinlets" : 1,
"numoutlets" : 3,
"outlettype" : [ "", "", "int" ],
"parameter_enable" : 0,
"patching_rect" : [ 370.070503, 22.0, 129.929497, 14.249397 ],
"presentation_rect" : [ 0.0, 0.0, 129.929497, 14.249397 ],
"spacing_x" : 0.0,
"spacing_y" : 0.0,
"style" : "",
"text" : "Frame Lib reference",
"textcolor" : [ 0.387, 0.485, 0.632, 1.0 ],
"textoncolor" : [ 0.27, 0.35, 0.47, 1.0 ],
"textovercolor" : [ 0.4, 0.5, 0.65, 1.0 ],
"underline" : 1,
"varname" : "autohelp_top_ref"
}
}
, {
"box" : {
"angle" : 0.0,
"background" : 1,
"bordercolor" : [ 0.0, 0.0, 0.0, 1.0 ],
"grad1" : [ 0.88, 0.98, 0.78, 1.0 ],
"grad2" : [ 0.9, 0.9, 0.9, 1.0 ],
"id" : "obj-8",
"maxclass" : "panel",
"mode" : 1,
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 5.0, 5.0, 495.0, 52.0 ],
"proportion" : 0.39,
"style" : "",
"varname" : "autohelp_top_panel"
}
}
, {
"box" : {
"angle" : 0.0,
"background" : 1,
"bgcolor" : [ 0.85, 0.85, 0.85, 0.75 ],
"border" : 2,
"bordercolor" : [ 0.5, 0.5, 0.5, 0.75 ],
"id" : "obj-81",
"maxclass" : "panel",
"mode" : 0,
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [ 64.000061, 343.055847, 140.0, 50.0 ],
"proportion" : 0.39,
"style" : "",
"varname" : "autohelp_see_panel"
}
}
],
"lines" : [ {
"patchline" : {
"destination" : [ "obj-1", 0 ],
"hidden" : 1,
"source" : [ "obj-80", 1 ]
}
}
],
"parameters" : {
"obj-9" : [ "live.gain~", "Volume", 0 ]
}
,
"dependency_cache" : [ {
"name" : "fl.perblock~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.perblock~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.samplerate~.mxo",
"type" : "iLaX"
}
, {
"name" : "fl.tomax~.mxo",
"type" : "iLaX"
}
],
"autosave" : 0,
"styles" : [ {
"name" : "newobjBlue-1",
"default" : {
"accentcolor" : [ 0.317647, 0.654902, 0.976471, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "newobjYellow-1",
"default" : {
"accentcolor" : [ 0.82517, 0.78181, 0.059545, 1.0 ],
"fontsize" : [ 12.059008 ]
}
,
"parentstyle" : "",
"multi" : 0
}
, {
"name" : "numberGold-1",
"default" : {
"accentcolor" : [ 0.764706, 0.592157, 0.101961, 1.0 ]
}
,
"parentstyle" : "",
"multi" : 0
}
],
"bgfillcolor_type" : "gradient",
"bgfillcolor_color1" : [ 0.376471, 0.384314, 0.4, 1.0 ],
"bgfillcolor_color2" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_color" : [ 0.290196, 0.309804, 0.301961, 1.0 ],
"bgfillcolor_angle" : 270.0,
"bgfillcolor_proportion" : 0.39
}
}
@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorials: Table of Contents">
<h1>
FrameLib Tutorials - Table of Contents
</h1>
<p>
<!-- Beginner Tutorials-->
<h2>
Beginner
</h2>
<ul>
<li>
<link type="tutorial" module="FrameLib" name="01_fl_introduction" diff="Beginner" digest="A general introduction to FrameLib and some foundation DSP concepts.">Tutorial 1: An introduction to FrameLib and frame based processing.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="02_fl_whatis" diff="Beginner" digest="Getting familiar with the FrameLib library.">Tutorial 2: Getting to grips with frame based processing.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="03_fl_concepts" diff="Beginner" digest="The key concepts of FrameLib, such as its timing and patching architecture.">Tutorial 3: Key Concepts.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="04_fl_conversion" diff="Beginner" digest="Methods for converting data between the Max and FrameLib domains.">Tutorial 4: Converting data between FrameLib and Max.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="05_fl_generators" diff="Beginner" digest="An overview of 'generator' objects belonging to the FrameLib eco-system.">Tutorial 5: Generator objects.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="06_fl_firstproject" diff="Beginner" digest="A step-by-step guide on building a granular synth from scratch.">Tutorial 6: Your first FrameLib project - Building a granulator from scratch.</link>
</li>
</ul>
<!-- Intermediate Tutorials-->
<h2>
Intermediate
</h2>
<ul>
<li>
<link type="tutorial" module="FrameLib" name="07_fl_fft" diff="Intermediate" digest="The Basics of FFT/STFT processing in FrameLib">Tutorial 7: FFT with FrameLib.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="08_fl_multistream" diff="Intermediate" digest="Similar to 'mc' objects, multi-streaming allows you to manipulate multiple streams with a single set of processors.">Tutorial 8: Multi-stream processing.</link>
</li>
</ul>
<h2>
Advanced
</h2>
<ul>
<li>
<link type="tutorial" module="FrameLib" name="09_fl_multiresfft" diff="Advanced" digest="Constructing multi-resolution FFT processes in FrameLib.">Tutorial 9: Multi-resolution FFT.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="10_fl_ir" diff="Advanced" digest="A small overview of working with impulse responses and convolution.">Tutorial 10: Working with impulse responses (IR) in FrameLib.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="11_fl_nrt" diff="Advanced" digest="Designing, converting and understanding FrameLib networks in the non-realtime mode.">Tutorial 11: Non-realtime networks in FrameLib.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="12_fl_threading" diff="Advanced" digest="How to manage threads, multi-threading and the concept of a 'context'.">Tutorial 12: Threading and 'contexts'.</link>
</li>
<li>
<link type="tutorial" module="FrameLib" name="13_fl_export" diff="Advanced" digest="Exporting your FrameLib networks from Max to C++ to be used in other environments and applications.">Tutorial 13: Exporting FrameLib in Max to C++.</link>
</li>
</ul>
</p>
</chapter>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 1: Introduction">
<next name="02_fl_concepts">Key Concepts</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
An introduction to FrameLib.
</h1>
<h2>
What is FrameLib?
</h2>
<p>
FrameLib is a DSP system designed to allow quick modular constructions of frame-based networks. A frame is a self contained group of samples not dissimilar to a grain in granulation or an FFT frame. These networks can resolve time at a highly accurate subsample level and can run at different rates, and with different frame sizes.
Within a single FrameLib network you are able to mix different representations (such as time and frequency-based), efficiently process them and maintaing tightly-timed DSP constructs. A group of FrameLib objects resulting in a processing chain can be referred to as a 'network'.
If you don't know what these terms mean or are not sure if FrameLib could be useful for you rest assured it will make sense as the tutorials progress.
</p>
<h2>
What is possible?
</h2>
<p>
In most realtime audio environments, audio processing is built on the model of grouping continuous streams of samples into small consecutive blocks of equal size for the purpose of calculation. Whilst this offers an appropriate model to represent continuous analog signals, it is less suited to processing that functions on chunks, or frames, of audio in which the position of a sample in the frame is meaningful (e.g spectral representations), or in which the frame might be considered as a whole (e.g granular synthesis).
FrameLib brings a wealth of processing techniques into the Max environment where rapid prototyping and experimentation is readily available to the user. Advanced multi-rate processing, based on DSP graphs that operate on frames of different sizes is not currently supported natively within Max which is where a frame based tool kit like FrameLib excels. If this doesn't make sense to you now, these tutorials will introduce you to these concepts.
If you don't know where to start, navigating through the tabs above demonstrate what you might want to do with FrameLib.
</p>
</chapter>
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 2: Getting to grips with frame based processing">
<next name="03_fl_concepts">Key Concepts</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
Getting to grips with frame based processing
</h1>
<h2>
What is FrameLib?
</h2>
<p>
PLACEHOLDER
</p>
<h2>
PLACEHOLDER
</h2>
<p>
MORE PLACEHOLDER
</p>
</chapter>
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 3: Key Concepts">
<next name="04_fl_conversion">Conversion</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Key Concepts
</h1>
<h2>
Schedulers and Timing
</h2>
<p>
The most important concepts to understand in FrameLib:
<br></br>
<br></br>
1. EVERYTHING is strongly timed.
<br></br>
2. NOTHING happens without a FrameLib timing source otherwise known as a 'scheduler'.
<br></br>
<br></br>
Schedulers create trigger frames - think of them like the bang of FrameLib. Under the hood, a trigger frame is just an empty or zero length frame that contains no samples. Frames containing samples can also act as trigger frames, but these won't exist until you've used a scheduler somewhere in the network.
</p>
<h2>
Parameters and Tagging
</h2>
<p>
FrameLib objects have a unique system for managing parameters at instantiation and with real-time control. It is is not dissimilar to max messages but there are some differences.
There are two ways to assign parameters to a FrameLib object at load time. Like many Max objects you can input values in the order of the arguments you want to address. Additionally you can directly address parameters through the "/parameter [value]" syntax. This is similar to the "@attribute" system in Max, however FrameLib objects cannot be addressed through the 'attrui' object. The /parameter syntax is a more direct way of addressing each parameter and is particularly useful in two scenarios.
<br></br>
<br></br>
1. The default parameters are useful apart from one specific parameter you would like to change.
<br></br>
2. Making parameter configurations explicit and easy to read.
<br></br>
<br></br>
Real-time control is managed through a 'parameter update' inlet which receives special 'tagged frames'. Because frames are used to change the parameters, the configuration of the object is tightly synchronised to the network. More details can be found in the corresponding tabs above.
</p>
<h2>
How to Get Help
</h2>
<p>
Like all Max objects there are help files that can be accessed for reference. You can also send FrameLib objects some reserved messages which post extra information to the max console.
<bullet> info: Prints all information to max console </bullet>
<bullet> info description: Prints the description </bullet>
<bullet> info inputs: Prints information about the inputs </bullet>
<bullet> info outputs: Prints information about the outputs </bullet>
<bullet> info io: Prints info on inputs and outputs </bullet>
<bullet> info parameters: Prints parameters for the object </bullet>
<bullet> info quick: Provides a quick summary </bullet>
</p>
</chapter>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 4: Data Conversion">
<next name="05_fl_generators">Generators</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Data Conversion
</h1>
<h2>
Basics of Conversion
</h2>
<p>
Directly connecting FrameLib objects from Max to FrameLib is not possible. There are a selection of objects that allow control and audio data to pass into FrameLib as well as be passed out back into Max which are the exceptions to this.
Move through the tabs of this tutorial to understand how control and audio data is allowed in and out of FrameLib.
</p>
<h2>
Heading 2
</h2>
<p>
</p>
<h2>
Heading 3
</h2>
<p>
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 5: Generators">
<next name="06_fl_firstproject">Your first FrameLib project - Building a granulator</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Generator Objects
</h1>
<h2>
Heading 1
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 6: Your first FrameLib project - Building a granulator from scratch.">
<next name="06_fl_fft">FFT in FrameLib</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Your first FrameLib project
</h1>
<h2>
Heading 1
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 7: FFT in FrameLib">
<next name="08_fl_multistream">Multi-stream processing</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: FFT in FrameLib
</h1>
<h2>
Basics of FrameLib FFT
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 8: Multi-stream processing">
<next name="09_fl_multiresfft">Multi-resolution FFT</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Multi-stream processing
</h1>
<h2>
Basics of Conversion
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 9: Multi-resolution FFT">
<next name="10_fl_ir">Working with Impulse Responses in FrameLib</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Multi-resolution FFT
</h1>
<h2>
Basics of Conversion
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 10: Working with impulse responses (IR) in FrameLib">
<next name="11_fl_nrt">Non-realtime FrameLib networks</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: IR
</h1>
<h2>
Basics of Conversion
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 11: Non-realtime networks in FrameLib">
<next name="12_fl_threading">Threading and Contexts</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: NRT
</h1>
<h2>
Basics of Conversion
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 12: Threading and 'contexts'">
<next name="13_fl_export">Code Export</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Threading
</h1>
<h2>
Basics of Conversion
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="./_c74_tut.xsl" type="text/xsl"?>
<chapter name="FrameLib Tutorial 13: Exporting Code to C++">
<next name="13_fl_export">Code Export</next>
<parent name="00_fl_index">FrameLib tutorials</parent>
<h1>
FrameLib: Code Export Feature
</h1>
<h2>
Basics of Conversion
</h2>
<p>
Para 1
</p>
<h2>
Heading 2
</h2>
<p>
Para 2
</p>
<h2>
Heading 3
</h2>
<p>
Para 3
</p>
</chapter>
@@ -0,0 +1,143 @@
<?xml version="1.0"?>
<!--
Copyright (c) 2012 Cycling '74
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:preserve-space elements="body bullet techdetail"/>
<xsl:variable name="doctype" select="'tutorial'"/>
<xsl:include href='../_c74_platform.xsl'/>
<xsl:variable name="jargon_enable">
<xsl:choose>
<xsl:when test="$compliant=1">
<xsl:value-of select="document('../_c74_common.xml')/root/setting[@name='jargon_enable']/@value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="document('../../_c74_common.xml')/root/setting[@name='jargon_enable']/@value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="jargon_mouseover">
<xsl:choose>
<xsl:when test="$compliant=1">
<xsl:value-of select="document('../_c74_common.xml')/root/setting[@name='jargon_mouseover']/@value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="document('../../_c74_common.xml')/root/setting[@name='jargon_mouseover']/@value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="refs_root_loc">
<xsl:choose>
<xsl:when test="$compliant=1">
<xsl:value-of select="'./refpages'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'../../refpages'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="refs_root_link" select="'../../refpages'"/>
<xsl:variable name="patchname" select="/chapter/openfile/@name"/> <!-- for openfilefront -->
<xsl:variable name="patchfile" select="/chapter/openfile/@patch"/> <!-- for openfilefront -->
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../_c74_common.css"/>
<title><xsl:value-of select="/chapter/@name"/></title>
</head>
<body>
<!--
Go and apply all the templates for the root
-->
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<!--
Body styles
-->
<xsl:template match="openpatchlink">
<xsl:if test="$patchfile != ''">
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('max:openfilefront/', $patchname, '/', $patchfile)"/>
</xsl:attribute>
<xsl:apply-templates />
</a>
</xsl:if>
</xsl:template>
<xsl:template match="chapter">
<div class="basestyle">
<xsl:apply-templates/>
</div>
</xsl:template>
<!--
markup elements
-->
<xsl:template match="o">
<xsl:call-template name="object_link">
<xsl:with-param name="objname">
<xsl:if test="@objname"><xsl:value-of select="@objname"/></xsl:if>
</xsl:with-param>
<xsl:with-param name="name">
<xsl:value-of select="."/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- <xsl:template match="seealsolist">
<div class="header2">
<xsl:apply-templates/>
</div>
</xsl:template> -->
<xsl:template match="methodlist">
<div class="boxedtext">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="example">
<div class="body">
<img>
<xsl:attribute name="src">
<xsl:value-of select="@name"/>
</xsl:attribute>
</img>
<br />
</div>
<span class="caption"><xsl:value-of select="."/></span>
</xsl:template>
</xsl:stylesheet>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,99 +0,0 @@
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf200
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid1\'02\'00.;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid2\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid3\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid4\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li2880\lin2880 }{\listname ;}\listid1}}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
\paperw11900\paperh16840\margl1440\margr1440\vieww28300\viewh16300\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0
\f0\i\b\fs36 \cf0 FrameLib Tutorial Map:\
\i0\b0 \
\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0
\ls1\ilvl0
\b \cf0 {\listtext 1. }
\fs28 What is FrameLib (acts as an enticer)
\b0 \
\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\pardirnatural\partightenfactor0
\ls1\ilvl1\cf0 {\listtext \uc0\u8259 }Simple to Complex examples\
{\listtext \uc0\u8259 }Highlight the strengths\
\pard\tx1660\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2160\fi-2160\pardirnatural\partightenfactor0
\ls1\ilvl2\cf0 {\listtext \uc0\u8259 }Replacing poly~ for granulation approaches\
{\listtext \uc0\u8259 }Multi-resolution FFT\
{\listtext \uc0\u8259 }Descriptor-based implementations\
{\listtext \uc0\u8259 }Novel/highly custom processing without having to program externals that deal with DSP\
{\listtext \uc0\u8259 }Sample based scheduling and accuracy\
{\listtext \uc0\u8259 }Even simple tasks such as generating large batches of pseudorandom numbers without uzi, group etc\
{\listtext \uc0\u8259 }Dealing with audio as 'lists'\
\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\pardirnatural\partightenfactor0
\ls1\ilvl1\cf0 {\listtext \uc0\u8259 } \
\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0
\ls1\ilvl0
\b \cf0 {\listtext 2. }Key Concepts (Surface understanding)
\b0 \
\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\pardirnatural\partightenfactor0
\ls1\ilvl1\cf0 {\listtext \uc0\u8259 }\ul Schedulers and Timing\ulnone \
\pard\tx1660\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2160\fi-2160\pardirnatural\partightenfactor0
\ls1\ilvl2\cf0 {\listtext \uc0\u8259 }Three key concepts\
\pard\tx2380\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2880\fi-2880\pardirnatural\partightenfactor0
\ls1\ilvl3\cf0 {\listtext \uc0\u8259 }Everything is timed to sub-sample accuracy\
{\listtext \uc0\u8259 }Nothing happens without a timing source/trigger frame\
{\listtext \uc0\u8259 }Objects that are timing sources are called schedulers\
\pard\tx1660\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2160\fi-2160\pardirnatural\partightenfactor0
\ls1\ilvl2\cf0 {\listtext \uc0\u8259 }Example of random numbers being generated with sample accuracy and a data vector being used as a trigger frame\
\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\pardirnatural\partightenfactor0
\ls1\ilvl1\cf0 {\listtext \uc0\u8259 }\ul Parameters and Tagging\
\pard\tx1660\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2160\fi-2160\pardirnatural\partightenfactor0
\ls1\ilvl2\cf0 \ulnone {\listtext \uc0\u8259 }Two ways to set parameters for objects\
\pard\tx2380\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2880\fi-2880\pardirnatural\partightenfactor0
\ls1\ilvl3\cf0 {\listtext \uc0\u8259 }Enumeration: /parameter <value>\
{\listtext \uc0\u8259 }or through fl.tag~\
\pard\tx1660\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2160\fi-2160\pardirnatural\partightenfactor0
\ls1\ilvl2\cf0 {\listtext \uc0\u8259 }Allude to fl.frommax~ /params mode later in depth\
{\listtext \uc0\u8259 }
\i\b\fs36 Parameters and setting objects <---
\i0\b0\fs28 \
\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0
\ls1\ilvl0
\b \cf0 {\listtext 3. }Passing Data between FrameLib and Max/MSP\
\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\pardirnatural\partightenfactor0
\ls1\ilvl1
\b0 \cf0 {\listtext \uc0\u8259 }fl.frommax~ (reiterate trigger frames fl.frommax~ REQUIRES a trigger)\
{\listtext \uc0\u8259 }fl.tomax~\
{\listtext \uc0\u8259 }fl.source~\
{\listtext \uc0\u8259 }fl.sink~\
\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0
\ls1\ilvl0
\b \cf0 {\listtext 4. }Generators\
\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\pardirnatural\partightenfactor0
\ls1\ilvl1
\b0 \cf0 {\listtext \uc0\u8259 }Reiterate trigger frames and scheduling\
{\listtext \uc0\u8259 }Practice with parameters\
{\listtext \uc0\u8259 }fl.ramp~\
{\listtext \uc0\u8259 }fl.random~\
\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0
\ls1\ilvl0
\b \cf0 {\listtext 5. }The first FrameLib project\
\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\pardirnatural\partightenfactor0
\ls1\ilvl1
\b0 \cf0 {\listtext \uc0\u8259 }Building an 1000 voice granulator\
{\listtext \uc0\u8259 }Cover the basics\
\pard\tx1660\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2160\fi-2160\pardirnatural\partightenfactor0
\ls1\ilvl2\cf0 {\listtext \uc0\u8259 }Scheduling\
{\listtext \uc0\u8259 }Generators\
{\listtext \uc0\u8259 }Parameters and Tagging\
\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\pardirnatural\partightenfactor0
\ls1\ilvl0\cf0 {\listtext 6. }
\b Multichannel expansion of most objects?
\b0 \
\pard\tx1660\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li2160\fi-2160\pardirnatural\partightenfactor0
\ls1\ilvl2\cf0 {\listtext \uc0\u8259 }\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
\
\
\
Number of voice\
\
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,439 @@
{
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
34.0,
79.0,
662.0,
793.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 12.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 1,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 1,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "nobars",
"showrootpatcherontab": 0,
"showontab": 0,
"boxes": [
{
"box": {
"id": "obj-2",
"maxclass": "newobj",
"numinlets": 0,
"numoutlets": 0,
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
34.0,
105.0,
662.0,
767.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 12.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 2,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 2,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "nobars",
"showontab": 1,
"boxes": [
{
"box": {
"hidden": 1,
"id": "obj-1",
"linecount": 7,
"maxclass": "newobj",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
"bang"
],
"patching_rect": [
626.0,
63.0,
19.0,
102.0
],
"text": "loadbang"
}
},
{
"box": {
"border": 0,
"filename": "fl.helpdetails.js",
"id": "obj-4",
"ignoreclick": 1,
"jsarguments": "fl.accumpoint~",
"maxclass": "jsui",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
""
],
"parameter_enable": 0,
"patching_rect": [
15.0,
15.0,
630.0,
150.0
]
}
},
{
"box": {
"fontsize": 13.0,
"id": "obj-3",
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
"patching_rect": [
400.0,
735.0,
245.0,
21.0
],
"text": "Traverse the tabs for more information!",
"textjustification": 2
}
},
{
"box": {
"bgmode": 0,
"border": 0,
"clickthrough": 0,
"enablehscroll": 0,
"enablevscroll": 0,
"id": "obj-128",
"lockeddragscroll": 0,
"maxclass": "bpatcher",
"name": "fldocs.getparams.maxpat",
"numinlets": 1,
"numoutlets": 0,
"offset": [
0.0,
0.0
],
"patching_rect": [
15.0,
167.0,
630.0,
565.0
],
"viewvisibility": 1
}
}
],
"lines": [
{
"patchline": {
"destination": [
"obj-128",
0
],
"hidden": 1,
"midpoints": [
635.5,
168.0,
657.0,
168.0,
657.0,
166.0,
24.5,
166.0
],
"source": [
"obj-1",
0
]
}
}
]
},
"patching_rect": [
2.0,
5.0,
38.0,
22.0
],
"saved_object_attributes": {
"description": "",
"digest": "",
"globalpatchername": "",
"tags": ""
},
"text": "p info"
}
},
{
"box": {
"id": "obj-2",
"maxclass": "newobj",
"numinlets": 0,
"numoutlets": 0,
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
0.0,
26.0,
652.0,
761.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 12.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 1,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 1,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "",
"showontab": 1,
"boxes": [],
"lines": []
},
"patching_rect": [
540.0,
230.0,
25.0,
22.0
],
"saved_object_attributes": {
"description": "",
"digest": "",
"globalpatchername": "",
"tags": ""
},
"text": "p ?"
}
},
{
"box": {
"id": "obj-1",
"maxclass": "newobj",
"numinlets": 0,
"numoutlets": 0,
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
34.0,
105.0,
652.0,
761.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 13.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 2,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 2,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "",
"showontab": 1,
"boxes": [
{
"box": {
"id": "obj-4",
"maxclass": "newobj",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
""
],
"patching_rect": [
15.0,
105.0,
108.0,
23.0
],
"text": "fl.interval~ 44100"
}
},
{
"box": {
"border": 0,
"filename": "fl.helpname.js",
"id": "obj-3",
"ignoreclick": 1,
"jsarguments": "fl.accumpoint~",
"maxclass": "jsui",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
""
],
"parameter_enable": 0,
"patching_rect": [
15.0,
15.0,
435.0,
75.0
]
}
}
],
"lines": []
},
"patching_rect": [
271.0,
230.0,
47.0,
22.0
],
"saved_object_attributes": {
"description": "",
"digest": "",
"fontsize": 13.0,
"globalpatchername": "",
"tags": ""
},
"text": "p basic"
}
}
],
"lines": [],
"dependency_cache": [
{
"name": "fldocs.getparams.maxpat",
"bootpath": "~/FrameLib/Current Test Version/FrameLib/misc",
"patcherrelativepath": "../../../Current Test Version/FrameLib/misc",
"type": "JSON",
"implicit": 1
},
{
"name": "fl.getname.js",
"bootpath": "~/FrameLib/Current Test Version/FrameLib/misc",
"patcherrelativepath": "../../../Current Test Version/FrameLib/misc",
"type": "TEXT",
"implicit": 1
},
{
"name": "fl.helpdetails.js",
"bootpath": "~/FrameLib/Current Test Version/FrameLib/misc",
"patcherrelativepath": "../../../Current Test Version/FrameLib/misc",
"type": "TEXT",
"implicit": 1
}
],
"autosave": 0
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,439 @@
{
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
34.0,
79.0,
662.0,
793.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 12.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 1,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 1,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "nobars",
"showrootpatcherontab": 0,
"showontab": 0,
"boxes": [
{
"box": {
"id": "obj-2",
"maxclass": "newobj",
"numinlets": 0,
"numoutlets": 0,
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
34.0,
105.0,
662.0,
767.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 12.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 2,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 2,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "nobars",
"showontab": 1,
"boxes": [
{
"box": {
"hidden": 1,
"id": "obj-1",
"linecount": 7,
"maxclass": "newobj",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
"bang"
],
"patching_rect": [
626.0,
63.0,
19.0,
102.0
],
"text": "loadbang"
}
},
{
"box": {
"border": 0,
"filename": "fl.helpdetails.js",
"id": "obj-4",
"ignoreclick": 1,
"jsarguments": "fl.chain~",
"maxclass": "jsui",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
""
],
"parameter_enable": 0,
"patching_rect": [
15.0,
15.0,
630.0,
150.0
]
}
},
{
"box": {
"fontsize": 13.0,
"id": "obj-3",
"maxclass": "comment",
"numinlets": 1,
"numoutlets": 0,
"patching_rect": [
400.0,
735.0,
245.0,
21.0
],
"text": "Traverse the tabs for more information!",
"textjustification": 2
}
},
{
"box": {
"bgmode": 0,
"border": 0,
"clickthrough": 0,
"enablehscroll": 0,
"enablevscroll": 0,
"id": "obj-128",
"lockeddragscroll": 0,
"maxclass": "bpatcher",
"name": "fldocs.getparams.maxpat",
"numinlets": 1,
"numoutlets": 0,
"offset": [
0.0,
0.0
],
"patching_rect": [
15.0,
167.0,
630.0,
565.0
],
"viewvisibility": 1
}
}
],
"lines": [
{
"patchline": {
"destination": [
"obj-128",
0
],
"hidden": 1,
"midpoints": [
635.5,
168.0,
657.0,
168.0,
657.0,
166.0,
24.5,
166.0
],
"source": [
"obj-1",
0
]
}
}
]
},
"patching_rect": [
2.0,
5.0,
38.0,
22.0
],
"saved_object_attributes": {
"description": "",
"digest": "",
"globalpatchername": "",
"tags": ""
},
"text": "p info"
}
},
{
"box": {
"id": "obj-2",
"maxclass": "newobj",
"numinlets": 0,
"numoutlets": 0,
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
0.0,
26.0,
652.0,
761.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 12.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 1,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 1,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "",
"showontab": 1,
"boxes": [],
"lines": []
},
"patching_rect": [
540.0,
230.0,
25.0,
22.0
],
"saved_object_attributes": {
"description": "",
"digest": "",
"globalpatchername": "",
"tags": ""
},
"text": "p ?"
}
},
{
"box": {
"id": "obj-1",
"maxclass": "newobj",
"numinlets": 0,
"numoutlets": 0,
"patcher": {
"fileversion": 1,
"appversion": {
"major": 8,
"minor": 0,
"revision": 6,
"architecture": "x64",
"modernui": 1
},
"classnamespace": "box",
"rect": [
34.0,
105.0,
652.0,
761.0
],
"bglocked": 0,
"openinpresentation": 0,
"default_fontsize": 13.0,
"default_fontface": 0,
"default_fontname": "Arial",
"gridonopen": 2,
"gridsize": [
15.0,
15.0
],
"gridsnaponopen": 2,
"objectsnaponopen": 1,
"statusbarvisible": 2,
"toolbarvisible": 1,
"lefttoolbarpinned": 0,
"toptoolbarpinned": 0,
"righttoolbarpinned": 0,
"bottomtoolbarpinned": 0,
"toolbars_unpinned_last_save": 0,
"tallnewobj": 0,
"boxanimatetime": 200,
"enablehscroll": 1,
"enablevscroll": 1,
"devicewidth": 0.0,
"description": "",
"digest": "",
"tags": "",
"style": "",
"subpatcher_template": "",
"showontab": 1,
"boxes": [
{
"box": {
"id": "obj-4",
"maxclass": "newobj",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
""
],
"patching_rect": [
15.0,
105.0,
108.0,
23.0
],
"text": "fl.interval~ 44100"
}
},
{
"box": {
"border": 0,
"filename": "fl.helpname.js",
"id": "obj-3",
"ignoreclick": 1,
"jsarguments": "fl.chain~",
"maxclass": "jsui",
"numinlets": 1,
"numoutlets": 1,
"outlettype": [
""
],
"parameter_enable": 0,
"patching_rect": [
15.0,
15.0,
435.0,
75.0
]
}
}
],
"lines": []
},
"patching_rect": [
271.0,
230.0,
47.0,
22.0
],
"saved_object_attributes": {
"description": "",
"digest": "",
"fontsize": 13.0,
"globalpatchername": "",
"tags": ""
},
"text": "p basic"
}
}
],
"lines": [],
"dependency_cache": [
{
"name": "fldocs.getparams.maxpat",
"bootpath": "~/FrameLib/Current Test Version/FrameLib/misc",
"patcherrelativepath": "../../../Current Test Version/FrameLib/misc",
"type": "JSON",
"implicit": 1
},
{
"name": "fl.getname.js",
"bootpath": "~/FrameLib/Current Test Version/FrameLib/misc",
"patcherrelativepath": "../../../Current Test Version/FrameLib/misc",
"type": "TEXT",
"implicit": 1
},
{
"name": "fl.helpdetails.js",
"bootpath": "~/FrameLib/Current Test Version/FrameLib/misc",
"patcherrelativepath": "../../../Current Test Version/FrameLib/misc",
"type": "TEXT",
"implicit": 1
}
],
"autosave": 0
}
}

Some files were not shown because too many files have changed in this diff Show More