Browse Source

Added several new features: support for AudioUnit v3, new simplified JUCE module format, deleted the Introjucer and replaced it by the Projucer, various improvements for exporting of iOS and Android projects.

tags/2021-05-28
Timur Doumler 9 years ago
parent
commit
70949aa0c6
100 changed files with 10367 additions and 3119 deletions
  1. +1
    -0
      .gitignore
  2. +20
    -6
      ChangeList.txt
  3. +16
    -16
      README.txt
  4. +93
    -0
      examples/AUv3Synth/AUv3Synth.jucer
  5. +1
    -0
      examples/AUv3Synth/Builds/MacOSX/AUv3Synth.entitlements
  6. +2642
    -0
      examples/AUv3Synth/Builds/MacOSX/AUv3Synth.xcodeproj/project.pbxproj
  7. +64
    -0
      examples/AUv3Synth/Builds/MacOSX/Info-AUv3_AppExtension.plist
  8. +29
    -0
      examples/AUv3Synth/Builds/MacOSX/Info-AUv3_Standalone.plist
  9. +29
    -0
      examples/AUv3Synth/Builds/MacOSX/Info-Shared_Code.plist
  10. +29
    -0
      examples/AUv3Synth/Builds/MacOSX/Info-VST.plist
  11. +29
    -0
      examples/AUv3Synth/Builds/MacOSX/Info-VST3.plist
  12. +0
    -0
      examples/AUv3Synth/Builds/MacOSX/RecentFilesMenuTemplate.nib
  13. +2412
    -0
      examples/AUv3Synth/Builds/iOS/AUv3Synth.xcodeproj/project.pbxproj
  14. +128
    -0
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/AppIcon.appiconset/Contents.json
  15. +57
    -0
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/Contents.json
  16. BIN
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png
  17. BIN
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png
  18. BIN
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png
  19. BIN
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png
  20. BIN
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png
  21. BIN
      examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png
  22. +64
    -0
      examples/AUv3Synth/Builds/iOS/Info-AUv3_AppExtension.plist
  23. +43
    -0
      examples/AUv3Synth/Builds/iOS/Info-AUv3_Standalone.plist
  24. +43
    -0
      examples/AUv3Synth/Builds/iOS/Info-Shared_Code.plist
  25. +331
    -0
      examples/AUv3Synth/JuceLibraryCode/AppConfig.h
  26. +315
    -0
      examples/AUv3Synth/JuceLibraryCode/BinaryData.cpp
  27. +29
    -0
      examples/AUv3Synth/JuceLibraryCode/BinaryData.h
  28. +48
    -0
      examples/AUv3Synth/JuceLibraryCode/JuceHeader.h
  29. +12
    -0
      examples/AUv3Synth/JuceLibraryCode/ReadMe.txt
  30. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_basics.cpp
  31. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_basics.mm
  32. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_devices.cpp
  33. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_devices.mm
  34. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_formats.cpp
  35. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_formats.mm
  36. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AAX.cpp
  37. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AAX.mm
  38. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AU_1.mm
  39. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AU_2.mm
  40. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AUv3.mm
  41. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_1.cpp
  42. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_2.cpp
  43. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_3.cpp
  44. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_4.cpp
  45. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_utils.cpp
  46. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_utils.mm
  47. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_Standalone.cpp
  48. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_VST2.cpp
  49. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_VST3.cpp
  50. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_VST_utils.mm
  51. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_utils.cpp
  52. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_processors.cpp
  53. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_processors.mm
  54. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_utils.cpp
  55. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_audio_utils.mm
  56. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_core.cpp
  57. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_core.mm
  58. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_data_structures.cpp
  59. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_data_structures.mm
  60. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_events.cpp
  61. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_events.mm
  62. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_graphics.cpp
  63. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_graphics.mm
  64. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_gui_basics.cpp
  65. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_gui_basics.mm
  66. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_gui_extra.cpp
  67. +9
    -0
      examples/AUv3Synth/JuceLibraryCode/juce_gui_extra.mm
  68. +142
    -0
      examples/AUv3Synth/Source/AUv3SynthEditor.h
  69. +172
    -0
      examples/AUv3Synth/Source/AUv3SynthProcessor.cpp
  70. BIN
      examples/AUv3Synth/Source/BinaryData/power.png
  71. BIN
      examples/AUv3Synth/Source/BinaryData/proaudio.path
  72. BIN
      examples/AUv3Synth/Source/BinaryData/singing.ogg
  73. +133
    -0
      examples/AUv3Synth/Source/MaterialLookAndFeel.h
  74. +2
    -2
      examples/AnimationAppExample/AnimationAppExample.jucer
  75. +642
    -666
      examples/AnimationAppExample/Builds/MacOSX/AnimationAppExample.xcodeproj/project.pbxproj
  76. +29
    -0
      examples/AnimationAppExample/Builds/MacOSX/Info-App.plist
  77. +0
    -27
      examples/AnimationAppExample/Builds/MacOSX/Info.plist
  78. +481
    -496
      examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj
  79. +1156
    -1197
      examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj.filters
  80. +627
    -651
      examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj
  81. +43
    -0
      examples/AnimationAppExample/Builds/iOS/Info-App.plist
  82. +0
    -38
      examples/AnimationAppExample/Builds/iOS/Info.plist
  83. +10
    -4
      examples/AnimationAppExample/JuceLibraryCode/AppConfig.h
  84. +15
    -13
      examples/AnimationAppExample/JuceLibraryCode/JuceHeader.h
  85. +3
    -3
      examples/AnimationAppExample/JuceLibraryCode/ReadMe.txt
  86. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_basics.cpp
  87. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_basics.mm
  88. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_devices.cpp
  89. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_devices.mm
  90. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_formats.cpp
  91. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_formats.mm
  92. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_processors.cpp
  93. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_audio_processors.mm
  94. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_core.cpp
  95. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_core.mm
  96. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_cryptography.cpp
  97. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_cryptography.mm
  98. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_data_structures.cpp
  99. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_data_structures.mm
  100. +9
    -0
      examples/AnimationAppExample/JuceLibraryCode/juce_events.cpp

+ 1
- 0
.gitignore View File

@@ -16,6 +16,7 @@
*.d
*.sdf
*.opensdf
*.VC.opendb
xcuserdata
*.xccheckout
contents.xcworkspacedata


+ 20
- 6
ChangeList.txt View File

