Standalone plugin app with AUv3 extension fails after successful build

Hello,

I managed to compile MaxMSP exported code via Projucer into Standalone plugin with IAA support and AUv3 extension. However, on my iPhone after uploading the archive to TestFlight and installing it - I can’t open the standalone app. Also, AUv3 doesn’t load in AUM or AudioBus.

In AUM it writes:

Couldn’t communicate with a helper application

I added an exporter for macOS in Projucer and made a build for macOS. After exporting the application with Device ID signing I can’t open it too. Here is the error log on Mac machine:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               SASER [76638]
Path:                  /Users/USER/Library/Mobile Documents/com~apple~CloudDocs/*/SASER.app/Contents/MacOS/SASER
Identifier:            com.CompositorSoftware.SASER
Version:               2.0.4 (1)
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2023-07-07 15:54:31.2495 +0300
OS Version:            macOS 13.4.1 (22F82)
Report Version:        12
Anonymous UUID:        14AD52F4-15C7-5A00-1DDE-5B472B6CF340

Sleep/Wake UUID:       1988CCD3-F5CA-482A-842D-986B80FB6A3C

Time Awake Since Boot: 840000 seconds
Time Since Wake:       805239 seconds

System Integrity Protection: enabled

Crashed Thread:        0  JUCE Message Thread  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000040
Exception Codes:       0x0000000000000001, 0x0000000000000040

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [76638]

VM Region Info: 0x40 is not in any region.  Bytes before following region: 105553518919616
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      MALLOC_NANO (reserved)   600018000000-600020000000 [128.0M] rw-/rwx SM=NUL  ...(unallocated)

Kernel Triage:
VM - (arg = 0x0) pmap_enter retried due to resource shortage
VM - (arg = 0x0) pmap_enter retried due to resource shortage
VM - (arg = 0x0) pmap_enter retried due to resource shortage


Thread 0 Crashed:: JUCE Message Thread Dispatch queue: com.apple.main-thread
0   SASER                         	       0x10214f28c 0x10201c000 + 1258124
1   SASER                         	       0x10202d3b8 0x10201c000 + 70584
2   SASER                         	       0x10214fb98 0x10201c000 + 1260440
3   SASER                         	       0x10203a148 0x10201c000 + 123208
4   SASER                         	       0x10202a438 0x10201c000 + 58424
5   SASER                         	       0x102021460 0x10201c000 + 21600
6   SASER                         	       0x102020648 0x10201c000 + 17992
7   SASER                         	       0x10201f824 0x10201c000 + 14372
8   SASER                         	       0x1020eb114 0x10201c000 + 848148
9   SASER                         	       0x1021fab1c 0x10201c000 + 1960732
10  SASER                         	       0x102029cc0 0x10201c000 + 56512
11  dyld                          	       0x184b4bf28 start + 2236

Thread 1:
0   libsystem_pthread.dylib       	       0x184e9ed8c start_wqthread + 0

Thread 2:
0   libsystem_pthread.dylib       	       0x184e9ed8c start_wqthread + 0

Thread 3:
0   libsystem_pthread.dylib       	       0x184e9ed8c start_wqthread + 0

Thread 4:: CVDisplayLink
0   libsystem_kernel.dylib        	       0x184e67710 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x184ea45a0 _pthread_cond_wait + 1276
2   CoreVideo                     	       0x18cc30c64 CVDisplayLink::waitUntil(unsigned long long) + 324
3   CoreVideo                     	       0x18cc2fd34 CVDisplayLink::runIOThread() + 504
4   libsystem_pthread.dylib       	       0x184ea3fa8 _pthread_start + 148
5   libsystem_pthread.dylib       	       0x184e9eda0 thread_start + 8

Thread 5:: caulk.messenger.shared:17
0   libsystem_kernel.dylib        	       0x184e63e90 semaphore_wait_trap + 8
1   caulk                         	       0x18e4d7024 caulk::semaphore::timed_wait(double) + 212
2   caulk                         	       0x18e4d6ed8 caulk::concurrent::details::worker_thread::run() + 36
3   caulk                         	       0x18e4d6bc8 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
4   libsystem_pthread.dylib       	       0x184ea3fa8 _pthread_start + 148
5   libsystem_pthread.dylib       	       0x184e9eda0 thread_start + 8

Thread 6:: com.apple.audio.IOThread.client
0   libsystem_kernel.dylib        	       0x184e63f14 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	       0x184e76240 mach_msg2_internal + 80
2   libsystem_kernel.dylib        	       0x184e6cb78 mach_msg_overwrite + 604
3   libsystem_kernel.dylib        	       0x184e64290 mach_msg + 24
4   CoreAudio                     	       0x18728f624 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 104
5   CoreAudio                     	       0x18717cd14 HALC_ProxyIOContext::IOWorkLoop() + 3516
6   CoreAudio                     	       0x18717b87c invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 116
7   CoreAudio                     	       0x1872de564 HALB_IOThread::Entry(void*) + 88
8   libsystem_pthread.dylib       	       0x184ea3fa8 _pthread_start + 148
9   libsystem_pthread.dylib       	       0x184e9eda0 thread_start + 8


Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000000   x1: 0x00000000000000d6   x2: 0x4338000000000023   x3: 0x433800000000024f
    x4: 0x433800000000015f   x5: 0x0000000012200000   x6: 0x0000600001331f80   x7: 0x0000000000000000
    x8: 0x000000003f666666   x9: 0x000000000000024f  x10: 0x0000000000000008  x11: 0x0000000000000000
   x12: 0x0000000000080000  x13: 0x0000000000000000  x14: 0x0000000000000000  x15: 0x0000000000000000
   x16: 0x0000000000000000  x17: 0x0000000000000002  x18: 0x0000000000000000  x19: 0x0000000000000000
   x20: 0x000000000000024f  x21: 0x4338000000000023  x22: 0x00000000000000d6  x23: 0x0000000102258858
   x24: 0x0000000000000001  x25: 0x0000000102257000  x26: 0x000000000000015f  x27: 0x0000000102256fd0
   x28: 0x000000010220d000   fp: 0x000000016dde3280   lr: 0x000000010202d3b8
    sp: 0x000000016dde3210   pc: 0x000000010214f28c cpsr: 0x20001000
   far: 0x0000000000000040  esr: 0x92000006 (Data Abort) byte read Translation fault

Binary Images:
       0x10201c000 -        0x10223bfff com.CompositorSoftware.SASER (2.0.4) <ce4a0700-b500-3600-890e-bb5f774c2181> /Users/USER/Library/Mobile Documents/com~apple~CloudDocs/*/SASER.app/Contents/MacOS/SASER
       0x105cb0000 -        0x105cbbfff libobjc-trampolines.dylib (*) <570c31f7-94c6-3b86-ae44-1694db0a4bcd> /usr/lib/libobjc-trampolines.dylib
       0x184b46000 -        0x184bd4553 dyld (*) <2237410f-d39c-30ce-9a94-13aacb66b766> /usr/lib/dyld
       0x184e9d000 -        0x184ea9fff libsystem_pthread.dylib (*) <46d35233-a051-3f4f-bba4-ba56dddc4d1a> /usr/lib/system/libsystem_pthread.dylib
       0x184e63000 -        0x184e9cfe7 libsystem_kernel.dylib (*) <34a49b54-82b2-37a1-9314-f6a4a2bb3ff8> /usr/lib/system/libsystem_kernel.dylib
       0x18cc2d000 -        0x18cc8efff com.apple.CoreVideo (1.8) <23a7c243-4552-3f81-b4f7-b9723ee40a45> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
       0x18e4d5000 -        0x18e4fdfff com.apple.audio.caulk (1.0) <d793971d-25be-323d-83a4-cc72fadafe8d> /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk
       0x186fa0000 -        0x187633fff com.apple.audio.CoreAudio (5.0) <4c6d842e-31f6-30ca-984e-6281d387fe72> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1.2G resident=0K(0%) swapped_out_or_unallocated=1.2G(100%)
Writable regions: Total=1.6G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.6G(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Activity Tracing                   256K        1 
ColorSync                          464K       23 
CoreGraphics                        16K        1 
Foundation                          16K        1 
Kernel Alloc Once                   32K        1 
MALLOC                           371.3M       56 
MALLOC guard page                  192K       10 
MALLOC_MEDIUM (reserved)         856.0M        8         reserved VM address space (unallocated)
MALLOC_NANO (reserved)           384.0M        1         reserved VM address space (unallocated)
STACK GUARD                       56.1M        7 
Stack                             11.2M        7 
VM_ALLOCATE                        144K        4 
__AUTH                             915K      217 
__AUTH_CONST                      18.2M      399 
__CTF                               824        1 
__DATA                            6960K      386 
__DATA_CONST                      18.0M      402 
__DATA_DIRTY                       980K      133 
__FONT_DATA                        2352        1 
__LINKEDIT                       802.0M        3 
__OBJC_RO                         66.3M        1 
__OBJC_RW                         2011K        1 
__TEXT                           382.9M      421 
dyld private memory                272K        2 
mapped file                       63.6M       12 
shared memory                      848K       13 
===========                     =======  ======= 
TOTAL                              3.0G     2112 
TOTAL, minus reserved VM space     1.8G     2112 



-----------
Full Report
-----------

{"app_name":"SASER","timestamp":"2023-07-07 15:54:33.00 +0300","app_version":"2.0.4","slice_uuid":"ce4a0700-b500-3600-890e-bb5f774c2181","build_version":"1","platform":1,"bundleID":"com.CompositorSoftware.SASER","share_with_app_devs":1,"is_first_party":0,"bug_type":"309","os_version":"macOS 13.4.1 (22F82)","roots_installed":0,"name":"SASER","incident_id":"319AE026-C766-49DC-91E7-32273B0BC8A8"}
{
  "uptime" : 840000,
  "procRole" : "Foreground",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "iMac21,1",
  "coalitionID" : 57643,
  "osVersion" : {
    "train" : "macOS 13.4.1",
    "build" : "22F82",
    "releaseType" : "User"
  },
  "captureTime" : "2023-07-07 15:54:31.2495 +0300",
  "incident" : "319AE026-C766-49DC-91E7-32273B0BC8A8",
  "pid" : 76638,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2023-07-07 15:54:30.1545 +0300",
  "procStartAbsTime" : 20336195005394,
  "procExitAbsTime" : 20336220728183,
  "procName" : "SASER",
  "procPath" : "\/Users\/USER\/Library\/Mobile Documents\/com~apple~CloudDocs\/*\/SASER.app\/Contents\/MacOS\/SASER",
  "bundleInfo" : {"CFBundleShortVersionString":"2.0.4","CFBundleVersion":"1","CFBundleIdentifier":"com.CompositorSoftware.SASER"},
  "storeInfo" : {"deviceIdentifierForVendor":"3CD312A9-CC72-5C22-9C36-3586059973B7","thirdParty":true},
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.CompositorSoftware.SASER",
  "crashReporterKey" : "14AD52F4-15C7-5A00-1DDE-5B472B6CF340",
  "codeSigningID" : "com.CompositorSoftware.SASER",
  "codeSigningTeamID" : "QA8X7KVUV7",
  "codeSigningFlags" : 570425857,
  "codeSigningValidationCategory" : 6,
  "codeSigningTrustLevel" : 0,
  "wakeTime" : 805239,
  "sleepWakeUUID" : "1988CCD3-F5CA-482A-842D-986B80FB6A3C",
  "sip" : "enabled",
  "vmRegionInfo" : "0x40 is not in any region.  Bytes before following region: 105553518919616\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      MALLOC_NANO (reserved)   600018000000-600020000000 [128.0M] rw-\/rwx SM=NUL  ...(unallocated)",
  "exception" : {"codes":"0x0000000000000001, 0x0000000000000040","rawCodes":[1,64],"type":"EXC_BAD_ACCESS","signal":"SIGSEGV","subtype":"KERN_INVALID_ADDRESS at 0x0000000000000040"},
  "termination" : {"flags":0,"code":11,"namespace":"SIGNAL","indicator":"Segmentation fault: 11","byProc":"exc handler","byPid":76638},
  "ktriageinfo" : "VM - (arg = 0x0) pmap_enter retried due to resource shortage\nVM - (arg = 0x0) pmap_enter retried due to resource shortage\nVM - (arg = 0x0) pmap_enter retried due to resource shortage\n",
  "vmregioninfo" : "0x40 is not in any region.  Bytes before following region: 105553518919616\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      MALLOC_NANO (reserved)   600018000000-600020000000 [128.0M] rw-\/rwx SM=NUL  ...(unallocated)",
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":15074374,"threadState":{"x":[{"value":0},{"value":214},{"value":4843621399236968483},{"value":4843621399236969039},{"value":4843621399236968799},{"value":304087040},{"value":105553136394112},{"value":0},{"value":1063675494},{"value":591},{"value":8},{"value":0},{"value":524288},{"value":0},{"value":0},{"value":0},{"value":0},{"value":2},{"value":0},{"value":0},{"value":591},{"value":4843621399236968483},{"value":214},{"value":4330981464},{"value":1},{"value":4330975232},{"value":351},{"value":4330975184},{"value":4330672128}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4328707000},"cpsr":{"value":536875008},"fp":{"value":6138245760},"sp":{"value":6138245648},"esr":{"value":2449473542,"description":"(Data Abort) byte read Translation fault"},"pc":{"value":4329894540,"matchesCrashFrame":1},"far":{"value":64}},"name":"JUCE Message Thread","queue":"com.apple.main-thread","frames":[{"imageOffset":1258124,"imageIndex":0},{"imageOffset":70584,"imageIndex":0},{"imageOffset":1260440,"imageIndex":0},{"imageOffset":123208,"imageIndex":0},{"imageOffset":58424,"imageIndex":0},{"imageOffset":21600,"imageIndex":0},{"imageOffset":17992,"imageIndex":0},{"imageOffset":14372,"imageIndex":0},{"imageOffset":848148,"imageIndex":0},{"imageOffset":1960732,"imageIndex":0},{"imageOffset":56512,"imageIndex":0},{"imageOffset":24360,"symbol":"start","symbolLocation":2236,"imageIndex":2}]},{"id":15074472,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":3}]},{"id":15074473,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":3}]},{"id":15074475,"frames":[{"imageOffset":7564,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":3}]},{"id":15074498,"name":"CVDisplayLink","frames":[{"imageOffset":18192,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":4},{"imageOffset":30112,"symbol":"_pthread_cond_wait","symbolLocation":1276,"imageIndex":3},{"imageOffset":15460,"symbol":"CVDisplayLink::waitUntil(unsigned long long)","symbolLocation":324,"imageIndex":5},{"imageOffset":11572,"symbol":"CVDisplayLink::runIOThread()","symbolLocation":504,"imageIndex":5},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":3},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":3}]},{"id":15074503,"name":"caulk.messenger.shared:17","frames":[{"imageOffset":3728,"symbol":"semaphore_wait_trap","symbolLocation":8,"imageIndex":4},{"imageOffset":8228,"symbol":"caulk::semaphore::timed_wait(double)","symbolLocation":212,"imageIndex":6},{"imageOffset":7896,"symbol":"caulk::concurrent::details::worker_thread::run()","symbolLocation":36,"imageIndex":6},{"imageOffset":7112,"symbol":"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*)","symbolLocation":96,"imageIndex":6},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":3},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":3}]},{"id":15074513,"name":"com.apple.audio.IOThread.client","frames":[{"imageOffset":3860,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":4},{"imageOffset":78400,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":4},{"imageOffset":39800,"symbol":"mach_msg_overwrite","symbolLocation":604,"imageIndex":4},{"imageOffset":4752,"symbol":"mach_msg","symbolLocation":24,"imageIndex":4},{"imageOffset":3077668,"symbol":"HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int)","symbolLocation":104,"imageIndex":7},{"imageOffset":1953044,"symbol":"HALC_ProxyIOContext::IOWorkLoop()","symbolLocation":3516,"imageIndex":7},{"imageOffset":1947772,"symbol":"invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int)","symbolLocation":116,"imageIndex":7},{"imageOffset":3401060,"symbol":"HALB_IOThread::Entry(void*)","symbolLocation":88,"imageIndex":7},{"imageOffset":28584,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":3},{"imageOffset":7584,"symbol":"thread_start","symbolLocation":8,"imageIndex":3}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4328636416,
    "CFBundleShortVersionString" : "2.0.4",
    "CFBundleIdentifier" : "com.CompositorSoftware.SASER",
    "size" : 2228224,
    "uuid" : "ce4a0700-b500-3600-890e-bb5f774c2181",
    "path" : "\/Users\/USER\/Library\/Mobile Documents\/com~apple~CloudDocs\/*\/SASER.app\/Contents\/MacOS\/SASER",
    "name" : "SASER",
    "CFBundleVersion" : "1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4392157184,
    "size" : 49152,
    "uuid" : "570c31f7-94c6-3b86-ae44-1694db0a4bcd",
    "path" : "\/usr\/lib\/libobjc-trampolines.dylib",
    "name" : "libobjc-trampolines.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6521380864,
    "size" : 582996,
    "uuid" : "2237410f-d39c-30ce-9a94-13aacb66b766",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6524882944,
    "size" : 53248,
    "uuid" : "46d35233-a051-3f4f-bba4-ba56dddc4d1a",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6524645376,
    "size" : 237544,
    "uuid" : "34a49b54-82b2-37a1-9314-f6a4a2bb3ff8",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6656544768,
    "CFBundleShortVersionString" : "1.8",
    "CFBundleIdentifier" : "com.apple.CoreVideo",
    "size" : 401408,
    "uuid" : "23a7c243-4552-3f81-b4f7-b9723ee40a45",
    "path" : "\/System\/Library\/Frameworks\/CoreVideo.framework\/Versions\/A\/CoreVideo",
    "name" : "CoreVideo",
    "CFBundleVersion" : "555.1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6682398720,
    "CFBundleShortVersionString" : "1.0",
    "CFBundleIdentifier" : "com.apple.audio.caulk",
    "size" : 167936,
    "uuid" : "d793971d-25be-323d-83a4-cc72fadafe8d",
    "path" : "\/System\/Library\/PrivateFrameworks\/caulk.framework\/Versions\/A\/caulk",
    "name" : "caulk"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6559498240,
    "CFBundleShortVersionString" : "5.0",
    "CFBundleIdentifier" : "com.apple.audio.CoreAudio",
    "size" : 6897664,
    "uuid" : "4c6d842e-31f6-30ca-984e-6281d387fe72",
    "path" : "\/System\/Library\/Frameworks\/CoreAudio.framework\/Versions\/A\/CoreAudio",
    "name" : "CoreAudio",
    "CFBundleVersion" : "5.0"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  }
],
  "sharedCache" : {
  "base" : 6520717312,
  "size" : 3551641600,
  "uuid" : "be59bb71-7b69-3efc-86a8-5625a077ae2e"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=1.2G resident=0K(0%) swapped_out_or_unallocated=1.2G(100%)\nWritable regions: Total=1.6G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.6G(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nColorSync                          464K       23 \nCoreGraphics                        16K        1 \nFoundation                          16K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           371.3M       56 \nMALLOC guard page                  192K       10 \nMALLOC_MEDIUM (reserved)         856.0M        8         reserved VM address space (unallocated)\nMALLOC_NANO (reserved)           384.0M        1         reserved VM address space (unallocated)\nSTACK GUARD                       56.1M        7 \nStack                             11.2M        7 \nVM_ALLOCATE                        144K        4 \n__AUTH                             915K      217 \n__AUTH_CONST                      18.2M      399 \n__CTF                               824        1 \n__DATA                            6960K      386 \n__DATA_CONST                      18.0M      402 \n__DATA_DIRTY                       980K      133 \n__FONT_DATA                        2352        1 \n__LINKEDIT                       802.0M        3 \n__OBJC_RO                         66.3M        1 \n__OBJC_RW                         2011K        1 \n__TEXT                           382.9M      421 \ndyld private memory                272K        2 \nmapped file                       63.6M       12 \nshared memory                      848K       13 \n===========                     =======  ======= \nTOTAL                              3.0G     2112 \nTOTAL, minus reserved VM space     1.8G     2112 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "name" : "JUCE Message Thread",
    "queue" : "com.apple.main-thread"
  }
},
  "logWritingSignature" : "4f7ac1edfae8fc16376f2d4300be184ad5cff1fa",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "61675b89201f677a9a4cbd65",
      "factorPackIds" : {
        "HEALTH_FEATURE_AVAILABILITY" : "63f8068a238e7b23a1f30123"
      },
      "deploymentId" : 240000055
    },
    {
      "rolloutId" : "63582c5f8a53461413999550",
      "factorPackIds" : {

      },
      "deploymentId" : 240000002
    }
  ],
  "experiments" : [
    {
      "treatmentId" : "c28e4ee6-1b08-4f90-8e05-2809e78310a3",
      "experimentId" : "6317d2003d24842ff850182a",
      "deploymentId" : 400000013
    },
    {
      "treatmentId" : "8ca8349c-e2bc-482c-9ca7-3907b48a5341",
      "experimentId" : "648b5a581b04c12d4127bbb6",
      "deploymentId" : 400000001
    }
  ]
}
}

