From d1d3575f23f2704799aaa91ff0a8095524d55d45 Mon Sep 17 00:00:00 2001 From: Ian Newton Date: Thu, 11 Jun 2026 16:35:11 +0100 Subject: [PATCH 1/2] chore: Remove Visual Studio 2015 build configuration files --- .../Simple Sine Wave Generator.sln | 19 - .../Simple Sine Wave Generator.vcxproj | 2321 ---------- ...Simple Sine Wave Generator.vcxproj.filters | 3932 ----------------- Builds/VisualStudio2015/resources.rc | 29 - JuceLibraryCode/AppConfig.h | 216 - JuceLibraryCode/JuceHeader.h | 49 - JuceLibraryCode/ReadMe.txt | 12 - JuceLibraryCode/juce_audio_basics.cpp | 9 - JuceLibraryCode/juce_audio_basics.mm | 9 - JuceLibraryCode/juce_audio_devices.cpp | 9 - JuceLibraryCode/juce_audio_devices.mm | 9 - JuceLibraryCode/juce_audio_formats.cpp | 9 - JuceLibraryCode/juce_audio_formats.mm | 9 - JuceLibraryCode/juce_audio_processors.cpp | 9 - JuceLibraryCode/juce_audio_processors.mm | 9 - JuceLibraryCode/juce_audio_utils.cpp | 9 - JuceLibraryCode/juce_audio_utils.mm | 9 - JuceLibraryCode/juce_core.cpp | 9 - JuceLibraryCode/juce_core.mm | 9 - JuceLibraryCode/juce_cryptography.cpp | 9 - JuceLibraryCode/juce_cryptography.mm | 9 - JuceLibraryCode/juce_data_structures.cpp | 9 - JuceLibraryCode/juce_data_structures.mm | 9 - JuceLibraryCode/juce_events.cpp | 9 - JuceLibraryCode/juce_events.mm | 9 - JuceLibraryCode/juce_graphics.cpp | 9 - JuceLibraryCode/juce_graphics.mm | 9 - JuceLibraryCode/juce_gui_basics.cpp | 9 - JuceLibraryCode/juce_gui_basics.mm | 9 - JuceLibraryCode/juce_gui_extra.cpp | 9 - JuceLibraryCode/juce_gui_extra.mm | 9 - JuceLibraryCode/juce_opengl.cpp | 9 - JuceLibraryCode/juce_opengl.mm | 9 - JuceLibraryCode/juce_video.cpp | 9 - JuceLibraryCode/juce_video.mm | 9 - Makefile.gtk | 16 + SimpleSineWaveGenerator.jucer | 56 - Source/Main.cpp | 101 - Source/MainComponent.cpp | 190 - gtk_sine_generator | Bin 0 -> 27232 bytes gtk_sine_generator.cpp | 178 + 41 files changed, 194 insertions(+), 7177 deletions(-) delete mode 100644 Builds/VisualStudio2015/Simple Sine Wave Generator.sln delete mode 100644 Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj delete mode 100644 Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj.filters delete mode 100644 Builds/VisualStudio2015/resources.rc delete mode 100644 JuceLibraryCode/AppConfig.h delete mode 100644 JuceLibraryCode/JuceHeader.h delete mode 100644 JuceLibraryCode/ReadMe.txt delete mode 100644 JuceLibraryCode/juce_audio_basics.cpp delete mode 100644 JuceLibraryCode/juce_audio_basics.mm delete mode 100644 JuceLibraryCode/juce_audio_devices.cpp delete mode 100644 JuceLibraryCode/juce_audio_devices.mm delete mode 100644 JuceLibraryCode/juce_audio_formats.cpp delete mode 100644 JuceLibraryCode/juce_audio_formats.mm delete mode 100644 JuceLibraryCode/juce_audio_processors.cpp delete mode 100644 JuceLibraryCode/juce_audio_processors.mm delete mode 100644 JuceLibraryCode/juce_audio_utils.cpp delete mode 100644 JuceLibraryCode/juce_audio_utils.mm delete mode 100644 JuceLibraryCode/juce_core.cpp delete mode 100644 JuceLibraryCode/juce_core.mm delete mode 100644 JuceLibraryCode/juce_cryptography.cpp delete mode 100644 JuceLibraryCode/juce_cryptography.mm delete mode 100644 JuceLibraryCode/juce_data_structures.cpp delete mode 100644 JuceLibraryCode/juce_data_structures.mm delete mode 100644 JuceLibraryCode/juce_events.cpp delete mode 100644 JuceLibraryCode/juce_events.mm delete mode 100644 JuceLibraryCode/juce_graphics.cpp delete mode 100644 JuceLibraryCode/juce_graphics.mm delete mode 100644 JuceLibraryCode/juce_gui_basics.cpp delete mode 100644 JuceLibraryCode/juce_gui_basics.mm delete mode 100644 JuceLibraryCode/juce_gui_extra.cpp delete mode 100644 JuceLibraryCode/juce_gui_extra.mm delete mode 100644 JuceLibraryCode/juce_opengl.cpp delete mode 100644 JuceLibraryCode/juce_opengl.mm delete mode 100644 JuceLibraryCode/juce_video.cpp delete mode 100644 JuceLibraryCode/juce_video.mm create mode 100644 Makefile.gtk delete mode 100644 SimpleSineWaveGenerator.jucer delete mode 100644 Source/Main.cpp delete mode 100644 Source/MainComponent.cpp create mode 100755 gtk_sine_generator create mode 100644 gtk_sine_generator.cpp diff --git a/Builds/VisualStudio2015/Simple Sine Wave Generator.sln b/Builds/VisualStudio2015/Simple Sine Wave Generator.sln deleted file mode 100644 index 8cb21dc..0000000 --- a/Builds/VisualStudio2015/Simple Sine Wave Generator.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2015 -Project("{06B48CC6-6C48-4182-2BE5-6F5AF4A9E17E}") = "Simple Sine Wave Generator", "Simple Sine Wave Generator.vcxproj", "{83DEB630-4573-0CF3-8EBF-EA0EBDE8D5BE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {83DEB630-4573-0CF3-8EBF-EA0EBDE8D5BE}.Debug|Win32.ActiveCfg = Debug|Win32 - {83DEB630-4573-0CF3-8EBF-EA0EBDE8D5BE}.Debug|Win32.Build.0 = Debug|Win32 - {83DEB630-4573-0CF3-8EBF-EA0EBDE8D5BE}.Release|Win32.ActiveCfg = Release|Win32 - {83DEB630-4573-0CF3-8EBF-EA0EBDE8D5BE}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj b/Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj deleted file mode 100644 index 9e76bdc..0000000 --- a/Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj +++ /dev/null @@ -1,2321 +0,0 @@ - - - - - - Debug - Win32 - - - Release - Win32 - - - - {83DEB630-4573-0CF3-8EBF-EA0EBDE8D5BE} - v140 - - - - Application - false - v140 - - - Application - false - true - v140 - - - - - - - - v140 - - - <_ProjectFileVersion>10.0.30319.1 - SimpleSineWaveGenerator - true - SimpleSineWaveGenerator - true - v140 - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - - - - Disabled - EditAndContinue - ..\..\JuceLibraryCode;C:\JUCE\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions) - MultiThreadedDebug - true - - $(IntDir)\ - $(IntDir)\ - $(IntDir)\ - Level4 - true - true - - - _DEBUG;%(PreprocessorDefinitions) - - - $(OutDir)\SimpleSineWaveGenerator.exe - true - libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) - true - $(IntDir)\SimpleSineWaveGenerator.pdb - Windows - MachineX86 - false - true - - - true - $(IntDir)\SimpleSineWaveGenerator.bsc - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - - - - Full - ..\..\JuceLibraryCode;C:\JUCE\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions) - MultiThreaded - true - - $(IntDir)\ - $(IntDir)\ - $(IntDir)\ - Level4 - true - true - - - NDEBUG;%(PreprocessorDefinitions) - - - $(OutDir)\SimpleSineWaveGenerator.exe - true - %(IgnoreSpecificDefaultLibraries) - false - $(IntDir)\SimpleSineWaveGenerator.pdb - Windows - MachineX86 - true - true - true - - - true - $(IntDir)\SimpleSineWaveGenerator.bsc - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj.filters b/Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj.filters deleted file mode 100644 index ee137e7..0000000 --- a/Builds/VisualStudio2015/Simple Sine Wave Generator.vcxproj.filters +++ /dev/null @@ -1,3932 +0,0 @@ - - - - - - {41CC8973-6774-DE78-EF01-AECB36180ACA} - - - {B6429EF9-3C4C-FC86-6D6C-AC04A0030793} - - - {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} - - - {3247ED97-A75A-F50B-8CCC-46155E895806} - - - {A33A1E1D-AC2C-6382-8681-48B0FC374C60} - - - {11A75801-B027-40BD-4993-023023ACCBF7} - - - {3FD908F5-98C8-9A61-FC03-0BAF8913CBB0} - - - {8C868E51-156D-A916-047C-0D9EA1393675} - - - {EF2CAB40-0432-429B-C517-86ADF136BB8A} - - - {8F7EC212-3168-AD81-5064-C45BA838C408} - - - {CACD7B50-4DB3-76AF-A6E8-90DF94F8F594} - - - {45C2CE26-EC4B-BA52-58F3-297C408E1483} - - - {9D270B31-2425-8FDB-84A4-6A2288FF5B2F} - - - {0F766DD4-A277-CB86-5647-42498C8B41E1} - - - {01603E05-423B-5FC3-1BEE-E15ED33B5688} - - - {D64942B4-6984-3623-3347-45D472AE1C61} - - - {65CB28F8-0422-A8F3-9A17-959E12A1F8E2} - - - {0CD9E281-DDD0-91EC-6F77-EA9D9D5E0E1A} - - - {AB8611DF-8161-A9DF-DBAD-77A87DE37331} - - - {9DFA63C1-4EE6-1FAB-D563-41FCF84988F2} - - - {FEF33480-117C-23A6-D12C-7C299F26C9DB} - - - {C9640E58-4493-7EEC-6F58-603AD184956E} - - - {D8EE4AD1-61E3-21C2-6640-6684F4CF77DC} - - - {76391436-F92A-7602-4073-E446B5FAA859} - - - {9971A63C-5B75-039F-95C2-7474D7DB16B0} - - - {DC58E9B7-2710-F45C-B718-75EACDF53F47} - - - {B8087E92-19F7-552F-9E85-16153D7191B0} - - - {25C8FB00-334A-6E0F-F203-E988758B708A} - - - {94027CB9-8162-7431-2E01-B710C7CAE620} - - - {450B8177-6F41-B902-761B-BF68D55102DA} - - - {B7221885-1731-611D-FDD9-EA968FA8D858} - - - {2FE25F4C-E9DF-04A5-CAED-6E4B7CF28C59} - - - {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} - - - {0B0E7392-324B-088C-FBEB-5FE999D61782} - - - {20254EFE-6CBD-31A7-2119-92B1E0E0E311} - - - {70796D73-6D30-8A1B-4732-7C021E47C05A} - - - {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} - - - {EB8DD942-E2CB-869F-D381-E02A65BA790B} - - - {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} - - - {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} - - - {8167E753-09C7-5D1C-EF2B-32D297557443} - - - {B48C883A-8483-AF6D-808C-1D9A749048D8} - - - {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} - - - {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} - - - {0608ADE9-66EF-1A19-6D57-12D07F76EB53} - - - {C8F726FC-26BF-2E6B-4ED5-55A7FE316D7D} - - - {1B67A7C0-86E0-53F6-6AE3-7AD93B8DC95B} - - - {C294408A-2005-2E9E-7AC0-8D3ABE8AC175} - - - {476C69CE-0B67-6B85-E888-45D91E37A29E} - - - {7C5AD030-F8CC-6E85-0AF6-196B3ED40AC6} - - - {FA891A58-9FDA-9651-43C4-714A19B5D08D} - - - {C79A4D23-7866-8F3E-AC39-BD68C52A9259} - - - {DA0DC4AC-B511-A2D4-199A-C93454D6F114} - - - {91929C6F-7902-B87D-5260-2F6CBF8ACD93} - - - {4634FFAE-9586-A970-364C-4FDDA635F99F} - - - {244D11B0-2D68-3C08-A0B7-0D12469BC3AA} - - - {05F3DB8A-499C-6ACA-282F-5BF8455A0DE1} - - - {C9F6D785-BF78-5AA1-B479-111C65397864} - - - {4927C7A1-9235-4AA1-93CD-B4E67E6F1E5F} - - - {F2B2F310-F30F-7166-42A9-9BF9C230DA78} - - - {F03654BC-34D8-F975-BEA3-750CC2783D23} - - - {585D6A72-C5E7-BCF1-A168-63A40C6B6313} - - - {3C7C8F35-6C08-9866-6663-6FEFE2EFC9FC} - - - {7703D2CE-C32A-936A-0EEF-949FE6E52EB5} - - - {8D283B6C-13BA-9EF6-1B18-B1C393786943} - - - {928D8FCC-5E00-174B-6538-93E8D75AB396} - - - {358AEA11-3F96-36AE-7B32-71373B5C5396} - - - {3DF036EA-3B80-553B-2494-3AAC835CAE75} - - - {1988E68A-A964-64CA-0E0C-26FF9BC5176C} - - - {F2A38F45-6E55-E147-2E52-64A89FDD9D59} - - - {B098BC87-3298-7E6B-12DC-D26C09CDCAED} - - - {6322B88F-984A-C3CD-6263-38D7AA49B6EC} - - - {6172822C-01A5-E824-12DA-FA43FA934D35} - - - {73C1E759-AD90-59A3-942E-2D10FAA29107} - - - {41DC3BE3-D629-8A17-C32B-F5B4008B5FAD} - - - {EE1AE8C3-0908-8F53-A4E5-D930C7C97C26} - - - {4926B3FF-E797-F586-857A-69D9703FA2D1} - - - {EBC65085-3AD5-280C-1A29-2B1683643AA1} - - - {E37D25CD-4350-4614-055B-7ABC55E67895} - - - {26ECA2AF-7368-C6CC-58EF-017ECD1862D0} - - - {C1A1A236-AB01-173E-96C3-0706BFF93B1E} - - - {69E1179D-76EC-26DC-C3E6-6602ED26D783} - - - {F27C42E6-CF39-9B72-8CD7-C29CA4ADD43B} - - - {12D20EC8-139C-C2B1-1A66-AC436C48C0A7} - - - {413F481F-075C-2958-115C-D8268682FCB7} - - - {FFC6E1CC-C772-75E6-5087-FB5D4E016799} - - - {1182303F-ECA3-166D-AC0C-92C5E762CB93} - - - {8E43579F-C185-266D-DD67-F8B95BD80F2F} - - - {61712B09-5783-ADFA-2001-5A0C3D7764EB} - - - {C3B2EB8A-1A2F-306F-AA78-3E9D1593788B} - - - {46535B56-3737-2BE8-E3A0-571BCBEB2DA4} - - - {2CB59E7C-D0E4-7D27-2ACF-C7ABADEE936D} - - - {5A0AA36E-3957-E413-14C6-31CBE15271DF} - - - {5FDBD6B1-9BBD-392F-4DA5-FEA40A9370C4} - - - {A92719C7-70BE-57C4-CE9E-A9BC9DFEB757} - - - {E980FADB-6E3F-B93C-DE02-CE4271C9BA93} - - - {F408DCA2-D5E2-0A3A-A064-A1D045889BC1} - - - {7BCEAB87-62FD-0327-EB5D-679E54EDB9B1} - - - {C2B9505B-27B4-F650-12BD-F477D4BBCBAA} - - - {796B7886-44A7-34CC-9B95-BF4FB2C7B6F4} - - - {8A80BA78-D3A8-C0F8-7FFD-61AA028CE852} - - - {7A53E6F1-1343-33B8-4CA8-1D7B714A0E76} - - - {D7E3D10F-3ED8-DFC5-6DB3-E4ACBF8678FB} - - - {75F1F352-251A-75E0-D941-8431588F5C1E} - - - {DB6E3D09-66DA-12DA-BAE8-A5BFFA7A14AC} - - - {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} - - - {C60A6FCA-9462-922E-AD8D-69F10C9049AF} - - - {D56498EE-E354-1F00-5EEE-8CF7944BEAFB} - - - {61B2920C-494D-D8CB-C0C7-5DBF3D76D164} - - - {66C9B809-8739-A217-C78D-A15D6089B8E3} - - - {C413328B-5D81-89EE-F4F3-75752E700DE4} - - - {639E16C5-DA8B-ADBA-6E24-7B596378EAB2} - - - {B3141847-8F13-F67D-45B2-E3ECF6E09088} - - - {151B49D8-6102-F802-1C07-D59931BC0574} - - - {2D8D0E19-E676-83EB-38D9-F73500DD6B79} - - - {9E586194-C056-101C-5311-F2AF5191AC80} - - - {72A923E2-C729-DB92-D7BF-A9D4AFAE5896} - - - {7F11E7D2-54C0-2A36-5F15-BEC0A5374A08} - - - {EE985DEA-CD83-8132-7219-542BB1DAD560} - - - {0E43EA8A-95EE-4253-E1B7-160F38ACBB00} - - - {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} - - - - - Simple Sine Wave Generator\Source - - - Simple Sine Wave Generator\Source - - - Juce Modules\juce_audio_basics\buffers - - - Juce Modules\juce_audio_basics\buffers - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\synthesisers - - - Juce Modules\juce_audio_basics - - - Juce Modules\juce_audio_basics - - - Juce Modules\juce_audio_devices\audio_cd - - - Juce Modules\juce_audio_devices\audio_io - - - Juce Modules\juce_audio_devices\audio_io - - - Juce Modules\juce_audio_devices\audio_io - - - Juce Modules\juce_audio_devices\midi_io - - - Juce Modules\juce_audio_devices\midi_io - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\sources - - - Juce Modules\juce_audio_devices\sources - - - Juce Modules\juce_audio_devices - - - Juce Modules\juce_audio_devices - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\sampler - - - Juce Modules\juce_audio_formats - - - Juce Modules\juce_audio_formats - - - Juce Modules\juce_audio_processors\format - - - Juce Modules\juce_audio_processors\format - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\scanning - - - Juce Modules\juce_audio_processors\scanning - - - Juce Modules\juce_audio_processors\scanning - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors - - - Juce Modules\juce_audio_processors - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\native - - - Juce Modules\juce_audio_utils\native - - - Juce Modules\juce_audio_utils\native - - - Juce Modules\juce_audio_utils\native - - - Juce Modules\juce_audio_utils\native - - - Juce Modules\juce_audio_utils\players - - - Juce Modules\juce_audio_utils - - - Juce Modules\juce_audio_utils - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\javascript - - - Juce Modules\juce_core\javascript - - - Juce Modules\juce_core\logging - - - Juce Modules\juce_core\logging - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\misc - - - Juce Modules\juce_core\misc - - - Juce Modules\juce_core\misc - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\system - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\time - - - Juce Modules\juce_core\time - - - Juce Modules\juce_core\time - - - Juce Modules\juce_core\unit_tests - - - Juce Modules\juce_core\xml - - - Juce Modules\juce_core\xml - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip - - - Juce Modules\juce_core\zip - - - Juce Modules\juce_core\zip - - - Juce Modules\juce_core - - - Juce Modules\juce_core - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography - - - Juce Modules\juce_cryptography - - - Juce Modules\juce_data_structures\app_properties - - - Juce Modules\juce_data_structures\app_properties - - - Juce Modules\juce_data_structures\undomanager - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures - - - Juce Modules\juce_data_structures - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\interprocess - - - Juce Modules\juce_events\interprocess - - - Juce Modules\juce_events\interprocess - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\timers - - - Juce Modules\juce_events\timers - - - Juce Modules\juce_events - - - Juce Modules\juce_events - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\contexts - - - Juce Modules\juce_graphics\contexts - - - Juce Modules\juce_graphics\contexts - - - Juce Modules\juce_graphics\effects - - - Juce Modules\juce_graphics\effects - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats - - - Juce Modules\juce_graphics\image_formats - - - Juce Modules\juce_graphics\image_formats - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\placement - - - Juce Modules\juce_graphics - - - Juce Modules\juce_graphics - - - Juce Modules\juce_gui_basics\application - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\menus - - - Juce Modules\juce_gui_basics\menus - - - Juce Modules\juce_gui_basics\menus - - - Juce Modules\juce_gui_basics\misc - - - Juce Modules\juce_gui_basics\misc - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics - - - Juce Modules\juce_gui_basics - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\documents - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra - - - Juce Modules\juce_gui_extra - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\utils - - - Juce Modules\juce_opengl - - - Juce Modules\juce_opengl - - - Juce Modules\juce_video\capture - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video - - - Juce Modules\juce_video - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - - - Juce Modules\juce_audio_basics\buffers - - - Juce Modules\juce_audio_basics\buffers - - - Juce Modules\juce_audio_basics\buffers - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\effects - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\midi - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\mpe - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\sources - - - Juce Modules\juce_audio_basics\synthesisers - - - Juce Modules\juce_audio_basics - - - Juce Modules\juce_audio_basics - - - Juce Modules\juce_audio_devices\audio_cd - - - Juce Modules\juce_audio_devices\audio_cd - - - Juce Modules\juce_audio_devices\audio_io - - - Juce Modules\juce_audio_devices\audio_io - - - Juce Modules\juce_audio_devices\audio_io - - - Juce Modules\juce_audio_devices\audio_io - - - Juce Modules\juce_audio_devices\midi_io - - - Juce Modules\juce_audio_devices\midi_io - - - Juce Modules\juce_audio_devices\midi_io - - - Juce Modules\juce_audio_devices\native - - - Juce Modules\juce_audio_devices\sources - - - Juce Modules\juce_audio_devices\sources - - - Juce Modules\juce_audio_devices - - - Juce Modules\juce_audio_devices - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected - - - Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\floor - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\uncoupled - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\codecs - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\format - - - Juce Modules\juce_audio_formats\sampler - - - Juce Modules\juce_audio_formats - - - Juce Modules\juce_audio_formats - - - Juce Modules\juce_audio_processors\format - - - Juce Modules\juce_audio_processors\format - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\format_types - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\processors - - - Juce Modules\juce_audio_processors\scanning - - - Juce Modules\juce_audio_processors\scanning - - - Juce Modules\juce_audio_processors\scanning - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors\utilities - - - Juce Modules\juce_audio_processors - - - Juce Modules\juce_audio_processors - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\gui - - - Juce Modules\juce_audio_utils\players - - - Juce Modules\juce_audio_utils - - - Juce Modules\juce_audio_utils - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\containers - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\files - - - Juce Modules\juce_core\javascript - - - Juce Modules\juce_core\javascript - - - Juce Modules\juce_core\logging - - - Juce Modules\juce_core\logging - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\maths - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\memory - - - Juce Modules\juce_core\misc - - - Juce Modules\juce_core\misc - - - Juce Modules\juce_core\misc - - - Juce Modules\juce_core\misc - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\native - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\network - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\streams - - - Juce Modules\juce_core\system - - - Juce Modules\juce_core\system - - - Juce Modules\juce_core\system - - - Juce Modules\juce_core\system - - - Juce Modules\juce_core\system - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\text - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\threads - - - Juce Modules\juce_core\time - - - Juce Modules\juce_core\time - - - Juce Modules\juce_core\time - - - Juce Modules\juce_core\unit_tests - - - Juce Modules\juce_core\xml - - - Juce Modules\juce_core\xml - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip\zlib - - - Juce Modules\juce_core\zip - - - Juce Modules\juce_core\zip - - - Juce Modules\juce_core\zip - - - Juce Modules\juce_core - - - Juce Modules\juce_core - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography - - - Juce Modules\juce_cryptography - - - Juce Modules\juce_data_structures\app_properties - - - Juce Modules\juce_data_structures\app_properties - - - Juce Modules\juce_data_structures\undomanager - - - Juce Modules\juce_data_structures\undomanager - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures\values - - - Juce Modules\juce_data_structures - - - Juce Modules\juce_data_structures - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\broadcasters - - - Juce Modules\juce_events\interprocess - - - Juce Modules\juce_events\interprocess - - - Juce Modules\juce_events\interprocess - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\messages - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\native - - - Juce Modules\juce_events\timers - - - Juce Modules\juce_events\timers - - - Juce Modules\juce_events - - - Juce Modules\juce_events - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\colour - - - Juce Modules\juce_graphics\contexts - - - Juce Modules\juce_graphics\contexts - - - Juce Modules\juce_graphics\contexts - - - Juce Modules\juce_graphics\contexts - - - Juce Modules\juce_graphics\effects - - - Juce Modules\juce_graphics\effects - - - Juce Modules\juce_graphics\effects - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\fonts - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\geometry - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\images - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\native - - - Juce Modules\juce_graphics\placement - - - Juce Modules\juce_graphics\placement - - - Juce Modules\juce_graphics - - - Juce Modules\juce_graphics - - - Juce Modules\juce_gui_basics\application - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\buttons - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\commands - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\components - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\drawables - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\filebrowser - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\keyboard - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\layout - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\lookandfeel - - - Juce Modules\juce_gui_basics\menus - - - Juce Modules\juce_gui_basics\menus - - - Juce Modules\juce_gui_basics\menus - - - Juce Modules\juce_gui_basics\misc - - - Juce Modules\juce_gui_basics\misc - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\mouse - - - Juce Modules\juce_gui_basics\native - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\positioning - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\properties - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\widgets - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics\windows - - - Juce Modules\juce_gui_basics - - - Juce Modules\juce_gui_basics - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\code_editor - - - Juce Modules\juce_gui_extra\documents - - - Juce Modules\juce_gui_extra\embedding - - - Juce Modules\juce_gui_extra\embedding - - - Juce Modules\juce_gui_extra\embedding - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\misc - - - Juce Modules\juce_gui_extra\native - - - Juce Modules\juce_gui_extra - - - Juce Modules\juce_gui_extra - - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\utils - - - Juce Modules\juce_opengl - - - Juce Modules\juce_opengl - - - Juce Modules\juce_video\capture - - - Juce Modules\juce_video\playback - - - Juce Modules\juce_video\playback - - - Juce Modules\juce_video - - - Juce Modules\juce_video - - - Juce Library Code - - - Juce Library Code - - - - - Juce Modules\juce_audio_formats\codecs\flac - - - Juce Modules\juce_audio_formats\codecs\oggvorbis - - - Juce Modules\juce_graphics\image_formats\jpglib - - - Juce Modules\juce_graphics\image_formats\pnglib - - - - - Juce Library Code - - - diff --git a/Builds/VisualStudio2015/resources.rc b/Builds/VisualStudio2015/resources.rc deleted file mode 100644 index 087e7ee..0000000 --- a/Builds/VisualStudio2015/resources.rc +++ /dev/null @@ -1,29 +0,0 @@ -#ifdef JUCE_USER_DEFINED_RC_FILE - #include JUCE_USER_DEFINED_RC_FILE -#else - -#undef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#include - -VS_VERSION_INFO VERSIONINFO -FILEVERSION 1,0,0,0 -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - BEGIN - VALUE "FileDescription", "Simple Sine Wave Generator\0" - VALUE "FileVersion", "1.0.0\0" - VALUE "ProductName", "Simple Sine Wave Generator\0" - VALUE "ProductVersion", "1.0.0\0" - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - -#endif diff --git a/JuceLibraryCode/AppConfig.h b/JuceLibraryCode/AppConfig.h deleted file mode 100644 index 1053304..0000000 --- a/JuceLibraryCode/AppConfig.h +++ /dev/null @@ -1,216 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - There's a section below where you can add your own custom code safely, and the - Projucer will preserve the contents of that block, but the best way to change - any of these definitions is by using the Projucer's project settings. - - Any commented-out settings will assume their default values. - -*/ - -#ifndef __JUCE_APPCONFIG_LIYKGK__ -#define __JUCE_APPCONFIG_LIYKGK__ - -//============================================================================== -// [BEGIN_USER_CODE_SECTION] - -// (You can add your own code in this section, and the Projucer will not overwrite it) - -// [END_USER_CODE_SECTION] - -//============================================================================== -#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 -#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 -#define JUCE_MODULE_AVAILABLE_juce_audio_formats 1 -#define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 -#define JUCE_MODULE_AVAILABLE_juce_audio_utils 1 -#define JUCE_MODULE_AVAILABLE_juce_core 1 -#define JUCE_MODULE_AVAILABLE_juce_cryptography 1 -#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 -#define JUCE_MODULE_AVAILABLE_juce_events 1 -#define JUCE_MODULE_AVAILABLE_juce_graphics 1 -#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 -#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 -#define JUCE_MODULE_AVAILABLE_juce_opengl 1 -#define JUCE_MODULE_AVAILABLE_juce_video 1 - -//============================================================================== -#ifndef JUCE_STANDALONE_APPLICATION - #ifdef JucePlugin_Build_Standalone - #define JUCE_STANDALONE_APPLICATION JucePlugin_Build_Standalone - #else - #define JUCE_STANDALONE_APPLICATION 1 - #endif -#endif - -#define JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED 1 - -//============================================================================== -// juce_audio_devices flags: - -#ifndef JUCE_ASIO - //#define JUCE_ASIO -#endif - -#ifndef JUCE_WASAPI - //#define JUCE_WASAPI -#endif - -#ifndef JUCE_WASAPI_EXCLUSIVE - //#define JUCE_WASAPI_EXCLUSIVE -#endif - -#ifndef JUCE_DIRECTSOUND - //#define JUCE_DIRECTSOUND -#endif - -#ifndef JUCE_ALSA - //#define JUCE_ALSA -#endif - -#ifndef JUCE_JACK - //#define JUCE_JACK -#endif - -#ifndef JUCE_USE_ANDROID_OPENSLES - //#define JUCE_USE_ANDROID_OPENSLES -#endif - -#ifndef JUCE_USE_CDREADER - //#define JUCE_USE_CDREADER -#endif - -#ifndef JUCE_USE_CDBURNER - //#define JUCE_USE_CDBURNER -#endif - -//============================================================================== -// juce_audio_formats flags: - -#ifndef JUCE_USE_FLAC - //#define JUCE_USE_FLAC -#endif - -#ifndef JUCE_USE_OGGVORBIS - //#define JUCE_USE_OGGVORBIS -#endif - -#ifndef JUCE_USE_MP3AUDIOFORMAT - //#define JUCE_USE_MP3AUDIOFORMAT -#endif - -#ifndef JUCE_USE_LAME_AUDIO_FORMAT - //#define JUCE_USE_LAME_AUDIO_FORMAT -#endif - -#ifndef JUCE_USE_WINDOWS_MEDIA_FORMAT - //#define JUCE_USE_WINDOWS_MEDIA_FORMAT -#endif - -//============================================================================== -// juce_audio_processors flags: - -#ifndef JUCE_PLUGINHOST_VST - //#define JUCE_PLUGINHOST_VST -#endif - -#ifndef JUCE_PLUGINHOST_VST3 - //#define JUCE_PLUGINHOST_VST3 -#endif - -#ifndef JUCE_PLUGINHOST_AU - //#define JUCE_PLUGINHOST_AU -#endif - -//============================================================================== -// juce_core flags: - -#ifndef JUCE_FORCE_DEBUG - //#define JUCE_FORCE_DEBUG -#endif - -#ifndef JUCE_LOG_ASSERTIONS - //#define JUCE_LOG_ASSERTIONS -#endif - -#ifndef JUCE_CHECK_MEMORY_LEAKS - //#define JUCE_CHECK_MEMORY_LEAKS -#endif - -#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES - //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES -#endif - -#ifndef JUCE_INCLUDE_ZLIB_CODE - //#define JUCE_INCLUDE_ZLIB_CODE -#endif - -#ifndef JUCE_USE_CURL - //#define JUCE_USE_CURL -#endif - -//============================================================================== -// juce_graphics flags: - -#ifndef JUCE_USE_COREIMAGE_LOADER - //#define JUCE_USE_COREIMAGE_LOADER -#endif - -#ifndef JUCE_USE_DIRECTWRITE - //#define JUCE_USE_DIRECTWRITE -#endif - -//============================================================================== -// juce_gui_basics flags: - -#ifndef JUCE_ENABLE_REPAINT_DEBUGGING - //#define JUCE_ENABLE_REPAINT_DEBUGGING -#endif - -#ifndef JUCE_USE_XSHM - //#define JUCE_USE_XSHM -#endif - -#ifndef JUCE_USE_XRENDER - //#define JUCE_USE_XRENDER -#endif - -#ifndef JUCE_USE_XCURSOR - //#define JUCE_USE_XCURSOR -#endif - -//============================================================================== -// juce_gui_extra flags: - -#ifndef JUCE_WEB_BROWSER - //#define JUCE_WEB_BROWSER -#endif - -#ifndef JUCE_ENABLE_LIVE_CONSTANT_EDITOR - //#define JUCE_ENABLE_LIVE_CONSTANT_EDITOR -#endif - -//============================================================================== -// juce_video flags: - -#ifndef JUCE_DIRECTSHOW - //#define JUCE_DIRECTSHOW -#endif - -#ifndef JUCE_MEDIAFOUNDATION - //#define JUCE_MEDIAFOUNDATION -#endif - -#ifndef JUCE_QUICKTIME - //#define JUCE_QUICKTIME -#endif - -#ifndef JUCE_USE_CAMERA - //#define JUCE_USE_CAMERA -#endif - - -#endif // __JUCE_APPCONFIG_LIYKGK__ diff --git a/JuceLibraryCode/JuceHeader.h b/JuceLibraryCode/JuceHeader.h deleted file mode 100644 index 16ada4a..0000000 --- a/JuceLibraryCode/JuceHeader.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - - This is the header file that your files should include in order to get all the - JUCE library headers. You should avoid including the JUCE headers directly in - your own source files, because that wouldn't pick up the correct configuration - options for your app. - -*/ - -#ifndef __APPHEADERFILE_LIYKGK__ -#define __APPHEADERFILE_LIYKGK__ - -#include "AppConfig.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#if ! DONT_SET_USING_JUCE_NAMESPACE - // If your code uses a lot of JUCE classes, then this will obviously save you - // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. - using namespace juce; -#endif - -#if ! JUCE_DONT_DECLARE_PROJECTINFO -namespace ProjectInfo -{ - const char* const projectName = "Simple Sine Wave Generator"; - const char* const versionString = "1.0.0"; - const int versionNumber = 0x10000; -} -#endif - -#endif // __APPHEADERFILE_LIYKGK__ diff --git a/JuceLibraryCode/ReadMe.txt b/JuceLibraryCode/ReadMe.txt deleted file mode 100644 index 1e6784f..0000000 --- a/JuceLibraryCode/ReadMe.txt +++ /dev/null @@ -1,12 +0,0 @@ - - Important Note!! - ================ - -The purpose of this folder is to contain files that are auto-generated by the Projucer, -and ALL files in this folder will be mercilessly DELETED and completely re-written whenever -the Projucer saves your project. - -Therefore, it's a bad idea to make any manual changes to the files in here, or to -put any of your own files in here if you don't want to lose them. (Of course you may choose -to add the folder's contents to your version-control system so that you can re-merge your own -modifications after the Projucer has saved its changes). diff --git a/JuceLibraryCode/juce_audio_basics.cpp b/JuceLibraryCode/juce_audio_basics.cpp deleted file mode 100644 index b949f56..0000000 --- a/JuceLibraryCode/juce_audio_basics.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_basics.mm b/JuceLibraryCode/juce_audio_basics.mm deleted file mode 100644 index 2643e2d..0000000 --- a/JuceLibraryCode/juce_audio_basics.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_devices.cpp b/JuceLibraryCode/juce_audio_devices.cpp deleted file mode 100644 index 6cd0bd8..0000000 --- a/JuceLibraryCode/juce_audio_devices.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_devices.mm b/JuceLibraryCode/juce_audio_devices.mm deleted file mode 100644 index 7ca20a2..0000000 --- a/JuceLibraryCode/juce_audio_devices.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_formats.cpp b/JuceLibraryCode/juce_audio_formats.cpp deleted file mode 100644 index 4a8b9f3..0000000 --- a/JuceLibraryCode/juce_audio_formats.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_formats.mm b/JuceLibraryCode/juce_audio_formats.mm deleted file mode 100644 index b4deae3..0000000 --- a/JuceLibraryCode/juce_audio_formats.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_processors.cpp b/JuceLibraryCode/juce_audio_processors.cpp deleted file mode 100644 index f2ea745..0000000 --- a/JuceLibraryCode/juce_audio_processors.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_processors.mm b/JuceLibraryCode/juce_audio_processors.mm deleted file mode 100644 index e396c68..0000000 --- a/JuceLibraryCode/juce_audio_processors.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_utils.cpp b/JuceLibraryCode/juce_audio_utils.cpp deleted file mode 100644 index f634166..0000000 --- a/JuceLibraryCode/juce_audio_utils.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_audio_utils.mm b/JuceLibraryCode/juce_audio_utils.mm deleted file mode 100644 index 84c6ef2..0000000 --- a/JuceLibraryCode/juce_audio_utils.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_core.cpp b/JuceLibraryCode/juce_core.cpp deleted file mode 100644 index 862edad..0000000 --- a/JuceLibraryCode/juce_core.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_core.mm b/JuceLibraryCode/juce_core.mm deleted file mode 100644 index 3c86bd0..0000000 --- a/JuceLibraryCode/juce_core.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_cryptography.cpp b/JuceLibraryCode/juce_cryptography.cpp deleted file mode 100644 index c2f79fa..0000000 --- a/JuceLibraryCode/juce_cryptography.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_cryptography.mm b/JuceLibraryCode/juce_cryptography.mm deleted file mode 100644 index ae5ad2d..0000000 --- a/JuceLibraryCode/juce_cryptography.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_data_structures.cpp b/JuceLibraryCode/juce_data_structures.cpp deleted file mode 100644 index 3706126..0000000 --- a/JuceLibraryCode/juce_data_structures.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_data_structures.mm b/JuceLibraryCode/juce_data_structures.mm deleted file mode 100644 index 8f42478..0000000 --- a/JuceLibraryCode/juce_data_structures.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_events.cpp b/JuceLibraryCode/juce_events.cpp deleted file mode 100644 index 667778e..0000000 --- a/JuceLibraryCode/juce_events.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_events.mm b/JuceLibraryCode/juce_events.mm deleted file mode 100644 index 7de1c88..0000000 --- a/JuceLibraryCode/juce_events.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_graphics.cpp b/JuceLibraryCode/juce_graphics.cpp deleted file mode 100644 index 64570b7..0000000 --- a/JuceLibraryCode/juce_graphics.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_graphics.mm b/JuceLibraryCode/juce_graphics.mm deleted file mode 100644 index 6e2297f..0000000 --- a/JuceLibraryCode/juce_graphics.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_gui_basics.cpp b/JuceLibraryCode/juce_gui_basics.cpp deleted file mode 100644 index 5c9e275..0000000 --- a/JuceLibraryCode/juce_gui_basics.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_gui_basics.mm b/JuceLibraryCode/juce_gui_basics.mm deleted file mode 100644 index c87fe80..0000000 --- a/JuceLibraryCode/juce_gui_basics.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_gui_extra.cpp b/JuceLibraryCode/juce_gui_extra.cpp deleted file mode 100644 index 5290620..0000000 --- a/JuceLibraryCode/juce_gui_extra.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_gui_extra.mm b/JuceLibraryCode/juce_gui_extra.mm deleted file mode 100644 index 763d623..0000000 --- a/JuceLibraryCode/juce_gui_extra.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_opengl.cpp b/JuceLibraryCode/juce_opengl.cpp deleted file mode 100644 index 4809e42..0000000 --- a/JuceLibraryCode/juce_opengl.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_opengl.mm b/JuceLibraryCode/juce_opengl.mm deleted file mode 100644 index 5063b65..0000000 --- a/JuceLibraryCode/juce_opengl.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_video.cpp b/JuceLibraryCode/juce_video.cpp deleted file mode 100644 index 082ac95..0000000 --- a/JuceLibraryCode/juce_video.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/JuceLibraryCode/juce_video.mm b/JuceLibraryCode/juce_video.mm deleted file mode 100644 index 0e928e6..0000000 --- a/JuceLibraryCode/juce_video.mm +++ /dev/null @@ -1,9 +0,0 @@ -/* - - IMPORTANT! This file is auto-generated each time you save your - project - if you alter its contents, your changes may be overwritten! - -*/ - -#include "AppConfig.h" -#include diff --git a/Makefile.gtk b/Makefile.gtk new file mode 100644 index 0000000..c3bce71 --- /dev/null +++ b/Makefile.gtk @@ -0,0 +1,16 @@ +CXX = g++ +CXXFLAGS = `pkg-config --cflags gtk+-3.0` -std=c++11 -pthread +LDFLAGS = `pkg-config --libs gtk+-3.0` -lpulse -lpulse-simple -lm + +SOURCES = gtk_sine_generator.cpp +TARGET = gtk_sine_generator + +all: $(TARGET) + +$(TARGET): $(SOURCES) + $(CXX) $(CXXFLAGS) $(SOURCES) -o $(TARGET) $(LDFLAGS) + +clean: + rm -f $(TARGET) + +.PHONY: all clean diff --git a/SimpleSineWaveGenerator.jucer b/SimpleSineWaveGenerator.jucer deleted file mode 100644 index 3d8ae70..0000000 --- a/SimpleSineWaveGenerator.jucer +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Main.cpp b/Source/Main.cpp deleted file mode 100644 index e6f1020..0000000 --- a/Source/Main.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - ============================================================================== - - This file was auto-generated! - - It contains the basic startup code for a Juce application. - - ============================================================================== -*/ - -#include "../JuceLibraryCode/JuceHeader.h" - -Component* createMainContentComponent(); - -//============================================================================== -class SynthTutorialPartOneApplication : public JUCEApplication -{ -public: - //============================================================================== - SynthTutorialPartOneApplication() {} - - const String getApplicationName() override { return ProjectInfo::projectName; } - const String getApplicationVersion() override { return ProjectInfo::versionString; } - bool moreThanOneInstanceAllowed() override { return true; } - - //============================================================================== - void initialise (const String& commandLine) override - { - // This method is where you should put your application's initialisation code.. - - mainWindow = new MainWindow (getApplicationName()); - } - - void shutdown() override - { - // Add your application's shutdown code here.. - - mainWindow = nullptr; // (deletes our window) - } - - //============================================================================== - void systemRequestedQuit() override - { - // This is called when the app is being asked to quit: you can ignore this - // request and let the app carry on running, or call quit() to allow the app to close. - quit(); - } - - void anotherInstanceStarted (const String& commandLine) override - { - // When another instance of the app is launched while this one is running, - // this method is invoked, and the commandLine parameter tells you what - // the other instance's command-line arguments were. - } - - //============================================================================== - /* - This class implements the desktop window that contains an instance of - our MainContentComponent class. - */ - class MainWindow : public DocumentWindow - { - public: - MainWindow (String name) : DocumentWindow (name, - Colours::lightgrey, - DocumentWindow::allButtons) - { - setUsingNativeTitleBar (true); - setContentOwned (createMainContentComponent(), true); - setResizable (true, true); - - centreWithSize (getWidth(), getHeight()); - setVisible (true); - } - - void closeButtonPressed() override - { - // This is called when the user tries to close this window. Here, we'll just - // ask the app to quit when this happens, but you can change this to do - // whatever you need. - JUCEApplication::getInstance()->systemRequestedQuit(); - } - - /* Note: Be careful if you override any DocumentWindow methods - the base - class uses a lot of them, so by overriding you might break its functionality. - It's best to do all your work in your content component instead, but if - you really have to override any DocumentWindow methods, make sure your - subclass also calls the superclass's method. - */ - - private: - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow) - }; - -private: - ScopedPointer mainWindow; -}; - -//============================================================================== -// This macro generates the main() routine that launches the app. -START_JUCE_APPLICATION (SynthTutorialPartOneApplication) diff --git a/Source/MainComponent.cpp b/Source/MainComponent.cpp deleted file mode 100644 index 7bedaf5..0000000 --- a/Source/MainComponent.cpp +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef MAINCOMPONENT_H_INCLUDED -#define MAINCOMPONENT_H_INCLUDED - -#include "../JuceLibraryCode/JuceHeader.h" -#include "juce_gui_basics\widgets\juce_Slider.h" -#include "juce_gui_basics\widgets\juce_Label.h" - -#include - -//============================================================================== -/* -This component lives inside our window, and this is where you should put all -your controls and content. -*/ -class MainContentComponent : public AudioAppComponent, public Slider::Listener, public TextButton::Listener -{ -public: - //============================================================================== - MainContentComponent() - { - setSize(480, 140); - - // specify the number of input and output channels that we want to open - setAudioChannels(2, 2); - - // volume slider - addAndMakeVisible(volumeSlider); - volumeSlider.setRange(-96, 6); - volumeSlider.setTextValueSuffix(" db"); - volumeSlider.setValue(-6); - volumeSlider.addListener(this); - //volumeSlider.setSkewFactorFromMidPoint(0.5); - - volumeLabel.setText("Volume", dontSendNotification); - volumeLabel.attachToComponent(&volumeSlider, true); - - // phase slider - addAndMakeVisible(phaseSlider); - phaseSlider.setRange(0.0, 1.0); - phaseSlider.setTextValueSuffix(" ~"); - phaseSlider.setValue(0.0); - phaseSlider.addListener(this); - - phaseLabel.setText("Phase", dontSendNotification); - phaseLabel.attachToComponent(&phaseSlider, true); - - // freq slider - addAndMakeVisible(freqSlider); - freqSlider.setRange(10, 22000); - freqSlider.setTextValueSuffix(" Hz"); - freqSlider.setValue(500.0); - freqSlider.addListener(this); - freqSlider.setSkewFactorFromMidPoint(500); - - freqLabel.setText("Freq", dontSendNotification); - freqLabel.attachToComponent(&freqSlider, true); - - // mute button - addAndMakeVisible(m_muteButton); - m_muteButton.setButtonText("Mute"); - m_muteButton.addListener(this); - m_muteButton.setEnabled(true); - } - - ~MainContentComponent() - { - shutdownAudio(); - } - - void buttonClicked(Button* button) override - { - if (button == &m_muteButton) { - m_mute = !m_mute; - } - } - - void sliderValueChanged(Slider *slider) { - if (slider == &volumeSlider) { - m_amplitude = pow(10, ((float)volumeSlider.getValue() / 20.0)); - } - - if (slider == &freqSlider) { - m_frequency = (float)freqSlider.getValue(); - } - - if (slider == &phaseSlider) { - m_phase = (float)phaseSlider.getValue(); - } - } - - //============================================================================== - void prepareToPlay(int samplesPerBlockExpected, double sampleRate) override - { - // This function will be called when the audio device is started, or when - // its settings (i.e. sample rate, block size, etc) are changed. - // You can use this function to initialise any resources you might need, - // but be careful - it will be called on the audio thread, not the GUI thread. - // For more details, see the help for AudioProcessor::prepareToPlay() - - m_amplitude = 0.5; - m_frequency = 500.0; - m_phase = 0.0; - m_time = 0.0; - m_deltaTime = 1 / sampleRate; - } - - void getNextAudioBlock(const AudioSourceChannelInfo& bufferToFill) override - { - if (m_time >= std::numeric_limits::max()) { - m_time = 0.0; - } - - float *monoBuffer = new float[bufferToFill.numSamples]; - - if (m_mute) return bufferToFill.clearActiveBufferRegion(); - - // generate sin wave in mono - for (int sample = 0; sample < bufferToFill.numSamples; ++sample) { - float value = m_amplitude * sin(2 * double_Pi * m_frequency * m_time + m_phase); - - monoBuffer[sample] = value; - m_time += m_deltaTime; - } - - // iterate over all available output channels - for (int channel = 0; channel < bufferToFill.buffer->getNumChannels(); ++channel) - { - // Get a pointer to the start sample in the buffer for this audio output channel - float* const buffer = bufferToFill.buffer->getWritePointer(channel, bufferToFill.startSample); - - for (int sample = 0; sample < bufferToFill.numSamples; ++sample) { - buffer[sample] = monoBuffer[sample]; - } - } - } - - void releaseResources() override - { - // This will be called when the audio device stops, or when it is being - // restarted due to a setting change. - // For more details, see the help for AudioProcessor::releaseResources() - } - - //============================================================================== - void paint(Graphics& g) override - { - // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll(Colours::white); - } - - void resized() override - { - // This is called when the MainContentComponent is resized. - // If you add any child components, this is where you should - // update their positions. - const int sliderLeft = 50; - volumeSlider.setBounds(sliderLeft, 20, getWidth() - sliderLeft - 10, 20); - phaseSlider.setBounds(sliderLeft, 50, getWidth() - sliderLeft - 10, 20); - freqSlider.setBounds(sliderLeft, 80, getWidth() - sliderLeft - 10, 20); - m_muteButton.setBounds(10, 110, getWidth() - 20, 20); - } - -private: - //============================================================================== - - // Your private member variables go here... - float m_amplitude; - float m_frequency; - float m_phase; - float m_time; - float m_deltaTime; - - // GUI - Slider volumeSlider; - Slider freqSlider; - Slider phaseSlider; - Label volumeLabel; - Label freqLabel; - Label phaseLabel; - - TextButton m_muteButton; - bool m_mute; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(MainContentComponent) -}; - -// (This function is called by the app startup code to create our main component) -Component* createMainContentComponent() { return new MainContentComponent(); } - -#endif // MAINCOMPONENT_H_INCLUDED diff --git a/gtk_sine_generator b/gtk_sine_generator new file mode 100755 index 0000000000000000000000000000000000000000..430fa05214c25189c6cffc9678982ddb1f57a6a0 GIT binary patch literal 27232 zcmeHQe{@vUoqv-shzcesw1@~Jf<`SNfj|L82jaj$Q6oPrQuJjqGf760%s4+nKwVQI z93p0ywbfeJcG0u#(w?q|b*%?Eii36`_J@l-ZKc*~YFj&_wnn6yTGrXm=l*!}W|+tJ z^p8EKXXhT~eed_@{oe1r@4fr(%lmS-Z`HC2m&?$l(zx0n);nENyo#}>MO6U2#sZ@X z$7#k?V>Iwlf+qQ13BZ-bUs(vpC_2g1`;Oul!zoHmL+v3U^_+_LT*=YUsFpbO+^l+d zK=Fv91us%^8rtq-J$lAL~u#LSN3*m0ni9y{N)qVxUsFzlHX{D#3 zq2i^Xjwj9Vw^Q+p;SBItG^8vGA%E+a5jz!n1(jniOL2P-DZOIoQSut<_SXD18TxD5 zYf^fHOQqpr_=svxL*3q5t>;sEMeshQr=jlOjnLyb{G~+=pRroC=QQr?)%a-0dC5Y5 zC*Vi+^6S?bKN$VV&W0yfbWEPI=_@_Izh+6@t#{rryCc#vzhQPqXjVt0E7dcrXTkhg z^BZat(b_o%=gk%P(Vp;|l~KlY(msRVrn?`$bK&t_Q&25gA~2v%odW)J2l}TWF7dl)@J`34W^c@cVu)C$?zv1A|?;Pk)I@n+8Apf5Z^7lK)n-28v zIM~_eK%a~LdhjbQuRGX31i@1AS?plH!NJbs4)l`__D?#<-|WzCr-OWtgZxH^c7N(X zU*TY9Ddau)6_+PKC>6Ku4)h;8*#Ef$eUF2km;-%>Lwufdpl2M~{g#j)Ydmu)8bWzn z+#C(#W5|y;CL7*>r0eUU(PkzhZC!y5GZ^ja3I~&BD3A;o=8Cn~nW1nz+!jeB!|}D( zHFiY1!fOL99bv;X+d89NW+EAgCrwj|mK1DDZZhM6uC}n*7EYSofsRzzAZ>G`D-_)< zh{-Ln0$Kusp>S&;)sci>TO|*kB?FPJaNG=pLUs#X;mrb-jZoL#NQkW_+R;*=qeIBG zM0?CwAh=2TE=YOXl(yVSM%&st!e&bdf=MApKt#n1wuce8NEe2^D;PF|fke`X1rW)2 zI3AD2MLp6PL*F*XBgwE055?&^WhK8g9=5aDXLG}vbhzYf3DWB3%U{~sTO;WLaIEqRwQ zR`F=hJMtB{Fv{3y@hgqFith#gNufX5*raF^B9U=?V(C`6Y_C$Z2XW!=N6KH~(%%Zp zU;VtHV-mZVQiidQH%t^we`c1%_ZQJUO1`e>KA`cmDfJjlxM7t+8(rN}1n;Pgex4<5 z7{_e%i){2E8~t({UEh~zo9kMuG|So<04|G&e%k1I4v<}KqpKky*_dRb=VuD$gpJNN zbg5~UHPUoUNvUh*ku!p`C|?#d%R1?2<;jNEMnBs|_uJ@WZS*D^9TUYW>uvONEUIBN z+vrs`db^FzxvfjAS=Q+1cufTCX_g4-_H|LOjn3y7U3NCh8s#TyBH-?3iIDy&Srx~J znk7OypD}dV(=2PGPtrudz0DFK{d`#!$9>HbA$_u}isSxfiI9GQtcqj0St6uQkyUXV zY?cV=7s{$Q9&MHg=~HD@9FH|ig!E~$Dvm?V5+U6qtKyhxmI&$7WmO!9npd5j}jR<^DHT7fvws*()cexK;V;KIvbh09M)W7X}V_py)$j$pc z$hnz6#Ib6c7d7JTPjZuq zac-q#Jpykb&MlN|wZJzJ=hjKq5cq21+%m}ye*(hHmBhJKk{uHGQsUeq$sQH>BI4W{ z$)*K9hxmEK_X+%R;@l$1?h*KO;@ld^?iToD;@lF+_6q!5;@k?!#sq#Aac+TRn+0A$ zoLe8+CV_u^HE?cuWW54EPMljE**by0O`KaCS&zWqB+jjkY_-5&B|eq7A@Cm)pGJK6 zzuEuq6Za4w68Q7PFCu>L@`Bs1b zoBnOT8E#tZt54Uz=pR^oAtps`;+2aH<3ww1)wJzU!2}&x{6!e>54g7yEF4Kr#MJ%p zDmit}%nemd>!sWa3PS!yAwO>=!DXNL`-lC9{&0=|&`71vg@FQhlOm3*P zYTC7VefrnC_(JF!sk!U?+ZNvsNyFd&+vGU^uEl?VbGeDVAZ3Dx&0+Tm5L~yskoOmU zc#YOPPJ7ul$gYD8{}&U5 z0N@(gdvJDvOLEmy-m%+;UE9-D+h>xx?O7pJ)psxL49uH&A;GxG0=O?E;K@Glz!)g6 zzRkGJSkeFfivGc;Y4`xoVt@bP=ZIt;!|32T;DH0QsZFQm?&_m*|B*~JCHkM&@gErX z!zt8%$=`ouzc7*eb1s*C4_1%#RYT=z)Q(qGyNBS$@v8BCHJ}~o8;c{Qvm-dDZhcTy zZM0Us_u~($HXMcI1H%l2>@is0QQ*A@-XN_#EUeuu>JMThj#u40Xp^@FYc zs=wo*E1kLYWG)A>KAJra_6Klg0^HaooN=Z751|!70cU$(osG3E?JB{AALAyAwyWJ0 z!k_hr;J16UqJ46uf&R>Pe~19Z$HIGfG~S&7b(?JRi_bC)`w^h3zaPPAr$)#>@Le{J z?ua4ifBC>5u2hI`rU6|zl$o|Yo!o4VM=!!H$D)RI$GO})EqWxAb9F1) z{Lg6lURu$VBbl?IW1D=>Rb#g>^Olqm6LVX79MxXIB^uMPFDRysoQBDok}cE}w(zY# zq34_d{$1-vLjEfzh?5}c&Un!Di!X>1W!t-$hj(TC{iz}UE+62L%(<|_F-`My!2pQE zxPL*Hk5}D#2$S+rR9mZR)RxHG;A8>ykoP#13@S_=bLGb5D^S5AuQg z;M~C>%u@#Hzv#>&9K@`%jAlN{HKV~p8hlF9@-pn!OWZvx^XhF8QSNWWTu+*jDOrO-v1;*gT{TGFWu=knnus4{>Ecq`!eB1KA}b z{UA(cZWsQuCEcUhq9ukVt$IY;`nHhqf^CcOMbhQLOpRqo$M~&3(q$SNEESrM$R2Q4 z(?vLbOf>5|nt4N1=+U6+``0W(M@t!c9Bjt;by#AI33YH0>wh51E53|zTDEg6Bia`+ zKBn54C)z>F?k{K^#&{|>MEfGf!>XN^KVZ)pcPWGopa1XoKck-4OcB}iQxVw3G zranS6Myj4#_mR8`dT8Rs|4nKFq^$d-N8EwM-PbpA#5c?2BbILNZai;c>Bfm8@Y^Kr9Yq3{UtoIi%>Vql{8+|VGw={r zVEX=wwShf)JF5|R9osrY!>3eF`mnq#HH@9`jd@ExVFPb#2fJYpd5j61j-R8N1z;mast2=KcW z7Sn9;T(sEJ8Sae6x0v$Vuz0v597u!(A0PZIT4b7mWVAC9G+RKv%3RTvTpPQZWPBMV zzW(x@POKvu2-OGydn=cD@LgIW>G=Xbob%v&!kA~VrzINgxYA>@D@nH)#_UugK0DGC z>_~;ev+)Vi?E3k&^|kf0TO!HCY@2tr?IpVu2;Od@TQV2Gwcn9n2(7_4gPzX^@EM+{ zEf3=pLYT6DtA>xyYA*BeJF{?Tk!NP&EZcW#;ybn??i%q4o5!;3$r}xY@hx0*i*Zx5 zBh?vRWQb1@X9e5&0c6N%YDZ`n8O!3~+ZP$vrSL_X{AQ4!+nqW>=uRpU=LmI2Bcanq zKYuEAHNjho-U@yN*GkFK6H>)N${zUX`}8NJ(U zmk{PlgICsPcpv^M%hS+hndB9~Sf7?~Qu>Ywk1zk#*6oTvEa9C$m2%#@y{-!?uY3f; z*z7Xa|1y_53b_9bxq!*6oAW57+o5x{!^C*d@B5^w?F3BdJ$ zufGj>;(*5hbATgk;~mIDZvo%}z>R?G0Y3)p0bKhoAmqCM9|C0IAAGR5wyri@J=LxY z#-1@|H)Ki2OJQT=^;}MTpK#j69U1^i{+;+82Y)7@#c$5@9|3s;eEv~}#W(Z( zXFxs){@3jMiid;%?Z1ZKR>WpQ0e_vvKMDGHjKyXADzjbT>UjzRq zh!5WE<@>ibuYVH!m%wM7to~QLA_PSLF}_nXxg6e#ANVrw3S6N|59HQoffc-v*%i8;n1<{xm7Q7XrbLJh8? zT0PpRoK%4i!C<0t%-JAN%9$tgS+H$4e#~c4(QBkfp)Pa;bP4=S)LCGyfKOTaOL^+E zkj7uRlp|1%Ksf^C2>kzvfc}16f3L2;PuKU8Gr6`v(fFr}@R>#URYmyfB0N%rZz;le z72#hk!oOXFA1K0KD#G6=!m~vihxt8#+;VFJ_r6fuZvSaQ(u$V*h5G1f^zVOv#sP6?~Vj7`i5mteGISZ$5h9)-@{VO`c_}J zk3aMg{Q+Bu;yu2=$0&U)n*^@=i8ty3->U+Rze5wa>Yi%l{~lQRh?qTqZ5mnnFYf~^X6E4V|!2NnFL zf=?-USizqu_?ChnDmZ$&YG1)i6r8W%G6io^uvNis1*JCD(*apq-q^UvQ-hW1WgfW$ z;h9r6XMSA+@|T>pxWFA{yq_x;;yT!6oM-4fdLAW!KU^s(KMnK>oXz`+{9|`XA1b2r zS(0>p-2^JiN*rA{tNp59^pE8x{9MS`pwDwb#NjUdXh&a8rXJ$7{0Y#`ulUxJ-U-NxX>l@#5E~-eZR~&*nb~%_Uni`e|6t4#*IA6=-Ck2rR=p3)&c^(73R6e_HpqFa*D-QH;2>Mv#q&iW=UKH9r zqUc*LmVSyoE>z!eurusHKLZO0o{x8``R|qHjCUB%3apYmilD$u$d|f4EE0AKWr^LW zYM?@mD8!;Tb{bFiS~^-bTGHTwe4 zOO5a44)kS$KGwKY#b1wa2k4CRt7_iPR1Nex*!hwJ{ofqu&w)PPz~a;^4P$zU@{)u6 zn-26pIMBzP;SdMVOPycK6ur2=#+qO}SzjB)YluKg#7qX-3=mq7_pxgYsQDC-X0p=^ zG6`e?qM;~K^+j8dH8OM?>*X8%iuLr9-jQi3T3BW55T4{R~RUCH?KO0DeB2iQ20BlWl1)I8k za}w~=iP?~h;FX5Cp#doekxDR$H(zWp!i0ywkns_D5Rr!xFLYAK;|RR2+c1}}x?$;( zRnSPam@AM+63!7tCw8oGkw=z%dD76`i5o8*7(+%YnLotfCzfhU@F=m#~LTqQ%BJzHTJ#WM0UUIT=j^1P*tL zw@{D}ub-M0n#+@$RW7~ z9GnLSJMj+8RPVr=>gUtHwIb=}Qjv2LZgR+rGIst&c_L+N`MiUrGn~@8l~ePS)R>sS zNP{ZVMIv4;iG)=z%spv!t)WDqY>7baDJm@;WJ1L7u1U_9FF04U_yTKuEy9pP22hzt z6p1h`8*>&iCuSZ+3Pzk=e63iJrIp>~97ls|kim0JvVM;J6(Q1Z&NWRt#q5lRBCU~d z+~!U`!>Vw*9xAq1vv41ivxQyyoV`!M?iNg0Gb|Fz;yp34ZWg%9%%CcZs5R^9Za&2- zrp$aynHb-pI!x)(mjP=IIV4QA$Y`MsEvR?6P4#u0kDre)H!4q<;&ZT`=OA1}mQ|Wy zT&(P=9MDrEBLmu zEJ&D)OHOwBrW1}uT6$~a1>Ya+IUo)gSFvyb+c^`L04mN zRNR7%TFbpyJQ_nH-Ytr>Wa)}oTppDCL;O|J_UKEYuP%AuPkT)MAy; ziJQM#4gK|i`h~-UrrD?;BH}I>q|EpfM&`Ud!SsgnEBmQH8I%PIw1?c72bBRKw7)S$9m5 z@eC`AhC6`T^?RpFzJ~X!eQ2d->1+JHB7MDoqhXQyDgNKD^es2N%Cdrk7DLi?{FIdO zFe>z4i|Kta4Ij~h3hHsx>){|V6XF{L&C27OXc!;I@oU+?c~=qb`K?*A{q$J3$p-b3%N>i=Iv&l7D%x3A&vz^Jn6 z>;2sQtE7gObJG6+49+5~kjMDd#X)9V!!?TL?^?qK>jZ#VbsZD4-jaNgTH0{66KfOTd*J(ioJw^CL z)qb&@)-S$(=-|N8pJ_X^r~p{Ncu>cYK&liOBwyPAZr SMoa476Oa;9ixi4b<9`6+6>R7L literal 0 HcmV?d00001 diff --git a/gtk_sine_generator.cpp b/gtk_sine_generator.cpp new file mode 100644 index 0000000..b0c1853 --- /dev/null +++ b/gtk_sine_generator.cpp @@ -0,0 +1,178 @@ +#include +#include +#include +#include +#include +#include +#include + +// Audio parameters +struct AudioParams { + float amplitude; + float frequency; + float phase; + bool muted; + std::atomic running; + pthread_t audio_thread; + + AudioParams() : amplitude(0.5f), frequency(500.0f), phase(0.0f), muted(false), running(true) {} +}; + +AudioParams params; + +// Audio thread function +void* audio_thread_func(void* arg) { + AudioParams* p = (AudioParams*)arg; + + // PulseAudio configuration + static const pa_sample_spec ss = { + .format = PA_SAMPLE_FLOAT32, + .rate = 44100, + .channels = 2 + }; + + pa_simple* s = nullptr; + int error; + + while (p->running) { + if (!p->muted) { + if (s == nullptr) { + s = pa_simple_new(nullptr, "Sine Generator", PA_STREAM_PLAYBACK, + nullptr, "Sine Wave", &ss, nullptr, nullptr, &error); + if (!s) { + fprintf(stderr, "pa_simple_new() failed: %s\n", pa_strerror(error)); + break; + } + } + + // Generate audio buffer + const int buffer_size = 441; // 10ms at 44.1kHz + float buffer[buffer_size * 2]; // stereo + + static double time = 0.0; + const double dt = 1.0 / 44100.0; + + for (int i = 0; i < buffer_size; i++) { + float sample = p->amplitude * sin(2.0 * M_PI * p->frequency * time + p->phase); + buffer[i * 2] = sample; // left channel + buffer[i * 2 + 1] = sample; // right channel + time += dt; + + if (time >= 1e6) time = 0.0; // prevent overflow + } + + if (pa_simple_write(s, buffer, sizeof(buffer), &error) < 0) { + fprintf(stderr, "pa_simple_write() failed: %s\n", pa_strerror(error)); + break; + } + } else { + if (s != nullptr) { + pa_simple_drain(s, &error); + pa_simple_free(s); + s = nullptr; + } + usleep(10000); // 10ms sleep when muted + } + } + + if (s != nullptr) { + pa_simple_drain(s, &error); + pa_simple_free(s); + } + + return nullptr; +} + +// GUI callbacks +void on_volume_changed(GtkRange* range, gpointer data) { + double value = gtk_range_get_value(range); + params.amplitude = pow(10.0, value / 20.0); +} + +void on_phase_changed(GtkRange* range, gpointer data) { + params.phase = gtk_range_get_value(range); +} + +void on_frequency_changed(GtkRange* range, gpointer data) { + params.frequency = gtk_range_get_value(range); +} + +void on_mute_toggled(GtkToggleButton* button, gpointer data) { + params.muted = gtk_toggle_button_get_active(button); +} + +void on_destroy(GtkWidget* widget, gpointer data) { + params.running = false; + pthread_join(params.audio_thread, nullptr); + gtk_main_quit(); +} + +int main(int argc, char* argv[]) { + gtk_init(&argc, &argv); + + // Create main window + GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_title(GTK_WINDOW(window), "Simple Sine Wave Generator"); + gtk_window_set_default_size(GTK_WINDOW(window), 480, 140); + gtk_container_set_border_width(GTK_CONTAINER(window), 10); + g_signal_connect(window, "destroy", G_CALLBACK(on_destroy), nullptr); + + // Create vertical box + GtkWidget* vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); + gtk_container_add(GTK_CONTAINER(window), vbox); + + // Volume slider + GtkWidget* volume_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + gtk_box_pack_start(GTK_BOX(vbox), volume_box, FALSE, FALSE, 0); + + GtkWidget* volume_label = gtk_label_new("Volume:"); + gtk_box_pack_start(GTK_BOX(volume_box), volume_label, FALSE, FALSE, 0); + + GtkWidget* volume_slider = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, -96, 6, 0.1); + gtk_range_set_value(GTK_RANGE(volume_slider), -6); + gtk_widget_set_hexpand(volume_slider, TRUE); + g_signal_connect(volume_slider, "value-changed", G_CALLBACK(on_volume_changed), nullptr); + gtk_box_pack_start(GTK_BOX(volume_box), volume_slider, TRUE, TRUE, 0); + + // Phase slider + GtkWidget* phase_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + gtk_box_pack_start(GTK_BOX(vbox), phase_box, FALSE, FALSE, 0); + + GtkWidget* phase_label = gtk_label_new("Phase:"); + gtk_box_pack_start(GTK_BOX(phase_box), phase_label, FALSE, FALSE, 0); + + GtkWidget* phase_slider = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 1, 0.01); + gtk_range_set_value(GTK_RANGE(phase_slider), 0); + gtk_widget_set_hexpand(phase_slider, TRUE); + g_signal_connect(phase_slider, "value-changed", G_CALLBACK(on_phase_changed), nullptr); + gtk_box_pack_start(GTK_BOX(phase_box), phase_slider, TRUE, TRUE, 0); + + // Frequency slider + GtkWidget* freq_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + gtk_box_pack_start(GTK_BOX(vbox), freq_box, FALSE, FALSE, 0); + + GtkWidget* freq_label = gtk_label_new("Freq:"); + gtk_box_pack_start(GTK_BOX(freq_box), freq_label, FALSE, FALSE, 0); + + GtkWidget* freq_slider = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 10, 22000, 1); + gtk_range_set_value(GTK_RANGE(freq_slider), 500); + gtk_widget_set_hexpand(freq_slider, TRUE); + g_signal_connect(freq_slider, "value-changed", G_CALLBACK(on_frequency_changed), nullptr); + gtk_box_pack_start(GTK_BOX(freq_box), freq_slider, TRUE, TRUE, 0); + + // Mute button + GtkWidget* mute_button = gtk_toggle_button_new_with_label("Mute"); + g_signal_connect(mute_button, "toggled", G_CALLBACK(on_mute_toggled), nullptr); + gtk_box_pack_start(GTK_BOX(vbox), mute_button, FALSE, FALSE, 0); + + // Start audio thread + pthread_create(¶ms.audio_thread, nullptr, audio_thread_func, ¶ms); + + // Show all widgets + gtk_widget_show_all(window); + + // Run GTK main loop + gtk_main(); + + return 0; +} From a656914a22112b67af2fd10c162fa4c357763c9a Mon Sep 17 00:00:00 2001 From: Ian Newton Date: Thu, 11 Jun 2026 16:37:15 +0100 Subject: [PATCH 2/2] docs: Update README for Linux GTK + PulseAudio implementation --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5caa41a..8d36bf5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,59 @@ -# Simple Sine Wave Generator -This is a simple sine wave generator project. It can be used as a starting point to learn JUCE libraries and audio signal processing. +# Simple Sine Wave Generator (Linux GTK + PulseAudio) -[Link to related tutorial](https://medium.com/@olehch/lets-write-a-simple-sine-wave-generator-with-c-and-juce-c8ab42d1f54f#.5cbs6vu38) +This is a simple sine wave generator project for Linux using GTK3 for the GUI and PulseAudio for audio output. It provides real-time control over volume, frequency, and phase of a sine wave. -## Screenshot of this small application +## Features -![2](https://cloud.githubusercontent.com/assets/2100323/17643169/05ffebf6-616a-11e6-9a58-8ce22b44b19f.PNG) +- **Volume Control**: Adjustable from -96 dB to +6 dB +- **Frequency Control**: Adjustable from 10 Hz to 22 kHz +- **Phase Control**: Adjustable from 0 to 1 (0 to 2π radians) +- **Mute Button**: Instant audio mute/unmute +- **Real-time Audio**: Continuous sine wave generation via PulseAudio + +## Building + +### Dependencies + +- GTK3 development libraries +- PulseAudio development libraries +- C++11 compatible compiler (g++) + +On Arch Linux: +```bash +sudo pacman -S gtk3 pulseaudio +``` + +On Ubuntu/Debian: +```bash +sudo apt-get install libgtk-3-dev libpulse-dev +``` + +### Build Instructions + +```bash +make -f Makefile.gtk +``` + +## Running + +```bash +./gtk_sine_generator +``` + +## Usage + +1. Launch the application +2. Adjust the volume slider to set output level +3. Adjust the frequency slider to change pitch +4. Adjust the phase slider to shift the waveform +5. Use the mute button to silence output + +## Technical Details + +- **GUI Framework**: GTK3 +- **Audio Backend**: PulseAudio (Simple API) +- **Sample Rate**: 44.1 kHz +- **Channels**: Stereo +- **Sample Format**: 32-bit float +- **Threading**: Separate audio thread for continuous generation