@@ -1,9 +1,23 @@
== Major JUCE features and updates ==
This file just lists the more notable headline features. For more detailed info about minor changes and bugfixes, please see the git log.
This file just lists the more notable headline features. For more detailed info
about minor changes and bugfixes, please see the git log!
Version 4.1
Version 4.2
- Added support for AudioUnit v3 on OS X and iOS
- Simplified the JUCE module format. Removed the json module definition files, and made
it easier to manually add modules to projects. The format is fully described in the
document juce/modules/JUCE Module Format.txt
- iOS project support: added custom resource folders, custom xcassets, app capabilities,
and screen orientation settings.
- Deleted the Introjucer.. But don't panic! All of its functionality is now supplied by a
more open-source version of the Projucer. By refactoring the closed-source LLVM compilation
code into a DLL, we've been able to unify the Introjucer and Projucer into a single
open-source project. This will allow everyone to compile the Projucer's IDE themselves, and
having just one app instead of two will make things a lot less confusing!
Version 4.1
- Added multi-bus support for audio plug-in clients
- Added support for MIDI effect plug-ins (AU and AAX).
- Added new example: Network Graphics Demo
@@ -23,18 +37,18 @@ Version 4.0.1
- Android Studio exporting from the Introjucer
- Android-M pro-audio low-latency i/o support
- Bluetooth MIDI device support on iOS and Android
- AudioSampleBuffer refactored into a templated class AudioBuffer, to allow 32 or 64 bit float support
- AudioSampleBuffer refactored into a templated class AudioBuffer, to allow
32 or 64 bit float support
- Audio plugin and hosting now supports 64-bit data
- Support for force-touch and pen pressure on iOS and Windows
- Added easy sound-file playing methods to AudioDeviceManager
- Many updates to Introjucer
- Many new tutorials and examples
Version 3.3.0
- New functions for Base64 conversion
- New command-line options in the introjucer for trimming whitespace and replacing tabs in source files
- New command-line options in the introjucer for trimming whitespace and
replacing tabs in source files
Version 3.2.0
- Major OpenGL performance/stability improvements


+ 16
- 16
README.txt View File