I made a Plugin application after making a GUI app with the use of files provided in Gen~ export package in Max 8. I implemented my own user interface, here is the content of four files: PluginEditor.h, PluginProcessor.h, PluginEditor.cpp and PluginProcessor.cpp:

PluginEditor.h:

/*
  ==============================================================================

    This file was auto-generated by the Introjucer!

    It contains the basic framework code for a JUCE plugin editor.

  ==============================================================================
*/

#ifndef PLUGINEDITOR_H_INCLUDED
#define PLUGINEDITOR_H_INCLUDED

#include <JuceHeader.h>
#include "PluginProcessor.h"
#include "genlib.h"
#include "genlib_exportfunctions.h"
#include "genlib_ops.h"


//==============================================================================
/**
*/
class C74GenAudioProcessorEditor  : public AudioProcessorEditor,
									public juce::Slider::Listener,
									public juce::Button::Listener,
									public juce::ComboBox::Listener
{
public:
    C74GenAudioProcessorEditor (C74GenAudioProcessor&);
    ~C74GenAudioProcessorEditor();

    //==============================================================================
	Component *getSliderHolder();
	Component *getSliderLabelHolder();
	int getNumParameters();
    float getParameter (int index);
    const String getParameterName (int index);
    const String getParameterText (int index);
    std::function<void (int, float)> setParameter;
    int invBut1 = 1;
    int invBut2 = 1;
	
    void paint (Graphics&) override;
    void resized() override;
    void sliderValueChanged (juce::Slider* sliderThatWasMoved);
    void buttonClicked (juce::Button* buttonThatWasClicked);
    void comboBoxChanged (juce::ComboBox* comboBoxThatHasChanged);
	
    // Binary resources:
    static const char* saser_logo_80x20_png;
    static const int saser_logo_80x20_pngSize;

private:
    // This reference is provided as a quick way for your editor to
    // access the processor object that created it.
    std::unique_ptr<Component> sliderHolder;
    std::unique_ptr<Component> sliderLabelHolder;
    std::unique_ptr<juce::Slider> tempo__slider;
    std::unique_ptr<juce::Slider> lambda__slider;
    std::unique_ptr<juce::ToggleButton> auto__toggleButton;
    std::unique_ptr<juce::ToggleButton> selb__toggleButton;
    std::unique_ptr<juce::ComboBox> phase__comboBox;
    std::unique_ptr<juce::ComboBox> constel__comboBox;
    std::unique_ptr<juce::ComboBox> ntpall__comboBox;
    std::unique_ptr<juce::ComboBox> evntp__comboBox2;
    std::unique_ptr<juce::ComboBox> odntp__comboBox3;
    std::unique_ptr<juce::Label> ntp__label;
    std::unique_ptr<juce::Label> allpan__label;
    std::unique_ptr<juce::Label> evpan__label;
    std::unique_ptr<juce::Label> odpan__label;
    std::unique_ptr<juce::Label> revpan__label;
    std::unique_ptr<juce::Slider> hmsk1__slider;
    std::unique_ptr<juce::Slider> prv1__slider;
    std::unique_ptr<juce::ComboBox> bsr1__comboBox;
    std::unique_ptr<juce::Slider> mtc1__slider;
    std::unique_ptr<juce::ComboBox> pkt1__comboBox;
    std::unique_ptr<juce::Slider> hmsk2__slider;
    std::unique_ptr<juce::Slider> prv2__slider;
    std::unique_ptr<juce::ComboBox> bsr2__comboBox;
    std::unique_ptr<juce::Slider> mtc2__slider;
    std::unique_ptr<juce::ComboBox> pkt2__comboBox;
    std::unique_ptr<juce::Slider> hmsk3__slider;
    std::unique_ptr<juce::Slider> prv3__slider;
    std::unique_ptr<juce::ComboBox> bsr3__comboBox;
    std::unique_ptr<juce::Slider> mtc3__slider;
    std::unique_ptr<juce::ComboBox> pkt3__comboBox;
    std::unique_ptr<juce::Slider> vel__slider;
    std::unique_ptr<juce::Slider> spacing__slider;
    std::unique_ptr<juce::Slider> revt__slider;
    std::unique_ptr<juce::Slider> encaps__slider;
    std::unique_ptr<juce::ToggleButton> gre__toggleButton;
    std::unique_ptr<juce::Label> lpbkint1__label;
    std::unique_ptr<juce::Label> lpbkint2__label;
    std::unique_ptr<juce::Label> lpbkint3__label;
    std::unique_ptr<juce::Slider> alpha1__slider;
    std::unique_ptr<juce::Slider> alpha2__slider;
    std::unique_ptr<juce::Slider> alpha3__slider;
    std::unique_ptr<juce::Label> omegalbl;
    std::unique_ptr<juce::Label> lambdalbl;
    std::unique_ptr<juce::Label> hashmask1lbl;
    std::unique_ptr<juce::Label> hashmask2lbl;
    std::unique_ptr<juce::Label> hashmask3lbl;
    std::unique_ptr<juce::Label> priorval1lbl;
    std::unique_ptr<juce::Label> priorval2lbl;
    std::unique_ptr<juce::Label> priorval3lbl;
    std::unique_ptr<juce::Label> mtcaddr1lbl;
    std::unique_ptr<juce::Label> mtcaddr2lbl;
    std::unique_ptr<juce::Label> mtcaddr3lbl;
    std::unique_ptr<juce::Label> mtcaddr4lbl;
    std::unique_ptr<juce::Label> angvellbl;
    std::unique_ptr<juce::Label> spacinglbl;
    std::unique_ptr<juce::Label> rghtasclbl;
	juce::Image cachedImage_saser_logo_80x20_png_1;
		
    C74GenAudioProcessor& processor;

    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (C74GenAudioProcessorEditor)
};


#endif  // PLUGINEDITOR_H_INCLUDED

PluginEditor.cpp:

/*
  ==============================================================================

    This file was auto-generated by the Introjucer!

    It contains the basic framework code for a JUCE plugin editor.

  ==============================================================================
*/

#include "PluginProcessor.h"
#include "PluginEditor.h"


