├── .gitignore ├── Assets ├── Audio Clips.meta ├── Audio Clips │ ├── BD.aif │ ├── BD.aif.meta │ ├── CH.aif │ ├── CH.aif.meta │ ├── CYM.aif │ ├── CYM.aif.meta │ ├── OH.aif │ ├── OH.aif.meta │ ├── SD.aif │ └── SD.aif.meta ├── GUI.meta ├── GUI │ ├── Controller.guiskin │ ├── Controller.guiskin.meta │ ├── DejaVuSans-ExtraLight.ttf │ ├── DejaVuSans-ExtraLight.ttf.meta │ ├── Gray1.png │ ├── Gray1.png.meta │ ├── Gray2.png │ ├── Gray2.png.meta │ ├── Gray3.png │ └── Gray3.png.meta ├── Scenes.meta ├── Scenes │ ├── Init.unity │ ├── Init.unity.meta │ ├── Main.unity │ └── Main.unity.meta ├── Scripts.meta └── Scripts │ ├── Initializer.js │ ├── Initializer.js.meta │ ├── Synth.meta │ ├── Synth │ ├── Amplifier.js │ ├── Amplifier.js.meta │ ├── Envelope.js │ ├── Envelope.js.meta │ ├── LowPassFilter.js │ ├── LowPassFilter.js.meta │ ├── MatrixSequencer.js │ ├── MatrixSequencer.js.meta │ ├── Oscillator.js │ ├── Oscillator.js.meta │ ├── Sampler.js │ ├── Sampler.js.meta │ ├── Sequencer.js │ ├── Sequencer.js.meta │ ├── SynthConfig.js │ └── SynthConfig.js.meta │ ├── SynthController.js │ └── SynthController.js.meta ├── ProjectSettings ├── AudioManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── InputManager.asset ├── NavMeshLayers.asset ├── NetworkManager.asset ├── ProjectSettings.asset ├── QualitySettings.asset ├── TagManager.asset └── TimeManager.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | Library 3 | Temp 4 | *.apk 5 | *.csproj 6 | *.pidb 7 | *.sln 8 | *.suo 9 | *.unityproj 10 | *.userprefs 11 | -------------------------------------------------------------------------------- /Assets/Audio Clips.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4bd715406b1de402993eed3e08af7011 3 | -------------------------------------------------------------------------------- /Assets/Audio Clips/BD.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/Audio Clips/BD.aif -------------------------------------------------------------------------------- /Assets/Audio Clips/BD.aif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 127294a81e5a54685bb63c19882f5cd2 3 | AudioImporter: 4 | serializedVersion: 4 5 | format: -1 6 | quality: .5 7 | stream: 1 8 | 3D: 0 9 | forceToMono: 1 10 | useHardware: 0 11 | loopable: 0 12 | -------------------------------------------------------------------------------- /Assets/Audio Clips/CH.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/Audio Clips/CH.aif -------------------------------------------------------------------------------- /Assets/Audio Clips/CH.aif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 536961933292d4ab6bb8908d298767b9 3 | AudioImporter: 4 | serializedVersion: 4 5 | format: -1 6 | quality: .5 7 | stream: 1 8 | 3D: 0 9 | forceToMono: 1 10 | useHardware: 0 11 | loopable: 0 12 | -------------------------------------------------------------------------------- /Assets/Audio Clips/CYM.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/Audio Clips/CYM.aif -------------------------------------------------------------------------------- /Assets/Audio Clips/CYM.aif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e400abf30bc524ab3b792c47f414e59d 3 | AudioImporter: 4 | serializedVersion: 4 5 | format: -1 6 | quality: .5 7 | stream: 1 8 | 3D: 0 9 | forceToMono: 1 10 | useHardware: 0 11 | loopable: 0 12 | -------------------------------------------------------------------------------- /Assets/Audio Clips/OH.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/Audio Clips/OH.aif -------------------------------------------------------------------------------- /Assets/Audio Clips/OH.aif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 638f356dd07c443d58b9967f5329560f 3 | AudioImporter: 4 | serializedVersion: 4 5 | format: -1 6 | quality: .5 7 | stream: 1 8 | 3D: 0 9 | forceToMono: 1 10 | useHardware: 0 11 | loopable: 0 12 | -------------------------------------------------------------------------------- /Assets/Audio Clips/SD.aif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/Audio Clips/SD.aif -------------------------------------------------------------------------------- /Assets/Audio Clips/SD.aif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2aa618974c424703be1fafb8109a349 3 | AudioImporter: 4 | serializedVersion: 4 5 | format: -1 6 | quality: .5 7 | stream: 1 8 | 3D: 0 9 | forceToMono: 1 10 | useHardware: 0 11 | loopable: 0 12 | -------------------------------------------------------------------------------- /Assets/GUI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 282620953c6b742c4bb76b4e5988e606 3 | -------------------------------------------------------------------------------- /Assets/GUI/Controller.guiskin: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 1 11 | m_Script: {fileID: 12001, guid: 0000000000000000e000000000000000, type: 0} 12 | m_Name: Controller 13 | m_Font: {fileID: 12800000, guid: 1846a9e6fa653420ab2e8fa89258679e, type: 1} 14 | m_box: 15 | m_Name: box 16 | m_Normal: 17 | m_Background: {fileID: 11001, guid: 0000000000000000e000000000000000, type: 0} 18 | m_TextColor: {r: .799999952, g: .799999952, b: .799999952, a: 1} 19 | m_Hover: 20 | m_Background: {fileID: 0} 21 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 22 | m_Active: 23 | m_Background: {fileID: 0} 24 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 25 | m_Focused: 26 | m_Background: {fileID: 0} 27 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 28 | m_OnNormal: 29 | m_Background: {fileID: 0} 30 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 31 | m_OnHover: 32 | m_Background: {fileID: 0} 33 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 34 | m_OnActive: 35 | m_Background: {fileID: 0} 36 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 37 | m_OnFocused: 38 | m_Background: {fileID: 0} 39 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 40 | m_Border: 41 | m_Left: 6 42 | m_Right: 6 43 | m_Top: 6 44 | m_Bottom: 6 45 | m_Padding: 46 | m_Left: 4 47 | m_Right: 4 48 | m_Top: 4 49 | m_Bottom: 4 50 | m_Margin: 51 | m_Left: 4 52 | m_Right: 4 53 | m_Top: 4 54 | m_Bottom: 4 55 | m_Overflow: 56 | m_Left: 0 57 | m_Right: 0 58 | m_Top: 0 59 | m_Bottom: 0 60 | m_Font: {fileID: 0} 61 | m_ImagePosition: 0 62 | m_Alignment: 1 63 | m_WordWrap: 0 64 | m_TextClipping: 1 65 | m_ContentOffset: {x: 0, y: 0} 66 | m_ClipOffset: {x: 0, y: 0} 67 | m_FixedWidth: 0 68 | m_FixedHeight: 0 69 | m_FontSize: 0 70 | m_FontStyle: 0 71 | m_StretchWidth: 1 72 | m_StretchHeight: 0 73 | m_button: 74 | m_Name: button 75 | m_Normal: 76 | m_Background: {fileID: 2800000, guid: 11c5a97c09b8045288f313bba2881516, type: 1} 77 | m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} 78 | m_Hover: 79 | m_Background: {fileID: 0} 80 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 81 | m_Active: 82 | m_Background: {fileID: 2800000, guid: 0e8da4df2f36946ec87a4a21907d0f4b, type: 1} 83 | m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} 84 | m_Focused: 85 | m_Background: {fileID: 0} 86 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 87 | m_OnNormal: 88 | m_Background: {fileID: 11005, guid: 0000000000000000e000000000000000, type: 0} 89 | m_TextColor: {r: .90196079, g: .90196079, b: .90196079, a: 1} 90 | m_OnHover: 91 | m_Background: {fileID: 11004, guid: 0000000000000000e000000000000000, type: 0} 92 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 93 | m_OnActive: 94 | m_Background: {fileID: 11002, guid: 0000000000000000e000000000000000, type: 0} 95 | m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} 96 | m_OnFocused: 97 | m_Background: {fileID: 0} 98 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 99 | m_Border: 100 | m_Left: 6 101 | m_Right: 6 102 | m_Top: 6 103 | m_Bottom: 4 104 | m_Padding: 105 | m_Left: 6 106 | m_Right: 6 107 | m_Top: 3 108 | m_Bottom: 3 109 | m_Margin: 110 | m_Left: 4 111 | m_Right: 4 112 | m_Top: 4 113 | m_Bottom: 4 114 | m_Overflow: 115 | m_Left: 0 116 | m_Right: 0 117 | m_Top: 0 118 | m_Bottom: 0 119 | m_Font: {fileID: 0} 120 | m_ImagePosition: 0 121 | m_Alignment: 4 122 | m_WordWrap: 0 123 | m_TextClipping: 1 124 | m_ContentOffset: {x: 0, y: 0} 125 | m_ClipOffset: {x: 0, y: 0} 126 | m_FixedWidth: 0 127 | m_FixedHeight: 0 128 | m_FontSize: 0 129 | m_FontStyle: 0 130 | m_StretchWidth: 1 131 | m_StretchHeight: 1 132 | m_toggle: 133 | m_Name: toggle 134 | m_Normal: 135 | m_Background: {fileID: 2800000, guid: 11c5a97c09b8045288f313bba2881516, type: 1} 136 | m_TextColor: {r: .891128957, g: .891128957, b: .891128957, a: 1} 137 | m_Hover: 138 | m_Background: {fileID: 0} 139 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 140 | m_Active: 141 | m_Background: {fileID: 0} 142 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 143 | m_Focused: 144 | m_Background: {fileID: 0} 145 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 146 | m_OnNormal: 147 | m_Background: {fileID: 2800000, guid: 0e8da4df2f36946ec87a4a21907d0f4b, type: 1} 148 | m_TextColor: {r: .890196085, g: .890196085, b: .890196085, a: 1} 149 | m_OnHover: 150 | m_Background: {fileID: 0} 151 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 152 | m_OnActive: 153 | m_Background: {fileID: 0} 154 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 155 | m_OnFocused: 156 | m_Background: {fileID: 0} 157 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 158 | m_Border: 159 | m_Left: 14 160 | m_Right: 0 161 | m_Top: 14 162 | m_Bottom: 0 163 | m_Padding: 164 | m_Left: 15 165 | m_Right: 0 166 | m_Top: 3 167 | m_Bottom: 0 168 | m_Margin: 169 | m_Left: 4 170 | m_Right: 4 171 | m_Top: 4 172 | m_Bottom: 4 173 | m_Overflow: 174 | m_Left: -1 175 | m_Right: 0 176 | m_Top: -4 177 | m_Bottom: 0 178 | m_Font: {fileID: 0} 179 | m_ImagePosition: 0 180 | m_Alignment: 0 181 | m_WordWrap: 0 182 | m_TextClipping: 1 183 | m_ContentOffset: {x: 0, y: 0} 184 | m_ClipOffset: {x: 0, y: 0} 185 | m_FixedWidth: 0 186 | m_FixedHeight: 0 187 | m_FontSize: 0 188 | m_FontStyle: 0 189 | m_StretchWidth: 1 190 | m_StretchHeight: 0 191 | m_label: 192 | m_Name: label 193 | m_Normal: 194 | m_Background: {fileID: 0} 195 | m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} 196 | m_Hover: 197 | m_Background: {fileID: 0} 198 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 199 | m_Active: 200 | m_Background: {fileID: 0} 201 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 202 | m_Focused: 203 | m_Background: {fileID: 0} 204 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 205 | m_OnNormal: 206 | m_Background: {fileID: 0} 207 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 208 | m_OnHover: 209 | m_Background: {fileID: 0} 210 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 211 | m_OnActive: 212 | m_Background: {fileID: 0} 213 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 214 | m_OnFocused: 215 | m_Background: {fileID: 0} 216 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 217 | m_Border: 218 | m_Left: 0 219 | m_Right: 0 220 | m_Top: 0 221 | m_Bottom: 0 222 | m_Padding: 223 | m_Left: 0 224 | m_Right: 0 225 | m_Top: 3 226 | m_Bottom: 3 227 | m_Margin: 228 | m_Left: 4 229 | m_Right: 4 230 | m_Top: 4 231 | m_Bottom: 4 232 | m_Overflow: 233 | m_Left: 0 234 | m_Right: 0 235 | m_Top: 0 236 | m_Bottom: 0 237 | m_Font: {fileID: 0} 238 | m_ImagePosition: 0 239 | m_Alignment: 4 240 | m_WordWrap: 1 241 | m_TextClipping: 1 242 | m_ContentOffset: {x: 0, y: 0} 243 | m_ClipOffset: {x: 0, y: 0} 244 | m_FixedWidth: 0 245 | m_FixedHeight: 0 246 | m_FontSize: 0 247 | m_FontStyle: 0 248 | m_StretchWidth: 1 249 | m_StretchHeight: 0 250 | m_textField: 251 | m_Name: textfield 252 | m_Normal: 253 | m_Background: {fileID: 2800000, guid: 11c5a97c09b8045288f313bba2881516, type: 1} 254 | m_TextColor: {r: .799999952, g: .799999952, b: .799999952, a: 1} 255 | m_Hover: 256 | m_Background: {fileID: 0} 257 | m_TextColor: {r: .899999976, g: .899999976, b: .899999976, a: 1} 258 | m_Active: 259 | m_Background: {fileID: 0} 260 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 261 | m_Focused: 262 | m_Background: {fileID: 2800000, guid: 1006de8feb6914c198a960d3f935e0de, type: 1} 263 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 264 | m_OnNormal: 265 | m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} 266 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 267 | m_OnHover: 268 | m_Background: {fileID: 0} 269 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 270 | m_OnActive: 271 | m_Background: {fileID: 0} 272 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 273 | m_OnFocused: 274 | m_Background: {fileID: 0} 275 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 276 | m_Border: 277 | m_Left: 4 278 | m_Right: 4 279 | m_Top: 4 280 | m_Bottom: 4 281 | m_Padding: 282 | m_Left: 3 283 | m_Right: 3 284 | m_Top: 3 285 | m_Bottom: 3 286 | m_Margin: 287 | m_Left: 4 288 | m_Right: 4 289 | m_Top: 4 290 | m_Bottom: 4 291 | m_Overflow: 292 | m_Left: 0 293 | m_Right: 0 294 | m_Top: 0 295 | m_Bottom: 0 296 | m_Font: {fileID: 0} 297 | m_ImagePosition: 3 298 | m_Alignment: 0 299 | m_WordWrap: 0 300 | m_TextClipping: 1 301 | m_ContentOffset: {x: 0, y: 0} 302 | m_ClipOffset: {x: 0, y: 0} 303 | m_FixedWidth: 0 304 | m_FixedHeight: 0 305 | m_FontSize: 0 306 | m_FontStyle: 0 307 | m_StretchWidth: 1 308 | m_StretchHeight: 0 309 | m_textArea: 310 | m_Name: textarea 311 | m_Normal: 312 | m_Background: {fileID: 11024, guid: 0000000000000000e000000000000000, type: 0} 313 | m_TextColor: {r: .90196079, g: .90196079, b: .90196079, a: 1} 314 | m_Hover: 315 | m_Background: {fileID: 11026, guid: 0000000000000000e000000000000000, type: 0} 316 | m_TextColor: {r: .799999952, g: .799999952, b: .799999952, a: 1} 317 | m_Active: 318 | m_Background: {fileID: 0} 319 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 320 | m_Focused: 321 | m_Background: {fileID: 0} 322 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 323 | m_OnNormal: 324 | m_Background: {fileID: 11025, guid: 0000000000000000e000000000000000, type: 0} 325 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 326 | m_OnHover: 327 | m_Background: {fileID: 0} 328 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 329 | m_OnActive: 330 | m_Background: {fileID: 0} 331 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 332 | m_OnFocused: 333 | m_Background: {fileID: 0} 334 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 335 | m_Border: 336 | m_Left: 4 337 | m_Right: 4 338 | m_Top: 4 339 | m_Bottom: 4 340 | m_Padding: 341 | m_Left: 3 342 | m_Right: 3 343 | m_Top: 3 344 | m_Bottom: 3 345 | m_Margin: 346 | m_Left: 4 347 | m_Right: 4 348 | m_Top: 4 349 | m_Bottom: 4 350 | m_Overflow: 351 | m_Left: 0 352 | m_Right: 0 353 | m_Top: 0 354 | m_Bottom: 0 355 | m_Font: {fileID: 0} 356 | m_ImagePosition: 0 357 | m_Alignment: 0 358 | m_WordWrap: 1 359 | m_TextClipping: 1 360 | m_ContentOffset: {x: 0, y: 0} 361 | m_ClipOffset: {x: 0, y: 0} 362 | m_FixedWidth: 0 363 | m_FixedHeight: 0 364 | m_FontSize: 0 365 | m_FontStyle: 0 366 | m_StretchWidth: 1 367 | m_StretchHeight: 0 368 | m_window: 369 | m_Name: window 370 | m_Normal: 371 | m_Background: {fileID: 11023, guid: 0000000000000000e000000000000000, type: 0} 372 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 373 | m_Hover: 374 | m_Background: {fileID: 0} 375 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 376 | m_Active: 377 | m_Background: {fileID: 0} 378 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 379 | m_Focused: 380 | m_Background: {fileID: 0} 381 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 382 | m_OnNormal: 383 | m_Background: {fileID: 11022, guid: 0000000000000000e000000000000000, type: 0} 384 | m_TextColor: {r: 1, g: 1, b: 1, a: 1} 385 | m_OnHover: 386 | m_Background: {fileID: 0} 387 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 388 | m_OnActive: 389 | m_Background: {fileID: 0} 390 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 391 | m_OnFocused: 392 | m_Background: {fileID: 0} 393 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 394 | m_Border: 395 | m_Left: 8 396 | m_Right: 8 397 | m_Top: 18 398 | m_Bottom: 8 399 | m_Padding: 400 | m_Left: 10 401 | m_Right: 10 402 | m_Top: 20 403 | m_Bottom: 10 404 | m_Margin: 405 | m_Left: 0 406 | m_Right: 0 407 | m_Top: 0 408 | m_Bottom: 0 409 | m_Overflow: 410 | m_Left: 0 411 | m_Right: 0 412 | m_Top: 0 413 | m_Bottom: 0 414 | m_Font: {fileID: 0} 415 | m_ImagePosition: 0 416 | m_Alignment: 1 417 | m_WordWrap: 0 418 | m_TextClipping: 1 419 | m_ContentOffset: {x: 0, y: -18} 420 | m_ClipOffset: {x: 0, y: 0} 421 | m_FixedWidth: 0 422 | m_FixedHeight: 0 423 | m_FontSize: 0 424 | m_FontStyle: 0 425 | m_StretchWidth: 1 426 | m_StretchHeight: 0 427 | m_horizontalSlider: 428 | m_Name: horizontalslider 429 | m_Normal: 430 | m_Background: {fileID: 2800000, guid: 11c5a97c09b8045288f313bba2881516, type: 1} 431 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 432 | m_Hover: 433 | m_Background: {fileID: 0} 434 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 435 | m_Active: 436 | m_Background: {fileID: 0} 437 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 438 | m_Focused: 439 | m_Background: {fileID: 0} 440 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 441 | m_OnNormal: 442 | m_Background: {fileID: 0} 443 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 444 | m_OnHover: 445 | m_Background: {fileID: 0} 446 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 447 | m_OnActive: 448 | m_Background: {fileID: 0} 449 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 450 | m_OnFocused: 451 | m_Background: {fileID: 0} 452 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 453 | m_Border: 454 | m_Left: 3 455 | m_Right: 3 456 | m_Top: 0 457 | m_Bottom: 0 458 | m_Padding: 459 | m_Left: -1 460 | m_Right: -1 461 | m_Top: 0 462 | m_Bottom: 0 463 | m_Margin: 464 | m_Left: 4 465 | m_Right: 4 466 | m_Top: 4 467 | m_Bottom: 4 468 | m_Overflow: 469 | m_Left: 0 470 | m_Right: 0 471 | m_Top: -2 472 | m_Bottom: -3 473 | m_Font: {fileID: 0} 474 | m_ImagePosition: 2 475 | m_Alignment: 4 476 | m_WordWrap: 0 477 | m_TextClipping: 1 478 | m_ContentOffset: {x: 0, y: 0} 479 | m_ClipOffset: {x: 0, y: 0} 480 | m_FixedWidth: 0 481 | m_FixedHeight: 24 482 | m_FontSize: 0 483 | m_FontStyle: 0 484 | m_StretchWidth: 1 485 | m_StretchHeight: 0 486 | m_horizontalSliderThumb: 487 | m_Name: horizontalsliderthumb 488 | m_Normal: 489 | m_Background: {fileID: 2800000, guid: 0e8da4df2f36946ec87a4a21907d0f4b, type: 1} 490 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 491 | m_Hover: 492 | m_Background: {fileID: 2800000, guid: 0e8da4df2f36946ec87a4a21907d0f4b, type: 1} 493 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 494 | m_Active: 495 | m_Background: {fileID: 2800000, guid: 0e8da4df2f36946ec87a4a21907d0f4b, type: 1} 496 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 497 | m_Focused: 498 | m_Background: {fileID: 0} 499 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 500 | m_OnNormal: 501 | m_Background: {fileID: 0} 502 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 503 | m_OnHover: 504 | m_Background: {fileID: 0} 505 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 506 | m_OnActive: 507 | m_Background: {fileID: 0} 508 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 509 | m_OnFocused: 510 | m_Background: {fileID: 0} 511 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 512 | m_Border: 513 | m_Left: 4 514 | m_Right: 4 515 | m_Top: 0 516 | m_Bottom: 0 517 | m_Padding: 518 | m_Left: 7 519 | m_Right: 7 520 | m_Top: 0 521 | m_Bottom: 0 522 | m_Margin: 523 | m_Left: 0 524 | m_Right: 0 525 | m_Top: 0 526 | m_Bottom: 0 527 | m_Overflow: 528 | m_Left: -1 529 | m_Right: -1 530 | m_Top: 0 531 | m_Bottom: 0 532 | m_Font: {fileID: 0} 533 | m_ImagePosition: 2 534 | m_Alignment: 0 535 | m_WordWrap: 0 536 | m_TextClipping: 1 537 | m_ContentOffset: {x: 0, y: 0} 538 | m_ClipOffset: {x: 0, y: 0} 539 | m_FixedWidth: 24 540 | m_FixedHeight: 24 541 | m_FontSize: 0 542 | m_FontStyle: 0 543 | m_StretchWidth: 1 544 | m_StretchHeight: 0 545 | m_verticalSlider: 546 | m_Name: verticalslider 547 | m_Normal: 548 | m_Background: {fileID: 11021, guid: 0000000000000000e000000000000000, type: 0} 549 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 550 | m_Hover: 551 | m_Background: {fileID: 0} 552 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 553 | m_Active: 554 | m_Background: {fileID: 0} 555 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 556 | m_Focused: 557 | m_Background: {fileID: 0} 558 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 559 | m_OnNormal: 560 | m_Background: {fileID: 0} 561 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 562 | m_OnHover: 563 | m_Background: {fileID: 0} 564 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 565 | m_OnActive: 566 | m_Background: {fileID: 0} 567 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 568 | m_OnFocused: 569 | m_Background: {fileID: 0} 570 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 571 | m_Border: 572 | m_Left: 0 573 | m_Right: 0 574 | m_Top: 3 575 | m_Bottom: 3 576 | m_Padding: 577 | m_Left: 0 578 | m_Right: 0 579 | m_Top: -1 580 | m_Bottom: -1 581 | m_Margin: 582 | m_Left: 4 583 | m_Right: 4 584 | m_Top: 4 585 | m_Bottom: 4 586 | m_Overflow: 587 | m_Left: -2 588 | m_Right: -3 589 | m_Top: 0 590 | m_Bottom: 0 591 | m_Font: {fileID: 0} 592 | m_ImagePosition: 0 593 | m_Alignment: 0 594 | m_WordWrap: 0 595 | m_TextClipping: 0 596 | m_ContentOffset: {x: 0, y: 0} 597 | m_ClipOffset: {x: 0, y: 0} 598 | m_FixedWidth: 12 599 | m_FixedHeight: 0 600 | m_FontSize: 0 601 | m_FontStyle: 0 602 | m_StretchWidth: 0 603 | m_StretchHeight: 1 604 | m_verticalSliderThumb: 605 | m_Name: verticalsliderthumb 606 | m_Normal: 607 | m_Background: {fileID: 11011, guid: 0000000000000000e000000000000000, type: 0} 608 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 609 | m_Hover: 610 | m_Background: {fileID: 11012, guid: 0000000000000000e000000000000000, type: 0} 611 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 612 | m_Active: 613 | m_Background: {fileID: 11010, guid: 0000000000000000e000000000000000, type: 0} 614 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 615 | m_Focused: 616 | m_Background: {fileID: 0} 617 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 618 | m_OnNormal: 619 | m_Background: {fileID: 0} 620 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 621 | m_OnHover: 622 | m_Background: {fileID: 0} 623 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 624 | m_OnActive: 625 | m_Background: {fileID: 0} 626 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 627 | m_OnFocused: 628 | m_Background: {fileID: 0} 629 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 630 | m_Border: 631 | m_Left: 0 632 | m_Right: 0 633 | m_Top: 0 634 | m_Bottom: 0 635 | m_Padding: 636 | m_Left: 0 637 | m_Right: 0 638 | m_Top: 7 639 | m_Bottom: 7 640 | m_Margin: 641 | m_Left: 0 642 | m_Right: 0 643 | m_Top: 0 644 | m_Bottom: 0 645 | m_Overflow: 646 | m_Left: 0 647 | m_Right: 0 648 | m_Top: -1 649 | m_Bottom: -1 650 | m_Font: {fileID: 0} 651 | m_ImagePosition: 0 652 | m_Alignment: 0 653 | m_WordWrap: 0 654 | m_TextClipping: 1 655 | m_ContentOffset: {x: 0, y: 0} 656 | m_ClipOffset: {x: 0, y: 0} 657 | m_FixedWidth: 12 658 | m_FixedHeight: 0 659 | m_FontSize: 0 660 | m_FontStyle: 0 661 | m_StretchWidth: 0 662 | m_StretchHeight: 1 663 | m_horizontalScrollbar: 664 | m_Name: horizontalscrollbar 665 | m_Normal: 666 | m_Background: {fileID: 11008, guid: 0000000000000000e000000000000000, type: 0} 667 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 668 | m_Hover: 669 | m_Background: {fileID: 0} 670 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 671 | m_Active: 672 | m_Background: {fileID: 0} 673 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 674 | m_Focused: 675 | m_Background: {fileID: 0} 676 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 677 | m_OnNormal: 678 | m_Background: {fileID: 0} 679 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 680 | m_OnHover: 681 | m_Background: {fileID: 0} 682 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 683 | m_OnActive: 684 | m_Background: {fileID: 0} 685 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 686 | m_OnFocused: 687 | m_Background: {fileID: 0} 688 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 689 | m_Border: 690 | m_Left: 9 691 | m_Right: 9 692 | m_Top: 0 693 | m_Bottom: 0 694 | m_Padding: 695 | m_Left: 0 696 | m_Right: 0 697 | m_Top: 0 698 | m_Bottom: 0 699 | m_Margin: 700 | m_Left: 4 701 | m_Right: 4 702 | m_Top: 1 703 | m_Bottom: 4 704 | m_Overflow: 705 | m_Left: 0 706 | m_Right: 0 707 | m_Top: 0 708 | m_Bottom: 0 709 | m_Font: {fileID: 0} 710 | m_ImagePosition: 2 711 | m_Alignment: 0 712 | m_WordWrap: 0 713 | m_TextClipping: 1 714 | m_ContentOffset: {x: 0, y: 0} 715 | m_ClipOffset: {x: 0, y: 0} 716 | m_FixedWidth: 0 717 | m_FixedHeight: 15 718 | m_FontSize: 0 719 | m_FontStyle: 0 720 | m_StretchWidth: 1 721 | m_StretchHeight: 0 722 | m_horizontalScrollbarThumb: 723 | m_Name: horizontalscrollbarthumb 724 | m_Normal: 725 | m_Background: {fileID: 11007, guid: 0000000000000000e000000000000000, type: 0} 726 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 727 | m_Hover: 728 | m_Background: {fileID: 0} 729 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 730 | m_Active: 731 | m_Background: {fileID: 0} 732 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 733 | m_Focused: 734 | m_Background: {fileID: 0} 735 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 736 | m_OnNormal: 737 | m_Background: {fileID: 0} 738 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 739 | m_OnHover: 740 | m_Background: {fileID: 0} 741 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 742 | m_OnActive: 743 | m_Background: {fileID: 0} 744 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 745 | m_OnFocused: 746 | m_Background: {fileID: 0} 747 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 748 | m_Border: 749 | m_Left: 6 750 | m_Right: 6 751 | m_Top: 6 752 | m_Bottom: 6 753 | m_Padding: 754 | m_Left: 6 755 | m_Right: 6 756 | m_Top: 0 757 | m_Bottom: 0 758 | m_Margin: 759 | m_Left: 0 760 | m_Right: 0 761 | m_Top: 0 762 | m_Bottom: 0 763 | m_Overflow: 764 | m_Left: 0 765 | m_Right: 0 766 | m_Top: -1 767 | m_Bottom: 1 768 | m_Font: {fileID: 0} 769 | m_ImagePosition: 0 770 | m_Alignment: 0 771 | m_WordWrap: 0 772 | m_TextClipping: 1 773 | m_ContentOffset: {x: 0, y: 0} 774 | m_ClipOffset: {x: 0, y: 0} 775 | m_FixedWidth: 0 776 | m_FixedHeight: 13 777 | m_FontSize: 0 778 | m_FontStyle: 0 779 | m_StretchWidth: 1 780 | m_StretchHeight: 0 781 | m_horizontalScrollbarLeftButton: 782 | m_Name: horizontalscrollbarleftbutton 783 | m_Normal: 784 | m_Background: {fileID: 0} 785 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 786 | m_Hover: 787 | m_Background: {fileID: 0} 788 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 789 | m_Active: 790 | m_Background: {fileID: 0} 791 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 792 | m_Focused: 793 | m_Background: {fileID: 0} 794 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 795 | m_OnNormal: 796 | m_Background: {fileID: 0} 797 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 798 | m_OnHover: 799 | m_Background: {fileID: 0} 800 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 801 | m_OnActive: 802 | m_Background: {fileID: 0} 803 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 804 | m_OnFocused: 805 | m_Background: {fileID: 0} 806 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 807 | m_Border: 808 | m_Left: 0 809 | m_Right: 0 810 | m_Top: 0 811 | m_Bottom: 0 812 | m_Padding: 813 | m_Left: 0 814 | m_Right: 0 815 | m_Top: 0 816 | m_Bottom: 0 817 | m_Margin: 818 | m_Left: 0 819 | m_Right: 0 820 | m_Top: 0 821 | m_Bottom: 0 822 | m_Overflow: 823 | m_Left: 0 824 | m_Right: 0 825 | m_Top: 0 826 | m_Bottom: 0 827 | m_Font: {fileID: 0} 828 | m_ImagePosition: 0 829 | m_Alignment: 0 830 | m_WordWrap: 0 831 | m_TextClipping: 1 832 | m_ContentOffset: {x: 0, y: 0} 833 | m_ClipOffset: {x: 0, y: 0} 834 | m_FixedWidth: 0 835 | m_FixedHeight: 0 836 | m_FontSize: 0 837 | m_FontStyle: 0 838 | m_StretchWidth: 1 839 | m_StretchHeight: 0 840 | m_horizontalScrollbarRightButton: 841 | m_Name: horizontalscrollbarrightbutton 842 | m_Normal: 843 | m_Background: {fileID: 0} 844 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 845 | m_Hover: 846 | m_Background: {fileID: 0} 847 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 848 | m_Active: 849 | m_Background: {fileID: 0} 850 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 851 | m_Focused: 852 | m_Background: {fileID: 0} 853 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 854 | m_OnNormal: 855 | m_Background: {fileID: 0} 856 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 857 | m_OnHover: 858 | m_Background: {fileID: 0} 859 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 860 | m_OnActive: 861 | m_Background: {fileID: 0} 862 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 863 | m_OnFocused: 864 | m_Background: {fileID: 0} 865 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 866 | m_Border: 867 | m_Left: 0 868 | m_Right: 0 869 | m_Top: 0 870 | m_Bottom: 0 871 | m_Padding: 872 | m_Left: 0 873 | m_Right: 0 874 | m_Top: 0 875 | m_Bottom: 0 876 | m_Margin: 877 | m_Left: 0 878 | m_Right: 0 879 | m_Top: 0 880 | m_Bottom: 0 881 | m_Overflow: 882 | m_Left: 0 883 | m_Right: 0 884 | m_Top: 0 885 | m_Bottom: 0 886 | m_Font: {fileID: 0} 887 | m_ImagePosition: 0 888 | m_Alignment: 0 889 | m_WordWrap: 0 890 | m_TextClipping: 1 891 | m_ContentOffset: {x: 0, y: 0} 892 | m_ClipOffset: {x: 0, y: 0} 893 | m_FixedWidth: 0 894 | m_FixedHeight: 0 895 | m_FontSize: 0 896 | m_FontStyle: 0 897 | m_StretchWidth: 1 898 | m_StretchHeight: 0 899 | m_verticalScrollbar: 900 | m_Name: verticalscrollbar 901 | m_Normal: 902 | m_Background: {fileID: 11020, guid: 0000000000000000e000000000000000, type: 0} 903 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 904 | m_Hover: 905 | m_Background: {fileID: 0} 906 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 907 | m_Active: 908 | m_Background: {fileID: 0} 909 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 910 | m_Focused: 911 | m_Background: {fileID: 0} 912 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 913 | m_OnNormal: 914 | m_Background: {fileID: 0} 915 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 916 | m_OnHover: 917 | m_Background: {fileID: 0} 918 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 919 | m_OnActive: 920 | m_Background: {fileID: 0} 921 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 922 | m_OnFocused: 923 | m_Background: {fileID: 0} 924 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 925 | m_Border: 926 | m_Left: 0 927 | m_Right: 0 928 | m_Top: 9 929 | m_Bottom: 9 930 | m_Padding: 931 | m_Left: 0 932 | m_Right: 0 933 | m_Top: 1 934 | m_Bottom: 1 935 | m_Margin: 936 | m_Left: 1 937 | m_Right: 4 938 | m_Top: 4 939 | m_Bottom: 4 940 | m_Overflow: 941 | m_Left: 0 942 | m_Right: 0 943 | m_Top: 0 944 | m_Bottom: 0 945 | m_Font: {fileID: 0} 946 | m_ImagePosition: 0 947 | m_Alignment: 0 948 | m_WordWrap: 0 949 | m_TextClipping: 1 950 | m_ContentOffset: {x: 0, y: 0} 951 | m_ClipOffset: {x: 0, y: 0} 952 | m_FixedWidth: 15 953 | m_FixedHeight: 0 954 | m_FontSize: 0 955 | m_FontStyle: 0 956 | m_StretchWidth: 1 957 | m_StretchHeight: 0 958 | m_verticalScrollbarThumb: 959 | m_Name: verticalscrollbarthumb 960 | m_Normal: 961 | m_Background: {fileID: 11019, guid: 0000000000000000e000000000000000, type: 0} 962 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 963 | m_Hover: 964 | m_Background: {fileID: 0} 965 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 966 | m_Active: 967 | m_Background: {fileID: 0} 968 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 969 | m_Focused: 970 | m_Background: {fileID: 0} 971 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 972 | m_OnNormal: 973 | m_Background: {fileID: 0} 974 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 975 | m_OnHover: 976 | m_Background: {fileID: 0} 977 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 978 | m_OnActive: 979 | m_Background: {fileID: 0} 980 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 981 | m_OnFocused: 982 | m_Background: {fileID: 0} 983 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 984 | m_Border: 985 | m_Left: 6 986 | m_Right: 6 987 | m_Top: 6 988 | m_Bottom: 6 989 | m_Padding: 990 | m_Left: 0 991 | m_Right: 0 992 | m_Top: 6 993 | m_Bottom: 6 994 | m_Margin: 995 | m_Left: 0 996 | m_Right: 0 997 | m_Top: 0 998 | m_Bottom: 0 999 | m_Overflow: 1000 | m_Left: -1 1001 | m_Right: -1 1002 | m_Top: 0 1003 | m_Bottom: 0 1004 | m_Font: {fileID: 0} 1005 | m_ImagePosition: 2 1006 | m_Alignment: 0 1007 | m_WordWrap: 0 1008 | m_TextClipping: 1 1009 | m_ContentOffset: {x: 0, y: 0} 1010 | m_ClipOffset: {x: 0, y: 0} 1011 | m_FixedWidth: 15 1012 | m_FixedHeight: 0 1013 | m_FontSize: 0 1014 | m_FontStyle: 0 1015 | m_StretchWidth: 0 1016 | m_StretchHeight: 1 1017 | m_verticalScrollbarUpButton: 1018 | m_Name: verticalscrollbarupbutton 1019 | m_Normal: 1020 | m_Background: {fileID: 0} 1021 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1022 | m_Hover: 1023 | m_Background: {fileID: 0} 1024 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1025 | m_Active: 1026 | m_Background: {fileID: 0} 1027 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1028 | m_Focused: 1029 | m_Background: {fileID: 0} 1030 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1031 | m_OnNormal: 1032 | m_Background: {fileID: 0} 1033 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1034 | m_OnHover: 1035 | m_Background: {fileID: 0} 1036 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1037 | m_OnActive: 1038 | m_Background: {fileID: 0} 1039 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1040 | m_OnFocused: 1041 | m_Background: {fileID: 0} 1042 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1043 | m_Border: 1044 | m_Left: 0 1045 | m_Right: 0 1046 | m_Top: 0 1047 | m_Bottom: 0 1048 | m_Padding: 1049 | m_Left: 0 1050 | m_Right: 0 1051 | m_Top: 0 1052 | m_Bottom: 0 1053 | m_Margin: 1054 | m_Left: 0 1055 | m_Right: 0 1056 | m_Top: 0 1057 | m_Bottom: 0 1058 | m_Overflow: 1059 | m_Left: 0 1060 | m_Right: 0 1061 | m_Top: 0 1062 | m_Bottom: 0 1063 | m_Font: {fileID: 0} 1064 | m_ImagePosition: 0 1065 | m_Alignment: 0 1066 | m_WordWrap: 0 1067 | m_TextClipping: 1 1068 | m_ContentOffset: {x: 0, y: 0} 1069 | m_ClipOffset: {x: 0, y: 0} 1070 | m_FixedWidth: 0 1071 | m_FixedHeight: 0 1072 | m_FontSize: 0 1073 | m_FontStyle: 0 1074 | m_StretchWidth: 1 1075 | m_StretchHeight: 0 1076 | m_verticalScrollbarDownButton: 1077 | m_Name: verticalscrollbardownbutton 1078 | m_Normal: 1079 | m_Background: {fileID: 0} 1080 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1081 | m_Hover: 1082 | m_Background: {fileID: 0} 1083 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1084 | m_Active: 1085 | m_Background: {fileID: 0} 1086 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1087 | m_Focused: 1088 | m_Background: {fileID: 0} 1089 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1090 | m_OnNormal: 1091 | m_Background: {fileID: 0} 1092 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1093 | m_OnHover: 1094 | m_Background: {fileID: 0} 1095 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1096 | m_OnActive: 1097 | m_Background: {fileID: 0} 1098 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1099 | m_OnFocused: 1100 | m_Background: {fileID: 0} 1101 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1102 | m_Border: 1103 | m_Left: 0 1104 | m_Right: 0 1105 | m_Top: 0 1106 | m_Bottom: 0 1107 | m_Padding: 1108 | m_Left: 0 1109 | m_Right: 0 1110 | m_Top: 0 1111 | m_Bottom: 0 1112 | m_Margin: 1113 | m_Left: 0 1114 | m_Right: 0 1115 | m_Top: 0 1116 | m_Bottom: 0 1117 | m_Overflow: 1118 | m_Left: 0 1119 | m_Right: 0 1120 | m_Top: 0 1121 | m_Bottom: 0 1122 | m_Font: {fileID: 0} 1123 | m_ImagePosition: 0 1124 | m_Alignment: 0 1125 | m_WordWrap: 0 1126 | m_TextClipping: 1 1127 | m_ContentOffset: {x: 0, y: 0} 1128 | m_ClipOffset: {x: 0, y: 0} 1129 | m_FixedWidth: 0 1130 | m_FixedHeight: 0 1131 | m_FontSize: 0 1132 | m_FontStyle: 0 1133 | m_StretchWidth: 1 1134 | m_StretchHeight: 0 1135 | m_ScrollView: 1136 | m_Name: scrollview 1137 | m_Normal: 1138 | m_Background: {fileID: 0} 1139 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1140 | m_Hover: 1141 | m_Background: {fileID: 0} 1142 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1143 | m_Active: 1144 | m_Background: {fileID: 0} 1145 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1146 | m_Focused: 1147 | m_Background: {fileID: 0} 1148 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1149 | m_OnNormal: 1150 | m_Background: {fileID: 0} 1151 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1152 | m_OnHover: 1153 | m_Background: {fileID: 0} 1154 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1155 | m_OnActive: 1156 | m_Background: {fileID: 0} 1157 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1158 | m_OnFocused: 1159 | m_Background: {fileID: 0} 1160 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1161 | m_Border: 1162 | m_Left: 0 1163 | m_Right: 0 1164 | m_Top: 0 1165 | m_Bottom: 0 1166 | m_Padding: 1167 | m_Left: 0 1168 | m_Right: 0 1169 | m_Top: 0 1170 | m_Bottom: 0 1171 | m_Margin: 1172 | m_Left: 0 1173 | m_Right: 0 1174 | m_Top: 0 1175 | m_Bottom: 0 1176 | m_Overflow: 1177 | m_Left: 0 1178 | m_Right: 0 1179 | m_Top: 0 1180 | m_Bottom: 0 1181 | m_Font: {fileID: 0} 1182 | m_ImagePosition: 0 1183 | m_Alignment: 0 1184 | m_WordWrap: 0 1185 | m_TextClipping: 1 1186 | m_ContentOffset: {x: 0, y: 0} 1187 | m_ClipOffset: {x: 0, y: 0} 1188 | m_FixedWidth: 0 1189 | m_FixedHeight: 0 1190 | m_FontSize: 0 1191 | m_FontStyle: 0 1192 | m_StretchWidth: 1 1193 | m_StretchHeight: 0 1194 | m_CustomStyles: 1195 | - m_Name: 1196 | m_Normal: 1197 | m_Background: {fileID: 0} 1198 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1199 | m_Hover: 1200 | m_Background: {fileID: 0} 1201 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1202 | m_Active: 1203 | m_Background: {fileID: 0} 1204 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1205 | m_Focused: 1206 | m_Background: {fileID: 0} 1207 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1208 | m_OnNormal: 1209 | m_Background: {fileID: 0} 1210 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1211 | m_OnHover: 1212 | m_Background: {fileID: 0} 1213 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1214 | m_OnActive: 1215 | m_Background: {fileID: 0} 1216 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1217 | m_OnFocused: 1218 | m_Background: {fileID: 0} 1219 | m_TextColor: {r: 0, g: 0, b: 0, a: 1} 1220 | m_Border: 1221 | m_Left: 0 1222 | m_Right: 0 1223 | m_Top: 0 1224 | m_Bottom: 0 1225 | m_Padding: 1226 | m_Left: 0 1227 | m_Right: 0 1228 | m_Top: 0 1229 | m_Bottom: 0 1230 | m_Margin: 1231 | m_Left: 0 1232 | m_Right: 0 1233 | m_Top: 0 1234 | m_Bottom: 0 1235 | m_Overflow: 1236 | m_Left: 0 1237 | m_Right: 0 1238 | m_Top: 0 1239 | m_Bottom: 0 1240 | m_Font: {fileID: 0} 1241 | m_ImagePosition: 0 1242 | m_Alignment: 0 1243 | m_WordWrap: 0 1244 | m_TextClipping: 0 1245 | m_ContentOffset: {x: 0, y: 0} 1246 | m_ClipOffset: {x: 0, y: 0} 1247 | m_FixedWidth: 0 1248 | m_FixedHeight: 0 1249 | m_FontSize: 0 1250 | m_FontStyle: 0 1251 | m_StretchWidth: 1 1252 | m_StretchHeight: 0 1253 | m_Settings: 1254 | m_DoubleClickSelectsWord: 1 1255 | m_TripleClickSelectsLine: 1 1256 | m_CursorColor: {r: 1, g: 1, b: 1, a: 1} 1257 | m_CursorFlashSpeed: -1 1258 | m_SelectionColor: {r: 1, g: .384039074, b: 0, a: .699999988} 1259 | -------------------------------------------------------------------------------- /Assets/GUI/Controller.guiskin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b47690a39549c4dcdb5089d69fc3d46a 3 | -------------------------------------------------------------------------------- /Assets/GUI/DejaVuSans-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/GUI/DejaVuSans-ExtraLight.ttf -------------------------------------------------------------------------------- /Assets/GUI/DejaVuSans-ExtraLight.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1846a9e6fa653420ab2e8fa89258679e 3 | TrueTypeFontImporter: 4 | serializedVersion: 2 5 | fontSize: 16 6 | fontColor: {r: 1, g: 1, b: 1, a: 1} 7 | forceTextureCase: 0 8 | renderMode: 0 9 | style: 0 10 | includeFontData: 1 11 | use2xBehaviour: 0 12 | fontNames: [] 13 | customCharacters: 14 | -------------------------------------------------------------------------------- /Assets/GUI/Gray1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/GUI/Gray1.png -------------------------------------------------------------------------------- /Assets/GUI/Gray1.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11c5a97c09b8045288f313bba2881516 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /Assets/GUI/Gray2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/GUI/Gray2.png -------------------------------------------------------------------------------- /Assets/GUI/Gray2.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1006de8feb6914c198a960d3f935e0de 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /Assets/GUI/Gray3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/Assets/GUI/Gray3.png -------------------------------------------------------------------------------- /Assets/GUI/Gray3.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e8da4df2f36946ec87a4a21907d0f4b 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | textureFormat: -1 23 | maxTextureSize: 1024 24 | textureSettings: 25 | filterMode: -1 26 | aniso: -1 27 | mipBias: -1 28 | wrapMode: -1 29 | nPOTScale: 1 30 | lightmap: 0 31 | compressionQuality: 50 32 | textureType: -1 33 | buildTargetSettings: [] 34 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5a05aa22343543f3b1a95012f442423 3 | -------------------------------------------------------------------------------- /Assets/Scenes/Init.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | Scene: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_QueryMode: 1 8 | m_PVSObjectsArray: [] 9 | m_PVSPortalsArray: [] 10 | m_OcclusionBakeSettings: 11 | viewCellSize: 1 12 | bakeMode: 2 13 | memoryUsage: 10485760 14 | --- !u!104 &2 15 | RenderSettings: 16 | m_Fog: 0 17 | m_FogColor: {r: .5, g: .5, b: .5, a: 1} 18 | m_FogMode: 3 19 | m_FogDensity: .00999999978 20 | m_LinearFogStart: 0 21 | m_LinearFogEnd: 300 22 | m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} 23 | m_SkyboxMaterial: {fileID: 0} 24 | m_HaloStrength: .5 25 | m_FlareStrength: 1 26 | m_HaloTexture: {fileID: 0} 27 | m_SpotCookie: {fileID: 0} 28 | m_ObjectHideFlags: 0 29 | --- !u!127 &3 30 | GameManager: 31 | m_ObjectHideFlags: 0 32 | --- !u!157 &4 33 | LightmapSettings: 34 | m_ObjectHideFlags: 0 35 | m_LightProbes: {fileID: 0} 36 | m_Lightmaps: [] 37 | m_LightmapsMode: 1 38 | m_BakedColorSpace: 0 39 | m_UseDualLightmapsInForward: 0 40 | m_LightmapEditorSettings: 41 | m_Resolution: 50 42 | m_LastUsedResolution: 0 43 | m_TextureWidth: 1024 44 | m_TextureHeight: 1024 45 | m_BounceBoost: 1 46 | m_BounceIntensity: 1 47 | m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} 48 | m_SkyLightIntensity: 0 49 | m_Quality: 0 50 | m_Bounces: 1 51 | m_FinalGatherRays: 1000 52 | m_FinalGatherContrastThreshold: .0500000007 53 | m_FinalGatherGradientThreshold: 0 54 | m_FinalGatherInterpolationPoints: 15 55 | m_AOAmount: 0 56 | m_AOMaxDistance: .100000001 57 | m_AOContrast: 1 58 | m_LODSurfaceMappingDistance: 1 59 | m_Padding: 0 60 | m_TextureCompression: 0 61 | m_LockAtlas: 0 62 | --- !u!196 &5 63 | NavMeshSettings: 64 | m_ObjectHideFlags: 0 65 | m_BuildSettings: 66 | agentRadius: .5 67 | agentHeight: 2 68 | agentSlope: 45 69 | agentClimb: .400000006 70 | ledgeDropHeight: 0 71 | maxJumpAcrossDistance: 0 72 | accuratePlacement: 0 73 | minRegionArea: 2 74 | widthInaccuracy: 16.666666 75 | heightInaccuracy: 10 76 | m_NavMesh: {fileID: 0} 77 | --- !u!1 &974274286 78 | GameObject: 79 | m_ObjectHideFlags: 0 80 | m_PrefabParentObject: {fileID: 0} 81 | m_PrefabInternal: {fileID: 0} 82 | serializedVersion: 3 83 | m_Component: 84 | - 4: {fileID: 974274287} 85 | - 20: {fileID: 974274288} 86 | - 92: {fileID: 974274290} 87 | - 124: {fileID: 974274291} 88 | - 81: {fileID: 974274289} 89 | m_Layer: 0 90 | m_Name: Main Camera 91 | m_TagString: MainCamera 92 | m_Icon: {fileID: 0} 93 | m_NavMeshLayer: 0 94 | m_StaticEditorFlags: 0 95 | m_IsActive: 1 96 | --- !u!4 &974274287 97 | Transform: 98 | m_ObjectHideFlags: 0 99 | m_PrefabParentObject: {fileID: 0} 100 | m_PrefabInternal: {fileID: 0} 101 | m_GameObject: {fileID: 974274286} 102 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 103 | m_LocalPosition: {x: 0, y: 1, z: -10} 104 | m_LocalScale: {x: 1, y: 1, z: 1} 105 | m_Children: [] 106 | m_Father: {fileID: 0} 107 | --- !u!20 &974274288 108 | Camera: 109 | m_ObjectHideFlags: 0 110 | m_PrefabParentObject: {fileID: 0} 111 | m_PrefabInternal: {fileID: 0} 112 | m_GameObject: {fileID: 974274286} 113 | m_Enabled: 1 114 | serializedVersion: 2 115 | m_ClearFlags: 2 116 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} 117 | m_NormalizedViewPortRect: 118 | serializedVersion: 2 119 | x: 0 120 | y: 0 121 | width: 1 122 | height: 1 123 | near clip plane: .300000012 124 | far clip plane: 1000 125 | field of view: 60 126 | orthographic: 1 127 | orthographic size: 100 128 | m_Depth: -1 129 | m_CullingMask: 130 | serializedVersion: 2 131 | m_Bits: 4294967295 132 | m_RenderingPath: -1 133 | m_TargetTexture: {fileID: 0} 134 | m_HDR: 0 135 | --- !u!81 &974274289 136 | AudioListener: 137 | m_ObjectHideFlags: 0 138 | m_PrefabParentObject: {fileID: 0} 139 | m_PrefabInternal: {fileID: 0} 140 | m_GameObject: {fileID: 974274286} 141 | m_Enabled: 1 142 | --- !u!92 &974274290 143 | Behaviour: 144 | m_ObjectHideFlags: 0 145 | m_PrefabParentObject: {fileID: 0} 146 | m_PrefabInternal: {fileID: 0} 147 | m_GameObject: {fileID: 974274286} 148 | m_Enabled: 1 149 | --- !u!124 &974274291 150 | Behaviour: 151 | m_ObjectHideFlags: 0 152 | m_PrefabParentObject: {fileID: 0} 153 | m_PrefabInternal: {fileID: 0} 154 | m_GameObject: {fileID: 974274286} 155 | m_Enabled: 1 156 | --- !u!1 &1735699744 157 | GameObject: 158 | m_ObjectHideFlags: 0 159 | m_PrefabParentObject: {fileID: 0} 160 | m_PrefabInternal: {fileID: 0} 161 | serializedVersion: 3 162 | m_Component: 163 | - 4: {fileID: 1735699745} 164 | - 114: {fileID: 1735699746} 165 | m_Layer: 0 166 | m_Name: Initializer 167 | m_TagString: Untagged 168 | m_Icon: {fileID: 0} 169 | m_NavMeshLayer: 0 170 | m_StaticEditorFlags: 0 171 | m_IsActive: 1 172 | --- !u!4 &1735699745 173 | Transform: 174 | m_ObjectHideFlags: 0 175 | m_PrefabParentObject: {fileID: 0} 176 | m_PrefabInternal: {fileID: 0} 177 | m_GameObject: {fileID: 1735699744} 178 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 179 | m_LocalPosition: {x: 0, y: 0, z: 0} 180 | m_LocalScale: {x: 1, y: 1, z: 1} 181 | m_Children: [] 182 | m_Father: {fileID: 0} 183 | --- !u!114 &1735699746 184 | MonoBehaviour: 185 | m_ObjectHideFlags: 0 186 | m_PrefabParentObject: {fileID: 0} 187 | m_PrefabInternal: {fileID: 0} 188 | m_GameObject: {fileID: 1735699744} 189 | m_Enabled: 1 190 | m_EditorHideFlags: 0 191 | m_Script: {fileID: 11500000, guid: 5c773ddca120b40b29cfcc888c320afe, type: 1} 192 | m_Name: 193 | -------------------------------------------------------------------------------- /Assets/Scenes/Init.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e3d8ecabe82dd4cf796d227109123627 3 | -------------------------------------------------------------------------------- /Assets/Scenes/Main.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | Scene: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_QueryMode: 1 8 | m_PVSObjectsArray: [] 9 | m_PVSPortalsArray: [] 10 | m_OcclusionBakeSettings: 11 | viewCellSize: 1 12 | bakeMode: 2 13 | memoryUsage: 10485760 14 | --- !u!104 &2 15 | RenderSettings: 16 | m_Fog: 0 17 | m_FogColor: {r: .5, g: .5, b: .5, a: 1} 18 | m_FogMode: 3 19 | m_FogDensity: .00999999978 20 | m_LinearFogStart: 0 21 | m_LinearFogEnd: 300 22 | m_AmbientLight: {r: .200000003, g: .200000003, b: .200000003, a: 1} 23 | m_SkyboxMaterial: {fileID: 0} 24 | m_HaloStrength: .5 25 | m_FlareStrength: 1 26 | m_HaloTexture: {fileID: 0} 27 | m_SpotCookie: {fileID: 0} 28 | m_ObjectHideFlags: 0 29 | --- !u!127 &3 30 | GameManager: 31 | m_ObjectHideFlags: 0 32 | --- !u!157 &4 33 | LightmapSettings: 34 | m_ObjectHideFlags: 0 35 | m_LightProbes: {fileID: 0} 36 | m_Lightmaps: [] 37 | m_LightmapsMode: 1 38 | m_BakedColorSpace: 0 39 | m_UseDualLightmapsInForward: 0 40 | m_LightmapEditorSettings: 41 | m_Resolution: 50 42 | m_LastUsedResolution: 0 43 | m_TextureWidth: 1024 44 | m_TextureHeight: 1024 45 | m_BounceBoost: 1 46 | m_BounceIntensity: 1 47 | m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1} 48 | m_SkyLightIntensity: 0 49 | m_Quality: 0 50 | m_Bounces: 1 51 | m_FinalGatherRays: 1000 52 | m_FinalGatherContrastThreshold: .0500000007 53 | m_FinalGatherGradientThreshold: 0 54 | m_FinalGatherInterpolationPoints: 15 55 | m_AOAmount: 0 56 | m_AOMaxDistance: .100000001 57 | m_AOContrast: 1 58 | m_LODSurfaceMappingDistance: 1 59 | m_Padding: 0 60 | m_TextureCompression: 0 61 | m_LockAtlas: 0 62 | --- !u!196 &5 63 | NavMeshSettings: 64 | m_ObjectHideFlags: 0 65 | m_BuildSettings: 66 | agentRadius: .5 67 | agentHeight: 2 68 | agentSlope: 45 69 | agentClimb: .400000006 70 | ledgeDropHeight: 0 71 | maxJumpAcrossDistance: 0 72 | accuratePlacement: 0 73 | minRegionArea: 2 74 | widthInaccuracy: 16.666666 75 | heightInaccuracy: 10 76 | m_NavMesh: {fileID: 0} 77 | --- !u!1 &780153956 78 | GameObject: 79 | m_ObjectHideFlags: 0 80 | m_PrefabParentObject: {fileID: 0} 81 | m_PrefabInternal: {fileID: 0} 82 | serializedVersion: 3 83 | m_Component: 84 | - 4: {fileID: 780153957} 85 | - 20: {fileID: 780153958} 86 | - 92: {fileID: 780153960} 87 | - 124: {fileID: 780153961} 88 | - 81: {fileID: 780153959} 89 | m_Layer: 0 90 | m_Name: Main Camera 91 | m_TagString: MainCamera 92 | m_Icon: {fileID: 0} 93 | m_NavMeshLayer: 0 94 | m_StaticEditorFlags: 0 95 | m_IsActive: 1 96 | --- !u!4 &780153957 97 | Transform: 98 | m_ObjectHideFlags: 0 99 | m_PrefabParentObject: {fileID: 0} 100 | m_PrefabInternal: {fileID: 0} 101 | m_GameObject: {fileID: 780153956} 102 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 103 | m_LocalPosition: {x: 0, y: 1, z: -10} 104 | m_LocalScale: {x: 1, y: 1, z: 1} 105 | m_Children: [] 106 | m_Father: {fileID: 0} 107 | --- !u!20 &780153958 108 | Camera: 109 | m_ObjectHideFlags: 0 110 | m_PrefabParentObject: {fileID: 0} 111 | m_PrefabInternal: {fileID: 0} 112 | m_GameObject: {fileID: 780153956} 113 | m_Enabled: 1 114 | serializedVersion: 2 115 | m_ClearFlags: 1 116 | m_BackGroundColor: {r: .186567187, g: .186567187, b: .186567187, a: .0196078438} 117 | m_NormalizedViewPortRect: 118 | serializedVersion: 2 119 | x: 0 120 | y: 0 121 | width: 1 122 | height: 1 123 | near clip plane: .300000012 124 | far clip plane: 1000 125 | field of view: 60 126 | orthographic: 0 127 | orthographic size: 100 128 | m_Depth: -1 129 | m_CullingMask: 130 | serializedVersion: 2 131 | m_Bits: 4294967295 132 | m_RenderingPath: -1 133 | m_TargetTexture: {fileID: 0} 134 | m_HDR: 0 135 | --- !u!81 &780153959 136 | AudioListener: 137 | m_ObjectHideFlags: 0 138 | m_PrefabParentObject: {fileID: 0} 139 | m_PrefabInternal: {fileID: 0} 140 | m_GameObject: {fileID: 780153956} 141 | m_Enabled: 1 142 | --- !u!92 &780153960 143 | Behaviour: 144 | m_ObjectHideFlags: 0 145 | m_PrefabParentObject: {fileID: 0} 146 | m_PrefabInternal: {fileID: 0} 147 | m_GameObject: {fileID: 780153956} 148 | m_Enabled: 1 149 | --- !u!124 &780153961 150 | Behaviour: 151 | m_ObjectHideFlags: 0 152 | m_PrefabParentObject: {fileID: 0} 153 | m_PrefabInternal: {fileID: 0} 154 | m_GameObject: {fileID: 780153956} 155 | m_Enabled: 1 156 | --- !u!1 &1367179077 157 | GameObject: 158 | m_ObjectHideFlags: 0 159 | m_PrefabParentObject: {fileID: 0} 160 | m_PrefabInternal: {fileID: 0} 161 | serializedVersion: 3 162 | m_Component: 163 | - 4: {fileID: 1367179078} 164 | - 82: {fileID: 1367179079} 165 | - 114: {fileID: 1367179080} 166 | m_Layer: 0 167 | m_Name: Audio Source 168 | m_TagString: Untagged 169 | m_Icon: {fileID: 0} 170 | m_NavMeshLayer: 0 171 | m_StaticEditorFlags: 0 172 | m_IsActive: 1 173 | --- !u!4 &1367179078 174 | Transform: 175 | m_ObjectHideFlags: 0 176 | m_PrefabParentObject: {fileID: 0} 177 | m_PrefabInternal: {fileID: 0} 178 | m_GameObject: {fileID: 1367179077} 179 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 180 | m_LocalPosition: {x: 0, y: 0, z: 0} 181 | m_LocalScale: {x: 1, y: 1, z: 1} 182 | m_Children: [] 183 | m_Father: {fileID: 0} 184 | --- !u!82 &1367179079 185 | AudioSource: 186 | m_ObjectHideFlags: 0 187 | m_PrefabParentObject: {fileID: 0} 188 | m_PrefabInternal: {fileID: 0} 189 | m_GameObject: {fileID: 1367179077} 190 | m_Enabled: 1 191 | serializedVersion: 3 192 | m_audioClip: {fileID: 0} 193 | m_PlayOnAwake: 0 194 | m_Volume: 1 195 | m_Pitch: 1 196 | Loop: 0 197 | Mute: 0 198 | Priority: 128 199 | DopplerLevel: 1 200 | MinDistance: 1 201 | MaxDistance: 500 202 | Pan2D: 0 203 | rolloffMode: 0 204 | BypassEffects: 0 205 | rolloffCustomCurve: 206 | serializedVersion: 2 207 | m_Curve: 208 | - time: 0 209 | value: 1 210 | inSlope: 0 211 | outSlope: 0 212 | tangentMode: 0 213 | - time: 1 214 | value: 0 215 | inSlope: 0 216 | outSlope: 0 217 | tangentMode: 0 218 | m_PreInfinity: 2 219 | m_PostInfinity: 2 220 | panLevelCustomCurve: 221 | serializedVersion: 2 222 | m_Curve: 223 | - time: 0 224 | value: 1 225 | inSlope: 0 226 | outSlope: 0 227 | tangentMode: 0 228 | m_PreInfinity: 2 229 | m_PostInfinity: 2 230 | spreadCustomCurve: 231 | serializedVersion: 2 232 | m_Curve: 233 | - time: 0 234 | value: 0 235 | inSlope: 0 236 | outSlope: 0 237 | tangentMode: 0 238 | m_PreInfinity: 2 239 | m_PostInfinity: 2 240 | --- !u!114 &1367179080 241 | MonoBehaviour: 242 | m_ObjectHideFlags: 0 243 | m_PrefabParentObject: {fileID: 0} 244 | m_PrefabInternal: {fileID: 0} 245 | m_GameObject: {fileID: 1367179077} 246 | m_Enabled: 1 247 | m_EditorHideFlags: 0 248 | m_Script: {fileID: 11500000, guid: 8f6264cebe9f04557a64aba569a79dd0, type: 1} 249 | m_Name: 250 | bpm: 124 251 | skin: {fileID: 11400000, guid: b47690a39549c4dcdb5089d69fc3d46a, type: 2} 252 | drumClips: 253 | - {fileID: 8300000, guid: 127294a81e5a54685bb63c19882f5cd2, type: 1} 254 | - {fileID: 8300000, guid: e2aa618974c424703be1fafb8109a349, type: 1} 255 | - {fileID: 8300000, guid: 536961933292d4ab6bb8908d298767b9, type: 1} 256 | - {fileID: 8300000, guid: 638f356dd07c443d58b9967f5329560f, type: 1} 257 | - {fileID: 8300000, guid: e400abf30bc524ab3b792c47f414e59d, type: 1} 258 | -------------------------------------------------------------------------------- /Assets/Scenes/Main.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed57508040b1842d0be419305cc9285b 3 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4dc00c5e630cd4d70a3497cf0425fe09 3 | -------------------------------------------------------------------------------- /Assets/Scripts/Initializer.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | function Start () { 4 | yield; 5 | 6 | // SynthConfig.kSampleRate = AudioSettings.outputSampleRate; 7 | AudioSettings.outputSampleRate = SynthConfig.kSampleRate; 8 | 9 | yield; 10 | 11 | Application.LoadLevel(1); 12 | } 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Initializer.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c773ddca120b40b29cfcc888c320afe 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62f836ec039104dc9acb47bca7249793 3 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Amplifier.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | class Amplifier { 4 | private var env : Envelope; 5 | 6 | var level = 1.0; 7 | 8 | function Amplifier(anEnv : Envelope) { 9 | env = anEnv; 10 | } 11 | 12 | function Run(input : float) { 13 | return input * level * env.current; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Amplifier.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7568b6ad42c1419194079c82df44ef7 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Envelope.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | class Envelope { 4 | private var minTime = 0.003; 5 | private var delta = 0.0; 6 | 7 | var release = 0.2; 8 | var current = 0.0; 9 | 10 | function Bang() { 11 | delta = 1.0 / (minTime * SynthConfig.kSampleRate); 12 | } 13 | 14 | function Update() { 15 | if (delta > 0.0) { 16 | current += delta; 17 | if (current >= 1.0) { 18 | current = 1.0; 19 | var r = Mathf.Max(release, minTime); 20 | delta = -1.0 / (r * SynthConfig.kSampleRate); 21 | } 22 | } else { 23 | current = Mathf.Max(current + delta, 0.0); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Envelope.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4b20139accf44e98a0ab0ba177dd998 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/LowPassFilter.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | // Moog-type LPF 4 | // http://www.musicdsp.org/showArchiveComment.php?ArchiveID=26 5 | 6 | class LowPassFilter { 7 | private var env : Envelope; 8 | 9 | private var i1 = 0.0; 10 | private var i2 = 0.0; 11 | private var i3 = 0.0; 12 | private var i4 = 0.0; 13 | 14 | private var o1 = 0.0; 15 | private var o2 = 0.0; 16 | private var o3 = 0.0; 17 | private var o4 = 0.0; 18 | 19 | var cutoff = 1.0; 20 | var resonance = 0.0; 21 | var envMod = 0.0; 22 | 23 | private function Saturate(x : float) { 24 | return Mathf.Clamp(x, -1.0, 1.0); 25 | } 26 | 27 | function LowPassFilter(anEnv : Envelope) { 28 | env = anEnv; 29 | } 30 | 31 | function Run(input : float) { 32 | var f = Mathf.Clamp01(cutoff + env.current * envMod) * 1.16; 33 | var fb = Mathf.Clamp01(resonance) * 4.0 * (1.0 - 0.15 * f * f); 34 | var x = input - o4 * fb; 35 | x = Mathf.Clamp(0.35013 * x * (f * f) * (f * f), -1.0, 1.0); 36 | o1 = Saturate(x + 0.3 * i1 + (1.0 - f) * o1); 37 | i1 = x; 38 | o2 = Saturate(o1 + 0.3 * i2 + (1.0 - f) * o2); 39 | i2 = o1; 40 | o3 = Saturate(o2 + 0.3 * i3 + (1.0 - f) * o3); 41 | i3 = o2; 42 | o4 = Saturate(o3 + 0.3 * i4 + (1.0 - f) * o4); 43 | i4 = o3; 44 | return o4; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/LowPassFilter.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63e7958c650774848be14ef714aa900c 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/MatrixSequencer.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | class MatrixSequencer { 4 | var triggers : boolean[,]; 5 | 6 | private var position = -1; 7 | 8 | private var delta = 0.0; 9 | private var counter = 1.0; 10 | 11 | function MatrixSequencer(aBpm : int, channels : int, length : int) { 12 | triggers = new boolean[channels, length]; 13 | delta = 4.0 * aBpm / (SynthConfig.kSampleRate * 60); 14 | } 15 | 16 | function SetTrack(channel : int, track : boolean[]) { 17 | for (var i = 0; i < track.Length ; i++) { 18 | triggers[channel, i] = track[i]; 19 | } 20 | } 21 | 22 | function Reset() { 23 | position = -1; 24 | counter = 1.0; 25 | } 26 | 27 | function Run() { 28 | var bang = (counter >= 1.0); 29 | 30 | if (bang) { 31 | if (++position == triggers.GetLength(1)) position = 0; 32 | counter -= 1.0; 33 | } 34 | 35 | counter += delta; 36 | 37 | return bang; 38 | } 39 | 40 | function GetCurrent(channel : int) { 41 | return triggers[channel, position]; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/MatrixSequencer.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 699f20c7dd5ed4eccb898f6a1c3f932b 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Oscillator.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | class Oscillator { 4 | private var x = 0.0; 5 | private var step = 0.0; 6 | 7 | function SetNote(note : int) { 8 | var freq = 440.0 * Mathf.Pow(2.0, 1.0 * (note - 69) / 12.0); 9 | step = freq / SynthConfig.kSampleRate; 10 | } 11 | 12 | function Run() { 13 | x += step; 14 | if (x > 1.0) x -= 1.0; 15 | return x * 2 - 1; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Oscillator.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d019baf70f61049c9b457bc901a4a964 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Sampler.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | class Sampler { 4 | private var samples = [0.0]; 5 | private var position = 0; 6 | var volume = 1.0; 7 | 8 | function Sampler(clip : AudioClip) { 9 | samples = new float[clip.samples]; 10 | clip.GetData(samples, 0); 11 | position = samples.Length; 12 | } 13 | 14 | function Bang() { 15 | position = 0; 16 | } 17 | 18 | function Run() { 19 | if (position < samples.Length) { 20 | return samples[position++] * volume; 21 | } else { 22 | return 0.0; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Sampler.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc9b0f2d325c34010b264c560e7a54cd 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Sequencer.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | class Sequencer { 4 | var notes : int[]; 5 | var triggers : boolean[]; 6 | 7 | private var position = -1; 8 | 9 | private var delta = 0.0; 10 | private var counter = 1.0; 11 | 12 | var currentNote = -1; 13 | var currentTrigger = false; 14 | 15 | function Sequencer(aBpm : int, initNotes : int[], initTriggers : boolean[]) { 16 | notes = initNotes; 17 | triggers = initTriggers; 18 | delta = 4.0 * aBpm / (SynthConfig.kSampleRate * 60); 19 | } 20 | 21 | function Reset() { 22 | position = -1; 23 | counter = 1.0; 24 | currentNote = -1; 25 | currentTrigger = false; 26 | } 27 | 28 | function Run() { 29 | var bang = (counter >= 1.0); 30 | 31 | if (bang) { 32 | if (++position == notes.Length) position = 0; 33 | currentNote = notes[position]; 34 | currentTrigger = triggers[position]; 35 | counter -= 1.0; 36 | } 37 | 38 | counter += delta; 39 | 40 | return bang; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/Sequencer.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f8f32224ec6e46d3b42d748097c023c 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/SynthConfig.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | class SynthConfig { 4 | static var kSampleRate = 44100; 5 | } 6 | -------------------------------------------------------------------------------- /Assets/Scripts/Synth/SynthConfig.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4adef7785711416d947cb75590108c3 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /Assets/Scripts/SynthController.js: -------------------------------------------------------------------------------- 1 | #pragma strict 2 | 3 | @script RequireComponent(AudioSource) 4 | 5 | var bpm = 124.0; 6 | var skin : GUISkin; 7 | var drumClips : AudioClip[]; 8 | 9 | private var isRunning = false; 10 | 11 | private var osc = Oscillator(); 12 | private var env = Envelope(); 13 | private var lpf = LowPassFilter(env); 14 | private var amp = Amplifier(env); 15 | private var seq : Sequencer; 16 | 17 | private var drums : Sampler[]; 18 | private var drumSeq : MatrixSequencer; 19 | 20 | function Start() { 21 | lpf.cutoff = 0.2; 22 | lpf.envMod = 0.2; 23 | 24 | seq = Sequencer(bpm, [ 25 | 30, 30, 42, 30, 26 | 30, 29, 30, 29, 27 | 30, 30, 42, 30, 28 | 30, 42, 29, 30 29 | ],[ 30 | true, true, true, true, 31 | true, true, false, true, 32 | true, false, false, true, 33 | true, true, false, true 34 | ]); 35 | 36 | drums = new Sampler[drumClips.Length]; 37 | for (var i = 0; i < drumClips.Length; i++) { 38 | drums[i] = Sampler(drumClips[i]); 39 | } 40 | 41 | drumSeq = MatrixSequencer(bpm, drumClips.Length, 16); 42 | drumSeq.SetTrack(0, [ 43 | true, false, false, false, 44 | true, false, false, false, 45 | true, false, false, false, 46 | true, false, false, false 47 | ]); 48 | 49 | audio.clip = AudioClip.Create("(null)", 0xfffffff, 1, SynthConfig.kSampleRate, false, true, function(data:float[]){}); 50 | audio.Play(); 51 | } 52 | 53 | function OnGUI() { 54 | var sw = Screen.width; 55 | var sh = Screen.height; 56 | 57 | GUI.skin = skin; 58 | 59 | GUILayout.BeginArea(Rect(0.05 * sw, 0.05 * sh, 0.9 * sw, 0.9 * sh)); 60 | GUILayout.BeginVertical(); 61 | 62 | GUILayout.BeginHorizontal(); 63 | GUILayout.Label("Note/Trig"); 64 | for (var i = 0; i < 16; i++) { 65 | GUILayout.BeginVertical(); 66 | var note = seq.notes[i]; 67 | var trigger = seq.triggers[i]; 68 | var noteInput = GUILayout.TextField(note.ToString(), 3); 69 | seq.triggers[i] = GUILayout.Toggle(trigger, ""); 70 | if (System.Int32.TryParse(noteInput, note)) { 71 | seq.notes[i] = note; 72 | } 73 | GUILayout.EndVertical(); 74 | } 75 | GUILayout.EndHorizontal(); 76 | 77 | GUILayout.BeginHorizontal(); 78 | GUILayout.Label("Drums"); 79 | GUILayout.BeginVertical(); 80 | for (var row = drumSeq.triggers.GetLength(0) - 1; row >= 0 ; row--) { 81 | GUILayout.BeginHorizontal(); 82 | for (var col = 0; col < drumSeq.triggers.GetLength(1); col++) { 83 | drumSeq.triggers[row, col] = GUILayout.Toggle(drumSeq.triggers[row, col], ""); 84 | } 85 | GUILayout.EndHorizontal(); 86 | } 87 | GUILayout.EndVertical(); 88 | GUILayout.EndHorizontal(); 89 | 90 | GUILayout.BeginHorizontal(); 91 | GUILayout.Label("Cutoff", GUILayout.Width(0.2 * sw)); 92 | lpf.cutoff = GUILayout.HorizontalSlider(lpf.cutoff, 0.0, 1.0); 93 | GUILayout.EndHorizontal(); 94 | 95 | GUILayout.BeginHorizontal(); 96 | GUILayout.Label("Resonance", GUILayout.Width(0.2 * sw)); 97 | lpf.resonance = GUILayout.HorizontalSlider(lpf.resonance, 0.0, 1.0); 98 | GUILayout.EndHorizontal(); 99 | 100 | amp.level = 1.0 + lpf.resonance * 1.6; 101 | 102 | GUILayout.BeginHorizontal(); 103 | GUILayout.Label("EnvMod", GUILayout.Width(0.2 * sw)); 104 | lpf.envMod = GUILayout.HorizontalSlider(lpf.envMod, 0.0, 1.0); 105 | GUILayout.EndHorizontal(); 106 | 107 | GUILayout.BeginHorizontal(); 108 | GUILayout.Label("Decay", GUILayout.Width(0.2 * sw)); 109 | env.release = GUILayout.HorizontalSlider(env.release, 0.0, 0.4); 110 | GUILayout.EndHorizontal(); 111 | 112 | GUILayout.BeginHorizontal(); 113 | if (GUILayout.Button("PLAY")) { 114 | seq.Reset(); 115 | drumSeq.Reset(); 116 | isRunning = true; 117 | } 118 | 119 | if (GUILayout.Button("STOP")) { 120 | isRunning = false; 121 | } 122 | GUILayout.EndHorizontal(); 123 | 124 | GUILayout.EndVertical(); 125 | GUILayout.EndArea(); 126 | } 127 | 128 | function OnAudioFilterRead(data : float[], channels : int) { 129 | // Asserts channels == 2 130 | for (var i = 0; i < data.Length; i += 2) { 131 | if (isRunning && seq.Run()) { 132 | osc.SetNote(seq.currentNote); 133 | if (seq.currentTrigger) { 134 | env.Bang(); 135 | } 136 | } 137 | if (isRunning && drumSeq.Run()) { 138 | for (var tr = 0; tr < drumSeq.triggers.GetLength(0); tr++) { 139 | if (drumSeq.GetCurrent(tr)) drums[tr].Bang(); 140 | } 141 | } 142 | 143 | var x = amp.Run(lpf.Run(osc.Run())); 144 | for (var sampler in drums) x += sampler.Run(); 145 | data[i] = data[i + 1] = x; 146 | env.Update(); 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /Assets/Scripts/SynthController.js.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f6264cebe9f04557a64aba569a79dd0 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | m_SpeedOfSound: 347 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_DSPBufferSize: 256 12 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/ProjectSettings/DynamicsManager.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/Init.unity 10 | - enabled: 1 11 | path: Assets/Scenes/Main.unity 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_ExternalVersionControlSupport: 1 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/NavMeshLayers.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/ProjectSettings/NavMeshLayers.asset -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/ProjectSettings/NetworkManager.asset -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | AndroidProfiler: 0 8 | defaultScreenOrientation: 2 9 | targetDevice: 2 10 | targetPlatform: 2 11 | targetResolution: 0 12 | accelerometerFrequency: 0 13 | companyName: Radium Software 14 | productName: unisynth 15 | AndroidLicensePublicKey: 16 | defaultScreenWidth: 1024 17 | defaultScreenHeight: 768 18 | defaultScreenWidthWeb: 640 19 | defaultScreenHeightWeb: 360 20 | m_RenderingPath: 1 21 | m_ActiveColorSpace: 0 22 | m_MTRendering: 1 23 | iosShowActivityIndicatorOnLoading: -1 24 | androidShowActivityIndicatorOnLoading: -1 25 | displayResolutionDialog: 1 26 | allowedAutorotateToPortrait: 1 27 | allowedAutorotateToPortraitUpsideDown: 1 28 | allowedAutorotateToLandscapeRight: 1 29 | allowedAutorotateToLandscapeLeft: 1 30 | useOSAutorotation: 1 31 | use32BitDisplayBuffer: 0 32 | use24BitDepthBuffer: 0 33 | defaultIsFullScreen: 0 34 | runInBackground: 0 35 | captureSingleScreen: 0 36 | Override IPod Music: 0 37 | usePlayerLog: 1 38 | useMacAppStoreValidation: 0 39 | xboxSkinOnGPU: 1 40 | xboxEnableAvatar: 0 41 | xboxEnableKinect: 0 42 | xboxEnableKinectAutoTracking: 0 43 | xboxEnableSpeech: 0 44 | wiiHio2Usage: -1 45 | wiiLoadingScreenRectPlacement: 0 46 | wiiLoadingScreenBackground: {r: 1, g: 1, b: 1, a: 1} 47 | wiiLoadingScreenPeriod: 1000 48 | wiiLoadingScreenFileName: 49 | wiiLoadingScreenRect: 50 | serializedVersion: 2 51 | x: 0 52 | y: 0 53 | width: 0 54 | height: 0 55 | m_SupportedAspectRatios: 56 | 4:3: 1 57 | 5:4: 1 58 | 16:10: 1 59 | 16:9: 1 60 | Others: 1 61 | debugUnloadMode: 0 62 | iPhoneBundleIdentifier: jp.radiumsoftware.unisynth 63 | iPhoneBundleVersion: 1.0 64 | AndroidBundleVersionCode: 1 65 | AndroidMinSdkVersion: 6 66 | AndroidPreferredInstallLocation: 1 67 | aotOptions: 68 | apiCompatibilityLevel: 2 69 | iPhoneStrippingLevel: 3 70 | iPhoneScriptCallOptimization: 1 71 | ForceInternetPermission: 0 72 | ForceSDCardPermission: 0 73 | CreateWallpaper: 0 74 | StripUnusedMeshComponents: 0 75 | iPhoneSdkVersion: 988 76 | iPhoneTargetOSVersion: 7 77 | uIPrerenderedIcon: 0 78 | uIRequiresPersistentWiFi: 0 79 | uIStatusBarHidden: 1 80 | uIExitOnSuspend: 0 81 | uIStatusBarStyle: 0 82 | iPhoneSplashScreen: {fileID: 0} 83 | iPhoneHighResSplashScreen: {fileID: 0} 84 | iPadPortraitSplashScreen: {fileID: 0} 85 | iPadHighResPortraitSplashScreen: {fileID: 0} 86 | iPadLandscapeSplashScreen: {fileID: 0} 87 | iPadHighResLandscapeSplashScreen: {fileID: 0} 88 | AndroidTargetDevice: 0 89 | AndroidTargetGraphics: 1 90 | AndroidSplashScreenScale: 0 91 | AndroidKeystoreName: 92 | AndroidKeyaliasName: 93 | resolutionDialogBanner: {fileID: 0} 94 | m_BuildTargetIcons: 95 | - m_BuildTarget: 96 | m_Icons: 97 | - m_Icon: {fileID: 0} 98 | m_Size: 128 99 | m_BuildTargetBatching: [] 100 | webPlayerTemplate: APPLICATION:Black Background 101 | m_TemplateCustomTags: {} 102 | wiiRegion: 1 103 | wiiGameCode: RABA 104 | wiiGameVersion: 105 | wiiCompanyCode: ZZ 106 | wiiSupportsNunchuk: 0 107 | wiiSupportsClassicController: 0 108 | wiiSupportsBalanceBoard: 0 109 | wiiSupportsMotionPlus: 0 110 | wiiControllerCount: 1 111 | wiiFloatingPointExceptions: 0 112 | wiiScreenCrashDumps: 1 113 | wiiMemoryLabelCount: 147 114 | wiiMemorySetup: 0000000000000000000000000000000000000000 115 | XboxTitleId: 116 | XboxImageXexPath: 117 | XboxSpaPath: 118 | XboxGenerateSpa: 0 119 | XboxDeployKinectResources: 0 120 | XboxSplashScreen: {fileID: 0} 121 | xboxSpeechDB: 0 122 | ps3TitleConfigPath: 123 | ps3DLCConfigPath: 124 | ps3ThumbnailPath: 125 | ps3BackgroundPath: 126 | ps3SoundPath: 127 | ps3TrophyCommId: 128 | ps3TrophyPackagePath: 129 | ps3ReservedMemorySizeMB: 16 130 | ps3BootCheckMaxSaveGameSizeKB: 128 131 | ps3TrophyCommSig: 132 | ps3SaveGameSlots: 1 133 | ps3TrialMode: 0 134 | flashStrippingLevel: 2 135 | firstStreamedLevelWithResources: 0 136 | unityRebuildLibraryVersion: 9 137 | unityForwardCompatibleVersion: 36 138 | unityStandardAssetsVersion: 0 139 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/ProjectSettings/QualitySettings.asset -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keijiro/unity-synth/d86cef76b0974b93ce87b73d6334164de6038abd/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | unity-synth 2 | =========== 3 | 4 | An experimental implementation of a typical analog synthesizer with Unity using the low-level audio buffer accessing. --------------------------------------------------------------------------------