@@ -1,17 +1,17 @@
# The JUCE Library
JUCE (Jules' Utility Class Extensions) is an all-encompassing
C++ framework for developing cross-platform software.
It contains pretty much everything you're likely to need to create
most applications, and is particularly well-suited for building
highly-customised GUIs, and for handling graphics and sound.
Most JUCE modules are shared under the GNU Public Licence
(GPLv2, v3, and the AGPLv3). This means that the code can
be freely copied and distributed, and costs nothing to use
in other GPL applications. One module (the juce_core module)
is permissively licensed under the ISC.
For more information, visit the website:
# The JUCE Library
JUCE (Jules' Utility Class Extensions) is an all-encompassing
C++ framework for developing cross-platform software.
It contains pretty much everything you're likely to need to create
most applications, and is particularly well-suited for building
highly-customised GUIs, and for handling graphics and sound.
Most JUCE modules are shared under the GNU Public Licence
(GPLv2, v3, and the AGPLv3). This means that the code can
be freely copied and distributed, and costs nothing to use
in other GPL applications. One module (the juce_core module)
is permissively licensed under the ISC.
For more information, visit the website:
http://www.juce.com

+ 93
- 0
examples/AUv3Synth/AUv3Synth.jucer View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<JUCERPROJECT id="NaPIav" name="AUv3Synth" projectType="audioplug" version="1.0.0"
bundleIdentifier="com.roli.development.AUv3Synth" includeBinaryInAppConfig="1"
buildVST="1" buildVST3="1" buildAU="0" buildAUv3="1" buildRTAS="0"
buildAAX="0" pluginName="AUv3 Synth" pluginDesc="AUv3 Synth"
pluginManufacturer="ROLI Ltd." pluginManufacturerCode="ROLI"
pluginCode="AUv3" pluginChannelConfigs="{0,2}" pluginIsSynth="1"
pluginWantsMidiIn="1" pluginProducesMidiOut="0" pluginIsMidiEffectPlugin="0"
pluginEditorRequiresKeys="0" pluginAUExportPrefix="AUv3SynthAU"
pluginRTASCategory="" aaxIdentifier="com.roli.development.AUv3Synth"
pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="4.2.0"
buildStandalone="1">
<MAINGROUP id="h0gx6L" name="AUv3Synth">
<GROUP id="{9DC59668-E6DF-876C-EB58-DDA88D152162}" name="Source">
<GROUP id="{CDDEC2D7-B8D6-2849-AC85-2363EAD0449C}" name="BinaryData">
<FILE id="IIURe2" name="power.png" compile="0" resource="0" file="Source/BinaryData/power.png"
xcodeResource="1"/>
<FILE id="fCMFhA" name="proaudio.path" compile="0" resource="1" file="Source/BinaryData/proaudio.path"/>
<FILE id="X8KTzd" name="singing.ogg" compile="0" resource="1" file="Source/BinaryData/singing.ogg"/>
</GROUP>
<FILE id="SfLsx7" name="MaterialLookAndFeel.h" compile="0" resource="0"
file="Source/MaterialLookAndFeel.h"/>
<FILE id="iw5EFr" name="AUv3SynthEditor.h" compile="0" resource="0"
file="Source/AUv3SynthEditor.h"/>
<FILE id="WdW8gj" name="AUv3SynthProcessor.cpp" compile="1" resource="0"
file="Source/AUv3SynthProcessor.cpp"/>
</GROUP>
</MAINGROUP>
<EXPORTFORMATS>
<XCODE_IPHONE targetFolder="Builds/iOS" vstFolder="" vst3Folder="" iosScreenOrientation="portraitlandscape"
iosDevelopmentTeamID="">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" iosCompatibility="default" isDebug="1" optimisation="1"
targetName="AUv3Synth" codeSigningIdentity=""/>
<CONFIGURATION name="Release" iosCompatibility="default" isDebug="0" optimisation="3"
targetName="AUv3Synth" codeSigningIdentity=""/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
<MODULEPATH id="juce_audio_plugin_client" path="../../modules"/>
<MODULEPATH id="juce_audio_utils" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
</MODULEPATHS>
</XCODE_IPHONE>
<XCODE_MAC targetFolder="Builds/MacOSX" iosDevelopmentTeamID="" vstFolder=""
vst3Folder="">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" osxSDK="default" osxCompatibility="default" osxArchitecture="default"
isDebug="1" optimisation="1" targetName="AUv3Synth"/>
<CONFIGURATION name="Release" osxSDK="default" osxCompatibility="default" osxArchitecture="default"
isDebug="0" optimisation="3" targetName="AUv3Synth"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_gui_extra" path="../../modules"/>
<MODULEPATH id="juce_gui_basics" path="../../modules"/>
<MODULEPATH id="juce_graphics" path="../../modules"/>
<MODULEPATH id="juce_events" path="../../modules"/>
<MODULEPATH id="juce_data_structures" path="../../modules"/>
<MODULEPATH id="juce_core" path="../../modules"/>
<MODULEPATH id="juce_audio_utils" path="../../modules"/>
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
<MODULEPATH id="juce_audio_plugin_client" path="../../modules"/>
<MODULEPATH id="juce_audio_formats" path="../../modules"/>
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
</MODULEPATHS>
</XCODE_MAC>
</EXPORTFORMATS>
<MODULES>
<MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
<MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
</MODULES>
<JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
</JUCERPROJECT>

+ 1
- 0
examples/AUv3Synth/Builds/MacOSX/AUv3Synth.entitlements View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>com.apple.security.app-sandbox</key> <true/></dict></plist>

+ 2642
- 0
examples/AUv3Synth/Builds/MacOSX/AUv3Synth.xcodeproj/project.pbxproj
File diff suppressed because it is too large
View File


+ 64
- 0
examples/AUv3Synth/Builds/MacOSX/Info-AUv3_AppExtension.plist View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSExtension</key>
<dict>
<key>NSExtensionPrincipalClass</key>
<string>AUv3SynthAUFactoryAUv3</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.AudioUnit-UI</string>
<key>NSExtensionAttributes</key>
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>name</key>
<string>ROLI Ltd.: AUv3 Synth</string>
<key>description</key>
<string>AUv3 Synth</string>
<key>factoryFunction</key>
<string>AUv3SynthAUFactoryAUv3</string>
<key>manufacturer</key>
<string>ROLI</string>
<key>type</key>
<string>aumu</string>
<key>subtype</key>
<string>AUv3</string>
<key>version</key>
<integer>65536</integer>
<key>sandboxSafe</key>
<true/>
<key>tags</key>
<array>
<string>Synth</string>
</array>
</dict>
</array>
</dict>
</dict>
</dict>
</plist>

+ 29
- 0
examples/AUv3Synth/Builds/MacOSX/Info-AUv3_Standalone.plist View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

+ 29
- 0
examples/AUv3Synth/Builds/MacOSX/Info-Shared_Code.plist View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

+ 29
- 0
examples/AUv3Synth/Builds/MacOSX/Info-VST.plist View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

+ 29
- 0
examples/AUv3Synth/Builds/MacOSX/Info-VST3.plist View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

examples/PlugInSamples/Spatializer/Builds/MacOSX/RecentFilesMenuTemplate.nib → examples/AUv3Synth/Builds/MacOSX/RecentFilesMenuTemplate.nib View File


+ 2412
- 0
examples/AUv3Synth/Builds/iOS/AUv3Synth.xcodeproj/project.pbxproj
File diff suppressed because it is too large
View File


+ 128
- 0
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/AppIcon.appiconset/Contents.json View File

@@ -0,0 +1,128 @@
{
"images": [
{
"idiom": "iphone",
"size": "29x29",
"filename": "Icon-29.png",
"scale": "1x"
},
{
"idiom": "iphone",
"size": "29x29",
"filename": "Icon-29@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "29x29",
"filename": "Icon-29@3x.png",
"scale": "3x"
},
{
"idiom": "iphone",
"size": "40x40",
"filename": "Icon-Spotlight-40@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "40x40",
"filename": "Icon-Spotlight-40@3x.png",
"scale": "3x"
},
{
"idiom": "iphone",
"size": "57x57",
"filename": "Icon.png",
"scale": "1x"
},
{
"idiom": "iphone",
"size": "57x57",
"filename": "Icon@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "60x60",
"filename": "Icon-60@2x.png",
"scale": "2x"
},
{
"idiom": "iphone",
"size": "60x60",
"filename": "Icon-@3x.png",
"scale": "3x"
},
{
"idiom": "ipad",
"size": "29x29",
"filename": "Icon-Small-1.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "29x29",
"filename": "Icon-Small@2x-1.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "40x40",
"filename": "Icon-Spotlight-40.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "40x40",
"filename": "Icon-Spotlight-40@2x-1.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "50x50",
"filename": "Icon-Small-50.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "50x50",
"filename": "Icon-Small-50@2x.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "72x72",
"filename": "Icon-72.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "72x72",
"filename": "Icon-72@2x.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "76x76",
"filename": "Icon-76.png",
"scale": "1x"
},
{
"idiom": "ipad",
"size": "76x76",
"filename": "Icon-76@2x.png",
"scale": "2x"
},
{
"idiom": "ipad",
"size": "83.5x83.5",
"filename": "Icon-83.5@2x.png",
"scale": "2x"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}

+ 57
- 0
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/Contents.json View File

@@ -0,0 +1,57 @@
{
"images": [
{
"orientation": "portrait",
"idiom": "iphone",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "2x",
"filename": "LaunchImage-iphone-2x.png"
},
{
"orientation": "portrait",
"idiom": "iphone",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "2x",
"filename": "LaunchImage-iphone-retina4.png",
"subtype": "retina4"
},
{
"orientation": "portrait",
"idiom": "ipad",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "1x",
"filename": "LaunchImage-ipad-portrait-1x.png"
},
{
"orientation": "landscape",
"idiom": "ipad",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "1x",
"filename": "LaunchImage-ipad-landscape-1x.png"
},
{
"orientation": "portrait",
"idiom": "ipad",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "2x",
"filename": "LaunchImage-ipad-portrait-2x.png"
},
{
"orientation": "landscape",
"idiom": "ipad",
"extent": "full-screen",
"minimum-system-version": "7.0",
"scale": "2x",
"filename": "LaunchImage-ipad-landscape-2x.png"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}

BIN
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-1x.png View File

Before After
Width: 1024  |  Height: 768  |  Size: 4.8KB

BIN
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-landscape-2x.png View File

Before After
Width: 2048  |  Height: 1536  |  Size: 16KB

BIN
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-1x.png View File

Before After
Width: 768  |  Height: 1024  |  Size: 5.2KB

BIN
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-ipad-portrait-2x.png View File

Before After
Width: 1536  |  Height: 2048  |  Size: 17KB

BIN
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-2x.png View File

Before After
Width: 640  |  Height: 960  |  Size: 4.4KB

BIN
examples/AUv3Synth/Builds/iOS/AUv3Synth/Images.xcassets/LaunchImage.launchimage/LaunchImage-iphone-retina4.png View File

Before After
Width: 640  |  Height: 1136  |  Size: 5.2KB

+ 64
- 0
examples/AUv3Synth/Builds/iOS/Info-AUv3_AppExtension.plist View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSExtension</key>
<dict>
<key>NSExtensionPrincipalClass</key>
<string>AUv3SynthAUFactoryAUv3</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.AudioUnit-UI</string>
<key>NSExtensionAttributes</key>
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>name</key>
<string>ROLI Ltd.: AUv3 Synth</string>
<key>description</key>
<string>AUv3 Synth</string>
<key>factoryFunction</key>
<string>AUv3SynthAUFactoryAUv3</string>
<key>manufacturer</key>
<string>ROLI</string>
<key>type</key>
<string>aumu</string>
<key>subtype</key>
<string>AUv3</string>
<key>version</key>
<integer>65536</integer>
<key>sandboxSafe</key>
<true/>
<key>tags</key>
<array>
<string>Synth</string>
</array>
</dict>
</array>
</dict>
</dict>
</dict>
</plist>

+ 43
- 0
examples/AUv3Synth/Builds/iOS/Info-AUv3_Standalone.plist View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIBackgroundModes</key>
<array/>
</dict>
</plist>

+ 43
- 0
examples/AUv3Synth/Builds/iOS/Info-Shared_Code.plist View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AUv3Synth</string>
<key>CFBundleDisplayName</key>
<string>AUv3Synth</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIBackgroundModes</key>
<array/>
</dict>
</plist>

+ 331
- 0
examples/AUv3Synth/JuceLibraryCode/AppConfig.h View File

@@ -0,0 +1,331 @@
/*
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_NAPIAV__
#define __JUCE_APPCONFIG_NAPIAV__
//==============================================================================
// [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_plugin_client 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_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
//==============================================================================
#ifndef JUCE_STANDALONE_APPLICATION
#ifdef JucePlugin_Build_Standalone
#define JUCE_STANDALONE_APPLICATION JucePlugin_Build_Standalone
#else
#define JUCE_STANDALONE_APPLICATION 0
#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
//==============================================================================
// Audio plugin settings..
#ifndef JucePlugin_Build_VST
#define JucePlugin_Build_VST 1
#endif
#ifndef JucePlugin_Build_VST3
#define JucePlugin_Build_VST3 1
#endif
#ifndef JucePlugin_Build_AU
#define JucePlugin_Build_AU 0
#endif
#ifndef JucePlugin_Build_AUv3
#define JucePlugin_Build_AUv3 1
#endif
#ifndef JucePlugin_Build_RTAS
#define JucePlugin_Build_RTAS 0
#endif
#ifndef JucePlugin_Build_AAX
#define JucePlugin_Build_AAX 0
#endif
#ifndef JucePlugin_Build_STANDALONE
#define JucePlugin_Build_STANDALONE 1
#endif
#ifndef JucePlugin_Name
#define JucePlugin_Name "AUv3 Synth"
#endif
#ifndef JucePlugin_Desc
#define JucePlugin_Desc "AUv3 Synth"
#endif
#ifndef JucePlugin_Manufacturer
#define JucePlugin_Manufacturer "ROLI Ltd."
#endif
#ifndef JucePlugin_ManufacturerWebsite
#define JucePlugin_ManufacturerWebsite ""
#endif
#ifndef JucePlugin_ManufacturerEmail
#define JucePlugin_ManufacturerEmail ""
#endif
#ifndef JucePlugin_ManufacturerCode
#define JucePlugin_ManufacturerCode 'ROLI'
#endif
#ifndef JucePlugin_PluginCode
#define JucePlugin_PluginCode 'AUv3'
#endif
#ifndef JucePlugin_IsSynth
#define JucePlugin_IsSynth 1
#endif
#ifndef JucePlugin_WantsMidiInput
#define JucePlugin_WantsMidiInput 1
#endif
#ifndef JucePlugin_ProducesMidiOutput
#define JucePlugin_ProducesMidiOutput 0
#endif
#ifndef JucePlugin_IsMidiEffect
#define JucePlugin_IsMidiEffect 0
#endif
#ifndef JucePlugin_EditorRequiresKeyboardFocus
#define JucePlugin_EditorRequiresKeyboardFocus 0
#endif
#ifndef JucePlugin_Version
#define JucePlugin_Version 1.0.0
#endif
#ifndef JucePlugin_VersionCode
#define JucePlugin_VersionCode 0x10000
#endif
#ifndef JucePlugin_VersionString
#define JucePlugin_VersionString "1.0.0"
#endif
#ifndef JucePlugin_VSTUniqueID
#define JucePlugin_VSTUniqueID JucePlugin_PluginCode
#endif
#ifndef JucePlugin_VSTCategory
#define JucePlugin_VSTCategory kPlugCategSynth
#endif
#ifndef JucePlugin_AUMainType
#define JucePlugin_AUMainType kAudioUnitType_MusicDevice
#endif
#ifndef JucePlugin_AUSubType
#define JucePlugin_AUSubType JucePlugin_PluginCode
#endif
#ifndef JucePlugin_AUExportPrefix
#define JucePlugin_AUExportPrefix AUv3SynthAU
#endif
#ifndef JucePlugin_AUExportPrefixQuoted
#define JucePlugin_AUExportPrefixQuoted "AUv3SynthAU"
#endif
#ifndef JucePlugin_AUManufacturerCode
#define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode
#endif
#ifndef JucePlugin_CFBundleIdentifier
#define JucePlugin_CFBundleIdentifier com.roli.development.AUv3Synth
#endif
#ifndef JucePlugin_RTASCategory
#define JucePlugin_RTASCategory ePlugInCategory_SWGenerators
#endif
#ifndef JucePlugin_RTASManufacturerCode
#define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode
#endif
#ifndef JucePlugin_RTASProductId
#define JucePlugin_RTASProductId JucePlugin_PluginCode
#endif
#ifndef JucePlugin_RTASDisableBypass
#define JucePlugin_RTASDisableBypass 0
#endif
#ifndef JucePlugin_RTASDisableMultiMono
#define JucePlugin_RTASDisableMultiMono 0
#endif
#ifndef JucePlugin_AAXIdentifier
#define JucePlugin_AAXIdentifier com.roli.development.AUv3Synth
#endif
#ifndef JucePlugin_AAXManufacturerCode
#define JucePlugin_AAXManufacturerCode JucePlugin_ManufacturerCode
#endif
#ifndef JucePlugin_AAXProductId
#define JucePlugin_AAXProductId JucePlugin_PluginCode
#endif
#ifndef JucePlugin_AAXCategory
#define JucePlugin_AAXCategory AAX_ePlugInCategory_Dynamics
#endif
#ifndef JucePlugin_AAXDisableBypass
#define JucePlugin_AAXDisableBypass 0
#endif
#ifndef JucePlugin_AAXDisableMultiMono
#define JucePlugin_AAXDisableMultiMono 0
#endif
#ifndef JucePlugin_MaxNumInputChannels
#define JucePlugin_MaxNumInputChannels 0
#endif
#ifndef JucePlugin_MaxNumOutputChannels
#define JucePlugin_MaxNumOutputChannels 2
#endif
#ifndef JucePlugin_PreferredChannelConfigurations
#define JucePlugin_PreferredChannelConfigurations {0,2}
#endif
#endif // __JUCE_APPCONFIG_NAPIAV__

+ 315
- 0
examples/AUv3Synth/JuceLibraryCode/BinaryData.cpp View File

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

+ 29
- 0
examples/AUv3Synth/JuceLibraryCode/BinaryData.h View File

@@ -0,0 +1,29 @@
/* =========================================================================================
This is an auto-generated file: Any edits you make may be overwritten!
*/
#ifndef BINARYDATA_H_43410497_INCLUDED
#define BINARYDATA_H_43410497_INCLUDED
namespace BinaryData
{
extern const char* proaudio_path;
const int proaudio_pathSize = 452;
extern const char* singing_ogg;
const int singing_oggSize = 19215;
// Points to the start of a list of resource names.
extern const char* namedResourceList[];
// Number of elements in the namedResourceList array.
const int namedResourceListSize = 2;
// If you provide the name of one of the binary resource variables above, this function will
// return the corresponding data and its size (or a null pointer if the name isn't found).
const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw();
}
#endif

+ 48
- 0
examples/AUv3Synth/JuceLibraryCode/JuceHeader.h View File

@@ -0,0 +1,48 @@
/*
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_NAPIAV__
#define __APPHEADERFILE_NAPIAV__
#include "AppConfig.h"
#include <juce_audio_basics/juce_audio_basics.h>
#include <juce_audio_devices/juce_audio_devices.h>
#include <juce_audio_formats/juce_audio_formats.h>
#include <juce_audio_plugin_client/juce_audio_plugin_client.h>
#include <juce_audio_processors/juce_audio_processors.h>
#include <juce_audio_utils/juce_audio_utils.h>
#include <juce_core/juce_core.h>
#include <juce_data_structures/juce_data_structures.h>
#include <juce_events/juce_events.h>
#include <juce_graphics/juce_graphics.h>
#include <juce_gui_basics/juce_gui_basics.h>
#include <juce_gui_extra/juce_gui_extra.h>
#include "BinaryData.h"
#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 = "AUv3Synth";
const char* const versionString = "1.0.0";
const int versionNumber = 0x10000;
}
#endif
#endif // __APPHEADERFILE_NAPIAV__

+ 12
- 0
examples/AUv3Synth/JuceLibraryCode/ReadMe.txt View File

@@ -0,0 +1,12 @@
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).

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_basics.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_basics/juce_audio_basics.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_basics.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_basics/juce_audio_basics.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_devices.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_devices/juce_audio_devices.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_devices.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_devices/juce_audio_devices.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_formats.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_formats/juce_audio_formats.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_formats.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_formats/juce_audio_formats.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AAX.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_AAX.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AAX.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_AAX.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AU_1.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_AU_1.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AU_2.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_AU_2.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_AUv3.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_AUv3.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_1.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_RTAS_1.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_2.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_RTAS_2.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_3.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_RTAS_3.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_4.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_RTAS_4.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_utils.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_RTAS_utils.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_RTAS_utils.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_RTAS_utils.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_Standalone.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_Standalone.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_VST2.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_VST3.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_VST_utils.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_VST_utils.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_plugin_client_utils.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_plugin_client/juce_audio_plugin_client_utils.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_processors.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_processors/juce_audio_processors.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_processors.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_processors/juce_audio_processors.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_utils.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_utils/juce_audio_utils.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_audio_utils.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_utils/juce_audio_utils.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_core.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_core/juce_core.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_core.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_core/juce_core.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_data_structures.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_data_structures/juce_data_structures.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_data_structures.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_data_structures/juce_data_structures.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_events.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_events/juce_events.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_events.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_events/juce_events.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_graphics.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_graphics/juce_graphics.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_graphics.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_graphics/juce_graphics.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_gui_basics.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_gui_basics/juce_gui_basics.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_gui_basics.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_gui_basics/juce_gui_basics.mm>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_gui_extra.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_gui_extra/juce_gui_extra.cpp>

+ 9
- 0
examples/AUv3Synth/JuceLibraryCode/juce_gui_extra.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_gui_extra/juce_gui_extra.mm>

+ 142
- 0
examples/AUv3Synth/Source/AUv3SynthEditor.h View File

@@ -0,0 +1,142 @@
/*
==============================================================================
Copyright (c) 2015 - ROLI Ltd.
==============================================================================
*/
#include "MaterialLookAndFeel.h"
//==============================================================================
class AUv3SynthEditor : public AudioProcessorEditor,
public ButtonListener,
public Slider::Listener,
private Timer
{
public:
//==============================================================================
AUv3SynthEditor (AudioProcessor& processor)
: AudioProcessorEditor (processor),
recordButton ("Record"),
roomSizeSlider (Slider::LinearHorizontal, Slider::NoTextBox)
{
LookAndFeel::setDefaultLookAndFeel (&materialLookAndFeel);
roomSizeSlider.setValue (getParameterValue ("roomSize"), NotificationType::dontSendNotification);
recordButton.addListener (this);
addAndMakeVisible (recordButton);
roomSizeSlider.addListener (this);
roomSizeSlider.setRange (0.0, 1.0);
addAndMakeVisible (roomSizeSlider);
Path proAudioPath;
proAudioPath.loadPathFromData (BinaryData::proaudio_path, BinaryData::proaudio_pathSize);
proAudioIcon.setPath (proAudioPath);
addAndMakeVisible (proAudioIcon);
Colour proAudioIconColour = findColour (TextButton::buttonOnColourId);
proAudioIcon.setFill (FillType (proAudioIconColour));
setSize (600, 400);
startTimer (100);
}
//==============================================================================
void paint (Graphics& g) override
{
g.fillAll (findColour (ResizableWindow::backgroundColourId));
}
void resized() override
{
Rectangle<int> r = getLocalBounds();
int guiElementAreaHeight = r.getHeight() / 3;
proAudioIcon.setTransformToFit (r.removeFromLeft (proportionOfWidth (0.25))
.withSizeKeepingCentre (guiElementAreaHeight, guiElementAreaHeight)
.toFloat(),
RectanglePlacement::fillDestination);
int margin = guiElementAreaHeight / 4;
r.reduce (margin, margin);
int buttonHeight = guiElementAreaHeight - margin;
recordButton.setBounds (r.removeFromTop (guiElementAreaHeight).withSizeKeepingCentre (r.getWidth(), buttonHeight));
roomSizeSlider.setBounds (r.removeFromTop (guiElementAreaHeight).withSizeKeepingCentre (r.getWidth(), buttonHeight));
}
//==============================================================================
void buttonClicked (Button* button) override
{
if (button == &recordButton)
{
recordButton.setEnabled (false);
setParameterValue ("isRecording", 1.0f);
}
}
void sliderValueChanged (Slider*) override
{
setParameterValue ("roomSize", roomSizeSlider.getValue());
}
private:
//==============================================================================
void timerCallback() override
{
bool isRecordingNow = (getParameterValue ("isRecording") >= 0.5f);
recordButton.setEnabled (! isRecordingNow);
roomSizeSlider.setValue (getParameterValue ("roomSize"), NotificationType::dontSendNotification);
}
//==============================================================================
AudioProcessorParameter* getParameter (const String& paramId)
{
if (AudioProcessor* processor = getAudioProcessor())
{
const OwnedArray<AudioProcessorParameter>& params = processor->getParameters();
for (int i = 0; i < params.size(); ++i)
{
if (AudioProcessorParameterWithID* param = dynamic_cast<AudioProcessorParameterWithID*> (params[i]))
{
if (param->paramID == paramId)
return param;
}
}
}
return nullptr;
}
//==============================================================================
float getParameterValue (const String& paramId)
{
if (AudioProcessorParameter* param = getParameter (paramId))
return param->getValue();
return 0.0f;
}
void setParameterValue (const String& paramId, float value)
{
if (AudioProcessorParameter* param = getParameter (paramId))
param->setValueNotifyingHost (value);
}
//==============================================================================
MaterialLookAndFeel materialLookAndFeel;
//==============================================================================
TextButton recordButton;
Slider roomSizeSlider;
DrawablePath proAudioIcon;
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AUv3SynthEditor)
};

+ 172
- 0
examples/AUv3Synth/Source/AUv3SynthProcessor.cpp View File

@@ -0,0 +1,172 @@
/*
==============================================================================
Copyright (c) 2015 - ROLI Ltd.
==============================================================================
*/
#include "../JuceLibraryCode/JuceHeader.h"
#include "AUv3SynthEditor.h"
class AUv3SynthProcessor : public AudioProcessor
{
public:
AUv3SynthProcessor ()
: currentRecording (1, 1), currentProgram (0)
{
// initialize parameters
addParameter (isRecordingParam = new AudioParameterBool ("isRecording", "Is Recording", false));
addParameter (roomSizeParam = new AudioParameterFloat ("roomSize", "Room Size", 0.0f, 1.0f, 0.5f));
formatManager.registerBasicFormats();
for (int i = 0; i < maxNumVoices; ++i)
synth.addVoice (new SamplerVoice());
loadNewSample (BinaryData::singing_ogg, BinaryData::singing_oggSize, "ogg");
}
//==============================================================================
void prepareToPlay (double sampleRate, int estimatedMaxSizeOfBuffer) override
{
ignoreUnused (estimatedMaxSizeOfBuffer);
lastSampleRate = sampleRate;
currentRecording.setSize (1, static_cast<int> (std::ceil (kMaxDurationOfRecording * lastSampleRate)));
samplesRecorded = 0;
synth.setCurrentPlaybackSampleRate (lastSampleRate);
reverb.setSampleRate (lastSampleRate);
}
void processBlock (AudioBuffer<float>& buffer, MidiBuffer& midiMessages) override
{
Reverb::Parameters reverbParameters;
reverbParameters.roomSize = roomSizeParam->get();
reverb.setParameters (reverbParameters);
synth.renderNextBlock (buffer, midiMessages, 0, buffer.getNumSamples());
if (getMainBusNumOutputChannels() == 1)
reverb.processMono (buffer.getWritePointer (0), buffer.getNumSamples());
else if (getMainBusNumOutputChannels() == 2)
reverb.processStereo (buffer.getWritePointer (0), buffer.getWritePointer (1), buffer.getNumSamples());
}
//==============================================================================
void releaseResources() override { currentRecording.setSize (1, 1); }
//==============================================================================
bool acceptsMidi() const override { return true; }
bool producesMidi() const override { return false; }
bool silenceInProducesSilenceOut() const override { return false; }
double getTailLengthSeconds() const override { return 0.0; }
//==============================================================================
AudioProcessorEditor* createEditor() override { return new AUv3SynthEditor (*this); }
bool hasEditor() const override { return true; }
//==============================================================================
const String getName() const override { return "AUv3 Synth"; }
int getNumPrograms() override { return 4; }
int getCurrentProgram() override { return currentProgram; }
void setCurrentProgram (int index) override { currentProgram = index; }
const String getProgramName (int index) override
{
switch (index)
{
case 0:
return "Piano";
case 1:
return "Singing";
case 2:
return "Pinched Balloon";
case 3:
return "Gazeebo";
}
return "<Unknown>";
}
//==============================================================================
void changeProgramName (int /*index*/, const String& /*name*/) override {}
//==============================================================================
void getStateInformation (MemoryBlock& destData) override
{
MemoryOutputStream stream (destData, true);
stream.writeFloat (*isRecordingParam);
stream.writeFloat (*roomSizeParam);
}
void setStateInformation (const void* data, int sizeInBytes) override
{
MemoryInputStream stream (data, static_cast<size_t> (sizeInBytes), false);
isRecordingParam->setValueNotifyingHost (stream.readFloat());
roomSizeParam->setValueNotifyingHost (stream.readFloat());
}
private:
//==============================================================================
void loadNewSample (const void* data, int dataSize, const char* format)
{
MemoryInputStream* soundBuffer = new MemoryInputStream (data, static_cast<std::size_t> (dataSize), false);
ScopedPointer<AudioFormatReader> formatReader (formatManager.findFormatForFileExtension (format)->createReaderFor (soundBuffer, true));
BigInteger midiNotes;
midiNotes.setRange (0, 126, true);
SynthesiserSound::Ptr newSound = new SamplerSound ("Voice", *formatReader, midiNotes, 0x40, 0.0, 0.0, 10.0);
synth.removeSound (0);
sound = newSound;
synth.addSound (sound);
}
void swapSamples()
{
MemoryBlock mb;
MemoryOutputStream* stream = new MemoryOutputStream (mb, true);
{
ScopedPointer<AudioFormatWriter> writer (formatManager.findFormatForFileExtension ("wav")->createWriterFor (stream, lastSampleRate, 1, 16,
StringPairArray(), 0));
writer->writeFromAudioSampleBuffer (currentRecording, 0, currentRecording.getNumSamples());
writer->flush();
stream->flush();
}
loadNewSample (mb.getData(), static_cast<int> (mb.getSize()), "wav");
}
//==============================================================================
static constexpr int maxNumVoices = 5;
static constexpr double kMaxDurationOfRecording = 1.0;
//==============================================================================
AudioFormatManager formatManager;
int samplesRecorded;
double lastSampleRate;
AudioBuffer<float> currentRecording;
Reverb reverb;
Synthesiser synth;
SynthesiserSound::Ptr sound;
AudioParameterBool* isRecordingParam;
AudioParameterFloat* roomSizeParam;
int currentProgram;
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AUv3SynthProcessor)
};
//==============================================================================
// This creates new instances of the plugin..
AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
return new AUv3SynthProcessor();
}

BIN
examples/AUv3Synth/Source/BinaryData/power.png View File

Before After
Width: 512  |  Height: 512  |  Size: 26KB

BIN
examples/AUv3Synth/Source/BinaryData/proaudio.path View File


BIN
examples/AUv3Synth/Source/BinaryData/singing.ogg View File


+ 133
- 0
examples/AUv3Synth/Source/MaterialLookAndFeel.h View File

@@ -0,0 +1,133 @@
/*
==============================================================================
Copyright (c) 2015 - ROLI Ltd.
==============================================================================
*/
#include "../JuceLibraryCode/JuceHeader.h"
//==============================================================================
class MaterialLookAndFeel : public LookAndFeel_V3
{
public:
//==============================================================================
MaterialLookAndFeel()
{
setColour (ResizableWindow::backgroundColourId, windowBackgroundColour);
setColour (TextButton::buttonOnColourId, brightButtonColour);
setColour (TextButton::buttonColourId, disabledButtonColour);
}
//==============================================================================
void drawButtonBackground (Graphics& g,
Button& button,
const Colour& /*backgroundColour*/,
bool isMouseOverButton,
bool isButtonDown) override
{
ignoreUnused (isMouseOverButton);
const int width = button.getWidth();
const int height = button.getHeight();
Rectangle<float> buttonRect (0, 0, width, height);
buttonRect.reduce (haloRadius, 0.0f);
if (isButtonDown)
g.setColour (brightButtonColour.withAlpha (0.7f));
else if (! button.isEnabled())
g.setColour (disabledButtonColour);
else
g.setColour (brightButtonColour);
g.fillRoundedRectangle (buttonRect, 5.0f);
}
//==============================================================================
void drawButtonText (Graphics& g, TextButton& button, bool isMouseOverButton, bool isButtonDown) override
{
ignoreUnused (isMouseOverButton, isButtonDown);
Font font (getTextButtonFont (button, button.getHeight()));
g.setFont (font);
if (button.isEnabled())
g.setColour (Colours::white);
else
g.setColour (backgroundColour);
g.drawFittedText (button.getButtonText(), 0, 1,
button.getWidth(),
button.getHeight(),
Justification::centred, 2);
}
//==============================================================================
void drawLinearSlider (Graphics& g, int x, int y, int width, int height,
float sliderPos, float minSliderPos, float maxSliderPos,
const Slider::SliderStyle style, Slider& slider) override
{
ignoreUnused (style, minSliderPos, maxSliderPos);
Rectangle<int> r = Rectangle<int> (x + haloRadius, y, width - (haloRadius * 2), height);
Rectangle<int> backgroundBar = r.withSizeKeepingCentre(r.getWidth(), 2);
sliderPos = (sliderPos - minSliderPos) / static_cast<float> (width);
int knobPos = static_cast<int> (sliderPos * r.getWidth());
g.setColour (sliderActivePart);
g.fillRect (backgroundBar.removeFromLeft (knobPos));
g.setColour (sliderInactivePart);
g.fillRect (backgroundBar);
if (slider.isMouseOverOrDragging())
{
Rectangle<int> haloBounds = r.withTrimmedLeft (knobPos - haloRadius)
.withWidth (haloRadius*2)
.withSizeKeepingCentre(haloRadius*2, haloRadius*2);
g.setColour (sliderActivePart.withAlpha (0.5f));
g.fillEllipse (haloBounds.toFloat());
}
const int knobRadius = slider.isMouseOverOrDragging() ? knobActiveRadius : knobInActiveRadius;
Rectangle<int> knobBounds = r.withTrimmedLeft (knobPos - knobRadius)
.withWidth (knobRadius*2)
.withSizeKeepingCentre(knobRadius*2, knobRadius*2);
g.setColour (sliderActivePart);
g.fillEllipse (knobBounds.toFloat());
}
//==============================================================================
Font getTextButtonFont (TextButton& button, int buttonHeight) override
{
return LookAndFeel_V3::getTextButtonFont (button, buttonHeight).withHeight (buttonFontSize);
}
Font getLabelFont (Label& label) override
{
return LookAndFeel_V3::getLabelFont (label).withHeight (labelFontSize);
}
//==============================================================================
const int labelFontSize = 12;
const int buttonFontSize = 15;
//==============================================================================
const int knobActiveRadius = 12;
const int knobInActiveRadius = 8;
const int haloRadius = 18;
//==============================================================================
const Colour windowBackgroundColour = Colour (0xff262328);
const Colour backgroundColour = Colour (0xff4d4d4d);
const Colour brightButtonColour = Colour (0xff80cbc4);
const Colour disabledButtonColour = Colour (0xffe4e4e4);
const Colour sliderInactivePart = Colour (0xff545d62);
const Colour sliderActivePart = Colour (0xff80cbc4);
};

+ 2
- 2
examples/AnimationAppExample/AnimationAppExample.jucer View File

@@ -2,7 +2,7 @@
<JUCERPROJECT id="LrATE6" name="AnimationAppExample" projectType="guiapp" version="1.0.0"
bundleIdentifier="com.yourcompany.AnimationAppExample" includeBinaryInAppConfig="1"
jucerVersion="4.1.0">
jucerVersion="4.2.0">
<MAINGROUP id="F3keCY" name="AnimationAppExample">
<GROUP id="{5E4132EA-C4A0-CBDE-BEDA-FD6772DA79D5}" name="Source">
<FILE id="n1FmZc" name="MainComponent.cpp" compile="1" resource="0"
@@ -34,7 +34,7 @@
<MODULEPATH id="juce_audio_processors" path="../../modules"/>
</MODULEPATHS>
</XCODE_MAC>
<XCODE_IPHONE targetFolder="Builds/iOS">
<XCODE_IPHONE targetFolder="Builds/iOS" iosScreenOrientation="portraitlandscape">
<CONFIGURATIONS>
<CONFIGURATION name="Debug" iosCompatibility="default" isDebug="1" optimisation="1"
targetName="AnimationAppExample"/>


+ 642
- 666
examples/AnimationAppExample/Builds/MacOSX/AnimationAppExample.xcodeproj/project.pbxproj
File diff suppressed because it is too large
View File


+ 29
- 0
examples/AnimationAppExample/Builds/MacOSX/Info-App.plist View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AnimationAppExample</string>
<key>CFBundleDisplayName</key>
<string>AnimationAppExample</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

+ 0
- 27
examples/AnimationAppExample/Builds/MacOSX/Info.plist View File

@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AnimationAppExample</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

+ 481
- 496
examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj
File diff suppressed because it is too large
View File


+ 1156
- 1197
examples/AnimationAppExample/Builds/VisualStudio2010/AnimationAppExample.vcxproj.filters
File diff suppressed because it is too large
View File


+ 627
- 651
examples/AnimationAppExample/Builds/iOS/AnimationAppExample.xcodeproj/project.pbxproj
File diff suppressed because it is too large
View File


+ 43
- 0
examples/AnimationAppExample/Builds/iOS/Info-App.plist View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AnimationAppExample</string>
<key>CFBundleDisplayName</key>
<string>AnimationAppExample</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIBackgroundModes</key>
<array/>
</dict>
</plist>

+ 0
- 38
examples/AnimationAppExample/Builds/iOS/Info.plist View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist>
<dict>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>AnimationAppExample</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSHighResolutionCapable</key>
<true/>
<key>UIRequiresFullScreen</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

+ 10
- 4
examples/AnimationAppExample/JuceLibraryCode/AppConfig.h View File

@@ -4,8 +4,8 @@
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
Introjucer will preserve the contents of that block, but the best way to change
any of these definitions is by using the Introjucer's project settings.
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.
@@ -17,7 +17,7 @@
//==============================================================================
// [BEGIN_USER_CODE_SECTION]
// (You can add your own code in this section, and the Introjucer will not overwrite it)
// (You can add your own code in this section, and the Projucer will not overwrite it)
// [END_USER_CODE_SECTION]
@@ -38,9 +38,15 @@
//==============================================================================
#ifndef JUCE_STANDALONE_APPLICATION
#define JUCE_STANDALONE_APPLICATION 1
#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:


+ 15
- 13
examples/AnimationAppExample/JuceLibraryCode/JuceHeader.h View File

@@ -14,19 +14,21 @@
#define __APPHEADERFILE_LRATE6__
#include "AppConfig.h"
#include "modules/juce_audio_basics/juce_audio_basics.h"
#include "modules/juce_audio_devices/juce_audio_devices.h"
#include "modules/juce_audio_formats/juce_audio_formats.h"
#include "modules/juce_audio_processors/juce_audio_processors.h"
#include "modules/juce_core/juce_core.h"
#include "modules/juce_cryptography/juce_cryptography.h"
#include "modules/juce_data_structures/juce_data_structures.h"
#include "modules/juce_events/juce_events.h"
#include "modules/juce_graphics/juce_graphics.h"
#include "modules/juce_gui_basics/juce_gui_basics.h"
#include "modules/juce_gui_extra/juce_gui_extra.h"
#include "modules/juce_opengl/juce_opengl.h"
#include "modules/juce_video/juce_video.h"
#include <juce_audio_basics/juce_audio_basics.h>
#include <juce_audio_devices/juce_audio_devices.h>
#include <juce_audio_formats/juce_audio_formats.h>
#include <juce_audio_processors/juce_audio_processors.h>
#include <juce_core/juce_core.h>
#include <juce_cryptography/juce_cryptography.h>
#include <juce_data_structures/juce_data_structures.h>
#include <juce_events/juce_events.h>
#include <juce_graphics/juce_graphics.h>
#include <juce_gui_basics/juce_gui_basics.h>
#include <juce_gui_extra/juce_gui_extra.h>
#include <juce_opengl/juce_opengl.h>
#include <juce_video/juce_video.h>
#if ! DONT_SET_USING_JUCE_NAMESPACE
// If your code uses a lot of JUCE classes, then this will obviously save you


+ 3
- 3
examples/AnimationAppExample/JuceLibraryCode/ReadMe.txt View File

@@ -2,11 +2,11 @@
Important Note!!
================
The purpose of this folder is to contain files that are auto-generated by the Introjucer,
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 Introjucer saves your project.
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 Introjucer has saved its changes).
modifications after the Projucer has saved its changes).

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_basics.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_basics/juce_audio_basics.cpp>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_basics.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_basics/juce_audio_basics.mm>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_devices.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_devices/juce_audio_devices.cpp>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_devices.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_devices/juce_audio_devices.mm>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_formats.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_formats/juce_audio_formats.cpp>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_formats.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_formats/juce_audio_formats.mm>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_processors.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_processors/juce_audio_processors.cpp>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_audio_processors.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_audio_processors/juce_audio_processors.mm>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_core.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_core/juce_core.cpp>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_core.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_core/juce_core.mm>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_cryptography.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_cryptography/juce_cryptography.cpp>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_cryptography.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_cryptography/juce_cryptography.mm>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_data_structures.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_data_structures/juce_data_structures.cpp>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_data_structures.mm View File

@@ -0,0 +1,9 @@
/*
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 <juce_data_structures/juce_data_structures.mm>

+ 9
- 0
examples/AnimationAppExample/JuceLibraryCode/juce_events.cpp View File

@@ -0,0 +1,9 @@
/*
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 <juce_events/juce_events.cpp>

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

Loading…
Cancel
Save