//==============================================================================
C74GenAudioProcessorEditor::C74GenAudioProcessorEditor (C74GenAudioProcessor& p)
    : AudioProcessorEditor (&p), processor (p)
{
    //[Constructor_pre] You can add your own custom stuff here..
    //[/Constructor_pre]

    tempo__slider.reset (new juce::Slider ("bpm"));
    addAndMakeVisible (tempo__slider.get());
    tempo__slider->setTooltip (TRANS("Tempo"));
    tempo__slider->setRange (0.05, 5759.54, 0.01);
    tempo__slider->setSliderStyle (juce::Slider::Rotary);
    tempo__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    tempo__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    tempo__slider->addListener (this);

    lambda__slider.reset (new juce::Slider ("bl"));
    addAndMakeVisible (lambda__slider.get());
    lambda__slider->setTooltip (TRANS("Wavelength"));
    lambda__slider->setRange (6798.01, 17657.2, 0.01);
    lambda__slider->setSliderStyle (juce::Slider::Rotary);
    lambda__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    lambda__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    lambda__slider->addListener (this);

    auto__toggleButton.reset (new juce::ToggleButton ("autosel"));
    addAndMakeVisible (auto__toggleButton.get());
    auto__toggleButton->setButtonText (TRANS("Passive-Interface"));
    auto__toggleButton->addListener (this);
    auto__toggleButton->setToggleState (true, juce::dontSendNotification);
    auto__toggleButton->setColour (juce::ToggleButton::textColourId, juce::Colours::white);

    selb__toggleButton.reset (new juce::ToggleButton ("selb"));
    addAndMakeVisible (selb__toggleButton.get());
    selb__toggleButton->setButtonText (TRANS("mroute-proxy"));
    selb__toggleButton->addListener (this);
    selb__toggleButton->setToggleState (true, juce::dontSendNotification);
    selb__toggleButton->setColour (juce::ToggleButton::textColourId, juce::Colours::white);

    phase__comboBox.reset (new juce::ComboBox ("permindp"));
    addAndMakeVisible (phase__comboBox.get());
    phase__comboBox->setEditableText (false);
    phase__comboBox->setJustificationType (juce::Justification::centredLeft);
    phase__comboBox->setTextWhenNothingSelected (TRANS("Month"));
    phase__comboBox->setTextWhenNoChoicesAvailable (TRANS("Month"));
    phase__comboBox->addItem (TRANS("January UTC+1"), 1);
    phase__comboBox->addItem (TRANS("February UTC+2"), 2);
    phase__comboBox->addItem (TRANS("March UTC+3"), 3);
    phase__comboBox->addItem (TRANS("April UTC+4"), 4);
    phase__comboBox->addItem (TRANS("May UTC+5"), 5);
    phase__comboBox->addItem (TRANS("June UTC+6"), 6);
    phase__comboBox->addItem (TRANS("July UTC+7"), 7);
    phase__comboBox->addItem (TRANS("August UTC+8"), 8);
    phase__comboBox->addItem (TRANS("September UTC+9"), 9);
    phase__comboBox->addItem (TRANS("October UTC+10"), 10);
    phase__comboBox->addItem (TRANS("November UTC+11"), 11);
    phase__comboBox->addItem (TRANS("December UTC+12"), 12);
    phase__comboBox->addListener (this);

    constel__comboBox.reset (new juce::ComboBox ("comb"));
    addAndMakeVisible (constel__comboBox.get());
    constel__comboBox->setEditableText (false);
    constel__comboBox->setJustificationType (juce::Justification::centredLeft);
    constel__comboBox->setTextWhenNothingSelected (TRANS("Constellation"));
    constel__comboBox->setTextWhenNoChoicesAvailable (TRANS("Constellation"));
    constel__comboBox->addItem (TRANS("Eridanus UTC+1"), 1);
    constel__comboBox->addItem (TRANS("Triangulum UTC+2"), 2);
    constel__comboBox->addItem (TRANS("Perseus1 UTC+3"), 3);
    constel__comboBox->addItem (TRANS("Perseus2 UTC+4"), 4);
    constel__comboBox->addItem (TRANS("Hydrus UTC+5"), 5);
    constel__comboBox->addItem (TRANS("Sagittarius UTC+6"), 6);
    constel__comboBox->addItem (TRANS("Microscopium1 UTC+7"), 7);
    constel__comboBox->addItem (TRANS("Microscopium2 UTC+8"), 8);
    constel__comboBox->addItem (TRANS("Delphinus1 UTC+9"), 9);
    constel__comboBox->addItem (TRANS("Delphinus2 UTC+10"), 10);
    constel__comboBox->addItem (TRANS("Reticulum UTC+11"), 11);
    constel__comboBox->addItem (TRANS("Phoenix UTC+12"), 12);
    constel__comboBox->addItem (TRANS("Cepheus1 GMT+1"), 13);
    constel__comboBox->addItem (TRANS("Cepheus2 GMT+2"), 14);
    constel__comboBox->addItem (TRANS("Lyra GMT+3"), 15);
    constel__comboBox->addItem (TRANS("Cassiopea GMT+4"), 16);
    constel__comboBox->addListener (this);

    ntpall__comboBox.reset (new juce::ComboBox ("splitallp"));
    addAndMakeVisible (ntpall__comboBox.get());
    ntpall__comboBox->setTooltip (TRANS("All NTP-servers"));
    ntpall__comboBox->setExplicitFocusOrder (1);
    ntpall__comboBox->setEditableText (false);
    ntpall__comboBox->setJustificationType (juce::Justification::centredLeft);
    ntpall__comboBox->setTextWhenNothingSelected (TRANS("All planets"));
    ntpall__comboBox->setTextWhenNoChoicesAvailable (TRANS("All planets"));
    ntpall__comboBox->addItem (TRANS("Eris UTC+1"), 1);
    ntpall__comboBox->addItem (TRANS("Pluto UTC+2"), 2);
    ntpall__comboBox->addItem (TRANS("Neptune UTC+3"), 3);
    ntpall__comboBox->addItem (TRANS("Uranus UTC+4"), 4);
    ntpall__comboBox->addItem (TRANS("Saturn UTC+5"), 5);
    ntpall__comboBox->addItem (TRANS("Jupiter UTC+6"), 6);
    ntpall__comboBox->addItem (TRANS("Ast. belt UTC+7"), 7);
    ntpall__comboBox->addItem (TRANS("Mars UTC+8"), 8);
    ntpall__comboBox->addItem (TRANS("Earth UTC+9"), 9);
    ntpall__comboBox->addItem (TRANS("Venus UTC+10"), 10);
    ntpall__comboBox->addItem (TRANS("Mercury UTC+11"), 11);
    ntpall__comboBox->addItem (TRANS("IMO UTC+12"), 12);
    ntpall__comboBox->addListener (this);

    evntp__comboBox2.reset (new juce::ComboBox ("splitevenp"));
    addAndMakeVisible (evntp__comboBox2.get());
    evntp__comboBox2->setTooltip (TRANS("Even NTP-servers"));
    evntp__comboBox2->setExplicitFocusOrder (1);
    evntp__comboBox2->setEditableText (false);
    evntp__comboBox2->setJustificationType (juce::Justification::centredLeft);
    evntp__comboBox2->setTextWhenNothingSelected (TRANS("Even planets"));
    evntp__comboBox2->setTextWhenNoChoicesAvailable (TRANS("Even planets"));
    evntp__comboBox2->addItem (TRANS("Pluto UTC+2"), 1);
    evntp__comboBox2->addItem (TRANS("Uranus UTC+4"), 2);
    evntp__comboBox2->addItem (TRANS("Jupiter UTC+6"), 3);
    evntp__comboBox2->addItem (TRANS("Mars UTC+8"), 4);
    evntp__comboBox2->addItem (TRANS("Venus UTC+10"), 5);
    evntp__comboBox2->addItem (TRANS("IMO UTC+12"), 6);
    evntp__comboBox2->addListener (this);

    odntp__comboBox3.reset (new juce::ComboBox ("splitoddp"));
    addAndMakeVisible (odntp__comboBox3.get());
    odntp__comboBox3->setTooltip (TRANS("Odd NTP-Servers"));
    odntp__comboBox3->setExplicitFocusOrder (1);
    odntp__comboBox3->setEditableText (false);
    odntp__comboBox3->setJustificationType (juce::Justification::centredLeft);
    odntp__comboBox3->setTextWhenNothingSelected (TRANS("Odd planets"));
    odntp__comboBox3->setTextWhenNoChoicesAvailable (TRANS("Odd planets"));
    odntp__comboBox3->addItem (TRANS("Eris UTC+1"), 1);
    odntp__comboBox3->addItem (TRANS("Neptune UTC+3"), 2);
    odntp__comboBox3->addItem (TRANS("Saturn UTC+5"), 3);
    odntp__comboBox3->addItem (TRANS("Ast. belt UTC+7"), 4);
    odntp__comboBox3->addItem (TRANS("Earth UTC+9"), 5);
    odntp__comboBox3->addItem (TRANS("Mercury UTC+11"), 6);
    odntp__comboBox3->addListener (this);

    ntp__label.reset (new juce::Label ("ntpserverslabel",
                                       TRANS("Planetary NTP-service")));
    addAndMakeVisible (ntp__label.get());
    ntp__label->setExplicitFocusOrder (1);
    ntp__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    ntp__label->setJustificationType (juce::Justification::centredLeft);
    ntp__label->setEditable (false, false, false);
    ntp__label->setColour (juce::Label::textColourId, juce::Colours::white);
    ntp__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    ntp__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    ntp__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    allpan__label.reset (new juce::Label ("allpanel",
                                          juce::String()));
    addAndMakeVisible (allpan__label.get());
    allpan__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    allpan__label->setJustificationType (juce::Justification::centredLeft);
    allpan__label->setEditable (false, false, false);
    allpan__label->setColour (juce::Label::outlineColourId, juce::Colour (0xff465366));
    allpan__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    allpan__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    allpan__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    evpan__label.reset (new juce::Label ("evpanel",
                                         juce::String()));
    addAndMakeVisible (evpan__label.get());
    evpan__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    evpan__label->setJustificationType (juce::Justification::centredLeft);
    evpan__label->setEditable (false, false, false);
    evpan__label->setColour (juce::Label::outlineColourId, juce::Colour (0xff465366));
    evpan__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    evpan__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    evpan__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    odpan__label.reset (new juce::Label ("oddpanel",
                                         juce::String()));
    addAndMakeVisible (odpan__label.get());
    odpan__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    odpan__label->setJustificationType (juce::Justification::centredLeft);
    odpan__label->setEditable (false, false, false);
    odpan__label->setColour (juce::Label::outlineColourId, juce::Colour (0xff465366));
    odpan__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    odpan__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    odpan__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    revpan__label.reset (new juce::Label ("revpanel",
                                          juce::String()));
    addAndMakeVisible (revpan__label.get());
    revpan__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    revpan__label->setJustificationType (juce::Justification::centredLeft);
    revpan__label->setEditable (false, false, false);
    revpan__label->setColour (juce::Label::outlineColourId, juce::Colour (0xff465366));
    revpan__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    revpan__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    revpan__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    hmsk1__slider.reset (new juce::Slider ("wsh1dip"));
    addAndMakeVisible (hmsk1__slider.get());
    hmsk1__slider->setTooltip (TRANS("hash-mask 1"));
    hmsk1__slider->setRange (0, 32, 1);
    hmsk1__slider->setSliderStyle (juce::Slider::Rotary);
    hmsk1__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    hmsk1__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    hmsk1__slider->addListener (this);

    prv1__slider.reset (new juce::Slider ("wsh1ap"));
    addAndMakeVisible (prv1__slider.get());
    prv1__slider->setTooltip (TRANS("priority-value 1"));
    prv1__slider->setRange (0, 255, 1);
    prv1__slider->setSliderStyle (juce::Slider::Rotary);
    prv1__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    prv1__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    prv1__slider->addListener (this);

    bsr1__comboBox.reset (new juce::ComboBox ("tfchoicep"));
    addAndMakeVisible (bsr1__comboBox.get());
    bsr1__comboBox->setTooltip (TRANS("BSR address 1"));
    bsr1__comboBox->setEditableText (false);
    bsr1__comboBox->setJustificationType (juce::Justification::centredLeft);
    bsr1__comboBox->setTextWhenNothingSelected (TRANS("BSR addr"));
    bsr1__comboBox->setTextWhenNoChoicesAvailable (TRANS("BSR addr"));
    bsr1__comboBox->addItem (TRANS("1.2.3.0"), 1);
    bsr1__comboBox->addItem (TRANS("3.5.7.0"), 2);
    bsr1__comboBox->addItem (TRANS("2.3.7.8"), 3);
    bsr1__comboBox->addItem (TRANS("2.4.6.8"), 4);
    bsr1__comboBox->addItem (TRANS("2.3.6.9/10"), 5);
    bsr1__comboBox->addItem (TRANS("1.4.5.7"), 6);
    bsr1__comboBox->addListener (this);

    mtc1__slider.reset (new juce::Slider ("wf1ap"));
    addAndMakeVisible (mtc1__slider.get());
    mtc1__slider->setTooltip (TRANS("Multicast IPv6 address oct-1"));
    mtc1__slider->setRange (0, 255, 1);
    mtc1__slider->setSliderStyle (juce::Slider::Rotary);
    mtc1__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    mtc1__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    mtc1__slider->addListener (this);

    pkt1__comboBox.reset (new juce::ComboBox ("wintypep"));
    addAndMakeVisible (pkt1__comboBox.get());
    pkt1__comboBox->setTooltip (TRANS("Loopback interface 1 packet"));
    pkt1__comboBox->setEditableText (false);
    pkt1__comboBox->setJustificationType (juce::Justification::centredLeft);
    pkt1__comboBox->setTextWhenNothingSelected (TRANS("Packet"));
    pkt1__comboBox->setTextWhenNoChoicesAvailable (TRANS("Packet"));
    pkt1__comboBox->addItem (TRANS("Hello"), 1);
    pkt1__comboBox->addItem (TRANS("ACK"), 2);
    pkt1__comboBox->addItem (TRANS("register"), 3);
    pkt1__comboBox->addItem (TRANS("stop-register"), 4);
    pkt1__comboBox->addItem (TRANS("LSA"), 5);
    pkt1__comboBox->addItem (TRANS("PIM-Join"), 6);
    pkt1__comboBox->addItem (TRANS("PIM-Prune"), 7);
    pkt1__comboBox->addListener (this);

    hmsk2__slider.reset (new juce::Slider ("wsh2dip"));
    addAndMakeVisible (hmsk2__slider.get());
    hmsk2__slider->setTooltip (TRANS("hash-mask 2"));
    hmsk2__slider->setRange (0, 32, 1);
    hmsk2__slider->setSliderStyle (juce::Slider::Rotary);
    hmsk2__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    hmsk2__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    hmsk2__slider->addListener (this);

    prv2__slider.reset (new juce::Slider ("wsh2ap"));
    addAndMakeVisible (prv2__slider.get());
    prv2__slider->setTooltip (TRANS("priority-value 2"));
    prv2__slider->setRange (0, 255, 1);
    prv2__slider->setSliderStyle (juce::Slider::Rotary);
    prv2__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    prv2__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    prv2__slider->addListener (this);

    bsr2__comboBox.reset (new juce::ComboBox ("tfchoice1p"));
    addAndMakeVisible (bsr2__comboBox.get());
    bsr2__comboBox->setTooltip (TRANS("BSR address 2"));
    bsr2__comboBox->setEditableText (false);
    bsr2__comboBox->setJustificationType (juce::Justification::centredLeft);
    bsr2__comboBox->setTextWhenNothingSelected (TRANS("BSR addr"));
    bsr2__comboBox->setTextWhenNoChoicesAvailable (TRANS("BSR addr"));
    bsr2__comboBox->addItem (TRANS("1.2.3.0"), 1);
    bsr2__comboBox->addItem (TRANS("3.5.7.0"), 2);
    bsr2__comboBox->addItem (TRANS("2.3.7.8"), 3);
    bsr2__comboBox->addItem (TRANS("2.4.6.8"), 4);
    bsr2__comboBox->addItem (TRANS("2.3.6.9/10"), 5);
    bsr2__comboBox->addItem (TRANS("1.4.5.7"), 6);
    bsr2__comboBox->addListener (this);

    mtc2__slider.reset (new juce::Slider ("wf2ap"));
    addAndMakeVisible (mtc2__slider.get());
    mtc2__slider->setTooltip (TRANS("Multicast IPv6 address oct-2"));
    mtc2__slider->setRange (0, 255, 1);
    mtc2__slider->setSliderStyle (juce::Slider::Rotary);
    mtc2__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    mtc2__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    mtc2__slider->addListener (this);

    pkt2__comboBox.reset (new juce::ComboBox ("wintype1p"));
    addAndMakeVisible (pkt2__comboBox.get());
    pkt2__comboBox->setTooltip (TRANS("Loopback interface 2 packet"));
    pkt2__comboBox->setEditableText (false);
    pkt2__comboBox->setJustificationType (juce::Justification::centredLeft);
    pkt2__comboBox->setTextWhenNothingSelected (TRANS("Packet"));
    pkt2__comboBox->setTextWhenNoChoicesAvailable (TRANS("Packet"));
    pkt2__comboBox->addItem (TRANS("Hello"), 1);
    pkt2__comboBox->addItem (TRANS("ACK"), 2);
    pkt2__comboBox->addItem (TRANS("register"), 3);
    pkt2__comboBox->addItem (TRANS("stop-register"), 4);
    pkt2__comboBox->addItem (TRANS("LSA"), 5);
    pkt2__comboBox->addItem (TRANS("PIM-Join"), 6);
    pkt2__comboBox->addItem (TRANS("PIM-Prune"), 7);
    pkt2__comboBox->addListener (this);

    hmsk3__slider.reset (new juce::Slider ("wsh3dip"));
    addAndMakeVisible (hmsk3__slider.get());
    hmsk3__slider->setTooltip (TRANS("hash-mask 3"));
    hmsk3__slider->setRange (0, 32, 1);
    hmsk3__slider->setSliderStyle (juce::Slider::Rotary);
    hmsk3__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    hmsk3__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    hmsk3__slider->addListener (this);
    prv3__slider.reset (new juce::Slider ("wsh3ap"));
    addAndMakeVisible (prv3__slider.get());
    prv3__slider->setTooltip (TRANS("priority-value 3"));
    prv3__slider->setRange (0, 255, 1);
    prv3__slider->setSliderStyle (juce::Slider::Rotary);
    prv3__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    prv3__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    prv3__slider->addListener (this);

    bsr3__comboBox.reset (new juce::ComboBox ("tfchoice2p"));
    addAndMakeVisible (bsr3__comboBox.get());
    bsr3__comboBox->setTooltip (TRANS("BSR address 3"));
    bsr3__comboBox->setEditableText (false);
    bsr3__comboBox->setJustificationType (juce::Justification::centredLeft);
    bsr3__comboBox->setTextWhenNothingSelected (TRANS("BSR addr"));
    bsr3__comboBox->setTextWhenNoChoicesAvailable (TRANS("BSR addr"));
    bsr3__comboBox->addItem (TRANS("1.2.3.0"), 1);
    bsr3__comboBox->addItem (TRANS("3.5.7.0"), 2);
    bsr3__comboBox->addItem (TRANS("2.3.7.8"), 3);
    bsr3__comboBox->addItem (TRANS("2.4.6.8"), 4);
    bsr3__comboBox->addItem (TRANS("2.3.6.9/10"), 5);
    bsr3__comboBox->addItem (TRANS("1.4.5.7"), 6);
    bsr3__comboBox->addListener (this);

    mtc3__slider.reset (new juce::Slider ("wf3ap"));
    addAndMakeVisible (mtc3__slider.get());
    mtc3__slider->setTooltip (TRANS("Multicast IPv6 address oct-3"));
    mtc3__slider->setRange (0, 255, 1);
    mtc3__slider->setSliderStyle (juce::Slider::Rotary);
    mtc3__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    mtc3__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    mtc3__slider->addListener (this);

    pkt3__comboBox.reset (new juce::ComboBox ("wintype2p"));
    addAndMakeVisible (pkt3__comboBox.get());
    pkt3__comboBox->setTooltip (TRANS("Loopback interface 3 packet"));
    pkt3__comboBox->setEditableText (false);
    pkt3__comboBox->setJustificationType (juce::Justification::centredLeft);
    pkt3__comboBox->setTextWhenNothingSelected (TRANS("Packet"));
    pkt3__comboBox->setTextWhenNoChoicesAvailable (TRANS("Packet"));
    pkt3__comboBox->addItem (TRANS("Hello"), 1);
    pkt3__comboBox->addItem (TRANS("ACK"), 2);
    pkt3__comboBox->addItem (TRANS("register"), 3);
    pkt3__comboBox->addItem (TRANS("stop-register"), 4);
    pkt3__comboBox->addItem (TRANS("LSA"), 5);
    pkt3__comboBox->addItem (TRANS("PIM-Join"), 6);
    pkt3__comboBox->addItem (TRANS("PIM-Prune"), 7);
    pkt3__comboBox->addListener (this);

    vel__slider.reset (new juce::Slider ("schtau1lp"));
    addAndMakeVisible (vel__slider.get());
    vel__slider->setTooltip (TRANS("Angular Velocity"));
    vel__slider->setRange (125.664, 5000, 0.01);
    vel__slider->setSliderStyle (juce::Slider::Rotary);
    vel__slider->setTextBoxStyle (juce::Slider::TextBoxLeft, false, 80, 20);
    vel__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    vel__slider->addListener (this);

    spacing__slider.reset (new juce::Slider ("stwidthp"));
    addAndMakeVisible (spacing__slider.get());
    spacing__slider->setTooltip (TRANS("Spacing"));
    spacing__slider->setRange (1, 2, 0.01);
    spacing__slider->setSliderStyle (juce::Slider::Rotary);
    spacing__slider->setTextBoxStyle (juce::Slider::TextBoxLeft, false, 80, 20);
    spacing__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    spacing__slider->addListener (this);

    revt__slider.reset (new juce::Slider ("revtp"));
    addAndMakeVisible (revt__slider.get());
    revt__slider->setTooltip (TRANS("Reverberation time"));
    revt__slider->setRange (-180, 180, 1);
    revt__slider->setSliderStyle (juce::Slider::Rotary);
    revt__slider->setTextBoxStyle (juce::Slider::TextBoxLeft, false, 80, 20);
    revt__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    revt__slider->addListener (this);

    encaps__slider.reset (new juce::Slider ("revamtp"));
    addAndMakeVisible (encaps__slider.get());
    encaps__slider->setTooltip (TRANS("Multicast IPv6 address oct-4"));
    encaps__slider->setRange (0, 255, 1);
    encaps__slider->setSliderStyle (juce::Slider::Rotary);
    encaps__slider->setTextBoxStyle (juce::Slider::TextBoxLeft, false, 80, 20);
    encaps__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    encaps__slider->addListener (this);

    gre__toggleButton.reset (new juce::ToggleButton ("schdampp"));
    addAndMakeVisible (gre__toggleButton.get());
    gre__toggleButton->setTooltip (TRANS("Generic Routing Encapsulation"));
    gre__toggleButton->setButtonText (TRANS("GRE"));
    gre__toggleButton->addListener (this);
    gre__toggleButton->setColour (juce::ToggleButton::textColourId, juce::Colours::white);

    lpbkint1__label.reset (new juce::Label ("lpbkinterface1",
                                            TRANS("Lpbk-int1")));
    addAndMakeVisible (lpbkint1__label.get());
    lpbkint1__label->setTooltip (TRANS("Loopback interface 1"));
    lpbkint1__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    lpbkint1__label->setJustificationType (juce::Justification::centredLeft);
    lpbkint1__label->setEditable (false, false, false);
    lpbkint1__label->setColour (juce::Label::textColourId, juce::Colours::white);
    lpbkint1__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    lpbkint1__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    lpbkint1__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    lpbkint2__label.reset (new juce::Label ("lpbkinterface2",
                                            TRANS("Lpbk-int2")));
    addAndMakeVisible (lpbkint2__label.get());
    lpbkint2__label->setTooltip (TRANS("Loopback interface 2"));
    lpbkint2__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    lpbkint2__label->setJustificationType (juce::Justification::centredLeft);
    lpbkint2__label->setEditable (false, false, false);
    lpbkint2__label->setColour (juce::Label::textColourId, juce::Colours::white);
    lpbkint2__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    lpbkint2__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    lpbkint2__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    lpbkint3__label.reset (new juce::Label ("lpbkinterface3",
                                            TRANS("Lpbk-int3")));
    addAndMakeVisible (lpbkint3__label.get());
    lpbkint3__label->setTooltip (TRANS("Loopback interface 3"));
    lpbkint3__label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    lpbkint3__label->setJustificationType (juce::Justification::centredLeft);
    lpbkint3__label->setEditable (false, false, false);
    lpbkint3__label->setColour (juce::Label::textColourId, juce::Colours::white);
    lpbkint3__label->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    lpbkint3__label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    lpbkint3__label->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    alpha1__slider.reset (new juce::Slider ("alphap"));
    addAndMakeVisible (alpha1__slider.get());
    alpha1__slider->setTooltip (TRANS("Window 1 alpha parameter"));
    alpha1__slider->setRange (0, 0.292, 0.001);
    alpha1__slider->setSliderStyle (juce::Slider::LinearHorizontal);
    alpha1__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    alpha1__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    alpha1__slider->addListener (this);

    alpha2__slider.reset (new juce::Slider ("alpha1p"));
    addAndMakeVisible (alpha2__slider.get());
    alpha2__slider->setTooltip (TRANS("Window 2 alpha parameter"));
    alpha2__slider->setRange (0, 0.292, 0.001);
    alpha2__slider->setSliderStyle (juce::Slider::LinearHorizontal);
    alpha2__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    alpha2__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    alpha2__slider->addListener (this);

    alpha3__slider.reset (new juce::Slider ("alpha2p"));
    addAndMakeVisible (alpha3__slider.get());
    alpha3__slider->setTooltip (TRANS("Window 3 alpha parameter"));
    alpha3__slider->setRange (0, 0.292, 0.001);
    alpha3__slider->setSliderStyle (juce::Slider::LinearHorizontal);
    alpha3__slider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 80, 20);
    alpha3__slider->setColour (juce::Slider::textBoxTextColourId, juce::Colours::white);
    alpha3__slider->addListener (this);

    omegalbl.reset (new juce::Label ("omegalbl",
                                     juce::CharPointer_UTF8 ("\xcf\x89")));
    addAndMakeVisible (omegalbl.get());
    omegalbl->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    omegalbl->setJustificationType (juce::Justification::centredTop);
    omegalbl->setEditable (false, false, false);
    omegalbl->setColour (juce::Label::textColourId, juce::Colours::white);
    omegalbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    omegalbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    omegalbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    lambdalbl.reset (new juce::Label ("lambdalbl",
                                      juce::CharPointer_UTF8 ("\xce\xbb")));
    addAndMakeVisible (lambdalbl.get());
    lambdalbl->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    lambdalbl->setJustificationType (juce::Justification::centredTop);
    lambdalbl->setEditable (false, false, false);
    lambdalbl->setColour (juce::Label::textColourId, juce::Colours::white);
    lambdalbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    lambdalbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    lambdalbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    hashmask1lbl.reset (new juce::Label ("hashmask1lbl",
                                         TRANS("hash-mask")));
    addAndMakeVisible (hashmask1lbl.get());
    hashmask1lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    hashmask1lbl->setJustificationType (juce::Justification::centredBottom);
    hashmask1lbl->setEditable (false, false, false);
    hashmask1lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    hashmask1lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    hashmask1lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    hashmask1lbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    hashmask2lbl.reset (new juce::Label ("hashmask2lbl",
                                         TRANS("hash-mask")));
    addAndMakeVisible (hashmask2lbl.get());
    hashmask2lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    hashmask2lbl->setJustificationType (juce::Justification::centredBottom);
    hashmask2lbl->setEditable (false, false, false);
    hashmask2lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    hashmask2lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    hashmask2lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    hashmask2lbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    hashmask3lbl.reset (new juce::Label ("hashmask3lbl",
                                         TRANS("hash-mask")));
    addAndMakeVisible (hashmask3lbl.get());
    hashmask3lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    hashmask3lbl->setJustificationType (juce::Justification::centredBottom);
    hashmask3lbl->setEditable (false, false, false);
    hashmask3lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    hashmask3lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    hashmask3lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    hashmask3lbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    priorval1lbl.reset (new juce::Label ("priorval1lbl",
                                         TRANS("priority-val")));
    addAndMakeVisible (priorval1lbl.get());
    priorval1lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    priorval1lbl->setJustificationType (juce::Justification::centredBottom);
    priorval1lbl->setEditable (false, false, false);
    priorval1lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    priorval1lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    priorval1lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));

    priorval2lbl.reset (new juce::Label ("priorval2lbl",
                                         TRANS("priority-val")));
    addAndMakeVisible (priorval2lbl.get());
    priorval2lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    priorval2lbl->setJustificationType (juce::Justification::centredBottom);
    priorval2lbl->setEditable (false, false, false);
    priorval2lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    priorval2lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    priorval2lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));

    priorval3lbl.reset (new juce::Label ("priorval3lbl",
                                         TRANS("priority-val")));
    addAndMakeVisible (priorval3lbl.get());
    priorval3lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    priorval3lbl->setJustificationType (juce::Justification::centredBottom);
    priorval3lbl->setEditable (false, false, false);
    priorval3lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    priorval3lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    priorval3lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));

    mtcaddr1lbl.reset (new juce::Label ("mtcaddr1lbl",
                                        TRANS("Multicast oct-1")));
    addAndMakeVisible (mtcaddr1lbl.get());
    mtcaddr1lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    mtcaddr1lbl->setJustificationType (juce::Justification::centredBottom);
    mtcaddr1lbl->setEditable (false, false, false);
    mtcaddr1lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    mtcaddr1lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    mtcaddr1lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    mtcaddr1lbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    mtcaddr2lbl.reset (new juce::Label ("mtcaddr2lbl",
                                        TRANS("Multicast oct-2")));
    addAndMakeVisible (mtcaddr2lbl.get());
    mtcaddr2lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    mtcaddr2lbl->setJustificationType (juce::Justification::centredBottom);
    mtcaddr2lbl->setEditable (false, false, false);
    mtcaddr2lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    mtcaddr2lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    mtcaddr2lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    mtcaddr2lbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    mtcaddr3lbl.reset (new juce::Label ("mtcaddr3lbl",
                                        TRANS("Multicast oct-3")));
    addAndMakeVisible (mtcaddr3lbl.get());
    mtcaddr3lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    mtcaddr3lbl->setJustificationType (juce::Justification::centredBottom);
    mtcaddr3lbl->setEditable (false, false, false);
    mtcaddr3lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    mtcaddr3lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    mtcaddr3lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    mtcaddr3lbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    mtcaddr4lbl.reset (new juce::Label ("mtcaddr4lbl",
                                        TRANS("Multicast oct-4")));
    addAndMakeVisible (mtcaddr4lbl.get());
    mtcaddr4lbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    mtcaddr4lbl->setJustificationType (juce::Justification::centredLeft);
    mtcaddr4lbl->setEditable (false, false, false);
    mtcaddr4lbl->setColour (juce::Label::textColourId, juce::Colours::white);
    mtcaddr4lbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    mtcaddr4lbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    mtcaddr4lbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    angvellbl.reset (new juce::Label ("angvellbl",
                                      TRANS("Angular Velocity")));
    addAndMakeVisible (angvellbl.get());
    angvellbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    angvellbl->setJustificationType (juce::Justification::centredLeft);
    angvellbl->setEditable (false, false, false);
    angvellbl->setColour (juce::Label::textColourId, juce::Colours::white);
    angvellbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    angvellbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    angvellbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    spacinglbl.reset (new juce::Label ("spacinglbl",
                                       TRANS("Spacing")));
    addAndMakeVisible (spacinglbl.get());
    spacinglbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    spacinglbl->setJustificationType (juce::Justification::centredLeft);
    spacinglbl->setEditable (false, false, false);
    spacinglbl->setColour (juce::Label::textColourId, juce::Colours::white);
    spacinglbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    spacinglbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    spacinglbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    rghtasclbl.reset (new juce::Label ("rghtasclbl",
                                       TRANS("Right ascension")));
    addAndMakeVisible (rghtasclbl.get());
    rghtasclbl->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular"));
    rghtasclbl->setJustificationType (juce::Justification::centredLeft);
    rghtasclbl->setEditable (false, false, false);
    rghtasclbl->setColour (juce::Label::textColourId, juce::Colours::white);
    rghtasclbl->setColour (juce::TextEditor::textColourId, juce::Colours::black);
    rghtasclbl->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000));
    rghtasclbl->setColour (juce::TextEditor::highlightColourId, juce::Colour (0x00e0ec65));

    cachedImage_saser_logo_80x20_png_1 = juce::ImageCache::getFromMemory (saser_logo_80x20_png, saser_logo_80x20_pngSize);

    //[UserPreSize]
    //[/UserPreSize]
	
	setSize (844, 390);
	
    //[Constructor] You can add your own custom stuff here..
    //[/Constructor]
}
C74GenAudioProcessorEditor::~C74GenAudioProcessorEditor()
{
}

