pd-else + libpd on iOS
Hi, I'm trying to use pd-else with libpd on ios.
I'm make
ing pd-else for PLATFORM=x86-64-apple-ios
, copying over the output (objectsdir
) to my bundle resources, building libpd with ADDITIONAL_LDFLAGS=-ldl
, adding with the output to search path PdBase.add(toSearchPath: Bundle.main.resourcePath)
When I'm trying to open a patch which uses pd-else
Some attempts to find files are successful:
2024-04-16 21:14:27.771002+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.pd and succeeded
2024-04-16 21:14:27.771098+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.pd and succeeded
But most fails
2024-04-16 21:14:27.751266+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.darwin-amd64-32.so and failed
2024-04-16 21:14:27.751597+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.darwin-amd64-0.so and failed
2024-04-16 21:14:27.751739+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.darwin-fat-32.so and failed
2024-04-16 21:14:27.751876+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.darwin-fat-0.so and failed
2024-04-16 21:14:27.752090+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.d_amd64 and failed
2024-04-16 21:14:27.752374+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.d_fat and failed
2024-04-16 21:14:27.752664+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.pd_darwin and failed
2024-04-16 21:14:27.752902+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~/out~.darwin-amd64-32.so and failed
2024-04-16 21:14:27.753208+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~/out~.darwin-amd64-0.so and failed
2024-04-16 21:14:27.753470+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~/out~.darwin-fat-32.so and failed
2024-04-16 21:14:27.770480+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~/out~.darwin-fat-0.so and failed
2024-04-16 21:14:27.770636+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~/out~.d_amd64 and failed
2024-04-16 21:14:27.770790+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~/out~.d_fat and failed
2024-04-16 21:14:27.770900+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~/out~.pd_darwin and failed
2024-04-16 21:14:27.771002+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.pd and succeeded
2024-04-16 21:14:27.771098+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/out~.pd and succeeded
2024-04-16 21:14:27.771192+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-amd64-32.so and failed
2024-04-16 21:14:27.771485+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-amd64-0.so and failed
2024-04-16 21:14:27.771726+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-fat-32.so and failed
2024-04-16 21:14:27.771987+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-fat-0.so and failed
2024-04-16 21:14:27.772286+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.d_amd64 and failed
2024-04-16 21:14:27.772645+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.d_fat and failed
2024-04-16 21:14:27.773142+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.pd_darwin and failed
2024-04-16 21:14:27.773783+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-amd64-32.so and failed
2024-04-16 21:14:27.774359+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-amd64-0.so and failed
2024-04-16 21:14:27.774935+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-fat-32.so and failed
2024-04-16 21:14:27.775535+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-fat-0.so and failed
2024-04-16 21:14:27.776348+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.d_amd64 and failed
2024-04-16 21:14:27.776992+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.d_fat and failed
2024-04-16 21:14:27.777360+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.pd_darwin and failed
2024-04-16 21:14:27.777810+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.pd and failed
2024-04-16 21:14:27.778584+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.pat and failed
2024-04-16 21:14:27.779417+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/else/lb.pd and failed
2024-04-16 21:14:27.780202+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-amd64-32.so and failed
2024-04-16 21:14:27.781051+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-amd64-0.so and failed
2024-04-16 21:14:27.781778+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-fat-32.so and failed
2024-04-16 21:14:27.782005+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-fat-0.so and failed
2024-04-16 21:14:27.782436+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.d_amd64 and failed
2024-04-16 21:14:27.782651+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.d_fat and failed
2024-04-16 21:14:27.788387+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.pd_darwin and failed
2024-04-16 21:14:27.788947+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-amd64-32.so and failed
2024-04-16 21:14:27.789356+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-amd64-0.so and failed
2024-04-16 21:14:27.789586+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-fat-32.so and failed
2024-04-16 21:14:27.789874+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-fat-0.so and failed
2024-04-16 21:14:27.790175+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.d_amd64 and failed
2024-04-16 21:14:27.790421+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.d_fat and failed
2024-04-16 21:14:27.790769+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.pd_darwin and failed
2024-04-16 21:14:27.791501+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.pd and failed
2024-04-16 21:14:27.792396+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.pat and failed
2024-04-16 21:14:27.793014+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/else/lb.pd and failed
2024-04-16 21:14:27.793494+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-amd64-32.so and failed
2024-04-16 21:14:27.795343+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-amd64-0.so and failed
2024-04-16 21:14:27.795655+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-fat-32.so and failed
2024-04-16 21:14:27.796345+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.darwin-fat-0.so and failed
2024-04-16 21:14:27.797063+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.d_amd64 and failed
2024-04-16 21:14:27.797921+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.d_fat and failed
2024-04-16 21:14:27.798883+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb.pd_darwin and failed
2024-04-16 21:14:27.802219+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-amd64-32.so and failed
2024-04-16 21:14:27.802831+0300 YoganOme[72363:460962] Pd: verbose(4): tried /Users/anvlkv/Library/Developer/CoreSimulator/Devices/19822801-5565-453D-802D-5533CB03027B/data/Containers/Bundle/Application/B61B55C5-FEE9-4A99-964E-D45932D58CE1/YoganOme.app/else/else/lb/lb.darwin-amd64-0.so and failed
2024-04-16 21:14:27.803686+0300 YoganOme[72363:460962] Pd: verbose(0): else/lb
2024-04-16 21:14:27.804195+0300 YoganOme[72363:460962] Pd: error: ... couldn't create
And indeed there're no such files in the output, there're some with _darwin
but not with specific architecture. Also there's no else/else
subdirectory
Could anyone give a hint?
MIDI port names on Linux
Hi all,
I've built 3 small Pd patches to fit in my workflow, e.g. to convert one MIDI controller's messages into OSC, one to light up the LEDs of another controller, one to control a pedal, etc.
If I open 2 instances of Pd, each with its own MIDI (or audio, for that matter) inputs and outputs, Alsa-Midi refers to them as follows:
$ aconnect -l
client 128: 'Pure Data' [type=user,pid=260121]
0 'Pure Data Midi-In 1'
1 'Pure Data Midi-Out 1'
client 129: 'Pure Data' [type=user,pid=260548]
0 'Pure Data Midi-In 1'
1 'Pure Data Midi-Out 1'
2 'Pure Data Midi-Out 2'
The client name is the same, and the client ID cannot be predicted - depending on which controllers I have plugged in and in which order, it might be any number incremented from 128. The tools that should remember and restore the patching (jack_patch
, Ray Session and the like) struggle the same as I do to figure out which instance of Pd to connect to which controllers.
I want to keep these patches in separate PD instances so I can mix and match, and not necessarily have all of them open, and always rely on the specific instance's MIDI input number and output number.
So, here's my question: any idea if it is possible to rename Pd's alsa-midi ports? I found surprisingly little online about this issue, yet I can't really believe that nobody met this issue before...
I've never seen the command line option -jackname
to actually have an effect, but in any case Pd does not use Jack MIDI as far as I understand.
I've been thinking about running the patch in a libpd wrapper instead, e.g. from a Python script in which I could specify the client's and port names, but I'm struggling a bit to install pylibpd.
space in OSC node identifier?
@jameslo said:
I'd still like to know if spaces are legal and possible with [oscformat] though.
I'm a bit surprised to see this, but in fact, according to the OSC spec 1.0, spaces are not allowed in OSC command paths.
https://ccrma.stanford.edu/groups/osc/spec-1_0.html#osc-address-spaces-and-osc-addresses
Each OSC Method and each OSC Container other than the root of the tree has a symbolic name, an ASCII string consiting of printable characters other than the following:
-character- -name- -ASCII code (decimal)- ’ ’ space 32 # number sign 35 * asterisk 42 , comma 44 / forward slash 47 ? question mark 63 [ open bracket 91 ] close bracket 93 { open curly brace 123 } close curly brace 125
So Pd has no obligation to support spaces here.
I suppose it depends on the software's OSC handler. SuperCollider doesn't complain (contrary to the OSC spec):
n = NetAddr.localAddr; // send to myself
o = OSCFunc({ |msg|
msg.postln;
o.free;
}, '/test space');
n.sendMsg('/test space', 1);
prints: [ /test space, 1 ]
I did some other tests:
- "symbol patch 1" --> [list fromsymbol]: escape char 92 is not in the ASCII list.
- list "112 97 116 99 104 32 49" --> [list tosymbol]: resulting symbol prints with a backslash. I don't know if the backslash is stored internally, or if it's inserted only for the printed output. A quick look at the source code in x_list.c suggests that the backslash is not stored internally.
- list "112 97 116 99 104 32 49" --> [list tosymbol] --> [list prepend set] --> [list trim] --> [oscformat]: The printed bytes from oscformat do include char 92. But I couldn't see in the source code where the space is being escaped. (This long way around to build the "set" message is to be certain that there's no backslash in my input -- the backslash must be generated internally somewhere..)
So [oscformat] seems to be where the problem is happening -- but the OSC spec makes no promises that spaces will work, so there wouldn't be any justification to log a bug.
hjh
faustgen~ - the FAUST compiler embedded in a Pure Data external
Hi all
@Pierre-Guillot this is a terrific project
Thanks for sharing!
I've been using the HOA library and some older stuff form you and others at CICM
Now, I've installed from Deken the faustgen~ object, and as soon as I open the faustgen~-help.pd it delivers tons of errors to the console:
menu_doc_open /Library/Pd/faustgen~ faustgen~-help.pd
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/Pd/faustgen~/faustgen~.pd_darwin: dlopen(/Library/Pd/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/Pd/faustgen~/faustgen~.pd_darwin
Reason: image not found
faustgen~ examples/gain -vec -lv 1
... couldn't create
... you might be able to track this down from the Find menu.
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/Pd/faustgen~/faustgen~.pd_darwin: dlopen(/Library/Pd/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/Pd/faustgen~/faustgen~.pd_darwin
Reason: image not found
faustgen~ examples/dummy
... couldn't create
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/Pd/faustgen~/faustgen~.pd_darwin: dlopen(/Library/Pd/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/Pd/faustgen~/faustgen~.pd_darwin
Reason: image not found
faustgen~ examples/gain
... couldn't create
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/Pd/faustgen~/faustgen~.pd_darwin: dlopen(/Library/Pd/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/Pd/faustgen~/faustgen~.pd_darwin
Reason: image not found
faustgen~ examples/parameters
... couldn't create
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/Pd/faustgen~/faustgen~.pd_darwin: dlopen(/Library/Pd/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/Pd/faustgen~/faustgen~.pd_darwin
Reason: image not found
faustgen~ examples/parameters
... couldn't create
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/PD/faustgen~/faustgen~.pd_darwin: dlopen(/Library/PD/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/PD/faustgen~/faustgen~.pd_darwin
Reason: image not found
/Library/Pd/faustgen~/faustgen~.pd_darwin: dlopen(/Library/Pd/faustgen~/faustgen~.pd_darwin, 10): Library not loaded: @rpath/libRemarks.dylib
Referenced from: /Library/Pd/faustgen~/faustgen~.pd_darwin
Reason: image not found
faustgen~ examples/resonator
... couldn't create
Tries uninstalling, but nothing.
Any clue?
Thanks in advance.
Best,
Alexis
No sound. Failed install?
Neither the PR to support pulseaudio in portaudio https://github.com/PortAudio/portaudio/pull/336 nor the pr to support it in pure-data have been merged
https://github.com/pure-data/pure-data/pull/963
https://github.com/pure-data/pure-data/issues/846
(in light of which, I'm not really sure what the point of using portaudio on linux is)..
I haven't tried to get OSS to work (if it's even installed?) but I have gotten alsa to work by using the -alsa
flag on the command line, provided no other applications are using the sound card. However if I change the sample rate while pd is running audio stops working.
How to make the outlet port "hot area" a bit larger?
@ddw_music said:
Does anyone know offhand where to hack the hot zone size, so that maybe one does not have to have superhuman precision?
searching sources for
mouse
I found in https://github.com/pure-data/pure-data/blob/20334410c20948f14f5c1d8ae5ed992717b83291/tcl/pd-gui.tcl
# mouse cursors for all the different modes
[...]
set ::cursor_editmode_connect "circle"
.
Then searching for
cursor_editmode_connect
I found probably relevant
https://github.com/pure-data/pure-data/blob/c4ae1bd8df436de15c0a80f303ae33b5f3569088/src/g_editor.c
/* look for an outlet */
else if (hitobj && (noutlet = obj_noutlets(hitobj)) &&
ypos >= y2 - (OHEIGHT*x->gl_zoom) + x->gl_zoom)
{
int width = x2 - x1;
int iow = IOWIDTH * x->gl_zoom;
int nout1 = (noutlet > 1 ? noutlet - 1 : 1);
int closest = ((xpos-x1) * (nout1) + width/2)/width;
int hotspot = x1 +
(width - iow) * closest / (nout1);
if (closest < noutlet &&
xpos >= (hotspot - x->gl_zoom) &&
xpos <= hotspot + (iow + x->gl_zoom))
{
if (doit)
{
[...]
/* not in an outlet; select and move */
...Searching the sources for IOWITH
or better OHEIGHT
has this result among others:
https://github.com/pure-data/pure-data/blob/5462d1eae0ad9f139997d56d459c212e797d96be/src/g_canvas.h
* --------------------- geometry ---------------------------- */
#define IOWIDTH 7 /* width of an inlet/outlet in pixels */
#define IHEIGHT 3 /* height of an inlet in pixels */
#define OHEIGHT 3 /* height of an outlet in pixels */
#define IOMIDDLE ((IOWIDTH-1)/2)
#define GLIST_DEFGRAPHWIDTH 200
#define GLIST_DEFGRAPHHEIGHT 140
#define GLIST_DEFCANVASXLOC 0
#ifdef __APPLE__
#define GLIST_DEFCANVASYLOC 22
#else
#define GLIST_DEFCANVASYLOC 50
#endif
.
(Not sure how the apparently different size of inlets and outlets hot area is coded? Inlets appear to be 'magnetic'. )
Wish there was a shortcut to open objects-help.
Could belong here:
https://github.com/pure-data/pure-data/blob/90ad8005199605095e49dbbf1daf4f032211b7f4/tcl/pd_bindings.tcl
How to smoothe out Arrays ?
@lacuna said:
Hard to tell without more details. I also have no experience with motorfader-hacks, but am interested.
At a precision of 1600 values it is very likely some subtle hardware bouncing, resonance of motor, dirt or similar ?
How slow do you drive them?
I would maybe try to eleminate the discontinuity on the hardware / measurement side, instead of cheating.
Do several measurements, instead of one shot only.
Also try to drive it from Pd instead of Cubase. Very slowly. Calibrating. Remember, there is some latency, too.Anyway, this is what you where asking for, I think:
new romantics )
@lacuna Hey, thank you very much, for your help and the patch!
I will now describe more precisely, what I would like to do. I thought, it would be a little bit off topic, because it is a bigger project.
Also, I think, I described it not correctly with the motorfader recording. That isn't true. My english is not the best, so my formulations arent always on point, but I will try my best.
So, to describe my Project, I am working on:
I have an old 20 years old "Steinberg Houston" Midi-Controller, which works via the Mackie Protocoll. It was specifically designed as a Cubase / Nuendo Controller back in the days. Cubase / Nuendo are also, as far as I know, the only DAWs with which the controller is working nowadays.
Almost all DAWs are supporting the specifications of a "Mackie Universal Pro" Controller. So I would like to program a Midi-Data Converter, so I can use my controller with other DAWs as a "Mackie Universal Pro" Controller.
At the moment I already found out, which midi Data the faders send and which midi data the DAW Cubase sends to the Controller. I also converted the Midi Data, so that I can use the controller faders, while Cubase thinks, it is a Mackie Universal Pro.
So, but the problem, why I started this thread is, that I noticed, that the Mackie Controller needs to get different values from the DAW to get the right fadermovement done, than my Steinberg Houston. For example: When I set my Fader in the DAW to 6 dBFS, my Conroller Fader moves correctly to 6 dBFS, as that is the highest fader value in Cubase. Also the other way around. If I set the Fader in Cubase to -00 dBFS, also my Fader of the controller is at the right position. So the lowest and highest values are correct. But if I set -20 dBFS in Cubase via Mackie UP Mode, my controller sets the fader to -10 dBFS. In the original Cubase "Steinberg Houston" mode, the fader movements are very precise and always are reflecting the number, which I set in the mixer in Cubase.
So my Idea was, to first send all Pitchbend values from Pure Data via Midi to Cubase in Houston Mode. I tricked Cubase in thinking, I would use the Houston Controller, but used Pure Data instead, to be very precise. Then in the preferences of cubase, I deleted all automation smoothing and set up a tempo in Cubase and with Metro in Pure Data, so that each 8th note, one pitch bend value is send to Cubase. and I synchronised both my DAW Cubase and Pure Data with a C3, sent from Cubase, when I start the Playback in Cubase. This C3 is then sent to Pure Data and than acts as a bang in PD to start the metro and sends the Midi Values. This midi Values are written then in Cubase as a Automation.
Then after that, I did the same process again, and recorded the Automation Values in Pure Data. But these values arent as smoothe as I would like to have them, even I recorded them that slow, that I set a metro of 8 per second which is for the 14 Bit values something like half an hour. The faders are the most important feature of my Controller for me, so I take the right amount of time to get them very precisely.
Between: I also found out the SysEx values to display what I want on my two rows houston display with Pure Data which was fun.
planifolia (0.1) [release]
Hello!
I have just released in github and deken the abstraction pack 'planifolia' (v.0.1).
Planifolia
(from the second name of the orchid 'Vanilla planifolia') is a set of Pure Data abstractions designed to work without any compiled externals.
The abstractions implement a series of useful operations like arbitrary unary and binary operations in lists and arrays, quicksort, logical operators to check equality of arbitrary datatypes, easy OSC formatting/routing, etc. It also comes with toggle-based matrix GUI (designed to work be compatible with iemmatrix
objects) and a matrix based step sequencer with some non usual features (independent tempo, beat and duration patterns, col/row/colrow modes, nice colors, etc).
Some bugs may still be there...
abstractions
abstraction | description |
---|---|
[any.==] |
compares datatypes |
[array.binop] |
binary operations in arrays |
[array.rand] |
random populates an arrays |
[array.unop] |
unary operations in arrays |
[ls.binop] |
binary operations in list |
[ls.butlast] |
list but the last element |
[ls.choose] |
random choose an element of the list |
[ls.getRotate] |
N rotated element of a list |
[ls.group] |
groups elements into a list |
[ls.iter] |
list iteration |
[ls.last] |
last element of the list |
[ls.max] |
greatest element of a list |
[ls.mean] |
mean of the floats in a list |
[ls.min] |
minimum element in a list |
[ls.mode] |
mode of a list |
[ls.quicksort] |
quicksort algorithm implemented as a vanilla abstraction |
[ls.removeAt] |
removes element at index |
[ls.rotate] |
N rotation of a list |
[ls.scramble] |
randomize elements in a list |
[ls.ser.arithm] |
build an artithmetic series list |
[ls.splice] |
replaces element in a list with anothe list |
[ls.unop] |
perform unary operation in elements of a list |
[mtxgui] |
vanilla matrix interface |
[mtxstep] |
vanilla step sequencer with some non usual features |
[slash.oscformat] |
tool to format OSC messages |
[slash.oscroute] |
tool to route OSC messages |
[symbol.==] |
test if two symbols are equal |
[symbol.split] |
splits a symbol according to a char |
Brazilian percussion samples were gently provided by Chico Correa youtube: /c/ChicoCorrea
How to save sounds generated in Pure Data as virtual instruments or otherwise capitalize on them in Cakewalk?
I am learning the basic concepts of music production by exploring the capabilities of Cakewalk by Bandlab as well as Pure Data. My question is about how to capitalize on the sounds one generates in Pure Data.
I assume that although it is possible to write music entirely in Pure Data, most producers in some fashion export sounds from Pure Data into a DAW for further arrangement. The most sensible way to do this that I can see would be to make virtual instruments out of one's Pure Data creations.
Suppose I create a sound I like in Pure Data, either using a synthesizer written in Pure Data, or by some unstructured process of playing with sinesums/drawing freehand sound waves in tables/etc. How can I make a custom virtual instrument in Cakewalk from such a sound? I found this (
) tutorial for creating virtual instruments, but it doesn't discuss Cakewalk, and the tutorial involves audio recording from a physical instrument. Would sound generated in Pure Data have to be recorded in order to be ported to a DAW, or could it be transferred through an entirely digital process, since the sound in Pure Data originates digitally?If this is not the right way to go about utilizing Pure Data sounds in a DAW, then what is?
JASS, Just Another Synth...Sort-of, codename: Gemini (UPDATED: esp with midi fixes)
JASS, Just Another Synth...Sort-of, codename: Gemini (UPDATED TO V-1.0.1)
jass-v1.0.1( esp with midi fixes).zip
1.0.1-CHANGES:
- Fixed issues with midi routing, re the mode selector (mentioned below)
- Upgraded the midi mode "fetch" abstraction to be less granular
- Fix (for midi) so changing cc["14","15","16"] to "rnd" outputs a random wave (It has always done this for non-midi.)
- Added a midi-mode-tester.pd (connect PD's midi out to PD's midi in to use it)
- Upgrade: cc-56 and cc-58 can now change pbend-cc and mod-cc in all modes
- Update: the (this) readme
INFO: Values setting to 0 on initial cc changes is (given midi) to be expected.
JASS is a clone-based, three wavetable, 16 voice polyphonic, Dual-channel synth.
With...
- The initial, two wavetables combined in 1 of 5 possible ways per channel and then adding those two channels. Example: additive+frequency modulation, phase+pulse-modulation, pulse-modulation+amplitude modulation, fm+fm, etc
- The third wavetable is a ring modulator, embedded inside each mod type
- 8 wave types, including a random with a settable number of partials and a square with a settable dutycycle
- A vcf~ filter embedded inside each modulation type
- The attack-decay-release, cutoff, and resonance ranges settable so they immediately and globally recalculate all relevant values
- Four parameters /mod type: p1,p2, cutoff, and resonance
- State-saving, at both the global level (wavetables, env, etc.), as well as, multiple "substates" of for-each-mod-type settings.
- Distortion, reverb
- Midiin, paying special attention to the use of 8-knob, usb, midi controllers (see below for details)
- zexy-limiters, for each channel, after the distortion, and just before dac~
Instructions
Requires: zexy
for-entire-state
- O: Open preset. "default.txt" is loaded by...default
- S: Save preset (all values incl. the multiple substates) (Note: I have Not included any presets, besides the default with 5 substates.)
- SA: Save as
- TEST: A sample player
- symbol: The filename of the currently loaded preset
- CL: Clear, sets all but a few values to 0
- U: Undo CL
- distortion,reverb,MASTER: operate on the total out, just before the limiter.
- MIDI (Each selection corresponds to a pgmin, 123,124,125,126,127, respectively, see below for more information)
- X: Default midi config, cc[1,7,8-64] available
- M: Modulators;cc[10-17] routed to ch1&ch2: p1,p2,cutoff,q controls
- E: Envelopes; cc[10-17] routed to filter- and amp-env controls
- R: Ranges; cc[10-17] routed to adr-min/max,cut-off min/max, resonance min/max, distortion, and reverb
- O: Other; cc[10-17] routed to rngmod controls, 3 wavetypes, and crossfade
- symbol: you may enter 8 cc#'s here to replace the default [10-17] from above to suit your midi-controller's knob configuration; these settings are saved to file upon entry
- vu: for total out to dac~
for-all-mod-types
- /wavetable
- graph: of the chosen wavetype
- part: partials, # of partials to use for the "rn" wavetype; the resulting, random sinesum is saved with the preset
- duty: dutycycle for the "du" wavetype
- type: sin | square | triangle | saw | random | duty | pink (pink-noise: a random sinesum with 128 partials, it is not saved with the preset) | noise (a random sinesum with 2051 partials, also not saved)
- filter-env: (self-explanatory)
- amp-env: (self-explanatory)
- rngmod: self-explanatory, except "sign" is to the modulated signal just before going into the vcf~
- adr-range: min,max[0-10000]; changing these values immediately recalculates all values for the filter- and amp-env's scaled to the new range
- R: randomizes all for-all-mod-types values, but excludes wavetype "noise"; rem: you must S or SA the preset to save the results
- U: Undoes R
for-each-mod-type
- mod-type-1: (In all cases, wavetable1 is the carrier and wavetable2 is the modulator); additive | frequency | phase | pulse | amplitude modulation
- mod-type-2: Same as above; mod-type-2 May be the same type as mod-type-1
- crossfade: Between ch1 and ch2
- detune: Applied to the midi pitch going into ch2
- for-each-clone-type controls:
- p1,p2: (self-explanatory)
- cutoff, resonance: (self-explanatory)
- navigation: Cycles through the saved substates of for-each-mod-type settings (note: they are lines on the end of a [text])
- CP: Copy the current settings, ie. add a line to the end of the [text] identical to the current substate
- -: Delete the current substate
- R: Randomize all (but only a few) substate settings
- U: Undo R
- cut-rng: min,max[0-20000] As adr-range above, this immediately recalculates all cutoff values
- res-rng: min,max[0-100], same as previously but for q
- pbend: cc,rng: the pitchwheel may be assigned to a control by setting this to a value >7 (see midi table below for possibilities); rng is in midi pitches (+/- the value you enter)
- mod-cc: the mod-wheel may be assigned to a control [7..64] by setting this value
midi-implementation
name | --- | Description |
---|---|---|
sysex | not supported | |
pgmin | 123,124,125,126,127; They set midi mode | |
notein | 0-127 | |
bendin | pbend-cc=7>pitchbend; otherwise to the cc# from below | |
touch | not supported | |
polytouch | not supported |
cc - basic (for all midi-configs)
# | name | --- | desciption |
---|---|---|---|
1 | mod-wheel | (assignable) | |
7 | volume | Master |
cc - "X" mode/pgmin=123
cc | --- | parameter |
---|---|---|
8 | wavetype1 | |
9 | partials 1 | |
10 | duty 1 | |
11 | wavetype2 | |
12 | partials 2 | |
13 | duty 2 | |
14 | wavetype3 | |
15 | partials 3 | |
16 | duty 3 | |
17 | filter-att | |
18 | filter-dec | |
19 | filter-sus | |
20 | filter-rel | |
21 | amp-att | |
22 | amp-dec | |
23 | amp-sus | |
24 | amp-rel | |
25 | rngmod-freq | |
26 | rngmod-sig | |
27 | rngmod-filt | |
28 | rngmod-amp | |
29 | distortion | |
30 | reverb | |
31 | master | |
32 | mod-type 1 | |
33 | mod-type 2 | |
34 | crossfade | |
35 | detune | |
36 | p1-1 | |
37 | p2-1 | |
38 | cutoff-1 | |
39 | q-1 | |
40 | p1-2 | |
41 | p2-2 | |
42 | cutoff-2 | |
43 | q-2 | |
44 | p1-3 | |
45 | p2-3 | |
46 | cutoff-3 | |
47 | q-3 | |
48 | p1-4 | |
49 | p2-4 | |
50 | cutoff-4 | |
51 | q-4 | |
52 | p1-5 | |
53 | p2-5 | |
54 | cutoff-5 | |
55 | q-5 | |
56 | pbend-cc | |
57 | pbend-rng | |
58 | mod-cc | |
59 | adr-rng-min | |
60 | adr-rng-max | |
61 | cut-rng-min | |
62 | cut-rng-max | |
63 | res-rng-min | |
64 | res-rng-max |
cc - Modes M, E, R, O
Jass is designed so that single knobs may be used for multiple purposes without reentering the previous value when you turn the knob, esp. as it pertains to, 8-knob controllers.
Thus, for instance, when in Mode M(pgm=124) your cc send the signals as listed below. When you switch modes, that knob will then change the values for That mode.
In order to do this, you must turn the knob until it hits the previously stored value for that mode-knob.
After hitting that previous value, it will begin to change the current value.
cc - Modes M, E, R, O assignments
Where [10..17] may be the midi cc #'s you enter in the MIDI symbol field (as mentioned above) aligned to your particular midi controller.
cc# | --- | M/pgm=124 | --- | E/pgm=125 | --- | R/pgm=126 | --- | O/pgm=127 |
---|---|---|---|---|---|---|---|---|
10 | ch1:p1 | filter-env:att | adr-rng-min | rngmod:freq | ||||
11 | ch1:p2 | filter-env:dec | adr-rng-max | rngmod:sig | ||||
12 | ch1:cutoff | filter-env:sus | cut-rng-min | rngmod:filter | ||||
13 | ch1:q | filter-env:re | cut-rng-max | rngmod:amp | ||||
14 | ch2:p1 | amp-env:att | res-rng-min | wavetype1 | ||||
15 | ch2:p2 | amp-env:dec | res-rng-max | wavetype2 | ||||
16 | ch2:cutoff | amp-env:sus | distortion | wavetype3 | ||||
17 | ch2:q | amp-env:rel | reverb | crossfade |
In closing
If you have anywhere close to as much fun (using, experimenting with, trying out, etc.) this patch, as I had making it, I will consider it a success.
For while an arduous learning curve (the first synth I ever built), it has been an Enormous pleasure to listen to as I worked on it. Getting better and better sounding at each pass.
Rather, than say to much, I will say this:
Enjoy. May it bring a smile to your face.
Peace through love of creating and sharing.
Sincerely,
Scott