diff --git a/.github/workflows/create_release_executables.yml b/.github/workflows/create_release_executables.yml index f9657cdd..83650c08 100644 --- a/.github/workflows/create_release_executables.yml +++ b/.github/workflows/create_release_executables.yml @@ -49,6 +49,9 @@ jobs: - name: Install OpenSSL run: sudo apt-get install libssl-dev + - name: Install MIDI dependencies + run: sudo apt install libasound2-dev + - name: Configure CMake run: cmake -B ${{github.workspace}}/build -D CMAKE_BUILD_TYPE=Release -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D COOLLAB_REQUIRE_ALL_FEATURES=ON -D CPACK_GENERATOR=STGZ diff --git a/Cool b/Cool index 97894665..32210e8f 160000 --- a/Cool +++ b/Cool @@ -1 +1 @@ -Subproject commit 97894665e4431f65084ee089993b2144aa407118 +Subproject commit 32210e8fe898cc01d87c41343c0f394ab8aee10a diff --git a/Nodes/70 Input/Midi.clbnode b/Nodes/70 Input/Midi.clbnode new file mode 100644 index 00000000..27ca58cf --- /dev/null +++ b/Nodes/70 Input/Midi.clbnode @@ -0,0 +1,8 @@ +// To learn how to write nodes, see https://coollab-art.com/Tutorials/Writing%20Nodes/Intro + +INPUT Midi 'Midi Index'; + +float main() +{ + return 'Midi Index'; +} \ No newline at end of file diff --git a/User data Default/imgui.ini b/User data Default/imgui.ini index 1a7eea72..e1b1a680 100644 --- a/User data Default/imgui.ini +++ b/User data Default/imgui.ini @@ -1,6 +1,6 @@ [Window][MyMainDockSpace] Pos=0,30 -Size=1920,971 +Size=1920,987 Collapsed=0 [Window][Debug##Default] @@ -12,13 +12,13 @@ Collapsed=0 Pos=0,19 Size=992,998 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][View | Custom Shader] Pos=0,19 Size=1493,240 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][is0 Opt] Pos=1888,820 @@ -84,7 +84,7 @@ DockId=0x0000002E,0 Pos=0,24 Size=1517,933 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][Export an Image] Pos=322,291 @@ -101,7 +101,7 @@ DockId=0x00000023,0 Pos=0,24 Size=978,232 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][Registry of vec3] Pos=0,837 @@ -164,7 +164,7 @@ Collapsed=0 Pos=0,19 Size=746,634 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][Nodes] Pos=748,19 @@ -176,7 +176,7 @@ DockId=0x0000000C,0 Pos=0,892 Size=961,55 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][Nodes Code] Pos=826,24 @@ -224,7 +224,7 @@ DockId=0x0000001A,0 Pos=0,24 Size=1517,934 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][Color Themes: Advanced Config] Pos=0,683 @@ -251,13 +251,13 @@ Collapsed=0 Pos=0,24 Size=1517,933 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][Test Message Console] Pos=0,25 Size=1599,908 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][Dear ImGui Style Editor] Pos=203,130 @@ -290,7 +290,7 @@ DockId=0x0000002C,0 Pos=0,24 Size=1517,934 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][ Nodes] Pos=60,60 @@ -306,7 +306,7 @@ Collapsed=0 Pos=0,25 Size=1226,99 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][ Cameras] Pos=1228,25 @@ -358,7 +358,7 @@ DockId=0x00000004,2 Pos=0,25 Size=994,104 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][ Cameras] Pos=996,25 @@ -440,26 +440,26 @@ Collapsed=0 DockId=0x00000029,1 [Window][  View] -Pos=1325,469 -Size=595,532 +Pos=1325,476 +Size=595,541 Collapsed=0 DockId=0x00000046,0 [Window][  Nodes] Pos=0,30 -Size=1323,924 +Size=1323,940 Collapsed=0 -DockId=0x0000004E,0 +DockId=0x00000054,0 [Window][  Time] -Pos=0,956 +Pos=0,972 Size=1323,45 Collapsed=0 DockId=0x00000045,0 [Window][  Cameras] Pos=1325,30 -Size=595,437 +Size=595,444 Collapsed=0 DockId=0x0000003A,1 @@ -483,11 +483,11 @@ DockId=0x00000032,1 Pos=0,30 Size=1334,924 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][  Framerate] -Pos=1317,30 -Size=603,91 +Pos=1325,30 +Size=595,94 Collapsed=0 DockId=0x00000037,0 @@ -501,7 +501,7 @@ DockId=0x0000003B,0 Pos=0,30 Size=1334,924 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][  Color Themes: Editor] Pos=0,675 @@ -513,7 +513,7 @@ DockId=0x0000003F,0 Pos=0,30 Size=1288,939 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][  Console] Pos=1325,469 @@ -535,7 +535,7 @@ Collapsed=0 Pos=0,30 Size=1290,939 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][  Style Editor] Pos=0,516 @@ -550,7 +550,7 @@ Collapsed=0 [Window][  Inspector] Pos=1325,30 -Size=595,437 +Size=595,444 Collapsed=0 DockId=0x0000003A,0 @@ -575,7 +575,7 @@ DockId=0x0000004F,0 Pos=0,30 Size=1413,924 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][  Debug Console] Pos=60,60 @@ -602,7 +602,7 @@ Collapsed=0 Pos=0,30 Size=1323,535 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][  Test tips] Pos=0,590 @@ -614,13 +614,32 @@ DockId=0x00000049,0 Pos=0,30 Size=1323,924 Collapsed=0 -DockId=0x0000004E,1 +DockId=0x00000054,1 [Window][  Open Recent] Pos=548,194 Size=727,474 Collapsed=0 +[Window][  Midi] +Pos=0,30 +Size=1323,940 +Collapsed=0 +DockId=0x00000054,1 + +[Window][  Emulate midi keyboard] +Pos=0,399 +Size=1323,310 +Collapsed=0 +DockId=0x00000052,0 + + +[Window][  MIDI] +Pos=0,30 +Size=1323,940 +Collapsed=0 +DockId=0x00000054,1 + [Table][0x4EF0CFBB,2] Column 0 Weight=1.0000 Column 1 Weight=1.0000 @@ -683,85 +702,87 @@ Column 1 Weight=1.0000 Column 2 Weight=1.0000 [Docking][Data] -DockSpace ID=0xF3CABE56 Window=0x74B75B81 Pos=0,59 Size=1920,971 Split=Y - DockNode ID=0x0000004B Parent=0xF3CABE56 SizeRef=1920,489 Split=Y - DockNode ID=0x0000003E Parent=0x0000004B SizeRef=1920,648 Split=Y - DockNode ID=0x00000025 Parent=0x0000003E SizeRef=1920,656 Split=X - DockNode ID=0x0000002A Parent=0x00000025 SizeRef=1226,977 Split=Y - DockNode ID=0x0000000A Parent=0x0000002A SizeRef=1920,934 Split=X - DockNode ID=0x00000006 Parent=0x0000000A SizeRef=1688,982 Split=X - DockNode ID=0x00000011 Parent=0x00000006 SizeRef=1166,567 Split=Y Selected=0xB20B5019 - DockNode ID=0x00000015 Parent=0x00000011 SizeRef=1166,540 Split=X Selected=0xB20B5019 - DockNode ID=0x00000001 Parent=0x00000015 SizeRef=1227,372 Split=X Selected=0x0139E51B - DockNode ID=0x0000000B Parent=0x00000001 SizeRef=746,928 Split=Y Selected=0x0139E51B - DockNode ID=0x0000001D Parent=0x0000000B SizeRef=872,444 Split=X Selected=0x612F12CA - DockNode ID=0x0000001F Parent=0x0000001D SizeRef=683,313 Selected=0xDA0F6C18 - DockNode ID=0x00000020 Parent=0x0000001D SizeRef=832,313 Selected=0x612F12CA - DockNode ID=0x0000001E Parent=0x0000000B SizeRef=872,531 Split=X Selected=0x0139E51B - DockNode ID=0x0000000D Parent=0x0000001E SizeRef=1244,464 Split=X Selected=0x12D5DF45 - DockNode ID=0x00000024 Parent=0x0000000D SizeRef=785,516 Split=Y Selected=0xF8A795D1 - DockNode ID=0x00000030 Parent=0x00000024 SizeRef=1517,472 Split=Y Selected=0xF8A795D1 - DockNode ID=0x00000021 Parent=0x00000030 SizeRef=1517,623 Split=X Selected=0x30F1BB17 - DockNode ID=0x00000031 Parent=0x00000021 SizeRef=994,924 Split=Y Selected=0x30F1BB17 - DockNode ID=0x00000034 Parent=0x00000031 SizeRef=1306,612 Split=Y Selected=0x30F1BB17 - DockNode ID=0x00000036 Parent=0x00000034 SizeRef=1306,104 Split=X Selected=0xE87781F4 - DockNode ID=0x00000039 Parent=0x00000036 SizeRef=650,976 Split=X Selected=0x9161DC35 - DockNode ID=0x00000044 Parent=0x00000039 SizeRef=1323,929 Split=X Selected=0xEB0CD24C - DockNode ID=0x0000004D Parent=0x00000044 SizeRef=774,939 Split=Y Selected=0xEB0CD24C - DockNode ID=0x00000050 Parent=0x0000004D SizeRef=1288,505 Split=Y Selected=0xEB0CD24C - DockNode ID=0x00000047 Parent=0x00000050 SizeRef=1288,940 Split=Y Selected=0xEB0CD24C - DockNode ID=0x00000041 Parent=0x00000047 SizeRef=1334,535 Split=Y Selected=0xEB0CD24C - DockNode ID=0x0000004E Parent=0x00000041 SizeRef=1323,558 CentralNode=1 Selected=0xEB0CD24C - DockNode ID=0x00000049 Parent=0x00000041 SizeRef=1323,364 Selected=0x9C8E2C2E - DockNode ID=0x0000003D Parent=0x00000047 SizeRef=1334,387 Selected=0x83AD6119 - DockNode ID=0x00000045 Parent=0x00000050 SizeRef=1288,45 HiddenTabBar=1 Selected=0x5853D90B - DockNode ID=0x0000004F Parent=0x0000004D SizeRef=1288,432 Selected=0xA7D171DA - DockNode ID=0x0000004C Parent=0x00000044 SizeRef=637,939 Selected=0x854D5944 - DockNode ID=0x00000028 Parent=0x00000039 SizeRef=595,929 Split=Y Selected=0x38D929D4 - DockNode ID=0x00000048 Parent=0x00000028 SizeRef=636,437 Split=Y Selected=0x2D339E0D - DockNode ID=0x00000037 Parent=0x00000048 SizeRef=603,91 Selected=0x08C0CD78 - DockNode ID=0x0000003A Parent=0x00000048 SizeRef=603,330 Selected=0x2D339E0D - DockNode ID=0x00000046 Parent=0x00000028 SizeRef=636,532 Selected=0xFB2E9D5C - DockNode ID=0x00000038 Parent=0x00000036 SizeRef=538,976 Split=Y Selected=0x38D929D4 - DockNode ID=0x00000042 Parent=0x00000038 SizeRef=627,488 Split=Y Selected=0x38D929D4 - DockNode ID=0x00000032 Parent=0x00000042 SizeRef=749,569 Selected=0x38D929D4 - DockNode ID=0x00000043 Parent=0x00000042 SizeRef=749,405 Selected=0xFB2E9D5C - DockNode ID=0x00000040 Parent=0x00000038 SizeRef=627,486 Selected=0xFB2E9D5C - DockNode ID=0x00000035 Parent=0x00000034 SizeRef=1306,826 Selected=0x0D6175D2 - DockNode ID=0x00000033 Parent=0x00000031 SizeRef=1306,42 HiddenTabBar=1 Selected=0x75F17762 - DockNode ID=0x00000029 Parent=0x00000021 SizeRef=924,924 Selected=0x71143AF8 - DockNode ID=0x00000010 Parent=0x00000030 SizeRef=1517,308 Selected=0x88F44F2D - DockNode ID=0x0000002F Parent=0x00000024 SizeRef=1517,47 HiddenTabBar=1 Selected=0x9F8C1213 - DockNode ID=0x00000023 Parent=0x0000000D SizeRef=333,516 Selected=0x49278EEE - DockNode ID=0x0000000E Parent=0x0000001E SizeRef=271,464 Split=Y Selected=0x51A07D0A - DockNode ID=0x0000001B Parent=0x0000000E SizeRef=172,303 Selected=0x0545BD69 - DockNode ID=0x0000001C Parent=0x0000000E SizeRef=172,478 Selected=0x51A07D0A - DockNode ID=0x0000000C Parent=0x00000001 SizeRef=940,928 Selected=0xC8A2CA68 - DockNode ID=0x00000002 Parent=0x00000015 SizeRef=691,372 Selected=0x579B91DF - DockNode ID=0x00000016 Parent=0x00000011 SizeRef=1166,180 Selected=0x3B5C5433 - DockNode ID=0x00000012 Parent=0x00000006 SizeRef=395,567 Split=Y Selected=0xAC9ECCBA - DockNode ID=0x00000017 Parent=0x00000012 SizeRef=395,297 Selected=0xA4891924 - DockNode ID=0x00000018 Parent=0x00000012 SizeRef=395,423 Selected=0xAC9ECCBA - DockNode ID=0x00000007 Parent=0x0000000A SizeRef=230,982 Split=Y Selected=0x0545BD69 - DockNode ID=0x00000008 Parent=0x00000007 SizeRef=150,786 Selected=0x0545BD69 - DockNode ID=0x00000009 Parent=0x00000007 SizeRef=150,194 Split=Y Selected=0x97961354 - DockNode ID=0x00000013 Parent=0x00000009 SizeRef=400,97 Selected=0x97961354 - DockNode ID=0x00000014 Parent=0x00000009 SizeRef=400,95 Selected=0x0757C9E5 - DockNode ID=0x00000005 Parent=0x0000002A SizeRef=1920,41 HiddenTabBar=1 Selected=0xE75A179E - DockNode ID=0x00000027 Parent=0x00000025 SizeRef=692,977 Split=Y Selected=0x818036C6 - DockNode ID=0x0000002C Parent=0x00000027 SizeRef=130,499 Selected=0x818036C6 - DockNode ID=0x0000002B Parent=0x00000027 SizeRef=130,476 Split=Y Selected=0x12D5DF45 - DockNode ID=0x00000019 Parent=0x0000002B SizeRef=401,465 Split=Y Selected=0x148E1A1B - DockNode ID=0x0000002E Parent=0x00000019 SizeRef=401,282 Selected=0x148E1A1B - DockNode ID=0x0000002D Parent=0x00000019 SizeRef=401,238 Split=Y Selected=0x3CF15644 - DockNode ID=0x00000003 Parent=0x0000002D SizeRef=401,258 Selected=0x148E1A1B - DockNode ID=0x00000004 Parent=0x0000002D SizeRef=401,262 Selected=0x3CF15644 - DockNode ID=0x0000001A Parent=0x0000002B SizeRef=401,510 Selected=0x12D5DF45 - DockNode ID=0x0000000F Parent=0x0000003E SizeRef=1920,318 Split=X Selected=0xFB9F4E92 - DockNode ID=0x00000026 Parent=0x0000000F SizeRef=707,453 Selected=0xFB9F4E92 - DockNode ID=0x00000022 Parent=0x0000000F SizeRef=1211,453 Selected=0xCB44F1EA - DockNode ID=0x0000003C Parent=0x0000004B SizeRef=1920,326 Split=X Selected=0x3DE5F12B - DockNode ID=0x0000003B Parent=0x0000003C SizeRef=434,408 Selected=0x6DCF654B - DockNode ID=0x0000003F Parent=0x0000003C SizeRef=1484,408 Selected=0x3DE5F12B - DockNode ID=0x0000004A Parent=0xF3CABE56 SizeRef=1920,485 Selected=0x1CB07D66 +DockSpace ID=0xF3CABE56 Window=0x74B75B81 Pos=0,53 Size=1920,987 Split=Y + DockNode ID=0x0000004B Parent=0xF3CABE56 SizeRef=1920,489 Split=Y + DockNode ID=0x0000003E Parent=0x0000004B SizeRef=1920,648 Split=Y + DockNode ID=0x00000025 Parent=0x0000003E SizeRef=1920,656 Split=X + DockNode ID=0x0000002A Parent=0x00000025 SizeRef=1226,977 Split=Y + DockNode ID=0x0000000A Parent=0x0000002A SizeRef=1920,934 Split=X + DockNode ID=0x00000006 Parent=0x0000000A SizeRef=1688,982 Split=X + DockNode ID=0x00000011 Parent=0x00000006 SizeRef=1166,567 Split=Y Selected=0xB20B5019 + DockNode ID=0x00000015 Parent=0x00000011 SizeRef=1166,540 Split=X Selected=0xB20B5019 + DockNode ID=0x00000001 Parent=0x00000015 SizeRef=1227,372 Split=X Selected=0x0139E51B + DockNode ID=0x0000000B Parent=0x00000001 SizeRef=746,928 Split=Y Selected=0x0139E51B + DockNode ID=0x0000001D Parent=0x0000000B SizeRef=872,444 Split=X Selected=0x612F12CA + DockNode ID=0x0000001F Parent=0x0000001D SizeRef=683,313 Selected=0xDA0F6C18 + DockNode ID=0x00000020 Parent=0x0000001D SizeRef=832,313 Selected=0x612F12CA + DockNode ID=0x0000001E Parent=0x0000000B SizeRef=872,531 Split=X Selected=0x0139E51B + DockNode ID=0x0000000D Parent=0x0000001E SizeRef=1244,464 Split=X Selected=0x12D5DF45 + DockNode ID=0x00000024 Parent=0x0000000D SizeRef=785,516 Split=Y Selected=0xF8A795D1 + DockNode ID=0x00000030 Parent=0x00000024 SizeRef=1517,472 Split=Y Selected=0xF8A795D1 + DockNode ID=0x00000021 Parent=0x00000030 SizeRef=1517,623 Split=X Selected=0x30F1BB17 + DockNode ID=0x00000031 Parent=0x00000021 SizeRef=994,924 Split=Y Selected=0x30F1BB17 + DockNode ID=0x00000034 Parent=0x00000031 SizeRef=1306,612 Split=Y Selected=0x30F1BB17 + DockNode ID=0x00000036 Parent=0x00000034 SizeRef=1306,104 Split=X Selected=0xE87781F4 + DockNode ID=0x00000039 Parent=0x00000036 SizeRef=650,976 Split=X Selected=0x9161DC35 + DockNode ID=0x00000044 Parent=0x00000039 SizeRef=1323,929 Split=X Selected=0xEB0CD24C + DockNode ID=0x0000004D Parent=0x00000044 SizeRef=774,939 Split=Y Selected=0xEB0CD24C + DockNode ID=0x00000050 Parent=0x0000004D SizeRef=1288,505 Split=Y Selected=0xEB0CD24C + DockNode ID=0x00000047 Parent=0x00000050 SizeRef=1288,940 Split=Y Selected=0xEB0CD24C + DockNode ID=0x00000041 Parent=0x00000047 SizeRef=1334,535 Split=Y Selected=0xEB0CD24C + DockNode ID=0x0000004E Parent=0x00000041 SizeRef=1323,558 Split=Y Selected=0xEB0CD24C + DockNode ID=0x00000054 Parent=0x0000004E SizeRef=1323,351 CentralNode=1 Selected=0xA6A85153 + DockNode ID=0x00000052 Parent=0x0000004E SizeRef=1323,310 Selected=0x69DA1CCA + DockNode ID=0x00000049 Parent=0x00000041 SizeRef=1323,364 Selected=0x9C8E2C2E + DockNode ID=0x0000003D Parent=0x00000047 SizeRef=1334,387 Selected=0x83AD6119 + DockNode ID=0x00000045 Parent=0x00000050 SizeRef=1288,45 HiddenTabBar=1 Selected=0x5853D90B + DockNode ID=0x0000004F Parent=0x0000004D SizeRef=1288,432 Selected=0xA7D171DA + DockNode ID=0x0000004C Parent=0x00000044 SizeRef=637,939 Selected=0x854D5944 + DockNode ID=0x00000028 Parent=0x00000039 SizeRef=595,929 Split=Y Selected=0x38D929D4 + DockNode ID=0x00000048 Parent=0x00000028 SizeRef=636,437 Split=Y Selected=0x2D339E0D + DockNode ID=0x00000037 Parent=0x00000048 SizeRef=603,91 Selected=0x08C0CD78 + DockNode ID=0x0000003A Parent=0x00000048 SizeRef=603,330 Selected=0x2D339E0D + DockNode ID=0x00000046 Parent=0x00000028 SizeRef=636,532 Selected=0xFB2E9D5C + DockNode ID=0x00000038 Parent=0x00000036 SizeRef=538,976 Split=Y Selected=0x38D929D4 + DockNode ID=0x00000042 Parent=0x00000038 SizeRef=627,488 Split=Y Selected=0x38D929D4 + DockNode ID=0x00000032 Parent=0x00000042 SizeRef=749,569 Selected=0x38D929D4 + DockNode ID=0x00000043 Parent=0x00000042 SizeRef=749,405 Selected=0xFB2E9D5C + DockNode ID=0x00000040 Parent=0x00000038 SizeRef=627,486 Selected=0xFB2E9D5C + DockNode ID=0x00000035 Parent=0x00000034 SizeRef=1306,826 Selected=0x0D6175D2 + DockNode ID=0x00000033 Parent=0x00000031 SizeRef=1306,42 HiddenTabBar=1 Selected=0x75F17762 + DockNode ID=0x00000029 Parent=0x00000021 SizeRef=924,924 Selected=0x71143AF8 + DockNode ID=0x00000010 Parent=0x00000030 SizeRef=1517,308 Selected=0x88F44F2D + DockNode ID=0x0000002F Parent=0x00000024 SizeRef=1517,47 HiddenTabBar=1 Selected=0x9F8C1213 + DockNode ID=0x00000023 Parent=0x0000000D SizeRef=333,516 Selected=0x49278EEE + DockNode ID=0x0000000E Parent=0x0000001E SizeRef=271,464 Split=Y Selected=0x51A07D0A + DockNode ID=0x0000001B Parent=0x0000000E SizeRef=172,303 Selected=0x0545BD69 + DockNode ID=0x0000001C Parent=0x0000000E SizeRef=172,478 Selected=0x51A07D0A + DockNode ID=0x0000000C Parent=0x00000001 SizeRef=940,928 Selected=0xC8A2CA68 + DockNode ID=0x00000002 Parent=0x00000015 SizeRef=691,372 Selected=0x579B91DF + DockNode ID=0x00000016 Parent=0x00000011 SizeRef=1166,180 Selected=0x3B5C5433 + DockNode ID=0x00000012 Parent=0x00000006 SizeRef=395,567 Split=Y Selected=0xAC9ECCBA + DockNode ID=0x00000017 Parent=0x00000012 SizeRef=395,297 Selected=0xA4891924 + DockNode ID=0x00000018 Parent=0x00000012 SizeRef=395,423 Selected=0xAC9ECCBA + DockNode ID=0x00000007 Parent=0x0000000A SizeRef=230,982 Split=Y Selected=0x0545BD69 + DockNode ID=0x00000008 Parent=0x00000007 SizeRef=150,786 Selected=0x0545BD69 + DockNode ID=0x00000009 Parent=0x00000007 SizeRef=150,194 Split=Y Selected=0x97961354 + DockNode ID=0x00000013 Parent=0x00000009 SizeRef=400,97 Selected=0x97961354 + DockNode ID=0x00000014 Parent=0x00000009 SizeRef=400,95 Selected=0x0757C9E5 + DockNode ID=0x00000005 Parent=0x0000002A SizeRef=1920,41 HiddenTabBar=1 Selected=0xE75A179E + DockNode ID=0x00000027 Parent=0x00000025 SizeRef=692,977 Split=Y Selected=0x818036C6 + DockNode ID=0x0000002C Parent=0x00000027 SizeRef=130,499 Selected=0x818036C6 + DockNode ID=0x0000002B Parent=0x00000027 SizeRef=130,476 Split=Y Selected=0x12D5DF45 + DockNode ID=0x00000019 Parent=0x0000002B SizeRef=401,465 Split=Y Selected=0x148E1A1B + DockNode ID=0x0000002E Parent=0x00000019 SizeRef=401,282 Selected=0x148E1A1B + DockNode ID=0x0000002D Parent=0x00000019 SizeRef=401,238 Split=Y Selected=0x3CF15644 + DockNode ID=0x00000003 Parent=0x0000002D SizeRef=401,258 Selected=0x148E1A1B + DockNode ID=0x00000004 Parent=0x0000002D SizeRef=401,262 Selected=0x3CF15644 + DockNode ID=0x0000001A Parent=0x0000002B SizeRef=401,510 Selected=0x12D5DF45 + DockNode ID=0x0000000F Parent=0x0000003E SizeRef=1920,318 Split=X Selected=0xFB9F4E92 + DockNode ID=0x00000026 Parent=0x0000000F SizeRef=707,453 Selected=0xFB9F4E92 + DockNode ID=0x00000022 Parent=0x0000000F SizeRef=1211,453 Selected=0xCB44F1EA + DockNode ID=0x0000003C Parent=0x0000004B SizeRef=1920,326 Split=X Selected=0x3DE5F12B + DockNode ID=0x0000003B Parent=0x0000003C SizeRef=434,408 Selected=0x6DCF654B + DockNode ID=0x0000003F Parent=0x0000003C SizeRef=1484,408 Selected=0x3DE5F12B + DockNode ID=0x0000004A Parent=0xF3CABE56 SizeRef=1920,485 Selected=0x1CB07D66 diff --git a/changelog.md b/changelog.md index 8b9cf202..623f1767 100644 --- a/changelog.md +++ b/changelog.md @@ -13,6 +13,7 @@ ## 🐣beta-9 WIP +- ✨ Added Midi support! - ✨ Added an Output window that you can project during live shows, while still having your View window on your screen to move the camera and the widgets. To open this window, go in the `Commands` menu and select `Open output window`. - ✨ Added "Load Backup" in case you accidentally refused to save your unsaved changes. - 🐛 Fix: the transparency information was sometimes getting lost between nodes. diff --git a/src/App.cpp b/src/App.cpp index 03403e56..8321c757 100644 --- a/src/App.cpp +++ b/src/App.cpp @@ -29,6 +29,7 @@ #include "Cool/ImGui/ImGuiExtras.h" #include "Cool/Input/MouseCoordinates.h" #include "Cool/Log/Message.h" +#include "Cool/Midi/MidiManager.h" #include "Cool/Tips/TipsManager.h" #include "Cool/Tips/test_tips.h" #include "Cool/View/View.h" @@ -68,6 +69,9 @@ App::App(Cool::WindowManager& windows, Cool::ViewsManager& views) _project.clock.pause(); // Make sure the new project will be paused. _project.camera_manager.hook_events(_nodes_view.mouse_events(), _project.variable_registries, command_executor(), [this]() { trigger_rerender(); }); + Cool::midi_manager().set_additional_midi_callback([&]() { + trigger_rerender(); + }); hook_camera2D_events( _nodes_view.mouse_events(), _project.camera2D.value(), @@ -435,6 +439,8 @@ void App::imgui_windows_only_when_inputs_are_allowed() ImGui::End(); // Webcams Cool::WebcamsConfigs::instance().imgui_window(); + // Midi + Cool::midi_manager().imgui_window_config(); // Tips _tips_manager.imgui_windows(all_tips()); // Nodes @@ -499,6 +505,10 @@ void App::imgui_windows_only_when_inputs_are_allowed() Cool::test_markdown_formatting(); }); + Cool::DebugOptions::emulate_midi_keyboard([]() { + Cool::midi_manager().imgui_emulate_midi_keyboard(); + }); + Cool::DebugOptions::test_tips([this]() { test_tips(_tips_manager); }); @@ -589,6 +599,8 @@ void App::commands_menu() _tips_manager.open_all_tips_window(); if (ImGui::Selectable("Open webcams config")) Cool::WebcamsConfigs::instance().open_imgui_window(); + if (ImGui::Selectable("Open MIDI config")) + Cool::midi_manager().open_config_window(); if (ImGui::Selectable("Open output window")) _output_view.open(); ImGui::EndMenu(); diff --git a/src/Commands/generated/register_set_variable_commands.inl b/src/Commands/generated/register_set_variable_commands.inl index 56b7baa1..7f6a9dfe 100644 --- a/src/Commands/generated/register_set_variable_commands.inl +++ b/src/Commands/generated/register_set_variable_commands.inl @@ -27,6 +27,7 @@ LAB_REGISTER_COMMAND(Lab::Command_SetVariable) LAB_REGISTER_COMMAND(Lab::Command_SetVariable) LAB_REGISTER_COMMAND(Lab::Command_SetVariable) LAB_REGISTER_COMMAND(Lab::Command_SetVariable) +LAB_REGISTER_COMMAND(Lab::Command_SetVariable) LAB_REGISTER_REVERSIBLE_COMMAND(Lab::ReversibleCommand_SetVariable) LAB_REGISTER_REVERSIBLE_COMMAND(Lab::ReversibleCommand_SetVariable) @@ -50,3 +51,4 @@ LAB_REGISTER_REVERSIBLE_COMMAND(Lab::ReversibleCommand_SetVariable) LAB_REGISTER_REVERSIBLE_COMMAND(Lab::ReversibleCommand_SetVariable) LAB_REGISTER_REVERSIBLE_COMMAND(Lab::ReversibleCommand_SetVariable) +LAB_REGISTER_REVERSIBLE_COMMAND(Lab::ReversibleCommand_SetVariable) diff --git a/src/Commands/generated/register_set_variable_metadata_commands.inl b/src/Commands/generated/register_set_variable_metadata_commands.inl index bf0c81e0..969a0e7b 100644 --- a/src/Commands/generated/register_set_variable_metadata_commands.inl +++ b/src/Commands/generated/register_set_variable_metadata_commands.inl @@ -27,3 +27,4 @@ LAB_REGISTER_COMMAND(Lab::Command_SetVariableMetadata) LAB_REGISTER_COMMAND(Lab::Command_SetVariableMetadata) LAB_REGISTER_COMMAND(Lab::Command_SetVariableMetadata) LAB_REGISTER_COMMAND(Lab::Command_SetVariableMetadata) +LAB_REGISTER_COMMAND(Lab::Command_SetVariableMetadata) diff --git a/src/Module_Nodes/CodeGen.cpp b/src/Module_Nodes/CodeGen.cpp index 582b730a..123baf94 100644 --- a/src/Module_Nodes/CodeGen.cpp +++ b/src/Module_Nodes/CodeGen.cpp @@ -156,7 +156,7 @@ static auto gen_value_inputs( ) -> tl::expected { using fmt::literals::operator""_a; - Properties res{}; + Properties res{}; size_t property_index{0}; for (auto const& prop : node.value_inputs()) diff --git a/src/Module_Nodes/CodeGen_default_function.cpp b/src/Module_Nodes/CodeGen_default_function.cpp index f0e4ed98..095cef2b 100644 --- a/src/Module_Nodes/CodeGen_default_function.cpp +++ b/src/Module_Nodes/CodeGen_default_function.cpp @@ -100,7 +100,7 @@ static auto maybe_generate_default(FunctionSignature current_signature, std::str auto gen_default_function(FunctionSignature signature, CodeGenContext& context) -> ExpectedFunctionName { - using fmt::literals::operator""_a; + using fmt::literals:: operator""_a; static constexpr std::string_view signed_to_float = "antialised_step(sd)"; { auto const func = maybe_generate_default(