//==============================================================================
void C74GenAudioProcessorEditor::paint (Graphics& g)
{
    g.fillAll (juce::Colour (0xff3e3e3e));

    {
        int x = proportionOfWidth (0.0296f), y = proportionOfHeight (0.0308f), width = proportionOfWidth (0.0948f), height = proportionOfHeight (0.0513f);
        //[UserPaintCustomArguments] Customize the painting arguments here..
        //[/UserPaintCustomArguments]
        g.setColour (juce::Colours::black);
        g.drawImageWithin (cachedImage_saser_logo_80x20_png_1,
                           x, y, width, height,
                           juce::RectanglePlacement::centred,
                           false);
    }

    //[UserPaint] Add your own custom painting code here..
    //[/UserPaint]
}

void C74GenAudioProcessorEditor::resized()
{
    // This is generally where you'll want to lay out the positions of any
    // subcomponents in your editor..
	
    sliderHolder->setBounds (proportionOfWidth (0.6025f) - (proportionOfWidth (0.7002f) / 2), proportionOfHeight (0.0897f), proportionOfWidth (0.7002f), proportionOfHeight (0.9000f));
    sliderLabelHolder->setBounds (proportionOfWidth (0.1505f) - (proportionOfWidth (0.1991f) / 2), proportionOfHeight (0.0897f), proportionOfWidth (0.1991f), proportionOfHeight (0.9000f));
    tempo__slider->setBounds (proportionOfWidth (0.0569f), proportionOfHeight (0.1231f), proportionOfWidth (0.1896f), proportionOfHeight (0.2256f));
    lambda__slider->setBounds (proportionOfWidth (0.0569f), proportionOfHeight (0.3692f), proportionOfWidth (0.1896f), proportionOfHeight (0.2256f));
    auto__toggleButton->setBounds (proportionOfWidth (0.0663f), proportionOfHeight (0.5949f), proportionOfWidth (0.1777f), proportionOfHeight (0.0615f));
    selb__toggleButton->setBounds (proportionOfWidth (0.0663f), proportionOfHeight (0.6769f), proportionOfWidth (0.1777f), proportionOfHeight (0.0615f));
    phase__comboBox->setBounds (proportionOfWidth (0.0663f), proportionOfHeight (0.7590f), proportionOfWidth (0.1777f), proportionOfHeight (0.0615f));
    constel__comboBox->setBounds (proportionOfWidth (0.0663f), proportionOfHeight (0.8615f), proportionOfWidth (0.1777f), proportionOfHeight (0.0615f));
    ntpall__comboBox->setBounds (proportionOfWidth (0.2749f), proportionOfHeight (0.1641f), proportionOfWidth (0.1991f), proportionOfHeight (0.0615f));
    evntp__comboBox2->setBounds (proportionOfWidth (0.5024f), proportionOfHeight (0.1641f), proportionOfWidth (0.1991f), proportionOfHeight (0.0615f));
    odntp__comboBox3->setBounds (proportionOfWidth (0.7299f), proportionOfHeight (0.1641f), proportionOfWidth (0.1991f), proportionOfHeight (0.0615f));
    ntp__label->setBounds (proportionOfWidth (0.2749f) + juce::roundToInt (proportionOfWidth (0.1991f) * 0.0000f), proportionOfHeight (0.1641f) + juce::roundToInt (proportionOfHeight (0.0615f) * -1.0000f), juce::roundToInt (proportionOfWidth (0.1991f) * 0.8929f), juce::roundToInt (proportionOfHeight (0.0615f) * 1.0000f));
    allpan__label->setBounds (proportionOfWidth (0.2654f), proportionOfHeight (0.2461f), proportionOfWidth (0.2180f), proportionOfHeight (0.5538f));
    evpan__label->setBounds (proportionOfWidth (0.4929f), proportionOfHeight (0.2461f), proportionOfWidth (0.2180f), proportionOfHeight (0.5538f));
    odpan__label->setBounds (proportionOfWidth (0.7204f), proportionOfHeight (0.2461f), proportionOfWidth (0.2180f), proportionOfHeight (0.5538f));
    revpan__label->setBounds (proportionOfWidth (0.2654f), proportionOfHeight (0.8205f), proportionOfWidth (0.6730f), proportionOfHeight (0.1436f));
    hmsk1__slider->setBounds (proportionOfWidth (0.2749f), proportionOfHeight (0.2667f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    prv1__slider->setBounds (proportionOfWidth (0.3791f), proportionOfHeight (0.2667f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    bsr1__comboBox->setBounds (proportionOfWidth (0.2749f), proportionOfHeight (0.4923f), proportionOfWidth (0.1043f), proportionOfHeight (0.0615f));
    mtc1__slider->setBounds (proportionOfWidth (0.3791f), proportionOfHeight (0.5744f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    pkt1__comboBox->setBounds (proportionOfWidth (0.2749f), proportionOfHeight (0.5949f), proportionOfWidth (0.1043f), proportionOfHeight (0.0615f));
    hmsk2__slider->setBounds (proportionOfWidth (0.5024f), proportionOfHeight (0.2667f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    prv2__slider->setBounds (proportionOfWidth (0.6066f), proportionOfHeight (0.2667f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    bsr2__comboBox->setBounds (proportionOfWidth (0.5024f), proportionOfHeight (0.4923f), proportionOfWidth (0.1043f), proportionOfHeight (0.0615f));
    mtc2__slider->setBounds (proportionOfWidth (0.6066f), proportionOfHeight (0.5744f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    pkt2__comboBox->setBounds (proportionOfWidth (0.5024f), proportionOfHeight (0.5949f), proportionOfWidth (0.1043f), proportionOfHeight (0.0615f));
    hmsk3__slider->setBounds (proportionOfWidth (0.7299f), proportionOfHeight (0.2667f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    prv3__slider->setBounds (proportionOfWidth (0.8341f), proportionOfHeight (0.2667f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    bsr3__comboBox->setBounds (proportionOfWidth (0.7299f), proportionOfHeight (0.4923f), proportionOfWidth (0.1043f), proportionOfHeight (0.0615f));
    mtc3__slider->setBounds (proportionOfWidth (0.8341f), proportionOfHeight (0.5744f), proportionOfWidth (0.1043f), proportionOfHeight (0.2051f));
    pkt3__comboBox->setBounds (proportionOfWidth (0.7299f), proportionOfHeight (0.5949f), proportionOfWidth (0.1043f), proportionOfHeight (0.0615f));
    vel__slider->setBounds (proportionOfWidth (0.2749f), proportionOfHeight (0.8359f), proportionOfWidth (0.1422f), proportionOfHeight (0.1436f));
    spacing__slider->setBounds (proportionOfWidth (0.4171f), proportionOfHeight (0.8359f), proportionOfWidth (0.1422f), proportionOfHeight (0.1436f));
    revt__slider->setBounds (proportionOfWidth (0.5592f), proportionOfHeight (0.8359f), proportionOfWidth (0.1422f), proportionOfHeight (0.1436f));
    encaps__slider->setBounds (proportionOfWidth (0.7014f), proportionOfHeight (0.8359f), proportionOfWidth (0.1422f), proportionOfHeight (0.1436f));
    gre__toggleButton->setBounds (proportionOfWidth (0.8531f), proportionOfHeight (0.8769f), proportionOfWidth (0.0829f), proportionOfHeight (0.0615f));
    lpbkint1__label->setBounds (proportionOfWidth (0.2749f) + juce::roundToInt (proportionOfWidth (0.1043f) * 1.0909f), proportionOfHeight (0.4923f) + juce::roundToInt (proportionOfHeight (0.0615f) * 0.5000f) - ((juce::roundToInt (proportionOfHeight (0.0615f) * 1.0000f)) / 2), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.0615f) * 1.0000f));
    lpbkint2__label->setBounds (proportionOfWidth (0.5024f) + juce::roundToInt (proportionOfWidth (0.1043f) * 1.0909f), proportionOfHeight (0.4923f) + juce::roundToInt (proportionOfHeight (0.0615f) * 0.5000f) - ((juce::roundToInt (proportionOfHeight (0.0615f) * 1.0000f)) / 2), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.0615f) * 1.0000f));
    lpbkint3__label->setBounds (proportionOfWidth (0.7299f) + juce::roundToInt (proportionOfWidth (0.1043f) * 1.0909f), proportionOfHeight (0.4923f) + juce::roundToInt (proportionOfHeight (0.0615f) * 0.5000f) - ((juce::roundToInt (proportionOfHeight (0.0615f) * 1.0000f)) / 2), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.0615f) * 1.0000f));
    alpha1__slider->setBounds (proportionOfWidth (0.2749f), proportionOfHeight (0.6769f), proportionOfWidth (0.1043f), proportionOfHeight (0.1026f));
    alpha2__slider->setBounds (proportionOfWidth (0.5024f), proportionOfHeight (0.6769f), proportionOfWidth (0.1043f), proportionOfHeight (0.1026f));
    alpha3__slider->setBounds (proportionOfWidth (0.7299f), proportionOfHeight (0.6769f), proportionOfWidth (0.1043f), proportionOfHeight (0.1026f));
    omegalbl->setBounds (proportionOfWidth (0.0569f) + juce::roundToInt (proportionOfWidth (0.1896f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1896f) * 0.5000f)) / 2), proportionOfHeight (0.1231f) + juce::roundToInt (proportionOfHeight (0.2256f) * -0.0795f), juce::roundToInt (proportionOfWidth (0.1896f) * 0.5000f), juce::roundToInt (proportionOfHeight (0.2256f) * 0.2727f));
    lambdalbl->setBounds (proportionOfWidth (0.0569f) + juce::roundToInt (proportionOfWidth (0.1896f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1896f) * 0.5000f)) / 2), proportionOfHeight (0.3692f) + juce::roundToInt (proportionOfHeight (0.2256f) * -0.0795f), juce::roundToInt (proportionOfWidth (0.1896f) * 0.5000f), juce::roundToInt (proportionOfHeight (0.2256f) * 0.2727f));
    hashmask1lbl->setBounds (proportionOfWidth (0.2749f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f)) / 2), proportionOfHeight (0.2667f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    hashmask2lbl->setBounds (proportionOfWidth (0.5024f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f)) / 2), proportionOfHeight (0.2667f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    hashmask3lbl->setBounds (proportionOfWidth (0.7299f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f)) / 2), proportionOfHeight (0.2667f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    priorval1lbl->setBounds (proportionOfWidth (0.3791f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f)) / 2), proportionOfHeight (0.2667f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    priorval2lbl->setBounds (proportionOfWidth (0.6066f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f)) / 2), proportionOfHeight (0.2667f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    priorval3lbl->setBounds (proportionOfWidth (0.8341f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f)) / 2), proportionOfHeight (0.2667f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 0.8182f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    mtcaddr1lbl->setBounds (proportionOfWidth (0.3791f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 1.0000f)) / 2), proportionOfHeight (0.5744f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 1.0000f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    mtcaddr2lbl->setBounds (proportionOfWidth (0.6066f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 1.0000f)) / 2), proportionOfHeight (0.5744f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 1.0000f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    mtcaddr3lbl->setBounds (proportionOfWidth (0.8341f) + juce::roundToInt (proportionOfWidth (0.1043f) * 0.5000f) - ((juce::roundToInt (proportionOfWidth (0.1043f) * 1.0000f)) / 2), proportionOfHeight (0.5744f) + juce::roundToInt (proportionOfHeight (0.2051f) * -0.2000f), juce::roundToInt (proportionOfWidth (0.1043f) * 1.0000f), juce::roundToInt (proportionOfHeight (0.2051f) * 0.3000f));
    mtcaddr4lbl->setBounds (proportionOfWidth (0.7014f) + juce::roundToInt (proportionOfWidth (0.1422f) * 0.0000f), proportionOfHeight (0.8359f) + juce::roundToInt (proportionOfHeight (0.1436f) * -0.0714f), juce::roundToInt (proportionOfWidth (0.1422f) * 0.7333f), juce::roundToInt (proportionOfHeight (0.1436f) * 0.4286f));
    angvellbl->setBounds (proportionOfWidth (0.2749f) + juce::roundToInt (proportionOfWidth (0.1422f) * 0.0000f), proportionOfHeight (0.8359f) + juce::roundToInt (proportionOfHeight (0.1436f) * -0.0714f), juce::roundToInt (proportionOfWidth (0.1422f) * 0.9333f), juce::roundToInt (proportionOfHeight (0.1436f) * 0.4286f));
    spacinglbl->setBounds (proportionOfWidth (0.4171f) + juce::roundToInt (proportionOfWidth (0.1422f) * 0.1167f), proportionOfHeight (0.8359f) + juce::roundToInt (proportionOfHeight (0.1436f) * -0.0714f), juce::roundToInt (proportionOfWidth (0.1422f) * 0.6000f), juce::roundToInt (proportionOfHeight (0.1436f) * 0.3929f));
    rghtasclbl->setBounds (proportionOfWidth (0.5592f) + juce::roundToInt (proportionOfWidth (0.1422f) * 0.0000f), proportionOfHeight (0.8359f) + juce::roundToInt (proportionOfHeight (0.1436f) * -0.0714f), juce::roundToInt (proportionOfWidth (0.1422f) * 0.8667f), juce::roundToInt (proportionOfHeight (0.1436f) * 0.3929f));

	if (sliderHolder->getNumChildComponents()) {
		double sliderHeight = sliderHolder->getHeight() / sliderHolder->getNumChildComponents();

		for (long i = 0; i < sliderHolder->getNumChildComponents(); i++) {
			Component *slider = sliderHolder->getChildComponent(i);
			slider->setBounds(0, i * sliderHeight, sliderHolder->getWidth(), sliderHeight);
		}
	}

	if (sliderLabelHolder->getNumChildComponents()) {
		double sliderHeight = sliderLabelHolder->getHeight() / sliderLabelHolder->getNumChildComponents();

		for (long i = 0; i < sliderLabelHolder->getNumChildComponents(); i++) {
			Component *sliderLabel = sliderLabelHolder->getChildComponent(i);
			sliderLabel->setBounds(0, i * sliderHeight, sliderLabelHolder->getWidth(), sliderHeight);
		}
	}
}

void C74GenAudioProcessorEditor::sliderValueChanged (juce::Slider* sliderThatWasMoved)
{
    //[UsersliderValueChanged_Pre]
    //[/UsersliderValueChanged_Pre]

    if (sliderThatWasMoved == tempo__slider.get())
    {
        //[UserSliderCode_tempo__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(6, sliderThatWasMoved->getValue());

        //[/UserSliderCode_tempo__slider]
    }
    else if (sliderThatWasMoved == lambda__slider.get())
    {
        //[UserSliderCode_lambda__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(5, sliderThatWasMoved->getValue());
        //[/UserSliderCode_lambda__slider]
    }
    else if (sliderThatWasMoved == hmsk1__slider.get())
    {
        //[UserSliderCode_hmsk1__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(41, scale(sliderThatWasMoved->getValue(), 0, 32, 0, 1, 1));
        //[/UserSliderCode_hmsk1__slider]
    }
    else if (sliderThatWasMoved == prv1__slider.get())
    {
        //[UserSliderCode_prv1__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(40, scale(sliderThatWasMoved->getValue(), 0, 255, 0, 1, 1));
        //[/UserSliderCode_prv1__slider]
    }
    else if (sliderThatWasMoved == mtc1__slider.get())
    {
        //[UserSliderCode_mtc1__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(31, scale(sliderThatWasMoved->getValue(), 0, 255, 0, 1, 1));
        //[/UserSliderCode_mtc1__slider]
    }
    else if (sliderThatWasMoved == hmsk2__slider.get())
    {
        //[UserSliderCode_hmsk2__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(43, scale(sliderThatWasMoved->getValue(), 0, 32, 0, 1, 1));
        //[/UserSliderCode_hmsk2__slider]
    }
    else if (sliderThatWasMoved == prv2__slider.get())
    {
        //[UserSliderCode_prv2__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(42, scale(sliderThatWasMoved->getValue(), 0, 255, 0, 1, 1));
        //[/UserSliderCode_prv2__slider]
    }
    else if (sliderThatWasMoved == mtc2__slider.get())
    {
        //[UserSliderCode_mtc2__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(32, scale(sliderThatWasMoved->getValue(), 0, 255, 0, 1, 1));
        //[/UserSliderCode_mtc2__slider]
    }
    else if (sliderThatWasMoved == hmsk3__slider.get())
    {
        //[UserSliderCode_hmsk3__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(45, scale(sliderThatWasMoved->getValue(), 0, 32, 0, 1, 1));
        //[/UserSliderCode_hmsk3__slider]
    }
    else if (sliderThatWasMoved == prv3__slider.get())
    {
        //[UserSliderCode_prv3__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(44, scale(sliderThatWasMoved->getValue(), 0, 255, 0, 1, 1));
        //[/UserSliderCode_prv3__slider]
    }
    else if (sliderThatWasMoved == mtc3__slider.get())
    {
        //[UserSliderCode_mtc3__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(33, scale(sliderThatWasMoved->getValue(), 0, 255, 0, 1, 1));
        //[/UserSliderCode_mtc3__slider]
    }
    else if (sliderThatWasMoved == vel__slider.get())
    {
        //[UserSliderCode_vel__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(16, sliderThatWasMoved->getValue());
        //[/UserSliderCode_vel__slider]
    }
    else if (sliderThatWasMoved == spacing__slider.get())
    {
        //[UserSliderCode_spacing__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(26, sliderThatWasMoved->getValue());
        //[/UserSliderCode_spacing__slider]
    }
    else if (sliderThatWasMoved == revt__slider.get())
    {
        //[UserSliderCode_revt__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(14, sliderThatWasMoved->getValue());
        //[/UserSliderCode_revt__slider]
    }
    else if (sliderThatWasMoved == encaps__slider.get())
    {
        //[UserSliderCode_encaps__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(13, scale(sliderThatWasMoved->getValue(), 0, 255, 0, 1, 1));
        //[/UserSliderCode_encaps__slider]
    }
    else if (sliderThatWasMoved == alpha1__slider.get())
    {
        //[UserSliderCode_alpha1__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(2, sliderThatWasMoved->getValue());
        //[/UserSliderCode_alpha1__slider]
    }
    else if (sliderThatWasMoved == alpha2__slider.get())
    {
        //[UserSliderCode_alpha2__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(0, sliderThatWasMoved->getValue());
        //[/UserSliderCode_alpha2__slider]
    }
    else if (sliderThatWasMoved == alpha3__slider.get())
    {
        //[UserSliderCode_alpha3__slider] -- add your slider handling code here..
        sliderThatWasMoved->getValue();
        setParameter(1, sliderThatWasMoved->getValue());
        //[/UserSliderCode_alpha3__slider]
    }

    //[UsersliderValueChanged_Post]
    //[/UsersliderValueChanged_Post]
}

void C74GenAudioProcessorEditor::buttonClicked (juce::Button* buttonThatWasClicked)
{
    //[UserbuttonClicked_Pre]
    //[/UserbuttonClicked_Pre]

    if (buttonThatWasClicked == auto__toggleButton.get())
    {
        //[UserButtonCode_auto__toggleButton] -- add your button handler code here..
        buttonThatWasClicked->getToggleState();
        setParameter(3, buttonThatWasClicked->getToggleState());
        //[/UserButtonCode_auto__toggleButton]
    }
    else if (buttonThatWasClicked == selb__toggleButton.get())
    {
        //[UserButtonCode_selb__toggleButton] -- add your button handler code here..
        invBut1 = (1 - buttonThatWasClicked->getToggleState());
        setParameter(17, invBut1);
        //[/UserButtonCode_selb__toggleButton]
    }
    else if (buttonThatWasClicked == gre__toggleButton.get())
    {
        //[UserButtonCode_gre__toggleButton] -- add your button handler code here..
        invBut2 = (1 - buttonThatWasClicked->getToggleState());
        setParameter(15, invBut2);
        //[/UserButtonCode_gre__toggleButton]
    }

    //[UserbuttonClicked_Post]
    //[/UserbuttonClicked_Post]
}

void C74GenAudioProcessorEditor::comboBoxChanged (juce::ComboBox* comboBoxThatHasChanged)
{
    //[UsercomboBoxChanged_Pre]
    //[/UsercomboBoxChanged_Pre]

    if (comboBoxThatHasChanged == phase__comboBox.get())
    {
        //[UserComboBoxCode_phase__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(12, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_phase__comboBox]
    }
    else if (comboBoxThatHasChanged == constel__comboBox.get())
    {
        //[UserComboBoxCode_constel__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(7, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_constel__comboBox]
    }
    else if (comboBoxThatHasChanged == ntpall__comboBox.get())
    {
        //[UserComboBoxCode_ntpall__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(23, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_ntpall__comboBox]
    }
    else if (comboBoxThatHasChanged == evntp__comboBox2.get())
    {
        //[UserComboBoxCode_evntp__comboBox2] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(24, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_evntp__comboBox2]
    }
    else if (comboBoxThatHasChanged == odntp__comboBox3.get())
    {
        //[UserComboBoxCode_odntp__comboBox3] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(25, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_odntp__comboBox3]
    }
    else if (comboBoxThatHasChanged == bsr1__comboBox.get())
    {
        //[UserComboBoxCode_bsr1__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(30, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_bsr1__comboBox]
    }
    else if (comboBoxThatHasChanged == pkt1__comboBox.get())
    {
        //[UserComboBoxCode_pkt1__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(39, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_pkt1__comboBox]
    }
    else if (comboBoxThatHasChanged == bsr2__comboBox.get())
    {
        //[UserComboBoxCode_bsr2__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(28, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_bsr2__comboBox]
    }
    else if (comboBoxThatHasChanged == pkt2__comboBox.get())
    {
        //[UserComboBoxCode_pkt2__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(37, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_pkt2__comboBox]
    }
    else if (comboBoxThatHasChanged == bsr3__comboBox.get())
    {
        //[UserComboBoxCode_bsr3__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(29, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_bsr3__comboBox]
    }
    else if (comboBoxThatHasChanged == pkt3__comboBox.get())
    {
        //[UserComboBoxCode_pkt3__comboBox] -- add your combo box handling code here..
        comboBoxThatHasChanged->getSelectedItemIndex();
        setParameter(38, comboBoxThatHasChanged->getSelectedItemIndex());
        //[/UserComboBoxCode_pkt3__comboBox]
    }

    //[UsercomboBoxChanged_Post]
    //[/UsercomboBoxChanged_Post]
}
// JUCER_RESOURCE: saser_logo_80x20_png, 5234, "../Images/saser_logo_80x20.png"
static const unsigned char resource_UIComponent_saser_logo_80x20_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,80,0,0,0,20,8,6,0,0,1,109,223,138,65,0,0,0,9,112,72,89,115,0,0,11,19,0,0,
11,19,1,0,154,156,24,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,112,114,111,102,105,108,101,0,0,120,218,157,83,103,84,83,233,22,61,247,222,244,66,75,136,128,148,75,111,82,
21,8,32,82,66,139,128,20,145,38,42,33,9,16,74,136,33,161,217,21,81,193,17,69,69,4,27,200,160,136,3,142,142,128,140,21,81,44,12,138,10,216,7,228,33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,
247,230,205,254,181,215,62,231,172,243,157,179,207,7,192,8,12,150,72,51,81,53,128,12,169,66,30,17,224,131,199,196,198,225,228,46,64,129,10,36,112,0,16,8,179,100,33,115,253,35,1,0,248,126,60,60,43,34,192,
7,190,0,1,120,211,11,8,0,192,77,155,192,48,28,135,255,15,234,66,153,92,1,128,132,1,192,116,145,56,75,8,128,20,0,64,122,142,66,166,0,64,70,1,128,157,152,38,83,0,160,4,0,96,203,99,98,227,0,80,45,0,96,39,
127,230,211,0,128,157,248,153,123,1,0,91,148,33,21,1,160,145,0,32,19,101,136,68,0,104,59,0,172,207,86,138,69,0,88,48,0,20,102,75,196,57,0,216,45,0,48,73,87,102,72,0,176,183,0,192,206,16,11,178,0,8,12,
0,48,81,136,133,41,0,4,123,0,96,200,35,35,120,0,132,153,0,20,70,242,87,60,241,43,174,16,231,42,0,0,120,153,178,60,185,36,57,69,129,91,8,45,113,7,87,87,46,30,40,206,73,23,43,20,54,97,2,97,154,64,46,194,
121,153,25,50,129,52,15,224,243,204,0,0,160,145,21,17,224,131,243,253,120,206,14,174,206,206,54,142,182,14,95,45,234,191,6,255,34,98,98,227,254,229,207,171,112,64,0,0,225,116,126,209,254,44,47,179,26,
128,59,6,128,109,254,162,37,238,4,104,94,11,160,117,247,139,102,178,15,64,181,0,160,233,218,87,243,112,248,126,60,60,69,161,144,185,217,217,229,228,228,216,74,196,66,91,97,202,87,125,254,103,194,95,192,
87,253,108,249,126,60,252,247,245,224,190,226,36,129,50,93,129,71,4,248,224,194,204,244,76,165,28,207,146,9,132,98,220,230,143,71,252,183,11,255,252,29,211,34,196,73,98,185,88,42,20,227,81,18,113,142,
68,154,140,243,50,165,34,137,66,146,41,197,37,210,255,100,226,223,44,251,3,62,223,53,0,176,106,62,1,123,145,45,168,93,99,3,246,75,39,16,88,116,192,226,247,0,0,242,187,111,193,212,40,8,3,128,104,131,225,
207,119,255,239,63,253,71,160,37,0,128,102,73,146,113,0,0,94,68,36,46,84,202,179,63,199,8,0,0,68,160,129,42,176,65,27,244,193,24,44,192,6,28,193,5,220,193,11,252,96,54,132,66,36,196,194,66,16,66,10,100,
128,28,114,96,41,172,130,66,40,134,205,176,29,42,96,47,212,64,29,52,192,81,104,134,147,112,14,46,194,85,184,14,61,112,15,250,97,8,158,193,40,188,129,9,4,65,200,8,19,97,33,218,136,1,98,138,88,35,142,8,
23,153,133,248,33,193,72,4,18,139,36,32,201,136,20,81,34,75,145,53,72,49,82,138,84,32,85,72,29,242,61,114,2,57,135,92,70,186,145,59,200,0,50,130,252,134,188,71,49,148,129,178,81,61,212,12,181,67,185,168,
55,26,132,70,162,11,208,100,116,49,154,143,22,160,155,208,114,180,26,61,140,54,161,231,208,171,104,15,218,143,62,67,199,48,192,232,24,7,51,196,108,48,46,198,195,66,177,56,44,9,147,99,203,177,34,172,12,
171,198,26,176,86,172,3,187,137,245,99,207,177,119,4,18,129,69,192,9,54,4,119,66,32,97,30,65,72,88,76,88,78,216,72,168,32,28,36,52,17,218,9,55,9,3,132,81,194,39,34,147,168,75,180,38,186,17,249,196,24,
98,50,49,135,88,72,44,35,214,18,143,19,47,16,123,136,67,196,55,36,18,137,67,50,39,185,144,2,73,177,164,84,210,18,210,70,210,110,82,35,233,44,169,155,52,72,26,35,147,201,218,100,107,178,7,57,148,44,32,
43,200,133,228,157,228,195,228,51,228,27,228,33,242,91,10,157,98,64,113,164,248,83,226,40,82,202,106,74,25,229,16,229,52,229,6,101,152,50,65,85,163,154,82,221,168,161,84,17,53,143,90,66,173,161,182,82,
175,81,135,168,19,52,117,154,57,205,131,22,73,75,165,173,162,149,211,26,104,23,104,247,105,175,232,116,186,17,221,149,30,78,151,208,87,210,203,233,71,232,151,232,3,244,119,12,13,134,21,131,199,136,103,
40,25,155,24,7,24,103,25,119,24,175,152,76,166,25,211,139,25,199,84,48,55,49,235,152,231,153,15,153,111,85,88,42,182,42,124,21,145,202,10,149,74,149,38,149,27,42,47,84,169,170,166,170,222,170,11,85,243,
85,203,84,143,169,94,83,125,174,70,85,51,83,227,169,9,212,150,171,85,170,157,80,235,83,27,83,103,169,59,168,135,170,103,168,111,84,63,164,126,89,253,137,6,89,195,76,195,79,67,164,81,160,177,95,227,188,
198,32,11,99,25,179,120,44,33,107,13,171,134,117,129,53,196,38,177,205,217,124,118,42,187,152,253,29,187,139,61,170,169,161,57,67,51,74,51,87,179,82,243,148,102,63,7,227,152,113,248,156,116,78,9,231,40,
167,151,243,126,138,222,20,239,41,226,41,27,166,52,76,185,49,101,92,107,170,150,151,150,88,171,72,171,81,171,71,235,189,54,174,237,167,157,166,189,69,187,89,251,129,14,65,199,74,39,92,39,71,103,143,206,
5,157,231,83,217,83,221,167,10,167,22,77,61,58,245,174,46,170,107,165,27,161,187,68,119,191,110,167,238,152,158,190,94,128,158,76,111,167,222,121,189,231,250,28,125,47,253,84,253,109,250,167,245,71,12,
88,6,179,12,36,6,219,12,206,24,60,197,53,113,111,60,29,47,199,219,241,81,67,93,195,64,67,165,97,149,97,151,225,132,145,185,209,60,163,213,70,141,70,15,140,105,198,92,227,36,227,109,198,109,198,163,38,
6,38,33,38,75,77,234,77,238,154,82,77,185,166,41,166,59,76,59,76,199,205,204,205,162,205,214,153,53,155,61,49,215,50,231,155,231,155,215,155,223,183,96,90,120,90,44,182,168,182,184,101,73,178,228,90,166,
89,238,182,188,110,133,90,57,89,165,88,85,90,93,179,70,173,157,173,37,214,187,173,187,167,17,167,185,78,147,78,171,158,214,103,195,176,241,182,201,182,169,183,25,176,229,216,6,219,174,182,109,182,125,
97,103,98,23,103,183,197,174,195,238,147,189,147,125,186,125,141,253,61,7,13,135,217,14,171,29,90,29,126,115,180,114,20,58,86,58,222,154,206,156,238,63,125,197,244,150,233,47,103,88,207,16,207,216,51,
227,182,19,203,41,196,105,157,83,155,211,71,103,23,103,185,115,131,243,136,139,137,75,130,203,46,151,62,46,155,27,198,221,200,189,228,74,116,245,113,93,225,122,210,245,157,155,179,155,194,237,168,219,
175,238,54,238,105,238,135,220,159,204,52,159,41,158,89,51,115,208,195,200,67,224,81,229,209,63,11,159,149,48,107,223,172,126,79,67,79,129,103,181,231,35,47,99,47,145,87,173,215,176,183,165,119,170,247,
97,239,23,62,246,62,114,159,227,62,227,60,55,222,50,222,89,95,204,55,192,183,200,183,203,79,195,111,158,95,133,223,67,127,35,255,100,255,122,255,209,0,167,128,37,1,103,3,137,129,65,129,91,2,251,248,122,
124,33,191,142,63,58,219,101,246,178,217,237,65,140,160,185,65,21,65,143,130,173,130,229,193,173,33,104,200,236,144,173,33,247,231,152,206,145,206,105,14,133,80,126,232,214,208,7,97,230,97,139,195,126,
12,39,133,135,133,87,134,63,142,112,136,88,26,209,49,151,53,119,209,220,67,115,223,68,250,68,150,68,222,155,103,49,79,57,175,45,74,53,42,62,170,46,106,60,218,55,186,52,186,63,198,46,102,89,204,213,88,
157,88,73,108,75,28,57,46,42,174,54,110,108,190,223,252,237,243,135,226,157,226,11,227,123,23,152,47,200,93,112,121,161,206,194,244,133,167,22,169,46,18,44,58,150,64,76,136,78,56,148,240,65,16,42,168,
22,140,37,242,19,119,37,142,10,121,194,29,194,103,34,47,209,54,209,136,216,67,92,42,30,78,242,72,42,77,122,146,236,145,188,53,121,36,197,51,165,44,229,185,132,39,169,144,188,76,13,76,221,155,58,158,22,
154,118,32,109,50,61,58,189,49,131,146,145,144,113,66,170,33,77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183,47,30,149,7,201,107,179,144,172,5,89,45,10,182,66,166,232,84,90,
40,215,42,7,178,103,101,87,102,191,205,137,202,57,150,171,158,43,205,237,204,179,202,219,144,55,156,239,159,255,237,18,194,18,225,146,182,165,134,75,87,45,29,88,230,189,172,106,57,178,60,113,121,219,10,
227,21,5,43,134,86,6,172,60,184,138,182,42,109,213,79,171,237,87,151,174,126,189,38,122,77,107,129,94,193,202,130,193,181,1,107,235,11,85,10,229,133,125,235,220,215,237,93,79,88,47,89,223,181,97,250,134,
157,27,62,21,137,138,174,20,219,23,151,21,127,216,40,220,120,229,27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222,45,158,91,14,150,170,151,230,151,14,110,13,217,218,180,
13,223,86,180,237,245,246,69,219,47,151,205,40,219,187,131,182,67,185,163,191,60,184,188,101,167,201,206,205,59,63,84,164,84,244,84,250,84,54,238,210,221,181,97,215,248,110,209,238,27,123,188,246,52,236,
213,219,91,188,247,253,62,201,190,219,85,1,85,77,213,102,213,101,251,73,251,179,247,63,174,137,170,233,248,150,251,109,93,173,78,109,113,237,199,3,210,3,253,7,35,14,182,215,185,212,213,29,210,61,84,82,
143,214,43,235,71,14,199,31,190,254,157,239,119,45,13,54,13,85,141,156,198,226,35,112,68,121,228,233,247,9,223,247,30,13,58,218,118,140,123,172,225,7,211,31,118,29,103,29,47,106,66,154,242,154,70,155,
83,154,251,91,98,91,186,79,204,62,209,214,234,222,122,252,71,219,31,15,156,52,60,89,121,74,243,84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126,46,249,220,96,219,162,182,123,231,99,206,
223,106,15,111,239,186,16,116,225,210,69,255,139,231,59,188,59,206,92,242,184,116,242,178,219,229,19,87,184,87,154,175,58,95,109,234,116,234,60,254,147,211,79,199,187,156,187,154,174,185,92,107,185,238,
122,189,181,123,102,247,233,27,158,55,206,221,244,189,121,241,22,255,214,213,158,57,61,221,189,243,122,111,247,197,247,245,223,22,221,126,114,39,253,206,203,187,217,119,39,238,173,188,79,188,95,244,64,
237,65,217,67,221,135,213,63,91,254,220,216,239,220,127,106,192,119,160,243,209,220,71,247,6,133,131,207,254,145,245,143,15,67,5,143,153,143,203,134,13,134,235,158,56,62,57,57,226,63,114,253,233,252,167,
67,207,100,207,38,158,23,254,162,254,203,174,23,22,47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235,25,175,219,198,194,198,30,190,201,120,51,49,94,244,86,251,
237,193,119,220,119,29,239,163,223,15,79,228,124,32,127,40,255,104,249,177,245,83,208,167,251,147,25,147,147,255,4,3,152,243,252,99,51,45,219,0,0,0,32,99,72,82,77,0,0,122,37,0,0,128,131,0,0,249,255,0,
0,128,233,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,111,146,95,197,70,0,0,9,157,73,68,65,84,120,218,98,252,255,255,63,3,49,128,133,129,129,129,161,192,223,255,215,196,77,155,164,164,185,165,216,11,195,67,
190,49,48,48,24,51,48,48,236,97,96,96,96,40,158,59,145,161,55,57,191,156,225,255,255,255,12,238,238,238,255,253,253,253,25,24,24,24,118,252,255,255,159,1,27,6,0,0,0,255,255,98,36,218,234,85,243,230,253,
15,79,78,102,100,96,96,250,255,255,255,95,198,222,228,124,6,6,6,6,152,238,89,197,115,39,166,247,38,231,255,103,96,96,96,248,223,214,214,246,150,129,129,129,1,151,181,255,255,255,103,0,0,0,0,255,255,98,
252,255,255,63,67,186,147,211,105,79,41,41,147,125,239,15,51,44,97,252,206,192,255,35,104,213,243,195,91,195,127,252,124,204,64,42,96,97,96,96,96,120,193,203,107,194,25,27,203,208,237,48,247,140,246,130,
5,166,25,25,25,19,184,56,56,254,51,48,48,160,59,153,129,129,129,129,17,74,255,135,121,129,129,129,1,18,130,12,12,229,0,0,0,0,255,255,34,58,112,136,5,140,12,12,12,12,235,243,243,255,63,63,116,156,97,141,
242,3,134,171,76,122,12,175,87,157,101,100,101,227,102,32,199,203,140,78,86,86,255,167,244,246,50,232,186,184,48,254,253,250,149,129,129,129,225,191,4,191,34,3,227,239,239,140,197,17,97,255,209,188,232,
10,77,44,157,80,177,221,197,115,39,186,246,38,231,255,47,158,59,145,177,55,57,63,141,233,240,233,211,12,13,253,253,12,47,31,62,252,255,231,207,31,6,6,6,6,198,23,31,239,51,188,253,245,214,166,120,238,68,
70,6,6,134,52,36,7,236,70,50,12,89,156,161,55,57,255,110,241,220,137,179,96,252,255,53,53,53,255,109,108,108,96,252,41,132,146,7,46,12,0,0,0,255,255,156,148,49,75,66,81,24,134,159,115,77,139,194,43,55,
116,184,24,138,136,184,57,8,229,210,238,234,32,82,191,32,106,117,208,214,166,164,201,65,200,65,104,12,36,108,138,104,140,8,26,2,161,193,28,114,40,208,161,242,102,81,41,154,167,229,26,183,75,75,30,56,203,
57,135,151,247,251,222,231,59,66,74,137,16,130,213,112,152,184,170,38,151,85,207,169,103,97,192,75,236,131,107,189,207,177,33,123,98,152,12,245,79,58,70,183,126,142,226,116,1,240,57,69,127,167,10,89,74,
137,87,85,183,246,178,217,82,200,235,165,211,104,112,80,171,113,214,110,143,38,152,206,104,26,243,115,75,248,164,239,176,219,187,93,87,132,131,167,247,123,38,19,100,174,12,80,181,228,103,69,86,3,186,54,
184,202,214,24,204,76,127,33,156,173,20,133,2,16,142,70,75,61,183,155,182,166,161,167,82,151,71,205,230,182,148,210,153,203,229,4,32,70,134,33,94,59,55,60,60,94,172,205,186,134,207,111,131,206,68,99,195,
162,215,178,152,203,0,121,139,81,195,114,255,255,14,10,33,174,128,149,68,34,65,58,157,38,30,143,19,8,4,104,181,90,66,215,117,98,177,216,15,91,138,34,24,75,246,229,120,188,105,171,184,106,154,200,217,38,
161,96,158,151,45,111,23,129,93,27,200,97,224,14,200,103,43,197,130,169,157,193,246,49,236,0,95,14,135,163,30,137,68,240,251,253,4,131,193,63,43,155,6,248,105,246,55,0,0,0,255,255,188,150,189,79,20,65,
24,135,159,129,203,25,79,238,52,27,68,46,49,38,160,156,137,23,221,194,143,216,106,4,171,107,76,196,72,75,97,39,197,21,196,127,64,81,115,5,157,144,208,89,217,208,216,121,177,35,98,224,18,46,185,198,175,
67,4,69,228,144,219,219,251,222,236,140,5,179,186,172,84,132,240,86,51,155,201,204,59,191,119,222,231,183,7,78,174,3,111,18,1,12,196,227,156,144,146,225,129,129,124,194,21,151,172,11,77,218,87,235,188,
180,234,20,237,243,207,170,11,93,227,206,194,87,218,213,117,64,28,90,7,3,136,14,33,56,217,213,21,158,24,25,105,25,128,189,186,74,241,87,145,79,231,202,204,217,45,42,29,113,142,198,174,177,253,122,73,56,
141,77,64,236,11,225,251,141,144,84,138,251,169,84,171,39,153,36,84,171,81,88,94,230,249,210,7,236,69,181,131,153,206,10,145,83,77,162,145,51,74,58,91,66,254,35,243,101,96,113,15,23,28,215,13,240,0,240,
200,253,5,232,215,227,167,129,14,7,200,122,22,18,252,22,2,134,122,250,250,56,158,72,96,116,118,114,251,209,163,235,209,104,244,61,182,189,179,204,117,223,214,127,20,111,112,164,204,233,88,188,102,85,55,
143,249,18,41,234,238,243,199,132,198,204,43,95,130,253,192,21,32,23,172,96,122,102,146,32,251,180,0,10,160,3,184,247,179,92,230,219,214,22,239,214,214,88,89,89,121,88,169,84,98,82,122,90,113,19,200,214,
91,191,41,213,214,35,85,183,18,211,27,13,235,131,149,86,200,3,50,62,96,123,243,65,173,182,2,238,250,97,144,25,29,83,153,209,177,91,62,207,84,58,185,172,151,224,231,185,249,121,166,166,167,105,212,106,
88,150,53,2,88,141,70,195,143,160,65,0,171,89,70,10,94,4,110,43,116,162,253,218,172,253,78,226,205,179,122,221,89,173,172,95,65,145,158,153,204,6,24,249,215,4,66,192,147,92,46,247,56,28,14,147,76,38,49,
12,3,165,20,182,109,167,29,199,201,152,166,73,62,159,7,248,232,74,153,104,182,219,119,244,77,167,2,160,45,234,95,19,67,59,135,223,222,212,30,142,227,41,184,171,180,233,153,201,237,204,232,216,180,174,
138,216,245,176,123,123,123,73,165,82,152,166,201,236,236,172,225,186,238,118,169,84,162,80,40,120,27,150,0,83,41,245,253,208,48,227,27,247,232,82,92,140,68,34,67,221,221,221,111,164,148,56,142,195,198,
198,198,127,46,114,88,241,135,28,179,11,141,163,138,226,248,111,246,99,178,219,206,238,102,55,109,76,178,180,108,77,12,105,65,168,198,151,4,17,106,91,72,241,169,66,171,15,42,66,176,79,182,17,242,144,224,
155,111,217,135,128,65,69,176,13,138,168,72,242,100,73,69,104,84,200,67,145,98,30,218,66,155,154,164,9,89,19,205,199,238,166,221,143,217,221,153,221,235,67,239,180,183,211,68,139,66,17,189,112,25,238,
204,220,195,61,231,254,207,57,255,115,52,33,4,30,77,67,0,79,53,53,17,15,133,160,82,161,163,190,30,79,46,79,208,178,159,142,198,3,47,53,52,123,59,244,120,181,177,212,33,252,191,214,68,122,174,92,155,185,
154,55,127,74,111,238,248,49,88,215,86,214,60,9,204,171,25,188,171,80,88,152,167,156,77,225,241,251,31,176,193,227,12,240,143,45,78,171,11,187,90,197,182,44,127,219,174,93,95,63,187,111,223,203,187,116,
29,205,52,169,101,114,84,82,119,184,83,44,83,204,151,217,209,98,97,212,44,234,11,80,192,68,148,178,248,2,45,248,195,198,25,177,81,254,64,212,106,46,240,252,119,199,93,4,122,60,8,33,120,254,192,129,111,
95,57,124,248,88,115,44,134,225,245,130,105,146,223,216,96,99,101,133,223,82,43,204,230,215,152,243,231,88,183,45,54,205,42,166,168,33,234,116,124,59,163,120,141,39,240,17,34,96,133,16,235,213,31,110,
255,62,115,184,134,137,166,221,191,163,162,130,64,25,154,7,128,35,202,121,62,145,110,58,238,58,103,84,6,157,168,12,96,177,109,244,121,82,202,84,131,223,164,156,78,41,229,14,142,184,147,171,83,98,41,201,
217,25,211,192,120,255,232,72,242,1,4,10,33,120,102,255,254,155,199,122,122,218,99,123,247,18,107,108,100,167,174,99,166,211,172,153,38,95,93,187,198,212,210,210,199,192,103,192,2,160,3,29,192,171,96,
191,89,166,232,131,101,52,143,15,189,174,129,128,47,252,98,83,195,110,65,165,240,246,237,194,234,71,30,207,3,64,87,35,252,180,11,170,3,91,24,15,153,35,163,74,244,159,223,130,0,156,146,198,201,202,111,
183,148,247,147,91,25,11,56,234,38,2,174,203,192,161,247,74,237,63,52,220,219,55,4,156,236,31,29,25,119,52,123,47,186,123,119,123,73,215,177,13,3,209,208,64,36,30,167,217,239,231,155,75,151,6,15,30,63,
158,252,244,204,25,12,195,224,236,217,179,36,147,73,114,185,220,50,240,61,240,150,148,113,78,212,236,222,178,185,138,173,109,32,172,48,245,129,240,135,70,48,208,145,47,229,78,223,79,88,247,110,18,153,
22,133,52,154,138,18,117,140,73,101,198,37,67,250,89,238,27,147,107,213,32,42,90,167,229,158,228,54,6,58,162,166,89,135,111,184,56,193,35,23,116,231,246,238,217,211,219,213,213,69,75,60,142,199,227,33,
151,207,147,72,36,120,225,208,33,218,18,9,34,145,8,186,174,175,109,110,110,118,135,195,225,121,159,207,199,149,43,87,232,238,238,166,88,44,58,242,246,1,55,1,63,104,4,253,58,129,186,0,21,171,242,134,85,
181,191,40,91,149,135,210,227,112,111,223,41,169,204,9,133,71,180,186,120,175,131,170,172,203,157,7,183,49,208,17,57,7,92,5,227,45,197,133,255,20,129,238,242,92,45,92,37,203,196,97,130,0,159,47,165,82,
76,92,184,192,196,196,4,231,207,159,103,101,121,153,170,109,179,56,55,199,141,27,55,88,92,92,36,147,201,52,234,186,62,55,51,51,211,115,249,242,101,34,145,8,83,83,83,24,134,225,200,91,0,186,28,110,85,178,
42,228,75,69,42,53,251,221,154,168,157,86,14,215,41,221,193,137,123,78,137,239,184,78,84,162,108,200,213,147,16,242,25,85,120,123,167,242,207,128,220,63,41,229,29,85,20,239,252,155,121,98,80,146,192,231,
228,250,196,112,111,223,152,59,11,79,1,61,133,66,225,187,217,217,89,0,210,233,52,213,106,149,245,245,117,90,90,90,104,106,106,34,26,141,98,24,6,169,84,42,150,205,102,9,6,131,132,195,97,90,91,91,29,54,
235,184,231,251,192,59,2,129,101,91,0,155,192,29,151,50,157,174,91,206,186,16,53,166,212,13,39,183,80,236,162,68,217,69,153,84,58,21,116,170,35,41,47,233,214,35,184,48,64,107,255,232,200,67,253,153,254,
209,145,233,225,222,190,152,148,127,66,246,241,90,239,181,221,148,241,58,48,122,215,13,33,18,137,144,72,36,104,110,110,38,20,10,177,176,176,240,218,245,235,215,191,212,117,29,77,211,238,205,76,38,243,
151,4,246,223,222,189,248,39,77,173,237,190,31,148,46,169,1,147,186,174,255,210,222,222,78,46,151,195,182,109,52,77,195,235,245,82,42,149,30,170,6,254,47,6,252,99,0,63,17,134,236,23,196,176,241,0,0,0,
0,73,69,78,68,174,66,96,130,0,0};

const char* C74GenAudioProcessorEditor::saser_logo_80x20_png = (const char*) resource_UIComponent_saser_logo_80x20_png;
const int C74GenAudioProcessorEditor::saser_logo_80x20_pngSize = 5234;
/*
  ==============================================================================

    This file was auto-generated by the Introjucer!

    It contains the basic framework code for a JUCE plugin processor.

  ==============================================================================
*/

#ifndef PLUGINPROCESSOR_H_INCLUDED
#define PLUGINPROCESSOR_H_INCLUDED

#include <JuceHeader.h>

#include "C74_GENPLUGIN.h"

//==============================================================================
/**
*/
class C74GenAudioProcessor  : public AudioProcessor
{
public:
    //==============================================================================
    C74GenAudioProcessor();
    ~C74GenAudioProcessor();

    //==============================================================================
    void prepareToPlay (double sampleRate, int samplesPerBlock) override;
    void releaseResources() override;

    void processBlock (AudioSampleBuffer&, MidiBuffer&) override;

    //==============================================================================
    AudioProcessorEditor* createEditor() override;
    bool hasEditor() const override;

    //==============================================================================
    const String getName() const override;

    int getNumParameters() override;
    float getParameter (int index) override;
    void setParameter (int index, float newValue) override;

    const String getParameterName (int index) override;
    const String getParameterText (int index) override;

    const String getInputChannelName (int channelIndex) const override;
    const String getOutputChannelName (int channelIndex) const override;
    bool isInputChannelStereoPair (int index) const override;
    bool isOutputChannelStereoPair (int index) const override;

    bool acceptsMidi() const override;
    bool producesMidi() const override;
    bool silenceInProducesSilenceOut() const override;
    double getTailLengthSeconds() const override;

    //==============================================================================
    int getNumPrograms() override;
    int getCurrentProgram() override;
    void setCurrentProgram (int index) override;
    const String getProgramName (int index) override;
    void changeProgramName (int index, const String& newName) override;

    //==============================================================================
    void getStateInformation (MemoryBlock& destData) override;
    void setStateInformation (const void* data, int sizeInBytes) override;

protected:
	// c74: since Juce does float sample processing and Gen offers double sample
	// processing, we need to go through input and output buffers
	void assureBufferSize(long bufferSize);
	
private:
    //==============================================================================
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (C74GenAudioProcessor)
	
	CommonState				*m_C74PluginState;
	
	long					m_CurrentBufferSize;
	t_sample				**m_InputBuffers;
	t_sample				**m_OutputBuffers;
};


#endif  // PLUGINPROCESSOR_H_INCLUDED

PluginProcessor.cpp:

/*
  ==============================================================================

    This file was auto-generated by the Introjucer!

    It contains the basic framework code for a JUCE plugin processor.

  ==============================================================================
*/

#include "PluginProcessor.h"
#include "PluginEditor.h"
#include "C74_GENPLUGIN.h"
#include <juce_audio_plugin_client/juce_audio_plugin_client.h>
#include <juce_audio_plugin_client/Standalone/juce_StandaloneFilterWindow.h>

//==============================================================================
C74GenAudioProcessor::C74GenAudioProcessor()
:m_CurrentBufferSize(0)
{
	// use a default samplerate and vector size here, reset it later
	m_C74PluginState = (CommonState *)C74_GENPLUGIN::create(48000, 64);
	C74_GENPLUGIN::reset(m_C74PluginState);

	m_InputBuffers = new t_sample *[C74_GENPLUGIN::num_inputs()];
	m_OutputBuffers = new t_sample *[C74_GENPLUGIN::num_outputs()];
	
	for (int i = 0; i < C74_GENPLUGIN::num_inputs(); i++) {
		m_InputBuffers[i] = NULL;
	}
	for (int i = 0; i < C74_GENPLUGIN::num_outputs(); i++) {
		m_OutputBuffers[i] = NULL;
	}

}

C74GenAudioProcessor::~C74GenAudioProcessor()
{
	C74_GENPLUGIN::destroy(m_C74PluginState);
}

//==============================================================================
const String C74GenAudioProcessor::getName() const
{
    return JucePlugin_Name;
}

int C74GenAudioProcessor::getNumParameters()
{
	return C74_GENPLUGIN::num_params();
}

float C74GenAudioProcessor::getParameter (int index)
{
	t_param value;
	t_param min = C74_GENPLUGIN::getparametermin(m_C74PluginState, index);
	t_param range = fabs(C74_GENPLUGIN::getparametermax(m_C74PluginState, index) - min);
	
	C74_GENPLUGIN::getparameter(m_C74PluginState, index, &value);
	
	value = (value - min) / range;
	
	return value;
}

void C74GenAudioProcessor::setParameter (int index, float newValue)
{
	t_param min = C74_GENPLUGIN::getparametermin(m_C74PluginState, index);
	t_param range = fabs(C74_GENPLUGIN::getparametermax(m_C74PluginState, index) - min);
	t_param value = newValue * range + min;
	
	C74_GENPLUGIN::setparameter(m_C74PluginState, index, value, NULL);
}

const String C74GenAudioProcessor::getParameterName (int index)
{
    return String(C74_GENPLUGIN::getparametername(m_C74PluginState, index));
}

const String C74GenAudioProcessor::getParameterText (int index)
{
	String text = String(getParameter(index));
	text += String(" ");
	text += String(C74_GENPLUGIN::getparameterunits(m_C74PluginState, index));

	return text;
}

const String C74GenAudioProcessor::getInputChannelName (int channelIndex) const
{
    return String (channelIndex + 1);
}

const String C74GenAudioProcessor::getOutputChannelName (int channelIndex) const
{
    return String (channelIndex + 1);
}

bool C74GenAudioProcessor::isInputChannelStereoPair (int index) const
{
    return C74_GENPLUGIN::num_inputs() == 0;
}

bool C74GenAudioProcessor::isOutputChannelStereoPair (int index) const
{
    return C74_GENPLUGIN::num_outputs() == 2;
}

bool C74GenAudioProcessor::acceptsMidi() const
{
   #if JucePlugin_WantsMidiInput
    return true;
   #else
    return false;
   #endif
}

bool C74GenAudioProcessor::producesMidi() const
{
   #if JucePlugin_ProducesMidiOutput
    return true;
   #else
    return false;
   #endif
}

bool C74GenAudioProcessor::silenceInProducesSilenceOut() const
{
    return false;
}

double C74GenAudioProcessor::getTailLengthSeconds() const
{
    return 0.0;
}

int C74GenAudioProcessor::getNumPrograms()
{
    return 1;   // NB: some hosts don't cope very well if you tell them there are 0 programs,
                // so this should be at least 1, even if you're not really implementing programs.
}

int C74GenAudioProcessor::getCurrentProgram()
{
    return 0;
}

void C74GenAudioProcessor::setCurrentProgram (int index)
{
}

const String C74GenAudioProcessor::getProgramName (int index)
{
    return String();
}

void C74GenAudioProcessor::changeProgramName (int index, const String& newName)
{
}

//==============================================================================
void C74GenAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
{
    // Use this method as the place to do any pre-playback
    // initialisation that you need..
	
	// initialize samplerate and vectorsize with the correct values
	m_C74PluginState->sr = sampleRate;
	m_C74PluginState->vs = samplesPerBlock;

	assureBufferSize(samplesPerBlock);
}

void C74GenAudioProcessor::releaseResources()
{
    // When playback stops, you can use this as an opportunity to free up any
    // spare memory, etc.
}

void C74GenAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
{
	assureBufferSize(buffer.getNumSamples());
	
	// fill input buffers
	for (int i = 0; i < C74_GENPLUGIN::num_inputs(); i++) {
		if (i < getNumInputChannels()) {
			for (int j = 0; j < m_CurrentBufferSize; j++) {
				m_InputBuffers[i][j] = buffer.getReadPointer(i)[j];
			}
		} else {
			memset(m_InputBuffers[i], 0, m_CurrentBufferSize *  sizeof(double));
		}
	}
	
	// process audio
	C74_GENPLUGIN::perform(m_C74PluginState,
								  m_InputBuffers,
								  C74_GENPLUGIN::num_inputs(),
								  m_OutputBuffers,
								  C74_GENPLUGIN::num_outputs(),
								  buffer.getNumSamples());

	// fill output buffers
	for (int i = 0; i < getNumOutputChannels(); i++) {
		if (i < C74_GENPLUGIN::num_outputs()) {
			for (int j = 0; j < buffer.getNumSamples(); j++) {
				buffer.getWritePointer(i)[j] = m_OutputBuffers[i][j];
			}
		} else {
			buffer.clear (i, 0, buffer.getNumSamples());
		}
	}
}

//==============================================================================
bool C74GenAudioProcessor::hasEditor() const
{
    return true; // (change this to true if you choose to supply an editor)
}

AudioProcessorEditor* C74GenAudioProcessor::createEditor()
{
    return new C74GenAudioProcessorEditor (*this);
}

//==============================================================================
void C74GenAudioProcessor::getStateInformation (MemoryBlock& destData)
{
    // You should use this method to store your parameters in the memory block.
    // You could do that either as raw data, or use the XML or ValueTree classes
    // as intermediaries to make it easy to save and load complex data.
	
	char *state;
	size_t statesize = C74_GENPLUGIN::getstatesize(m_C74PluginState);
	state = (char *)malloc(sizeof(char) * statesize);
	
	C74_GENPLUGIN::getstate(m_C74PluginState, state);
	destData.replaceWith(state, sizeof(char) * statesize);

	if (state) free(state);
}

void C74GenAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
{
    // You should use this method to restore your parameters from this memory block,
    // whose contents will have been created by the getStateInformation() call.
	C74_GENPLUGIN::setstate(m_C74PluginState, (const char *)data);
}

//==============================================================================
// This creates new instances of the plugin..
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
    return new C74GenAudioProcessor();
}

//==============================================================================
// C74 added methods

void C74GenAudioProcessor::assureBufferSize(long bufferSize)
{
	if (bufferSize > m_CurrentBufferSize) {
		for (int i = 0; i < C74_GENPLUGIN::num_inputs(); i++) {
			if (m_InputBuffers[i]) delete m_InputBuffers[i];
			m_InputBuffers[i] = new t_sample[bufferSize];
		}
		for (int i = 0; i < C74_GENPLUGIN::num_outputs(); i++) {
			if (m_OutputBuffers[i]) delete m_OutputBuffers[i];
			m_OutputBuffers[i] = new t_sample[bufferSize];
		}
		
		m_CurrentBufferSize = bufferSize;
	}
}

what I’ve already tried:

setting parameter to a new value explicitly, because I use parameters mapping in PluginEditor.cpp

void C74GenAudioProcessor::setParameter (int index, float newValue)
{
	t_param value = newValue;
	
	C74_GENPLUGIN::setparameter(m_C74PluginState, index, value, NULL);
}

Setting inputs to 2. My app actually use 9 inputs and I set them always to off in GUI Application for hardware compatibility with AirPods Pro.

bool C74GenAudioProcessor::isInputChannelStereoPair (int index) const
{
    return C74_GENPLUGIN::num_inputs() == 2;
}

And also set an initial sample rate to 44100 Hz instead of 48000 Hz:

C74GenAudioProcessor::C74GenAudioProcessor()
:m_CurrentBufferSize(0)
{
	// use a default samplerate and vector size here, reset it later
	m_C74PluginState = (CommonState *)C74_GENPLUGIN::create(44100, 64);
	C74_GENPLUGIN::reset(m_C74PluginState);

	m_InputBuffers = new t_sample *[C74_GENPLUGIN::num_inputs()];
	m_OutputBuffers = new t_sample *[C74_GENPLUGIN::num_outputs()];
	
	for (int i = 0; i < C74_GENPLUGIN::num_inputs(); i++) {
		m_InputBuffers[i] = NULL;
	}
	for (int i = 0; i < C74_GENPLUGIN::num_outputs(); i++) {
		m_OutputBuffers[i] = NULL;
	}

}

Neither helps, the app doesn’t load at all.

setting:

bool C74GenAudioProcessor::hasEditor() const
{
    return false; // (change this to true if you choose to supply an editor)
}

Opens up the compiled app, but with generic editor instead of my GUI editor. Does anyone knows how to enable my programmed editor for this app?

Also AUv3 extension doesn’t work in AUM with the same error message as above. There is no option for IAA in AUM, but I got it checked in Projucer by enabling IAA.

really no-one?

ok, I added destructors for parameters, removed SliderHolder and SliderLabelHolder components, which are used for automatic interface generation for Gen~ code and also deleted a code snippet for generating this sliders. The app doesn’t work even with this changes. I added:

C74GenAudioProcessorEditor::~C74GenAudioProcessorEditor()
{
    tempo__slider = nullptr;
    lambda__slider = nullptr;
    auto__toggleButton = nullptr;
    selb__toggleButton = nullptr;
    phase__comboBox = nullptr;
    constel__comboBox = nullptr;
    ntpall__comboBox = nullptr;
    evntp__comboBox2 = nullptr;
    odntp__comboBox3 = nullptr;
    ntp__label = nullptr;
    allpan__label = nullptr;
    evpan__label = nullptr;
    odpan__label = nullptr;
    revpan__label = nullptr;
    hmsk1__slider = nullptr;
    prv1__slider = nullptr;
    bsr1__comboBox = nullptr;
    mtc1__slider = nullptr;
    pkt1__comboBox = nullptr;
    hmsk2__slider = nullptr;
    prv2__slider = nullptr;
    bsr2__comboBox = nullptr;
    mtc2__slider = nullptr;
    pkt2__comboBox = nullptr;
    hmsk3__slider = nullptr;
    prv3__slider = nullptr;
    bsr3__comboBox = nullptr;
    mtc3__slider = nullptr;
    pkt3__comboBox = nullptr;
    vel__slider = nullptr;
    spacing__slider = nullptr;
    revt__slider = nullptr;
    encaps__slider = nullptr;
    gre__toggleButton = nullptr;
    lpbkint1__label = nullptr;
    lpbkint2__label = nullptr;
    lpbkint3__label = nullptr;
    alpha1__slider = nullptr;
    alpha2__slider = nullptr;
    alpha3__slider = nullptr;
    omegalbl = nullptr;
    lambdalbl = nullptr;
    hashmask1lbl = nullptr;
    hashmask2lbl = nullptr;
    hashmask3lbl = nullptr;
    priorval1lbl = nullptr;
    priorval2lbl = nullptr;
    priorval3lbl = nullptr;
    mtcaddr1lbl = nullptr;
    mtcaddr2lbl = nullptr;
    mtcaddr3lbl = nullptr;
    mtcaddr4lbl = nullptr;
    angvellbl = nullptr;
    spacinglbl = nullptr;
    rghtasclbl = nullptr;
}

Set Has Editor to true:

bool C74GenAudioProcessor::hasEditor() const
{
    return true; // (change this to true if you choose to supply an editor)
}

Removed from User Methods:

	Component *getSliderHolder();
	Component *getSliderLabelHolder();

And removed:

	if (sliderHolder->getNumChildComponents()) {
		double sliderHeight = sliderHolder->getHeight() / sliderHolder->getNumChildComponents();

		for (long i = 0; i < sliderHolder->getNumChildComponents(); i++) {
			Component *slider = sliderHolder->getChildComponent(i);
			slider->setBounds(0, i * sliderHeight, sliderHolder->getWidth(), sliderHeight);
		}
	}

	if (sliderLabelHolder->getNumChildComponents()) {
		double sliderHeight = sliderLabelHolder->getHeight() / sliderLabelHolder->getNumChildComponents();

		for (long i = 0; i < sliderLabelHolder->getNumChildComponents(); i++) {
			Component *sliderLabel = sliderLabelHolder->getChildComponent(i);
			sliderLabel->setBounds(0, i * sliderHeight, sliderLabelHolder->getWidth(), sliderHeight);
		}
	}

I made a AU component using cmake out of this code and during validation in Logic I got:

* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
2023-07-08 19:32:49.722 auvaltool[13460:156580] Error: Failed to connect to remote view because of Error Domain=NSCocoaErrorDomain Code=4097 "connection to service created from an endpoint" UserInfo={NSDebugDescription=connection to service created from an endpoint}
FATAL ERROR: OpenAComponent: result: 4097,0x1001


validation result: couldn’t be opened

ok, I made a build of component with a picture instead of editor interface and with generic controls and AU validates and opens in Logic. The reason of an error may be is that I set a type of a plug-in as generator and with generic interface I set it to effect. Or It maybe an error in PluginEditor.cpp or .h files.

I made a redefinition to effect plugin but this doesn’t help. So I’m sure the problem is in PluginEditor.cpp or PluginEditor.h