├── .editorconfig ├── .gitignore ├── .vscode ├── launch.json └── tasks.json ├── LICENSE.txt ├── README.md ├── build.zig └── src ├── test.zig ├── test_musescore_instrument.zig ├── test_musescore_preset.zig ├── test_musescore_sample.zig ├── test_timgm6mb_instrument.zig ├── test_timgm6mb_preset.zig ├── test_timgm6mb_sample.zig └── ziggysynth.zig /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | end_of_line = crlf 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This file is for zig-specific build artifacts. 2 | # If you have OS-specific or editor-specific files to ignore, 3 | # such as *.swp or .DS_Store, put those in your global 4 | # ~/.gitignore and put this in your ~/.gitconfig: 5 | # 6 | # [core] 7 | # excludesfile = ~/.gitignore 8 | # 9 | # Cheers! 10 | # -andrewrk 11 | 12 | .zig-cache/ 13 | zig-out/ 14 | /release/ 15 | /debug/ 16 | /build/ 17 | /build-*/ 18 | /docgen_tmp/ 19 | /docs/ 20 | 21 | # Build outputs 22 | *.exe 23 | *.obj 24 | *.pdb 25 | 26 | # Audio related files 27 | *.sf2 28 | *.pcm 29 | *.mid 30 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "(Windows) Launch", 6 | "type": "cppvsdbg", 7 | "request": "launch", 8 | "program": "${workspaceFolder}/zig-out/bin/${workspaceFolderBasename}.exe", 9 | "args": [], 10 | "stopAtEntry": false, 11 | "cwd": "${workspaceFolder}", 12 | "environment": [], 13 | "console": "integratedTerminal", 14 | "preLaunchTask": "build" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "label": "build", 6 | "type": "shell", 7 | "command": "zig build", 8 | "group": "build", 9 | "problemMatcher": [ 10 | "$gcc" 11 | ], 12 | "presentation": { 13 | "revealProblems": "onProblem", 14 | "close": true 15 | } 16 | }, 17 | { 18 | "label": "test", 19 | "type": "shell", 20 | "command": "zig build test", 21 | "group": "test", 22 | "problemMatcher": [ 23 | "$gcc" 24 | ], 25 | "presentation": { 26 | "focus": true 27 | } 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | MeltySynth: 4 | Copyright (C) 2021 Nobuaki Tanaka 5 | 6 | ZiggySynth: 7 | Copyright (C) 2022 Nobuaki Tanaka 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of 10 | this software and associated documentation files (the "Software"), to deal in 11 | the Software without restriction, including without limitation the rights to 12 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 13 | of the Software, and to permit persons to whom the Software is furnished to do 14 | so, subject to the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be included in all 17 | copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 | SOFTWARE. 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ZiggySynth 2 | 3 | ZiggySynth is a SoundFont MIDI synthesizer written in pure Zig, ported from [MeltySynth for C#](https://github.com/sinshu/meltysynth). 4 | 5 | 6 | 7 | ## Features 8 | 9 | * Suitable for both real-time and offline synthesis. 10 | * Support for standard MIDI files. 11 | * No dependencies other than the standard library. 12 | * All the functionality is in [a single file](src/ziggysynth.zig). 13 | 14 | 15 | 16 | ## Installation 17 | 18 | * Zig v0.14.x is required. 19 | * Copy [ziggysynth.zig](src/ziggysynth.zig) to your project. 20 | 21 | 22 | 23 | ## Demo 24 | 25 | https://www.youtube.com/watch?v=GQj3tF8OdPw 26 | 27 | [![Youtube video](https://img.youtube.com/vi/GQj3tF8OdPw/0.jpg)](https://www.youtube.com/watch?v=GQj3tF8OdPw) 28 | 29 | 30 | 31 | ## Examples 32 | 33 | Some useful aliases: 34 | 35 | ```zig 36 | const ziggysynth = @import("ziggysynth.zig"); 37 | const SoundFont = ziggysynth.SoundFont; 38 | const Synthesizer = ziggysynth.Synthesizer; 39 | const SynthesizerSettings = ziggysynth.SynthesizerSettings; 40 | const MidiFile = ziggysynth.MidiFile; 41 | const MidiFileSequencer = ziggysynth.MidiFileSequencer; 42 | ``` 43 | 44 | An example code to synthesize a simple chord: 45 | 46 | ```zig 47 | // Load the SoundFont. 48 | var sf2 = try fs.cwd().openFile("TimGM6mb.sf2", .{}); 49 | defer sf2.close(); 50 | var sound_font = try SoundFont.init(allocator, sf2.reader()); 51 | defer sound_font.deinit(); 52 | 53 | // Create the synthesizer. 54 | var settings = SynthesizerSettings.init(44100); 55 | var synthesizer = try Synthesizer.init(allocator, &sound_font, &settings); 56 | defer synthesizer.deinit(); 57 | 58 | // Play some notes (middle C, E, G). 59 | synthesizer.noteOn(0, 60, 100); 60 | synthesizer.noteOn(0, 64, 100); 61 | synthesizer.noteOn(0, 67, 100); 62 | 63 | // The output buffer (3 seconds). 64 | const sample_count: usize = @intCast(3 * settings.sample_rate); 65 | var left: []f32 = try allocator.alloc(f32, sample_count); 66 | defer allocator.free(left); 67 | var right: []f32 = try allocator.alloc(f32, sample_count); 68 | defer allocator.free(right); 69 | 70 | // Render the waveform. 71 | synthesizer.render(left, right); 72 | ``` 73 | 74 | Another example code to synthesize a MIDI file: 75 | 76 | ```zig 77 | // Load the SoundFont. 78 | var sf2 = try fs.cwd().openFile("TimGM6mb.sf2", .{}); 79 | defer sf2.close(); 80 | var sound_font = try SoundFont.init(allocator, sf2.reader()); 81 | defer sound_font.deinit(); 82 | 83 | // Create the synthesizer. 84 | var settings = SynthesizerSettings.init(44100); 85 | var synthesizer = try Synthesizer.init(allocator, &sound_font, &settings); 86 | defer synthesizer.deinit(); 87 | 88 | // Load the MIDI file. 89 | var mid = try fs.cwd().openFile("flourish.mid", .{}); 90 | defer mid.close(); 91 | var midi_file = try MidiFile.init(allocator, mid.reader()); 92 | defer midi_file.deinit(); 93 | 94 | // Create the sequencer. 95 | var sequencer = MidiFileSequencer.init(&synthesizer); 96 | 97 | // Play the MIDI file. 98 | sequencer.play(&midi_file, false); 99 | 100 | // The output buffer. 101 | const sample_count = @as(f64, @floatFromInt(settings.sample_rate)) * midi_file.getLength(); 102 | var left: []f32 = try allocator.alloc(f32, @intFromFloat(sample_count)); 103 | defer allocator.free(left); 104 | var right: []f32 = try allocator.alloc(f32, @intFromFloat(sample_count)); 105 | defer allocator.free(right); 106 | 107 | // Render the waveform. 108 | sequencer.render(left, right); 109 | ``` 110 | 111 | 112 | 113 | ## Todo 114 | 115 | * __Wave synthesis__ 116 | - [x] SoundFont reader 117 | - [x] Waveform generator 118 | - [x] Envelope generator 119 | - [x] Low-pass filter 120 | - [x] Vibrato LFO 121 | - [x] Modulation LFO 122 | * __MIDI message processing__ 123 | - [x] Note on/off 124 | - [x] Bank selection 125 | - [x] Modulation 126 | - [x] Volume control 127 | - [x] Pan 128 | - [x] Expression 129 | - [x] Hold pedal 130 | - [x] Program change 131 | - [x] Pitch bend 132 | - [x] Tuning 133 | * __Effects__ 134 | - [x] Reverb 135 | - [x] Chorus 136 | * __Other things__ 137 | - [x] Standard MIDI file support 138 | - [x] Performace optimization 139 | 140 | 141 | 142 | ## License 143 | 144 | ZiggySynth is available under [the MIT license](LICENSE.txt). 145 | -------------------------------------------------------------------------------- /build.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | 3 | // Although this function looks imperative, note that its job is to 4 | // declaratively construct a build graph that will be executed by an external 5 | // runner. 6 | pub fn build(b: *std.Build) void { 7 | // Standard target options allows the person running `zig build` to choose 8 | // what target to build for. Here we do not override the defaults, which 9 | // means any target is allowed, and the default is native. Other options 10 | // for restricting supported target set are available. 11 | const target = b.standardTargetOptions(.{}); 12 | 13 | // Standard optimization options allow the person running `zig build` to select 14 | // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not 15 | // set a preferred release mode, allowing the user to decide how to optimize. 16 | const optimize = b.standardOptimizeOption(.{}); 17 | 18 | const exe = b.addExecutable(.{ 19 | .name = "ziggysynth", 20 | // In this case the main source file is merely a path, however, in more 21 | // complicated build scripts, this could be a generated file. 22 | .root_source_file = b.path("src/test.zig"), 23 | .target = target, 24 | .optimize = optimize, 25 | }); 26 | 27 | // This declares intent for the executable to be installed into the 28 | // standard location when the user invokes the "install" step (the default 29 | // step when running `zig build`). 30 | b.installArtifact(exe); 31 | 32 | // This *creates* a Run step in the build graph, to be executed when another 33 | // step is evaluated that depends on it. The next line below will establish 34 | // such a dependency. 35 | const run_cmd = b.addRunArtifact(exe); 36 | 37 | // By making the run step depend on the install step, it will be run from the 38 | // installation directory rather than directly from within the cache directory. 39 | // This is not necessary, however, if the application depends on other installed 40 | // files, this ensures they will be present and in the expected location. 41 | run_cmd.step.dependOn(b.getInstallStep()); 42 | 43 | // This allows the user to pass arguments to the application in the build 44 | // command itself, like this: `zig build run -- arg1 arg2 etc` 45 | if (b.args) |args| { 46 | run_cmd.addArgs(args); 47 | } 48 | 49 | // This creates a build step. It will be visible in the `zig build --help` menu, 50 | // and can be selected like this: `zig build run` 51 | // This will evaluate the `run` step rather than the default, which is "install". 52 | const run_step = b.step("run", "Run the app"); 53 | run_step.dependOn(&run_cmd.step); 54 | 55 | // Creates a step for unit testing. This only builds the test executable 56 | // but does not run it. 57 | const unit_tests = b.addTest(.{ 58 | .root_source_file = b.path("src/test.zig"), 59 | .target = target, 60 | .optimize = optimize, 61 | }); 62 | 63 | const run_unit_tests = b.addRunArtifact(unit_tests); 64 | 65 | // Similar to creating the run step earlier, this exposes a `test` step to 66 | // the `zig build --help` menu, providing a way for the user to request 67 | // running the unit tests. 68 | const test_step = b.step("test", "Run unit tests"); 69 | test_step.dependOn(&run_unit_tests.step); 70 | } 71 | -------------------------------------------------------------------------------- /src/test.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | const ziggysynth = @import("ziggysynth.zig"); 3 | const debug = std.debug; 4 | const fs = std.fs; 5 | const heap = std.heap; 6 | const io = std.io; 7 | const mem = std.mem; 8 | const Allocator = mem.Allocator; 9 | const SoundFont = ziggysynth.SoundFont; 10 | const Synthesizer = ziggysynth.Synthesizer; 11 | const SynthesizerSettings = ziggysynth.SynthesizerSettings; 12 | const MidiFile = ziggysynth.MidiFile; 13 | const MidiFileSequencer = ziggysynth.MidiFileSequencer; 14 | 15 | pub fn main() !void { 16 | const stdout_file = io.getStdOut().writer(); 17 | var bw = io.bufferedWriter(stdout_file); 18 | const stdout = bw.writer(); 19 | 20 | var da = heap.DebugAllocator(.{}){}; 21 | const allocator = da.allocator(); 22 | defer debug.assert(da.deinit() == .ok); 23 | 24 | if (@sizeOf(usize) == 4) { 25 | try stdout.print("Running on x86\n", .{}); 26 | } 27 | if (@sizeOf(usize) == 8) { 28 | try stdout.print("Running on x64\n", .{}); 29 | } 30 | 31 | try stdout.print("Simple chord...", .{}); 32 | try bw.flush(); 33 | try simple_chord(allocator); 34 | try stdout.print("OK\n", .{}); 35 | try bw.flush(); 36 | 37 | try stdout.print("MIDI file synthesis...", .{}); 38 | try bw.flush(); 39 | try flourish(allocator); 40 | try stdout.print("OK\n", .{}); 41 | try bw.flush(); 42 | } 43 | 44 | fn simple_chord(allocator: Allocator) !void { 45 | // Load the SoundFont. 46 | var sf2 = try fs.cwd().openFile("TimGM6mb.sf2", .{}); 47 | defer sf2.close(); 48 | var sound_font = try SoundFont.init(allocator, sf2.reader()); 49 | defer sound_font.deinit(); 50 | 51 | // Create the synthesizer. 52 | var settings = SynthesizerSettings.init(44100); 53 | var synthesizer = try Synthesizer.init(allocator, &sound_font, &settings); 54 | defer synthesizer.deinit(); 55 | 56 | // Play some notes (middle C, E, G). 57 | synthesizer.noteOn(0, 60, 100); 58 | synthesizer.noteOn(0, 64, 100); 59 | synthesizer.noteOn(0, 67, 100); 60 | 61 | // The output buffer (3 seconds). 62 | const sample_count: usize = @intCast(3 * settings.sample_rate); 63 | const left: []f32 = try allocator.alloc(f32, sample_count); 64 | defer allocator.free(left); 65 | const right: []f32 = try allocator.alloc(f32, sample_count); 66 | defer allocator.free(right); 67 | 68 | // Render the waveform. 69 | synthesizer.render(left, right); 70 | 71 | // Write the waveform as a PMC file. 72 | try write_pcm(allocator, left, right, "simple_chord.pcm"); 73 | } 74 | 75 | fn flourish(allocator: Allocator) !void { 76 | // Load the SoundFont. 77 | var sf2 = try fs.cwd().openFile("TimGM6mb.sf2", .{}); 78 | defer sf2.close(); 79 | var sound_font = try SoundFont.init(allocator, sf2.reader()); 80 | defer sound_font.deinit(); 81 | 82 | // Create the synthesizer. 83 | var settings = SynthesizerSettings.init(44100); 84 | var synthesizer = try Synthesizer.init(allocator, &sound_font, &settings); 85 | defer synthesizer.deinit(); 86 | 87 | // Load the MIDI file. 88 | var mid = try fs.cwd().openFile("flourish.mid", .{}); 89 | defer mid.close(); 90 | var midi_file = try MidiFile.init(allocator, mid.reader()); 91 | defer midi_file.deinit(); 92 | 93 | // Create the sequencer. 94 | var sequencer = MidiFileSequencer.init(&synthesizer); 95 | 96 | // Play the MIDI file. 97 | sequencer.play(&midi_file, false); 98 | 99 | // The output buffer. 100 | const sample_count = @as(f64, @floatFromInt(settings.sample_rate)) * midi_file.getLength(); 101 | const left: []f32 = try allocator.alloc(f32, @intFromFloat(sample_count)); 102 | defer allocator.free(left); 103 | const right: []f32 = try allocator.alloc(f32, @intFromFloat(sample_count)); 104 | defer allocator.free(right); 105 | 106 | // Render the waveform. 107 | sequencer.render(left, right); 108 | 109 | // Write the waveform as a PMC file. 110 | try write_pcm(allocator, left, right, "flourish.pcm"); 111 | } 112 | 113 | fn write_pcm(allocator: Allocator, left: []f32, right: []f32, path: []const u8) !void { 114 | var max: f32 = 0.0; 115 | for (0..left.len) |t| { 116 | if (@abs(left[t]) > max) { 117 | max = @abs(left[t]); 118 | } 119 | if (@abs(right[t]) > max) { 120 | max = @abs(right[t]); 121 | } 122 | } 123 | const a = 0.99 / max; 124 | 125 | var buf: []i16 = try allocator.alloc(i16, 2 * left.len); 126 | defer allocator.free(buf); 127 | for (0..left.len) |t| { 128 | const offset = 2 * t; 129 | buf[offset + 0] = @as(i16, @intFromFloat(a * left[t] * 32768.0)); 130 | buf[offset + 1] = @as(i16, @intFromFloat(a * right[t] * 32768.0)); 131 | } 132 | 133 | var pcm = try fs.cwd().createFile(path, .{}); 134 | defer pcm.close(); 135 | var writer = pcm.writer(); 136 | try writer.writeAll(@as([*]u8, @ptrCast(buf.ptr))[0..(4 * left.len)]); 137 | } 138 | 139 | test { 140 | _ = @import("test_timgm6mb_sample.zig"); 141 | _ = @import("test_timgm6mb_preset.zig"); 142 | _ = @import("test_timgm6mb_instrument.zig"); 143 | _ = @import("test_musescore_sample.zig"); 144 | _ = @import("test_musescore_preset.zig"); 145 | _ = @import("test_musescore_instrument.zig"); 146 | } 147 | -------------------------------------------------------------------------------- /src/test_timgm6mb_preset.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | const debug = std.debug; 3 | const ziggysynth = @import("ziggysynth.zig"); 4 | const SoundFont = ziggysynth.SoundFont; 5 | const PresetRegion = ziggysynth.PresetRegion; 6 | 7 | fn areEqual(x: f64, y: f64) bool { 8 | if (@floor(x) == @ceil(x) and @floor(y) == @ceil(y)) { 9 | return x == y; 10 | } 11 | 12 | const m = if (@abs(x) > @abs(y)) @abs(x) else @abs(y); 13 | const limit = m / 1000.0; 14 | const delta = @abs(x - y); 15 | 16 | return delta < limit; 17 | } 18 | 19 | fn check(region: *const PresetRegion, values: *const [39]f64) void { 20 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getModulationLfoToPitch())), values[0])); 21 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getVibratoLfoToPitch())), values[1])); 22 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getModulationEnvelopeToPitch())), values[2])); 23 | debug.assert(areEqual(region.getInitialFilterCutoffFrequency(), values[3])); 24 | debug.assert(areEqual(region.getInitialFilterQ(), values[4])); 25 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getModulationLfoToFilterCutoffFrequency())), values[5])); 26 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getModulationEnvelopeToFilterCutoffFrequency())), values[6])); 27 | debug.assert(areEqual(region.getModulationLfoToVolume(), values[7])); 28 | debug.assert(areEqual(region.getChorusEffectsSend(), values[8])); 29 | debug.assert(areEqual(region.getReverbEffectsSend(), values[9])); 30 | debug.assert(areEqual(region.getPan(), values[10])); 31 | debug.assert(areEqual(region.getDelayModulationLfo(), values[11])); 32 | debug.assert(areEqual(region.getFrequencyModulationLfo(), values[12])); 33 | debug.assert(areEqual(region.getDelayVibratoLfo(), values[13])); 34 | debug.assert(areEqual(region.getFrequencyVibratoLfo(), values[14])); 35 | debug.assert(areEqual(region.getDelayModulationEnvelope(), values[15])); 36 | debug.assert(areEqual(region.getAttackModulationEnvelope(), values[16])); 37 | debug.assert(areEqual(region.getHoldModulationEnvelope(), values[17])); 38 | debug.assert(areEqual(region.getDecayModulationEnvelope(), values[18])); 39 | debug.assert(areEqual(region.getSustainModulationEnvelope(), values[19])); 40 | debug.assert(areEqual(region.getReleaseModulationEnvelope(), values[20])); 41 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getKeyNumberToModulationEnvelopeHold())), values[21])); 42 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getKeyNumberToModulationEnvelopeDecay())), values[22])); 43 | debug.assert(areEqual(region.getDelayVolumeEnvelope(), values[23])); 44 | debug.assert(areEqual(region.getAttackVolumeEnvelope(), values[24])); 45 | debug.assert(areEqual(region.getHoldVolumeEnvelope(), values[25])); 46 | debug.assert(areEqual(region.getDecayVolumeEnvelope(), values[26])); 47 | debug.assert(areEqual(region.getSustainVolumeEnvelope(), values[27])); 48 | debug.assert(areEqual(region.getReleaseVolumeEnvelope(), values[28])); 49 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getKeyNumberToVolumeEnvelopeHold())), values[29])); 50 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getKeyNumberToVolumeEnvelopeDecay())), values[30])); 51 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getKeyRangeStart())), values[31])); 52 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getKeyRangeEnd())), values[32])); 53 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getVelocityRangeStart())), values[33])); 54 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getVelocityRangeEnd())), values[34])); 55 | debug.assert(areEqual(region.getInitialAttenuation(), values[35])); 56 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getCoarseTune())), values[36])); 57 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getFineTune())), values[37])); 58 | debug.assert(areEqual(@as(f64, @floatFromInt(region.getScaleTuning())), values[38])); 59 | } 60 | 61 | test "TimGM6mb Preset" { 62 | var da = std.heap.DebugAllocator(.{}){}; 63 | const allocator = da.allocator(); 64 | defer debug.assert(da.deinit() == .ok); 65 | 66 | var file = try std.fs.cwd().openFile("TimGM6mb.sf2", .{}); 67 | defer file.close(); 68 | 69 | var sf = try SoundFont.init(allocator, file.reader()); 70 | defer sf.deinit(); 71 | 72 | // ============================================================ 73 | // Flute TB 74 | // ============================================================ 75 | { 76 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 77 | check(&sf.presets[0].regions[0], &values); 78 | } 79 | 80 | // ============================================================ 81 | // Orchestra 82 | // ============================================================ 83 | { 84 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 85 | check(&sf.presets[1].regions[0], &values); 86 | } 87 | { 88 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 89 | check(&sf.presets[1].regions[1], &values); 90 | } 91 | { 92 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 93 | check(&sf.presets[1].regions[2], &values); 94 | } 95 | 96 | // ============================================================ 97 | // Brush 98 | // ============================================================ 99 | { 100 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 101 | check(&sf.presets[2].regions[0], &values); 102 | } 103 | { 104 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 105 | check(&sf.presets[2].regions[1], &values); 106 | } 107 | 108 | // ============================================================ 109 | // Jazz 110 | // ============================================================ 111 | { 112 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 113 | check(&sf.presets[3].regions[0], &values); 114 | } 115 | { 116 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 117 | check(&sf.presets[3].regions[1], &values); 118 | } 119 | 120 | // ============================================================ 121 | // TR 808 122 | // ============================================================ 123 | { 124 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 125 | check(&sf.presets[4].regions[0], &values); 126 | } 127 | { 128 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 129 | check(&sf.presets[4].regions[1], &values); 130 | } 131 | { 132 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 133 | check(&sf.presets[4].regions[2], &values); 134 | } 135 | 136 | // ============================================================ 137 | // Electronic 138 | // ============================================================ 139 | { 140 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 141 | check(&sf.presets[5].regions[0], &values); 142 | } 143 | { 144 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 145 | check(&sf.presets[5].regions[1], &values); 146 | } 147 | 148 | // ============================================================ 149 | // Power 150 | // ============================================================ 151 | { 152 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 153 | check(&sf.presets[6].regions[0], &values); 154 | } 155 | { 156 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 157 | check(&sf.presets[6].regions[1], &values); 158 | } 159 | { 160 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 161 | check(&sf.presets[6].regions[2], &values); 162 | } 163 | 164 | // ============================================================ 165 | // Room 166 | // ============================================================ 167 | { 168 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 169 | check(&sf.presets[7].regions[0], &values); 170 | } 171 | { 172 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 173 | check(&sf.presets[7].regions[1], &values); 174 | } 175 | 176 | // ============================================================ 177 | // Standard 178 | // ============================================================ 179 | { 180 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 181 | check(&sf.presets[8].regions[0], &values); 182 | } 183 | { 184 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 185 | check(&sf.presets[8].regions[1], &values); 186 | } 187 | 188 | // ============================================================ 189 | // Gun Shot 190 | // ============================================================ 191 | { 192 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 193 | check(&sf.presets[9].regions[0], &values); 194 | } 195 | { 196 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 197 | check(&sf.presets[9].regions[1], &values); 198 | } 199 | 200 | // ============================================================ 201 | // Applause 202 | // ============================================================ 203 | { 204 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 205 | check(&sf.presets[10].regions[0], &values); 206 | } 207 | { 208 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 209 | check(&sf.presets[10].regions[1], &values); 210 | } 211 | 212 | // ============================================================ 213 | // Helicopter 214 | // ============================================================ 215 | { 216 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 217 | check(&sf.presets[11].regions[0], &values); 218 | } 219 | 220 | // ============================================================ 221 | // Telephone 222 | // ============================================================ 223 | { 224 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 225 | check(&sf.presets[12].regions[0], &values); 226 | } 227 | 228 | // ============================================================ 229 | // Bird 230 | // ============================================================ 231 | { 232 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 233 | check(&sf.presets[13].regions[0], &values); 234 | } 235 | 236 | // ============================================================ 237 | // Seashore 238 | // ============================================================ 239 | { 240 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 241 | check(&sf.presets[14].regions[0], &values); 242 | } 243 | 244 | // ============================================================ 245 | // Breath Noise 246 | // ============================================================ 247 | { 248 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 249 | check(&sf.presets[15].regions[0], &values); 250 | } 251 | { 252 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 253 | check(&sf.presets[15].regions[1], &values); 254 | } 255 | 256 | // ============================================================ 257 | // Fret Noise 258 | // ============================================================ 259 | { 260 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 261 | check(&sf.presets[16].regions[0], &values); 262 | } 263 | 264 | // ============================================================ 265 | // Reverse Cymbal 266 | // ============================================================ 267 | { 268 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 269 | check(&sf.presets[17].regions[0], &values); 270 | } 271 | 272 | // ============================================================ 273 | // Synth Drum 274 | // ============================================================ 275 | { 276 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 277 | check(&sf.presets[18].regions[0], &values); 278 | } 279 | 280 | // ============================================================ 281 | // Melodic Tom 282 | // ============================================================ 283 | { 284 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 285 | check(&sf.presets[19].regions[0], &values); 286 | } 287 | 288 | // ============================================================ 289 | // Taiko Drum 290 | // ============================================================ 291 | { 292 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 293 | check(&sf.presets[20].regions[0], &values); 294 | } 295 | 296 | // ============================================================ 297 | // Wood Block 298 | // ============================================================ 299 | { 300 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 301 | check(&sf.presets[21].regions[0], &values); 302 | } 303 | 304 | // ============================================================ 305 | // Steel Drum 306 | // ============================================================ 307 | { 308 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 309 | check(&sf.presets[22].regions[0], &values); 310 | } 311 | 312 | // ============================================================ 313 | // Agogo 314 | // ============================================================ 315 | { 316 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 317 | check(&sf.presets[23].regions[0], &values); 318 | } 319 | 320 | // ============================================================ 321 | // Tinker Bell 322 | // ============================================================ 323 | { 324 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 325 | check(&sf.presets[24].regions[0], &values); 326 | } 327 | 328 | // ============================================================ 329 | // Shenai 330 | // ============================================================ 331 | { 332 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 333 | check(&sf.presets[25].regions[0], &values); 334 | } 335 | 336 | // ============================================================ 337 | // Fiddle 338 | // ============================================================ 339 | { 340 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 341 | check(&sf.presets[26].regions[0], &values); 342 | } 343 | 344 | // ============================================================ 345 | // Bagpipe 346 | // ============================================================ 347 | { 348 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 349 | check(&sf.presets[27].regions[0], &values); 350 | } 351 | { 352 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 353 | check(&sf.presets[27].regions[1], &values); 354 | } 355 | 356 | // ============================================================ 357 | // Kalimba 358 | // ============================================================ 359 | { 360 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 361 | check(&sf.presets[28].regions[0], &values); 362 | } 363 | 364 | // ============================================================ 365 | // Koto 366 | // ============================================================ 367 | { 368 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 369 | check(&sf.presets[29].regions[0], &values); 370 | } 371 | 372 | // ============================================================ 373 | // Shamisen 374 | // ============================================================ 375 | { 376 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 377 | check(&sf.presets[30].regions[0], &values); 378 | } 379 | 380 | // ============================================================ 381 | // Banjo 382 | // ============================================================ 383 | { 384 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 385 | check(&sf.presets[31].regions[0], &values); 386 | } 387 | 388 | // ============================================================ 389 | // Sitar 390 | // ============================================================ 391 | { 392 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 393 | check(&sf.presets[32].regions[0], &values); 394 | } 395 | 396 | // ============================================================ 397 | // Star Theme 398 | // ============================================================ 399 | { 400 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 401 | check(&sf.presets[33].regions[0], &values); 402 | } 403 | { 404 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 405 | check(&sf.presets[33].regions[1], &values); 406 | } 407 | 408 | // ============================================================ 409 | // Echo Drops 410 | // ============================================================ 411 | { 412 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 413 | check(&sf.presets[34].regions[0], &values); 414 | } 415 | { 416 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 417 | check(&sf.presets[34].regions[1], &values); 418 | } 419 | 420 | // ============================================================ 421 | // Goblin 422 | // ============================================================ 423 | { 424 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 425 | check(&sf.presets[35].regions[0], &values); 426 | } 427 | { 428 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 429 | check(&sf.presets[35].regions[1], &values); 430 | } 431 | 432 | // ============================================================ 433 | // Brightness 434 | // ============================================================ 435 | { 436 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 437 | check(&sf.presets[36].regions[0], &values); 438 | } 439 | { 440 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 441 | check(&sf.presets[36].regions[1], &values); 442 | } 443 | 444 | // ============================================================ 445 | // Atmosphere 446 | // ============================================================ 447 | { 448 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 449 | check(&sf.presets[37].regions[0], &values); 450 | } 451 | { 452 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 453 | check(&sf.presets[37].regions[1], &values); 454 | } 455 | 456 | // ============================================================ 457 | // Crystal 458 | // ============================================================ 459 | { 460 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 461 | check(&sf.presets[38].regions[0], &values); 462 | } 463 | { 464 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 465 | check(&sf.presets[38].regions[1], &values); 466 | } 467 | 468 | // ============================================================ 469 | // Soundtrack 470 | // ============================================================ 471 | { 472 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 473 | check(&sf.presets[39].regions[0], &values); 474 | } 475 | { 476 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 477 | check(&sf.presets[39].regions[1], &values); 478 | } 479 | 480 | // ============================================================ 481 | // IceRain 482 | // ============================================================ 483 | { 484 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 485 | check(&sf.presets[40].regions[0], &values); 486 | } 487 | 488 | // ============================================================ 489 | // Sweep Pad 490 | // ============================================================ 491 | { 492 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 493 | check(&sf.presets[41].regions[0], &values); 494 | } 495 | { 496 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 497 | check(&sf.presets[41].regions[1], &values); 498 | } 499 | 500 | // ============================================================ 501 | // Halo Pad 502 | // ============================================================ 503 | { 504 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 505 | check(&sf.presets[42].regions[0], &values); 506 | } 507 | { 508 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 509 | check(&sf.presets[42].regions[1], &values); 510 | } 511 | 512 | // ============================================================ 513 | // Metal Pad 514 | // ============================================================ 515 | { 516 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 517 | check(&sf.presets[43].regions[0], &values); 518 | } 519 | { 520 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 521 | check(&sf.presets[43].regions[1], &values); 522 | } 523 | 524 | // ============================================================ 525 | // Bowed Glass 526 | // ============================================================ 527 | { 528 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 529 | check(&sf.presets[44].regions[0], &values); 530 | } 531 | { 532 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 533 | check(&sf.presets[44].regions[1], &values); 534 | } 535 | 536 | // ============================================================ 537 | // Space Voice 538 | // ============================================================ 539 | { 540 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 541 | check(&sf.presets[45].regions[0], &values); 542 | } 543 | { 544 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 545 | check(&sf.presets[45].regions[1], &values); 546 | } 547 | 548 | // ============================================================ 549 | // Poly Synth 550 | // ============================================================ 551 | { 552 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 553 | check(&sf.presets[46].regions[0], &values); 554 | } 555 | { 556 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 557 | check(&sf.presets[46].regions[1], &values); 558 | } 559 | 560 | // ============================================================ 561 | // Warm Pad 562 | // ============================================================ 563 | { 564 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 565 | check(&sf.presets[47].regions[0], &values); 566 | } 567 | 568 | // ============================================================ 569 | // Fantasia 570 | // ============================================================ 571 | { 572 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 573 | check(&sf.presets[48].regions[0], &values); 574 | } 575 | { 576 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 577 | check(&sf.presets[48].regions[1], &values); 578 | } 579 | { 580 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 581 | check(&sf.presets[48].regions[2], &values); 582 | } 583 | 584 | // ============================================================ 585 | // Bass & Lead 586 | // ============================================================ 587 | { 588 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 589 | check(&sf.presets[49].regions[0], &values); 590 | } 591 | { 592 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 593 | check(&sf.presets[49].regions[1], &values); 594 | } 595 | 596 | // ============================================================ 597 | // 5th Saw Wave 598 | // ============================================================ 599 | { 600 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 601 | check(&sf.presets[50].regions[0], &values); 602 | } 603 | { 604 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 605 | check(&sf.presets[50].regions[1], &values); 606 | } 607 | 608 | // ============================================================ 609 | // Solo Vox 610 | // ============================================================ 611 | { 612 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 613 | check(&sf.presets[51].regions[0], &values); 614 | } 615 | { 616 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 617 | check(&sf.presets[51].regions[1], &values); 618 | } 619 | 620 | // ============================================================ 621 | // Charang 622 | // ============================================================ 623 | { 624 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 625 | check(&sf.presets[52].regions[0], &values); 626 | } 627 | { 628 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 629 | check(&sf.presets[52].regions[1], &values); 630 | } 631 | 632 | // ============================================================ 633 | // Chiffer Lead 634 | // ============================================================ 635 | { 636 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 637 | check(&sf.presets[53].regions[0], &values); 638 | } 639 | { 640 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 641 | check(&sf.presets[53].regions[1], &values); 642 | } 643 | 644 | // ============================================================ 645 | // Synth Calliope 646 | // ============================================================ 647 | { 648 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 649 | check(&sf.presets[54].regions[0], &values); 650 | } 651 | { 652 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 653 | check(&sf.presets[54].regions[1], &values); 654 | } 655 | 656 | // ============================================================ 657 | // Saw Wave 658 | // ============================================================ 659 | { 660 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 661 | check(&sf.presets[55].regions[0], &values); 662 | } 663 | { 664 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 665 | check(&sf.presets[55].regions[1], &values); 666 | } 667 | 668 | // ============================================================ 669 | // Square Wave 670 | // ============================================================ 671 | { 672 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 673 | check(&sf.presets[56].regions[0], &values); 674 | } 675 | { 676 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 677 | check(&sf.presets[56].regions[1], &values); 678 | } 679 | 680 | // ============================================================ 681 | // Ocarina 682 | // ============================================================ 683 | { 684 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 685 | check(&sf.presets[57].regions[0], &values); 686 | } 687 | 688 | // ============================================================ 689 | // Whistle 690 | // ============================================================ 691 | { 692 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 693 | check(&sf.presets[58].regions[0], &values); 694 | } 695 | 696 | // ============================================================ 697 | // Shakuhachi 698 | // ============================================================ 699 | { 700 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 701 | check(&sf.presets[59].regions[0], &values); 702 | } 703 | 704 | // ============================================================ 705 | // Bottle Chiff 706 | // ============================================================ 707 | { 708 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 709 | check(&sf.presets[60].regions[0], &values); 710 | } 711 | { 712 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 713 | check(&sf.presets[60].regions[1], &values); 714 | } 715 | 716 | // ============================================================ 717 | // Pan Flute 718 | // ============================================================ 719 | { 720 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 721 | check(&sf.presets[61].regions[0], &values); 722 | } 723 | 724 | // ============================================================ 725 | // Recorder 726 | // ============================================================ 727 | { 728 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 729 | check(&sf.presets[62].regions[0], &values); 730 | } 731 | 732 | // ============================================================ 733 | // Piccolo 734 | // ============================================================ 735 | { 736 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 737 | check(&sf.presets[63].regions[0], &values); 738 | } 739 | 740 | // ============================================================ 741 | // Clarinet 742 | // ============================================================ 743 | { 744 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 745 | check(&sf.presets[64].regions[0], &values); 746 | } 747 | 748 | // ============================================================ 749 | // Bassoon 750 | // ============================================================ 751 | { 752 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 753 | check(&sf.presets[65].regions[0], &values); 754 | } 755 | 756 | // ============================================================ 757 | // English Horn 758 | // ============================================================ 759 | { 760 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 761 | check(&sf.presets[66].regions[0], &values); 762 | } 763 | 764 | // ============================================================ 765 | // Oboe (Orch) 766 | // ============================================================ 767 | { 768 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 769 | check(&sf.presets[67].regions[0], &values); 770 | } 771 | 772 | // ============================================================ 773 | // French Horns 774 | // ============================================================ 775 | { 776 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 777 | check(&sf.presets[68].regions[0], &values); 778 | } 779 | { 780 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 781 | check(&sf.presets[68].regions[1], &values); 782 | } 783 | { 784 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 785 | check(&sf.presets[68].regions[2], &values); 786 | } 787 | { 788 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 789 | check(&sf.presets[68].regions[3], &values); 790 | } 791 | 792 | // ============================================================ 793 | // Synth Brass 2 794 | // ============================================================ 795 | { 796 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 797 | check(&sf.presets[69].regions[0], &values); 798 | } 799 | 800 | // ============================================================ 801 | // Synth Brass 1 802 | // ============================================================ 803 | { 804 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 805 | check(&sf.presets[70].regions[0], &values); 806 | } 807 | { 808 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 809 | check(&sf.presets[70].regions[1], &values); 810 | } 811 | 812 | // ============================================================ 813 | // Brass 814 | // ============================================================ 815 | { 816 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 817 | check(&sf.presets[71].regions[0], &values); 818 | } 819 | 820 | // ============================================================ 821 | // Mute Trumpet 822 | // ============================================================ 823 | { 824 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 825 | check(&sf.presets[72].regions[0], &values); 826 | } 827 | 828 | // ============================================================ 829 | // Tuba 830 | // ============================================================ 831 | { 832 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 833 | check(&sf.presets[73].regions[0], &values); 834 | } 835 | 836 | // ============================================================ 837 | // Trombone 838 | // ============================================================ 839 | { 840 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 841 | check(&sf.presets[74].regions[0], &values); 842 | } 843 | 844 | // ============================================================ 845 | // SoloTrumpet 846 | // ============================================================ 847 | { 848 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 849 | check(&sf.presets[75].regions[0], &values); 850 | } 851 | 852 | // ============================================================ 853 | // Orchestra Hit 854 | // ============================================================ 855 | { 856 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 857 | check(&sf.presets[76].regions[0], &values); 858 | } 859 | { 860 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 861 | check(&sf.presets[76].regions[1], &values); 862 | } 863 | 864 | // ============================================================ 865 | // Synth Vox 866 | // ============================================================ 867 | { 868 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 869 | check(&sf.presets[77].regions[0], &values); 870 | } 871 | 872 | // ============================================================ 873 | // Voice Oohs 874 | // ============================================================ 875 | { 876 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 877 | check(&sf.presets[78].regions[0], &values); 878 | } 879 | { 880 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 881 | check(&sf.presets[78].regions[1], &values); 882 | } 883 | 884 | // ============================================================ 885 | // Synth Strings 2 886 | // ============================================================ 887 | { 888 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 889 | check(&sf.presets[79].regions[0], &values); 890 | } 891 | { 892 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 893 | check(&sf.presets[79].regions[1], &values); 894 | } 895 | 896 | // ============================================================ 897 | // Timpani 898 | // ============================================================ 899 | { 900 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 901 | check(&sf.presets[80].regions[0], &values); 902 | } 903 | 904 | // ============================================================ 905 | // Harp LP 906 | // ============================================================ 907 | { 908 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 909 | check(&sf.presets[81].regions[0], &values); 910 | } 911 | 912 | // ============================================================ 913 | // Pizzicato 914 | // ============================================================ 915 | { 916 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 917 | check(&sf.presets[82].regions[0], &values); 918 | } 919 | 920 | // ============================================================ 921 | // Contrabass 922 | // ============================================================ 923 | { 924 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 925 | check(&sf.presets[83].regions[0], &values); 926 | } 927 | 928 | // ============================================================ 929 | // Cello 930 | // ============================================================ 931 | { 932 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 933 | check(&sf.presets[84].regions[0], &values); 934 | } 935 | 936 | // ============================================================ 937 | // Viola 938 | // ============================================================ 939 | { 940 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 941 | check(&sf.presets[85].regions[0], &values); 942 | } 943 | 944 | // ============================================================ 945 | // Violin 946 | // ============================================================ 947 | { 948 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 949 | check(&sf.presets[86].regions[0], &values); 950 | } 951 | 952 | // ============================================================ 953 | // Synth Bass 2 954 | // ============================================================ 955 | { 956 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 957 | check(&sf.presets[87].regions[0], &values); 958 | } 959 | { 960 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 961 | check(&sf.presets[87].regions[1], &values); 962 | } 963 | 964 | // ============================================================ 965 | // Synth Bass 1 966 | // ============================================================ 967 | { 968 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 969 | check(&sf.presets[88].regions[0], &values); 970 | } 971 | 972 | // ============================================================ 973 | // Slap Bass 2 974 | // ============================================================ 975 | { 976 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 977 | check(&sf.presets[89].regions[0], &values); 978 | } 979 | 980 | // ============================================================ 981 | // Slap Bass 1 982 | // ============================================================ 983 | { 984 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 985 | check(&sf.presets[90].regions[0], &values); 986 | } 987 | 988 | // ============================================================ 989 | // Fretless Bass 990 | // ============================================================ 991 | { 992 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 993 | check(&sf.presets[91].regions[0], &values); 994 | } 995 | 996 | // ============================================================ 997 | // Picked Bass 998 | // ============================================================ 999 | { 1000 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1001 | check(&sf.presets[92].regions[0], &values); 1002 | } 1003 | 1004 | // ============================================================ 1005 | // Fingered Bass 1006 | // ============================================================ 1007 | { 1008 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1009 | check(&sf.presets[93].regions[0], &values); 1010 | } 1011 | 1012 | // ============================================================ 1013 | // Acoustic Bass 1014 | // ============================================================ 1015 | { 1016 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1017 | check(&sf.presets[94].regions[0], &values); 1018 | } 1019 | 1020 | // ============================================================ 1021 | // Guitar Harmonics 1022 | // ============================================================ 1023 | { 1024 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1025 | check(&sf.presets[95].regions[0], &values); 1026 | } 1027 | 1028 | // ============================================================ 1029 | // DistortionGuitar 1030 | // ============================================================ 1031 | { 1032 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1033 | check(&sf.presets[96].regions[0], &values); 1034 | } 1035 | { 1036 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1037 | check(&sf.presets[96].regions[1], &values); 1038 | } 1039 | 1040 | // ============================================================ 1041 | // Overdrive Guitar 1042 | // ============================================================ 1043 | { 1044 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1045 | check(&sf.presets[97].regions[0], &values); 1046 | } 1047 | { 1048 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1049 | check(&sf.presets[97].regions[1], &values); 1050 | } 1051 | 1052 | // ============================================================ 1053 | // Guitar Mutes 1054 | // ============================================================ 1055 | { 1056 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1057 | check(&sf.presets[98].regions[0], &values); 1058 | } 1059 | 1060 | // ============================================================ 1061 | // Clean Guitar 1062 | // ============================================================ 1063 | { 1064 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1065 | check(&sf.presets[99].regions[0], &values); 1066 | } 1067 | 1068 | // ============================================================ 1069 | // Jazz Guitar 1070 | // ============================================================ 1071 | { 1072 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1073 | check(&sf.presets[100].regions[0], &values); 1074 | } 1075 | 1076 | // ============================================================ 1077 | // Steel Guitar 1078 | // ============================================================ 1079 | { 1080 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1081 | check(&sf.presets[101].regions[0], &values); 1082 | } 1083 | 1084 | // ============================================================ 1085 | // Nylon Guitar 1086 | // ============================================================ 1087 | { 1088 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1089 | check(&sf.presets[102].regions[0], &values); 1090 | } 1091 | 1092 | // ============================================================ 1093 | // Bandoneon 1094 | // ============================================================ 1095 | { 1096 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1097 | check(&sf.presets[103].regions[0], &values); 1098 | } 1099 | { 1100 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1101 | check(&sf.presets[103].regions[1], &values); 1102 | } 1103 | 1104 | // ============================================================ 1105 | // Harmonica 1106 | // ============================================================ 1107 | { 1108 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1109 | check(&sf.presets[104].regions[0], &values); 1110 | } 1111 | 1112 | // ============================================================ 1113 | // Accordion 1114 | // ============================================================ 1115 | { 1116 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1117 | check(&sf.presets[105].regions[0], &values); 1118 | } 1119 | { 1120 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1121 | check(&sf.presets[105].regions[1], &values); 1122 | } 1123 | 1124 | // ============================================================ 1125 | // Reed Organ 1126 | // ============================================================ 1127 | { 1128 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1129 | check(&sf.presets[106].regions[0], &values); 1130 | } 1131 | { 1132 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1133 | check(&sf.presets[106].regions[1], &values); 1134 | } 1135 | 1136 | // ============================================================ 1137 | // Church Organ 1138 | // ============================================================ 1139 | { 1140 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1141 | check(&sf.presets[107].regions[0], &values); 1142 | } 1143 | { 1144 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1145 | check(&sf.presets[107].regions[1], &values); 1146 | } 1147 | 1148 | // ============================================================ 1149 | // Organ 3 1150 | // ============================================================ 1151 | { 1152 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1153 | check(&sf.presets[108].regions[0], &values); 1154 | } 1155 | { 1156 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1157 | check(&sf.presets[108].regions[1], &values); 1158 | } 1159 | 1160 | // ============================================================ 1161 | // Organ 2 1162 | // ============================================================ 1163 | { 1164 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1165 | check(&sf.presets[109].regions[0], &values); 1166 | } 1167 | 1168 | // ============================================================ 1169 | // Organ 1 1170 | // ============================================================ 1171 | { 1172 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1173 | check(&sf.presets[110].regions[0], &values); 1174 | } 1175 | 1176 | // ============================================================ 1177 | // Dulcimer 1178 | // ============================================================ 1179 | { 1180 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1181 | check(&sf.presets[111].regions[0], &values); 1182 | } 1183 | { 1184 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1185 | check(&sf.presets[111].regions[1], &values); 1186 | } 1187 | 1188 | // ============================================================ 1189 | // Tubular Bells 1190 | // ============================================================ 1191 | { 1192 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1193 | check(&sf.presets[112].regions[0], &values); 1194 | } 1195 | 1196 | // ============================================================ 1197 | // Xylophone 1198 | // ============================================================ 1199 | { 1200 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1201 | check(&sf.presets[113].regions[0], &values); 1202 | } 1203 | { 1204 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1205 | check(&sf.presets[113].regions[1], &values); 1206 | } 1207 | { 1208 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1209 | check(&sf.presets[113].regions[2], &values); 1210 | } 1211 | { 1212 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1213 | check(&sf.presets[113].regions[3], &values); 1214 | } 1215 | 1216 | // ============================================================ 1217 | // Marimba 1218 | // ============================================================ 1219 | { 1220 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1221 | check(&sf.presets[114].regions[0], &values); 1222 | } 1223 | 1224 | // ============================================================ 1225 | // Vibraphone 1226 | // ============================================================ 1227 | { 1228 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1229 | check(&sf.presets[115].regions[0], &values); 1230 | } 1231 | 1232 | // ============================================================ 1233 | // MusicBox 1234 | // ============================================================ 1235 | { 1236 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1237 | check(&sf.presets[116].regions[0], &values); 1238 | } 1239 | 1240 | // ============================================================ 1241 | // Glockenspiel 1242 | // ============================================================ 1243 | { 1244 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1245 | check(&sf.presets[117].regions[0], &values); 1246 | } 1247 | 1248 | // ============================================================ 1249 | // Celesta 1250 | // ============================================================ 1251 | { 1252 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1253 | check(&sf.presets[118].regions[0], &values); 1254 | } 1255 | 1256 | // ============================================================ 1257 | // Clavinet 1258 | // ============================================================ 1259 | { 1260 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1261 | check(&sf.presets[119].regions[0], &values); 1262 | } 1263 | 1264 | // ============================================================ 1265 | // Harpsichord 1266 | // ============================================================ 1267 | { 1268 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1269 | check(&sf.presets[120].regions[0], &values); 1270 | } 1271 | 1272 | // ============================================================ 1273 | // E.Piano 2 1274 | // ============================================================ 1275 | { 1276 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1277 | check(&sf.presets[121].regions[0], &values); 1278 | } 1279 | 1280 | // ============================================================ 1281 | // E.Piano 1 1282 | // ============================================================ 1283 | { 1284 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1285 | check(&sf.presets[122].regions[0], &values); 1286 | } 1287 | { 1288 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1289 | check(&sf.presets[122].regions[1], &values); 1290 | } 1291 | 1292 | // ============================================================ 1293 | // Honky Tonk 1294 | // ============================================================ 1295 | { 1296 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1297 | check(&sf.presets[123].regions[0], &values); 1298 | } 1299 | { 1300 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1301 | check(&sf.presets[123].regions[1], &values); 1302 | } 1303 | 1304 | // ============================================================ 1305 | // Piano 3 1306 | // ============================================================ 1307 | { 1308 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1309 | check(&sf.presets[124].regions[0], &values); 1310 | } 1311 | { 1312 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1313 | check(&sf.presets[124].regions[1], &values); 1314 | } 1315 | 1316 | // ============================================================ 1317 | // Piano 2 1318 | // ============================================================ 1319 | { 1320 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1321 | check(&sf.presets[125].regions[0], &values); 1322 | } 1323 | 1324 | // ============================================================ 1325 | // Piano 1 1326 | // ============================================================ 1327 | { 1328 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1329 | check(&sf.presets[126].regions[0], &values); 1330 | } 1331 | 1332 | // ============================================================ 1333 | // BariSax (TB) v2.3 1334 | // ============================================================ 1335 | { 1336 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1337 | check(&sf.presets[127].regions[0], &values); 1338 | } 1339 | 1340 | // ============================================================ 1341 | // Tenor Sax (TB) v2.3 1342 | // ============================================================ 1343 | { 1344 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1345 | check(&sf.presets[128].regions[0], &values); 1346 | } 1347 | 1348 | // ============================================================ 1349 | // AltoSax (TB) v2.3 1350 | // ============================================================ 1351 | { 1352 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1353 | check(&sf.presets[129].regions[0], &values); 1354 | } 1355 | 1356 | // ============================================================ 1357 | // SopSax (TB) v2.3 1358 | // ============================================================ 1359 | { 1360 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1361 | check(&sf.presets[130].regions[0], &values); 1362 | } 1363 | 1364 | // ============================================================ 1365 | // Choir Aahs 1366 | // ============================================================ 1367 | { 1368 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1369 | check(&sf.presets[131].regions[0], &values); 1370 | } 1371 | { 1372 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1373 | check(&sf.presets[131].regions[1], &values); 1374 | } 1375 | { 1376 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1377 | check(&sf.presets[131].regions[2], &values); 1378 | } 1379 | 1380 | // ============================================================ 1381 | // Synth Strings 1 1382 | // ============================================================ 1383 | { 1384 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1385 | check(&sf.presets[132].regions[0], &values); 1386 | } 1387 | { 1388 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1389 | check(&sf.presets[132].regions[1], &values); 1390 | } 1391 | 1392 | // ============================================================ 1393 | // Slow Strings LP 1394 | // ============================================================ 1395 | { 1396 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1397 | check(&sf.presets[133].regions[0], &values); 1398 | } 1399 | { 1400 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1401 | check(&sf.presets[133].regions[1], &values); 1402 | } 1403 | { 1404 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1405 | check(&sf.presets[133].regions[2], &values); 1406 | } 1407 | { 1408 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1409 | check(&sf.presets[133].regions[3], &values); 1410 | } 1411 | { 1412 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1413 | check(&sf.presets[133].regions[4], &values); 1414 | } 1415 | 1416 | // ============================================================ 1417 | // Strings CLP 1418 | // ============================================================ 1419 | { 1420 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1421 | check(&sf.presets[134].regions[0], &values); 1422 | } 1423 | { 1424 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1425 | check(&sf.presets[134].regions[1], &values); 1426 | } 1427 | { 1428 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1429 | check(&sf.presets[134].regions[2], &values); 1430 | } 1431 | { 1432 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1433 | check(&sf.presets[134].regions[3], &values); 1434 | } 1435 | { 1436 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1437 | check(&sf.presets[134].regions[4], &values); 1438 | } 1439 | { 1440 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1441 | check(&sf.presets[134].regions[5], &values); 1442 | } 1443 | 1444 | // ============================================================ 1445 | // Strings (Tremelo) 1446 | // ============================================================ 1447 | { 1448 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1449 | check(&sf.presets[135].regions[0], &values); 1450 | } 1451 | { 1452 | const values = [_]f64{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 127, 0, 127, 0, 0, 0, 0 }; 1453 | check(&sf.presets[135].regions[1], &values); 1454 | } 1455 | } 1456 | -------------------------------------------------------------------------------- /src/test_timgm6mb_sample.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | const debug = std.debug; 3 | const ziggysynth = @import("ziggysynth.zig"); 4 | const SoundFont = ziggysynth.SoundFont; 5 | const SampleHeader = ziggysynth.SampleHeader; 6 | 7 | fn check(sample: *const SampleHeader, values: *const [7]i32) void { 8 | debug.assert(sample.start == values[0]); 9 | debug.assert(sample.end == values[1]); 10 | debug.assert(sample.start_loop == values[2]); 11 | debug.assert(sample.end_loop == values[3]); 12 | debug.assert(sample.sample_rate == values[4]); 13 | debug.assert(sample.original_pitch == values[5]); 14 | debug.assert(sample.pitch_correction == values[6]); 15 | } 16 | 17 | test "TimGM6mb Sample" { 18 | var da = std.heap.DebugAllocator(.{}){}; 19 | const allocator = da.allocator(); 20 | defer debug.assert(da.deinit() == .ok); 21 | 22 | var file = try std.fs.cwd().openFile("TimGM6mb.sf2", .{}); 23 | defer file.close(); 24 | 25 | var sf = try SoundFont.init(allocator, file.reader()); 26 | defer sf.deinit(); 27 | 28 | // FluteG6 29 | { 30 | const values = [_]i32{ 0, 9320, 3924, 7954, 22500, 79, 43 }; 31 | check(&sf.sample_headers[0], &values); 32 | } 33 | // FluteA#6 34 | { 35 | const values = [_]i32{ 9352, 22108, 17929, 22086, 22500, 82, 47 }; 36 | check(&sf.sample_headers[1], &values); 37 | } 38 | // FluteB7 39 | { 40 | const values = [_]i32{ 22140, 32262, 27982, 31880, 22500, 95, -21 }; 41 | check(&sf.sample_headers[2], &values); 42 | } 43 | // FluteC#6 44 | { 45 | const values = [_]i32{ 32294, 45270, 41064, 45256, 22500, 73, 33 }; 46 | check(&sf.sample_headers[3], &values); 47 | } 48 | // FluteD#7 49 | { 50 | const values = [_]i32{ 45302, 53339, 49229, 53327, 22500, 87, 46 }; 51 | check(&sf.sample_headers[4], &values); 52 | } 53 | // FluteD5 54 | { 55 | const values = [_]i32{ 53371, 63368, 58637, 62875, 22500, 62, 49 }; 56 | check(&sf.sample_headers[5], &values); 57 | } 58 | // FluteE5 59 | { 60 | const values = [_]i32{ 63400, 78940, 74639, 78815, 22500, 64, 49 }; 61 | check(&sf.sample_headers[6], &values); 62 | } 63 | // FluteF8 64 | { 65 | const values = [_]i32{ 78972, 88246, 85302, 88227, 22500, 101, 30 }; 66 | check(&sf.sample_headers[7], &values); 67 | } 68 | // FluteG5 69 | { 70 | const values = [_]i32{ 88278, 100550, 96382, 100530, 22500, 67, 31 }; 71 | check(&sf.sample_headers[8], &values); 72 | } 73 | // FluteA#5 74 | { 75 | const values = [_]i32{ 100582, 116509, 112327, 116476, 22500, 69, -47 }; 76 | check(&sf.sample_headers[9], &values); 77 | } 78 | // whistle 79 | { 80 | const values = [_]i32{ 116541, 122400, 121936, 122392, 44642, 79, 0 }; 81 | check(&sf.sample_headers[10], &values); 82 | } 83 | // HarpG#5 84 | { 85 | const values = [_]i32{ 122432, 123379, 123268, 123371, 44100, 68, -50 }; 86 | check(&sf.sample_headers[11], &values); 87 | } 88 | // HarpF6 89 | { 90 | const values = [_]i32{ 123411, 124011, 123940, 124003, 44100, 77, -1 }; 91 | check(&sf.sample_headers[12], &values); 92 | } 93 | // HarpD#7 94 | { 95 | const values = [_]i32{ 124043, 124965, 124922, 124957, 44100, 87, -18 }; 96 | check(&sf.sample_headers[13], &values); 97 | } 98 | // StringW 99 | { 100 | const values = [_]i32{ 124997, 125355, 125337, 125347, 44100, 109, 13 }; 101 | check(&sf.sample_headers[14], &values); 102 | } 103 | // IceRain 104 | { 105 | const values = [_]i32{ 125387, 156471, 130152, 156459, 17857, 60, 0 }; 106 | check(&sf.sample_headers[15], &values); 107 | } 108 | // OceanWaves 109 | { 110 | const values = [_]i32{ 156503, 192873, 175208, 192838, 22500, 78, 50 }; 111 | check(&sf.sample_headers[16], &values); 112 | } 113 | // Bird 114 | { 115 | const values = [_]i32{ 192905, 206623, 199764, 206622, 11025, 41, 0 }; 116 | check(&sf.sample_headers[17], &values); 117 | } 118 | // TrumpC5 119 | { 120 | const values = [_]i32{ 206655, 224498, 220322, 224419, 22050, 60, -16 }; 121 | check(&sf.sample_headers[18], &values); 122 | } 123 | // TrumpD#5 124 | { 125 | const values = [_]i32{ 224530, 250660, 246288, 250660, 22050, 63, -9 }; 126 | check(&sf.sample_headers[19], &values); 127 | } 128 | // TrumpG5 129 | { 130 | const values = [_]i32{ 250692, 271027, 266840, 271026, 22050, 67, -10 }; 131 | check(&sf.sample_headers[20], &values); 132 | } 133 | // TrumpA#5 134 | { 135 | const values = [_]i32{ 271059, 289182, 285157, 289061, 22050, 70, -8 }; 136 | check(&sf.sample_headers[21], &values); 137 | } 138 | // TrumpC#6 139 | { 140 | const values = [_]i32{ 289214, 309878, 305546, 309877, 22050, 73, -19 }; 141 | check(&sf.sample_headers[22], &values); 142 | } 143 | // TrumpD#6 144 | { 145 | const values = [_]i32{ 309910, 339653, 334956, 339652, 22050, 75, -3 }; 146 | check(&sf.sample_headers[23], &values); 147 | } 148 | // TrumpG6 149 | { 150 | const values = [_]i32{ 339685, 351570, 349600, 351512, 22050, 79, -1 }; 151 | check(&sf.sample_headers[24], &values); 152 | } 153 | // musicbox 154 | { 155 | const values = [_]i32{ 351602, 366908, 360141, 366901, 22321, 60, 7 }; 156 | check(&sf.sample_headers[25], &values); 157 | } 158 | // Shakuhachi 159 | { 160 | const values = [_]i32{ 366940, 382314, 382281, 382309, 22050, 79, 0 }; 161 | check(&sf.sample_headers[26], &values); 162 | } 163 | // Oboe C# 164 | { 165 | const values = [_]i32{ 382346, 409355, 404485, 409350, 22050, 61, 0 }; 166 | check(&sf.sample_headers[27], &values); 167 | } 168 | // Oboe F# 169 | { 170 | const values = [_]i32{ 409387, 435737, 431255, 435732, 22050, 66, 0 }; 171 | check(&sf.sample_headers[28], &values); 172 | } 173 | // Oboe A# 174 | { 175 | const values = [_]i32{ 435769, 454895, 450290, 454890, 22050, 70, 0 }; 176 | check(&sf.sample_headers[29], &values); 177 | } 178 | // Oboe E5 179 | { 180 | const values = [_]i32{ 454927, 480476, 476381, 480471, 22050, 76, 0 }; 181 | check(&sf.sample_headers[30], &values); 182 | } 183 | // Oboe A5 184 | { 185 | const values = [_]i32{ 480508, 504073, 499809, 504068, 22050, 81, 0 }; 186 | check(&sf.sample_headers[31], &values); 187 | } 188 | // Oboe C6 189 | { 190 | const values = [_]i32{ 504105, 524199, 519553, 524194, 22050, 84, 0 }; 191 | check(&sf.sample_headers[32], &values); 192 | } 193 | // Yolo Ob 194 | { 195 | const values = [_]i32{ 524231, 532789, 531593, 532770, 22050, 92, -28 }; 196 | check(&sf.sample_headers[33], &values); 197 | } 198 | // TubeBell 199 | { 200 | const values = [_]i32{ 532821, 568470, 557857, 568453, 22500, 84, 11 }; 201 | check(&sf.sample_headers[34], &values); 202 | } 203 | // Acoustic Bass A51 204 | { 205 | const values = [_]i32{ 568502, 568789, 568769, 568781, 44100, 106, 29 }; 206 | check(&sf.sample_headers[35], &values); 207 | } 208 | // Acoustic Bass A11 209 | { 210 | const values = [_]i32{ 568821, 574032, 573824, 574024, 44100, 60, 0 }; 211 | check(&sf.sample_headers[36], &values); 212 | } 213 | // Acoustic Bass A31 214 | { 215 | const values = [_]i32{ 574064, 575094, 575045, 575086, 44100, 60, 0 }; 216 | check(&sf.sample_headers[37], &values); 217 | } 218 | // Gun Shot 219 | { 220 | const values = [_]i32{ 575126, 579693, 579220, 579691, 11025, 60, 0 }; 221 | check(&sf.sample_headers[38], &values); 222 | } 223 | // Piano Gb5 224 | { 225 | const values = [_]i32{ 579725, 585453, 585280, 585449, 22050, 60, 0 }; 226 | check(&sf.sample_headers[39], &values); 227 | } 228 | // Piano C5 229 | { 230 | const values = [_]i32{ 585485, 593161, 592966, 593157, 22050, 60, 0 }; 231 | check(&sf.sample_headers[40], &values); 232 | } 233 | // Piano Db4 234 | { 235 | const values = [_]i32{ 593193, 606150, 605641, 606146, 22050, 60, 0 }; 236 | check(&sf.sample_headers[41], &values); 237 | } 238 | // Piano Ab3 239 | { 240 | const values = [_]i32{ 606182, 619708, 619530, 619704, 22050, 60, 0 }; 241 | check(&sf.sample_headers[42], &values); 242 | } 243 | // Piano Db3 244 | { 245 | const values = [_]i32{ 619740, 630818, 630352, 630814, 22050, 60, 0 }; 246 | check(&sf.sample_headers[43], &values); 247 | } 248 | // Piano Ab2 249 | { 250 | const values = [_]i32{ 630850, 644566, 641179, 644561, 22050, 60, 0 }; 251 | check(&sf.sample_headers[44], &values); 252 | } 253 | // Piano Db2 254 | { 255 | const values = [_]i32{ 644598, 652164, 649968, 652160, 22050, 60, 0 }; 256 | check(&sf.sample_headers[45], &values); 257 | } 258 | // Piano Gb1 259 | { 260 | const values = [_]i32{ 652196, 661532, 658320, 661528, 22050, 60, 0 }; 261 | check(&sf.sample_headers[46], &values); 262 | } 263 | // Piano D1 264 | { 265 | const values = [_]i32{ 661564, 670903, 669211, 670900, 22050, 60, 0 }; 266 | check(&sf.sample_headers[47], &values); 267 | } 268 | // Brush Snare 269 | { 270 | const values = [_]i32{ 670935, 673387, 670938, 673380, 44100, 60, 0 }; 271 | check(&sf.sample_headers[48], &values); 272 | } 273 | // Cowbell 808 274 | { 275 | const values = [_]i32{ 673419, 674407, 674256, 674400, 44100, 70, 35 }; 276 | check(&sf.sample_headers[49], &values); 277 | } 278 | // 808 Hat 279 | { 280 | const values = [_]i32{ 674439, 679618, 678015, 679610, 44100, 60, 0 }; 281 | check(&sf.sample_headers[50], &values); 282 | } 283 | // 808 Click 284 | { 285 | const values = [_]i32{ 679650, 680452, 679653, 680445, 44100, 48, 50 }; 286 | check(&sf.sample_headers[51], &values); 287 | } 288 | // 808 Snare 289 | { 290 | const values = [_]i32{ 680484, 682864, 680487, 682857, 44100, 60, 0 }; 291 | check(&sf.sample_headers[52], &values); 292 | } 293 | // Sine Wave 294 | { 295 | const values = [_]i32{ 682896, 683035, 682961, 683027, 44100, 60, 0 }; 296 | check(&sf.sample_headers[53], &values); 297 | } 298 | // E Snare 299 | { 300 | const values = [_]i32{ 683067, 687595, 683070, 687588, 44100, 50, -18 }; 301 | check(&sf.sample_headers[54], &values); 302 | } 303 | // Kick Verb 304 | { 305 | const values = [_]i32{ 687627, 689392, 687630, 689385, 44100, 66, 35 }; 306 | check(&sf.sample_headers[55], &values); 307 | } 308 | // Snare Verb 309 | { 310 | const values = [_]i32{ 689424, 696260, 689427, 696253, 44100, 60, 0 }; 311 | check(&sf.sample_headers[56], &values); 312 | } 313 | // Ride Ping 314 | { 315 | const values = [_]i32{ 696292, 704898, 698209, 704890, 44100, 60, 0 }; 316 | check(&sf.sample_headers[57], &values); 317 | } 318 | // ChinaCrashCymb 319 | { 320 | const values = [_]i32{ 704930, 709544, 706242, 709540, 22050, 60, 0 }; 321 | check(&sf.sample_headers[58], &values); 322 | } 323 | // Castanets 324 | { 325 | const values = [_]i32{ 709576, 712420, 709579, 712413, 44100, 60, 0 }; 326 | check(&sf.sample_headers[59], &values); 327 | } 328 | // Bell Tree 329 | { 330 | const values = [_]i32{ 712452, 723261, 722469, 723253, 44100, 60, 0 }; 331 | check(&sf.sample_headers[60], &values); 332 | } 333 | // Sleigh Bells 334 | { 335 | const values = [_]i32{ 723293, 730015, 727862, 730007, 44100, 60, 0 }; 336 | check(&sf.sample_headers[61], &values); 337 | } 338 | // TriangleWave Db5 339 | { 340 | const values = [_]i32{ 730047, 732115, 730379, 732107, 44100, 60, 0 }; 341 | check(&sf.sample_headers[62], &values); 342 | } 343 | // Mute Triangle 344 | { 345 | const values = [_]i32{ 732147, 734409, 732150, 734402, 44100, 60, 0 }; 346 | check(&sf.sample_headers[63], &values); 347 | } 348 | // Quica Downstroke 349 | { 350 | const values = [_]i32{ 734441, 737497, 734444, 737490, 44100, 60, 0 }; 351 | check(&sf.sample_headers[64], &values); 352 | } 353 | // Quica Hi Tone 354 | { 355 | const values = [_]i32{ 737529, 740986, 737532, 740979, 44100, 60, 0 }; 356 | check(&sf.sample_headers[65], &values); 357 | } 358 | // Rosewood Claves 359 | { 360 | const values = [_]i32{ 741018, 743133, 741021, 743126, 44100, 60, 0 }; 361 | check(&sf.sample_headers[66], &values); 362 | } 363 | // Guiro Up 364 | { 365 | const values = [_]i32{ 743165, 750070, 743168, 745723, 44100, 60, 0 }; 366 | check(&sf.sample_headers[67], &values); 367 | } 368 | // Guiro Down 369 | { 370 | const values = [_]i32{ 750102, 753505, 750105, 753498, 44100, 60, 0 }; 371 | check(&sf.sample_headers[68], &values); 372 | } 373 | // Samba Whistle 374 | { 375 | const values = [_]i32{ 753537, 754832, 753644, 754824, 44100, 60, 0 }; 376 | check(&sf.sample_headers[69], &values); 377 | } 378 | // Maracas 379 | { 380 | const values = [_]i32{ 754864, 757297, 754867, 757290, 44100, 60, 0 }; 381 | check(&sf.sample_headers[70], &values); 382 | } 383 | // Cabasa 384 | { 385 | const values = [_]i32{ 757329, 759861, 757332, 759854, 44100, 60, 0 }; 386 | check(&sf.sample_headers[71], &values); 387 | } 388 | // Timbale Strike 389 | { 390 | const values = [_]i32{ 759893, 769098, 768250, 769090, 44100, 60, 0 }; 391 | check(&sf.sample_headers[72], &values); 392 | } 393 | // Timbale Rimshot 394 | { 395 | const values = [_]i32{ 769130, 777857, 777032, 777849, 44100, 60, 0 }; 396 | check(&sf.sample_headers[73], &values); 397 | } 398 | // Low Tumba Tone 399 | { 400 | const values = [_]i32{ 777889, 782950, 782209, 782942, 44100, 60, 0 }; 401 | check(&sf.sample_headers[74], &values); 402 | } 403 | // Quinto Tone 404 | { 405 | const values = [_]i32{ 782982, 789026, 788234, 789018, 44100, 60, 0 }; 406 | check(&sf.sample_headers[75], &values); 407 | } 408 | // QuintoClosedSlap 409 | { 410 | const values = [_]i32{ 789058, 792435, 789061, 792428, 44100, 60, 0 }; 411 | check(&sf.sample_headers[76], &values); 412 | } 413 | // M Bongo Tone 414 | { 415 | const values = [_]i32{ 792467, 795381, 795292, 795373, 44100, 60, 0 }; 416 | check(&sf.sample_headers[77], &values); 417 | } 418 | // E Bongo Rim 419 | { 420 | const values = [_]i32{ 795413, 800212, 795416, 798044, 44100, 60, 0 }; 421 | check(&sf.sample_headers[78], &values); 422 | } 423 | // Vibra Loop 424 | { 425 | const values = [_]i32{ 800244, 802914, 800409, 802906, 44100, 60, 0 }; 426 | check(&sf.sample_headers[79], &values); 427 | } 428 | // Cowbell 429 | { 430 | const values = [_]i32{ 802946, 805300, 804452, 804875, 44100, 60, 0 }; 431 | check(&sf.sample_headers[80], &values); 432 | } 433 | // Brass Tambourine 434 | { 435 | const values = [_]i32{ 805332, 809220, 808229, 809212, 44100, 60, 0 }; 436 | check(&sf.sample_headers[81], &values); 437 | } 438 | // Open High Hat 439 | { 440 | const values = [_]i32{ 809252, 819586, 814767, 819582, 22050, 60, 0 }; 441 | check(&sf.sample_headers[82], &values); 442 | } 443 | // High Hat Foot 444 | { 445 | const values = [_]i32{ 819618, 821916, 819621, 821909, 44100, 60, 0 }; 446 | check(&sf.sample_headers[83], &values); 447 | } 448 | // High Hat Closed 449 | { 450 | const values = [_]i32{ 821948, 824551, 821951, 824544, 44100, 60, 0 }; 451 | check(&sf.sample_headers[84], &values); 452 | } 453 | // Snare 2 454 | { 455 | const values = [_]i32{ 824583, 831386, 824586, 831379, 44100, 60, 0 }; 456 | check(&sf.sample_headers[85], &values); 457 | } 458 | // Claps 808ish 459 | { 460 | const values = [_]i32{ 831418, 835148, 831421, 835141, 44100, 60, 0 }; 461 | check(&sf.sample_headers[86], &values); 462 | } 463 | // Snare 1 464 | { 465 | const values = [_]i32{ 835180, 840580, 835183, 840573, 44100, 60, 0 }; 466 | check(&sf.sample_headers[87], &values); 467 | } 468 | // Rim Shot 469 | { 470 | const values = [_]i32{ 840612, 844271, 840615, 844264, 44100, 60, 0 }; 471 | check(&sf.sample_headers[88], &values); 472 | } 473 | // Ride Bell 474 | { 475 | const values = [_]i32{ 844303, 855765, 853099, 855760, 22050, 60, 0 }; 476 | check(&sf.sample_headers[89], &values); 477 | } 478 | // Bass Drum New 479 | { 480 | const values = [_]i32{ 855797, 857693, 855800, 857686, 44100, 60, 0 }; 481 | check(&sf.sample_headers[90], &values); 482 | } 483 | // Met Click 484 | { 485 | const values = [_]i32{ 857725, 859148, 857728, 859141, 44100, 60, 0 }; 486 | check(&sf.sample_headers[91], &values); 487 | } 488 | // Sinetick 489 | { 490 | const values = [_]i32{ 859180, 859252, 859183, 859244, 44100, 60, 0 }; 491 | check(&sf.sample_headers[92], &values); 492 | } 493 | // Drum Stick 494 | { 495 | const values = [_]i32{ 859284, 861859, 859287, 861852, 44100, 60, 0 }; 496 | check(&sf.sample_headers[93], &values); 497 | } 498 | // Scratch 499 | { 500 | const values = [_]i32{ 861891, 864392, 861894, 864384, 44100, 60, 0 }; 501 | check(&sf.sample_headers[94], &values); 502 | } 503 | // Noise Slap 504 | { 505 | const values = [_]i32{ 864424, 869097, 864427, 869090, 44100, 60, 0 }; 506 | check(&sf.sample_headers[95], &values); 507 | } 508 | // Filter Snap 509 | { 510 | const values = [_]i32{ 869129, 869730, 869132, 869723, 44100, 60, 0 }; 511 | check(&sf.sample_headers[96], &values); 512 | } 513 | // Applause 514 | { 515 | const values = [_]i32{ 869762, 874108, 869762, 874106, 11025, 60, 0 }; 516 | check(&sf.sample_headers[97], &values); 517 | } 518 | // Helicopter 519 | { 520 | const values = [_]i32{ 874140, 878305, 874143, 878297, 44100, 112, -24 }; 521 | check(&sf.sample_headers[98], &values); 522 | } 523 | // Telephone 524 | { 525 | const values = [_]i32{ 878337, 880304, 878410, 880296, 44100, 88, 17 }; 526 | check(&sf.sample_headers[99], &values); 527 | } 528 | // Bird - Sparrow 529 | { 530 | const values = [_]i32{ 880336, 885771, 882637, 885763, 44100, 60, 0 }; 531 | check(&sf.sample_headers[100], &values); 532 | } 533 | // Ocean Wave 534 | { 535 | const values = [_]i32{ 885803, 889463, 885878, 889460, 11025, 41, -1 }; 536 | check(&sf.sample_headers[101], &values); 537 | } 538 | // FretNoise 539 | { 540 | const values = [_]i32{ 889495, 892912, 889498, 892904, 44100, 78, 24 }; 541 | check(&sf.sample_headers[102], &values); 542 | } 543 | // Med Crash Cymbal 544 | { 545 | const values = [_]i32{ 892944, 906176, 899686, 906121, 22050, 60, 0 }; 546 | check(&sf.sample_headers[103], &values); 547 | } 548 | // Syn Drum Wave 549 | { 550 | const values = [_]i32{ 906208, 911488, 911397, 911480, 44100, 60, 0 }; 551 | check(&sf.sample_headers[104], &values); 552 | } 553 | // Acoustic Tom 554 | { 555 | const values = [_]i32{ 911520, 917458, 916884, 917454, 22050, 60, 0 }; 556 | check(&sf.sample_headers[105], &values); 557 | } 558 | // Taiko Drum 559 | { 560 | const values = [_]i32{ 917490, 923918, 922740, 923910, 44100, 60, 0 }; 561 | check(&sf.sample_headers[106], &values); 562 | } 563 | // Wood Block 564 | { 565 | const values = [_]i32{ 923950, 925653, 923953, 925646, 44100, 60, 0 }; 566 | check(&sf.sample_headers[107], &values); 567 | } 568 | // SteelDrum D5 569 | { 570 | const values = [_]i32{ 925685, 927742, 927509, 927734, 44100, 60, 0 }; 571 | check(&sf.sample_headers[108], &values); 572 | } 573 | // SteelDrum D1 574 | { 575 | const values = [_]i32{ 927774, 935445, 934923, 935437, 44100, 60, 0 }; 576 | check(&sf.sample_headers[109], &values); 577 | } 578 | // Agogo Bell 579 | { 580 | const values = [_]i32{ 935477, 940418, 940076, 940410, 44100, 60, 0 }; 581 | check(&sf.sample_headers[110], &values); 582 | } 583 | // Carillon C6 584 | { 585 | const values = [_]i32{ 940450, 944574, 943888, 944566, 44100, 60, 0 }; 586 | check(&sf.sample_headers[111], &values); 587 | } 588 | // Shenai D6 589 | { 590 | const values = [_]i32{ 944606, 944875, 944856, 944867, 44100, 107, -21 }; 591 | check(&sf.sample_headers[112], &values); 592 | } 593 | // Shenai D4 594 | { 595 | const values = [_]i32{ 944907, 945774, 945730, 945766, 44100, 60, 0 }; 596 | check(&sf.sample_headers[113], &values); 597 | } 598 | // Shenai A#3 599 | { 600 | const values = [_]i32{ 945806, 946617, 946564, 946609, 44100, 83, 16 }; 601 | check(&sf.sample_headers[114], &values); 602 | } 603 | // Shenai F#3 604 | { 605 | const values = [_]i32{ 946649, 947282, 947218, 947274, 44100, 79, -4 }; 606 | check(&sf.sample_headers[115], &values); 607 | } 608 | // Shenai D3 609 | { 610 | const values = [_]i32{ 947314, 948011, 947932, 948003, 44100, 75, 7 }; 611 | check(&sf.sample_headers[116], &values); 612 | } 613 | // Shenai C3 614 | { 615 | const values = [_]i32{ 948043, 948665, 948563, 948657, 44100, 70, -7 }; 616 | check(&sf.sample_headers[117], &values); 617 | } 618 | // Bag Drone A1 619 | { 620 | const values = [_]i32{ 948697, 950827, 950619, 950819, 44100, 57, -4 }; 621 | check(&sf.sample_headers[118], &values); 622 | } 623 | // Bagpipe Wave Bb5 624 | { 625 | const values = [_]i32{ 950859, 950890, 950870, 950882, 44100, 60, 0 }; 626 | check(&sf.sample_headers[119], &values); 627 | } 628 | // Bagpipe Wave Bb3 629 | { 630 | const values = [_]i32{ 950922, 951056, 950991, 951048, 44100, 60, 0 }; 631 | check(&sf.sample_headers[120], &values); 632 | } 633 | // BagDroneWave A1 634 | { 635 | const values = [_]i32{ 951088, 951360, 951107, 951352, 44100, 53, -48 }; 636 | check(&sf.sample_headers[121], &values); 637 | } 638 | // Bagpipe Bb5 639 | { 640 | const values = [_]i32{ 951392, 952025, 952005, 952017, 44100, 60, 0 }; 641 | check(&sf.sample_headers[122], &values); 642 | } 643 | // Bagpipe Bb3 644 | { 645 | const values = [_]i32{ 952057, 955056, 954991, 955048, 44100, 60, 0 }; 646 | check(&sf.sample_headers[123], &values); 647 | } 648 | // Kalimba C5 649 | { 650 | const values = [_]i32{ 955088, 956279, 956219, 956271, 44100, 60, 0 }; 651 | check(&sf.sample_headers[124], &values); 652 | } 653 | // Kalimba C3 654 | { 655 | const values = [_]i32{ 956311, 960744, 960568, 960736, 44100, 60, 0 }; 656 | check(&sf.sample_headers[125], &values); 657 | } 658 | // Koto Ab5 659 | { 660 | const values = [_]i32{ 960776, 961333, 961313, 961325, 44100, 60, 0 }; 661 | check(&sf.sample_headers[126], &values); 662 | } 663 | // Koto G3 664 | { 665 | const values = [_]i32{ 961365, 964143, 964077, 964135, 44100, 78, -43 }; 666 | check(&sf.sample_headers[127], &values); 667 | } 668 | // Koto D3 669 | { 670 | const values = [_]i32{ 964175, 966322, 966236, 966314, 44100, 73, -31 }; 671 | check(&sf.sample_headers[128], &values); 672 | } 673 | // Koto G2 674 | { 675 | const values = [_]i32{ 966354, 969546, 969421, 969538, 44100, 66, -29 }; 676 | check(&sf.sample_headers[129], &values); 677 | } 678 | // Shamison A3 679 | { 680 | const values = [_]i32{ 969578, 971897, 971839, 971889, 44100, 60, 0 }; 681 | check(&sf.sample_headers[130], &values); 682 | } 683 | // Shamison Eb3 684 | { 685 | const values = [_]i32{ 971929, 974089, 974010, 974081, 44100, 75, 7 }; 686 | check(&sf.sample_headers[131], &values); 687 | } 688 | // Shamison Bb2 689 | { 690 | const values = [_]i32{ 974121, 976624, 976522, 976616, 44100, 70, -7 }; 691 | check(&sf.sample_headers[132], &values); 692 | } 693 | // Shamison F2 694 | { 695 | const values = [_]i32{ 976656, 979642, 979508, 979634, 44100, 65, -1 }; 696 | check(&sf.sample_headers[133], &values); 697 | } 698 | // Banjo F6 699 | { 700 | const values = [_]i32{ 979674, 979846, 979828, 979838, 44100, 60, 0 }; 701 | check(&sf.sample_headers[134], &values); 702 | } 703 | // Banjo F5 704 | { 705 | const values = [_]i32{ 979878, 980382, 980358, 980374, 44100, 60, 0 }; 706 | check(&sf.sample_headers[135], &values); 707 | } 708 | // Banjo B2 709 | { 710 | const values = [_]i32{ 980414, 985209, 984608, 984709, 44100, 60, 0 }; 711 | check(&sf.sample_headers[136], &values); 712 | } 713 | // Banjo F3 714 | { 715 | const values = [_]i32{ 985241, 988589, 988510, 988581, 44100, 60, 0 }; 716 | check(&sf.sample_headers[137], &values); 717 | } 718 | // Sitar Eb6 719 | { 720 | const values = [_]i32{ 988621, 988887, 988869, 988879, 44100, 60, 0 }; 721 | check(&sf.sample_headers[138], &values); 722 | } 723 | // Sitar C5 724 | { 725 | const values = [_]i32{ 988919, 990053, 989912, 990045, 44100, 60, 0 }; 726 | check(&sf.sample_headers[139], &values); 727 | } 728 | // Sitar Eb3 729 | { 730 | const values = [_]i32{ 990085, 995155, 994632, 995147, 44100, 60, 0 }; 731 | check(&sf.sample_headers[140], &values); 732 | } 733 | // Spectrum D#5 734 | { 735 | const values = [_]i32{ 995187, 1000066, 995250, 1000058, 44100, 60, 0 }; 736 | check(&sf.sample_headers[141], &values); 737 | } 738 | // Solo Vox C7 739 | { 740 | const values = [_]i32{ 1000098, 1001449, 1000250, 1001441, 44100, 60, 0 }; 741 | check(&sf.sample_headers[142], &values); 742 | } 743 | // Solo Vox C4 744 | { 745 | const values = [_]i32{ 1001481, 1012620, 1001595, 1012612, 44100, 60, 0 }; 746 | check(&sf.sample_headers[143], &values); 747 | } 748 | // Square Wave C7 749 | { 750 | const values = [_]i32{ 1012652, 1012688, 1012670, 1012680, 44100, 60, 0 }; 751 | check(&sf.sample_headers[144], &values); 752 | } 753 | // Square Wave C5 754 | { 755 | const values = [_]i32{ 1012720, 1012744, 1012723, 1012736, 44100, 60, 0 }; 756 | check(&sf.sample_headers[145], &values); 757 | } 758 | // Square Wave C4 759 | { 760 | const values = [_]i32{ 1012776, 1012829, 1012779, 1012821, 44100, 60, 0 }; 761 | check(&sf.sample_headers[146], &values); 762 | } 763 | // Square Wave C3 764 | { 765 | const values = [_]i32{ 1012861, 1012956, 1012864, 1012948, 44100, 60, 0 }; 766 | check(&sf.sample_headers[147], &values); 767 | } 768 | // Square Wave C2 769 | { 770 | const values = [_]i32{ 1012988, 1013167, 1012991, 1013159, 44100, 60, 0 }; 771 | check(&sf.sample_headers[148], &values); 772 | } 773 | // Square Wave C1 774 | { 775 | const values = [_]i32{ 1013199, 1013547, 1013202, 1013539, 44100, 60, 0 }; 776 | check(&sf.sample_headers[149], &values); 777 | } 778 | // Ocarina F#6 779 | { 780 | const values = [_]i32{ 1013579, 1013928, 1013910, 1013920, 44100, 109, 12 }; 781 | check(&sf.sample_headers[150], &values); 782 | } 783 | // Ocarina F#4 784 | { 785 | const values = [_]i32{ 1013960, 1016807, 1015398, 1016799, 44100, 60, 0 }; 786 | check(&sf.sample_headers[151], &values); 787 | } 788 | // Bottle Blow 789 | { 790 | const values = [_]i32{ 1016839, 1019561, 1016842, 1019554, 44100, 60, 0 }; 791 | check(&sf.sample_headers[152], &values); 792 | } 793 | // Pan Flute F6 794 | { 795 | const values = [_]i32{ 1019593, 1019886, 1019876, 1019881, 22050, 60, 0 }; 796 | check(&sf.sample_headers[153], &values); 797 | } 798 | // Pan Flute F4 799 | { 800 | const values = [_]i32{ 1019918, 1023152, 1020914, 1023148, 22050, 60, 0 }; 801 | check(&sf.sample_headers[154], &values); 802 | } 803 | // Pan Flute G3 804 | { 805 | const values = [_]i32{ 1023184, 1028410, 1025000, 1028406, 22050, 60, 0 }; 806 | check(&sf.sample_headers[155], &values); 807 | } 808 | // Recorder C6 809 | { 810 | const values = [_]i32{ 1028442, 1028891, 1028872, 1028883, 44100, 107, -22 }; 811 | check(&sf.sample_headers[156], &values); 812 | } 813 | // Recorder C4 814 | { 815 | const values = [_]i32{ 1028923, 1031143, 1031082, 1031135, 44100, 80, 0 }; 816 | check(&sf.sample_headers[157], &values); 817 | } 818 | // Piccolo D6 819 | { 820 | const values = [_]i32{ 1031175, 1032513, 1032493, 1032505, 44100, 60, 0 }; 821 | check(&sf.sample_headers[158], &values); 822 | } 823 | // Piccolo A#5 824 | { 825 | const values = [_]i32{ 1032545, 1034235, 1034212, 1034227, 44100, 102, 15 }; 826 | check(&sf.sample_headers[159], &values); 827 | } 828 | // Piccolo F#5 829 | { 830 | const values = [_]i32{ 1034267, 1036243, 1036216, 1036235, 44100, 98, 24 }; 831 | check(&sf.sample_headers[160], &values); 832 | } 833 | // Piccolo D5 834 | { 835 | const values = [_]i32{ 1036275, 1038118, 1038086, 1038110, 44100, 94, 29 }; 836 | check(&sf.sample_headers[161], &values); 837 | } 838 | // Piccolo A#4 839 | { 840 | const values = [_]i32{ 1038150, 1039862, 1039825, 1039854, 44100, 90, -44 }; 841 | check(&sf.sample_headers[162], &values); 842 | } 843 | // Bb ff Clar Gb6 844 | { 845 | const values = [_]i32{ 1039894, 1040489, 1040471, 1040481, 44100, 109, 13 }; 846 | check(&sf.sample_headers[163], &values); 847 | } 848 | // Bb ff Clar B4 849 | { 850 | const values = [_]i32{ 1040521, 1042468, 1042429, 1042460, 44100, 89, -28 }; 851 | check(&sf.sample_headers[164], &values); 852 | } 853 | // Bb ff Clar F4 854 | { 855 | const values = [_]i32{ 1042500, 1043716, 1043674, 1043708, 44100, 88, 31 }; 856 | check(&sf.sample_headers[165], &values); 857 | } 858 | // BB ff Clar D4 859 | { 860 | const values = [_]i32{ 1043748, 1045051, 1045003, 1045043, 44100, 85, 13 }; 861 | check(&sf.sample_headers[166], &values); 862 | } 863 | // Bb ff Clar B3 864 | { 865 | const values = [_]i32{ 1045083, 1046330, 1046275, 1046322, 44100, 82, -8 }; 866 | check(&sf.sample_headers[167], &values); 867 | } 868 | // Bb ff Clar F3 869 | { 870 | const values = [_]i32{ 1046362, 1047502, 1047441, 1047494, 44100, 80, 0 }; 871 | check(&sf.sample_headers[168], &values); 872 | } 873 | // Bb ff Clar D3 874 | { 875 | const values = [_]i32{ 1047534, 1049253, 1049167, 1049245, 44100, 73, -31 }; 876 | check(&sf.sample_headers[169], &values); 877 | } 878 | // Bb ff Clar G#2 879 | { 880 | const values = [_]i32{ 1049285, 1051009, 1050867, 1051001, 44100, 60, 0 }; 881 | check(&sf.sample_headers[170], &values); 882 | } 883 | // Bassoon F6 884 | { 885 | const values = [_]i32{ 1051041, 1051533, 1051515, 1051525, 44100, 60, 0 }; 886 | check(&sf.sample_headers[171], &values); 887 | } 888 | // Bassoon E5 889 | { 890 | const values = [_]i32{ 1051565, 1051975, 1051950, 1051967, 44100, 100, 32 }; 891 | check(&sf.sample_headers[172], &values); 892 | } 893 | // Bassoon E3 894 | { 895 | const values = [_]i32{ 1052007, 1053738, 1053658, 1053730, 44100, 60, 0 }; 896 | check(&sf.sample_headers[173], &values); 897 | } 898 | // Bassoon C3 899 | { 900 | const values = [_]i32{ 1053770, 1055737, 1055639, 1055729, 44100, 71, 15 }; 901 | check(&sf.sample_headers[174], &values); 902 | } 903 | // Bassoon G#2 904 | { 905 | const values = [_]i32{ 1055769, 1058558, 1058438, 1058550, 44100, 67, -5 }; 906 | check(&sf.sample_headers[175], &values); 907 | } 908 | // Bassoon E2 909 | { 910 | const values = [_]i32{ 1058590, 1060830, 1060681, 1060822, 44100, 63, -6 }; 911 | check(&sf.sample_headers[176], &values); 912 | } 913 | // Bassoon C2 914 | { 915 | const values = [_]i32{ 1060862, 1062909, 1062724, 1062901, 44100, 59, -12 }; 916 | check(&sf.sample_headers[177], &values); 917 | } 918 | // Bassoon G#1 919 | { 920 | const values = [_]i32{ 1062941, 1065070, 1064840, 1065062, 44100, 55, -20 }; 921 | check(&sf.sample_headers[178], &values); 922 | } 923 | // English Horn F4 924 | { 925 | const values = [_]i32{ 1065102, 1066587, 1066545, 1066579, 44100, 60, 0 }; 926 | check(&sf.sample_headers[179], &values); 927 | } 928 | // English Horn C#4 929 | { 930 | const values = [_]i32{ 1066619, 1067879, 1067829, 1067871, 44100, 84, -3 }; 931 | check(&sf.sample_headers[180], &values); 932 | } 933 | // English Horn A3 934 | { 935 | const values = [_]i32{ 1067911, 1069370, 1069309, 1069362, 44100, 80, 0 }; 936 | check(&sf.sample_headers[181], &values); 937 | } 938 | // English Horn G3 939 | { 940 | const values = [_]i32{ 1069402, 1070847, 1070780, 1070839, 44100, 78, -14 }; 941 | check(&sf.sample_headers[182], &values); 942 | } 943 | // English Horn D#3 944 | { 945 | const values = [_]i32{ 1070879, 1072436, 1072354, 1072428, 44100, 74, -22 }; 946 | check(&sf.sample_headers[183], &values); 947 | } 948 | // English Horn C#3 949 | { 950 | const values = [_]i32{ 1072468, 1073922, 1073831, 1073914, 44100, 72, -23 }; 951 | check(&sf.sample_headers[184], &values); 952 | } 953 | // English Horn B2 954 | { 955 | const values = [_]i32{ 1073954, 1075581, 1075480, 1075573, 44100, 70, -26 }; 956 | check(&sf.sample_headers[185], &values); 957 | } 958 | // English Horn A2 959 | { 960 | const values = [_]i32{ 1075613, 1077784, 1077672, 1077776, 44100, 68, -33 }; 961 | check(&sf.sample_headers[186], &values); 962 | } 963 | // English Horn F2 964 | { 965 | const values = [_]i32{ 1077816, 1079909, 1079758, 1079901, 44100, 63, 18 }; 966 | check(&sf.sample_headers[187], &values); 967 | } 968 | // English Horn F6 969 | { 970 | const values = [_]i32{ 1079941, 1080358, 1080340, 1080350, 44100, 60, 0 }; 971 | check(&sf.sample_headers[188], &values); 972 | } 973 | // SawBass Wave F6 974 | { 975 | const values = [_]i32{ 1080390, 1080548, 1080538, 1080543, 22050, 109, 13 }; 976 | check(&sf.sample_headers[189], &values); 977 | } 978 | // Saw Wave C6 979 | { 980 | const values = [_]i32{ 1080580, 1080596, 1080581, 1080592, 22050, 60, 0 }; 981 | check(&sf.sample_headers[190], &values); 982 | } 983 | // Saw Wave C5 984 | { 985 | const values = [_]i32{ 1080628, 1080655, 1080629, 1080650, 22050, 60, 0 }; 986 | check(&sf.sample_headers[191], &values); 987 | } 988 | // Saw Wave C4 989 | { 990 | const values = [_]i32{ 1080687, 1080735, 1080688, 1080730, 22050, 60, 0 }; 991 | check(&sf.sample_headers[192], &values); 992 | } 993 | // Saw Wave C3 994 | { 995 | const values = [_]i32{ 1080767, 1080857, 1080768, 1080852, 22050, 60, 0 }; 996 | check(&sf.sample_headers[193], &values); 997 | } 998 | // Saw Wave C2 999 | { 1000 | const values = [_]i32{ 1080889, 1081063, 1080890, 1081059, 22050, 60, 0 }; 1001 | check(&sf.sample_headers[194], &values); 1002 | } 1003 | // Saw Wave C1 1004 | { 1005 | const values = [_]i32{ 1081095, 1081438, 1081096, 1081433, 22050, 60, 0 }; 1006 | check(&sf.sample_headers[195], &values); 1007 | } 1008 | // Syn Brass C4 1009 | { 1010 | const values = [_]i32{ 1081470, 1095179, 1084222, 1095175, 22050, 60, 0 }; 1011 | check(&sf.sample_headers[196], &values); 1012 | } 1013 | // Syn Brass G2 1014 | { 1015 | const values = [_]i32{ 1095211, 1108765, 1098379, 1108760, 22050, 60, 0 }; 1016 | check(&sf.sample_headers[197], &values); 1017 | } 1018 | // Brass Gb4 1019 | { 1020 | const values = [_]i32{ 1108797, 1118715, 1111336, 1118711, 22050, 60, 0 }; 1021 | check(&sf.sample_headers[198], &values); 1022 | } 1023 | // Brass C4 1024 | { 1025 | const values = [_]i32{ 1118747, 1129005, 1121891, 1129001, 22050, 60, 0 }; 1026 | check(&sf.sample_headers[199], &values); 1027 | } 1028 | // Brass C3 1029 | { 1030 | const values = [_]i32{ 1129037, 1143108, 1133254, 1143104, 22050, 60, 0 }; 1031 | check(&sf.sample_headers[200], &values); 1032 | } 1033 | // Brass C6 1034 | { 1035 | const values = [_]i32{ 1143140, 1143825, 1143815, 1143821, 22050, 60, 0 }; 1036 | check(&sf.sample_headers[201], &values); 1037 | } 1038 | // Harmon Mute A#4 1039 | { 1040 | const values = [_]i32{ 1143857, 1146253, 1146219, 1146245, 44100, 92, -33 }; 1041 | check(&sf.sample_headers[202], &values); 1042 | } 1043 | // Harmon Mute C4 1044 | { 1045 | const values = [_]i32{ 1146285, 1149031, 1148978, 1149023, 44100, 60, 0 }; 1046 | check(&sf.sample_headers[203], &values); 1047 | } 1048 | // Harmon Mute G#3 1049 | { 1050 | const values = [_]i32{ 1149063, 1151213, 1151149, 1151205, 44100, 79, -4 }; 1051 | check(&sf.sample_headers[204], &values); 1052 | } 1053 | // Harmon Mute E3 1054 | { 1055 | const values = [_]i32{ 1151245, 1153383, 1153305, 1153375, 44100, 75, -18 }; 1056 | check(&sf.sample_headers[205], &values); 1057 | } 1058 | // Harmon Mute C3 1059 | { 1060 | const values = [_]i32{ 1153415, 1155989, 1155875, 1155981, 44100, 68, 0 }; 1061 | check(&sf.sample_headers[206], &values); 1062 | } 1063 | // Tuba C4 1064 | { 1065 | const values = [_]i32{ 1156021, 1156824, 1156777, 1156816, 44100, 60, 0 }; 1066 | check(&sf.sample_headers[207], &values); 1067 | } 1068 | // Tuba A#1 1069 | { 1070 | const values = [_]i32{ 1156856, 1159898, 1159718, 1159890, 44100, 60, 0 }; 1071 | check(&sf.sample_headers[208], &values); 1072 | } 1073 | // Tuba F#1 1074 | { 1075 | const values = [_]i32{ 1159930, 1162285, 1162061, 1162277, 44100, 56, 32 }; 1076 | check(&sf.sample_headers[209], &values); 1077 | } 1078 | // Tuba D1 1079 | { 1080 | const values = [_]i32{ 1162317, 1165062, 1164781, 1165054, 44100, 52, 38 }; 1081 | check(&sf.sample_headers[210], &values); 1082 | } 1083 | // Tuba F#0 1084 | { 1085 | const values = [_]i32{ 1165094, 1167708, 1167397, 1167700, 44100, 50, 18 }; 1086 | check(&sf.sample_headers[211], &values); 1087 | } 1088 | // Trombone C4 1089 | { 1090 | const values = [_]i32{ 1167740, 1170374, 1170321, 1170366, 44100, 60, 0 }; 1091 | check(&sf.sample_headers[212], &values); 1092 | } 1093 | // Trombone G3 1094 | { 1095 | const values = [_]i32{ 1170406, 1172724, 1172657, 1172716, 44100, 78, -14 }; 1096 | check(&sf.sample_headers[213], &values); 1097 | } 1098 | // Trombone D3 1099 | { 1100 | const values = [_]i32{ 1172756, 1175198, 1175112, 1175190, 44100, 73, -31 }; 1101 | check(&sf.sample_headers[214], &values); 1102 | } 1103 | // Trombone A2 1104 | { 1105 | const values = [_]i32{ 1175230, 1177782, 1177670, 1177774, 44100, 68, -32 }; 1106 | check(&sf.sample_headers[215], &values); 1107 | } 1108 | // Trombone E2 1109 | { 1110 | const values = [_]i32{ 1177814, 1178959, 1178814, 1178951, 44100, 64, 44 }; 1111 | check(&sf.sample_headers[216], &values); 1112 | } 1113 | // Soft Trumpet C6 1114 | { 1115 | const values = [_]i32{ 1178991, 1179176, 1179166, 1179172, 22050, 60, 0 }; 1116 | check(&sf.sample_headers[217], &values); 1117 | } 1118 | // Orch Hit C4 1119 | { 1120 | const values = [_]i32{ 1179208, 1186785, 1185478, 1185982, 22050, 60, 0 }; 1121 | check(&sf.sample_headers[218], &values); 1122 | } 1123 | // Doo C6 1124 | { 1125 | const values = [_]i32{ 1186817, 1187851, 1187175, 1187849, 12000, 104, -46 }; 1126 | check(&sf.sample_headers[219], &values); 1127 | } 1128 | // Doo Eb4 1129 | { 1130 | const values = [_]i32{ 1187883, 1191361, 1189081, 1191359, 12000, 60, 0 }; 1131 | check(&sf.sample_headers[220], &values); 1132 | } 1133 | // Doo B4 1134 | { 1135 | const values = [_]i32{ 1191393, 1194670, 1192841, 1194667, 12000, 80, 21 }; 1136 | check(&sf.sample_headers[221], &values); 1137 | } 1138 | // Doo G3 1139 | { 1140 | const values = [_]i32{ 1194702, 1198037, 1195952, 1198034, 12000, 77, 21 }; 1141 | check(&sf.sample_headers[222], &values); 1142 | } 1143 | // Doo Eb3 1144 | { 1145 | const values = [_]i32{ 1198069, 1201690, 1199609, 1201688, 12000, 73, 21 }; 1146 | check(&sf.sample_headers[223], &values); 1147 | } 1148 | // Doo B2 1149 | { 1150 | const values = [_]i32{ 1201722, 1204857, 1203010, 1204855, 12000, 69, 21 }; 1151 | check(&sf.sample_headers[224], &values); 1152 | } 1153 | // Syn Vox C4 1154 | { 1155 | const values = [_]i32{ 1204889, 1211142, 1204892, 1211139, 12000, 60, 0 }; 1156 | check(&sf.sample_headers[225], &values); 1157 | } 1158 | // Syn Vox F#3 1159 | { 1160 | const values = [_]i32{ 1211174, 1215189, 1211192, 1215186, 12000, 60, 0 }; 1161 | check(&sf.sample_headers[226], &values); 1162 | } 1163 | // Aahs C7 1164 | { 1165 | const values = [_]i32{ 1215221, 1215719, 1215252, 1215717, 12000, 60, 0 }; 1166 | check(&sf.sample_headers[227], &values); 1167 | } 1168 | // Aahs F4 1169 | { 1170 | const values = [_]i32{ 1215751, 1228012, 1215764, 1228004, 44100, 60, 0 }; 1171 | check(&sf.sample_headers[228], &values); 1172 | } 1173 | // Aahs C4 1174 | { 1175 | const values = [_]i32{ 1228044, 1240232, 1228063, 1240224, 44100, 85, 19 }; 1176 | check(&sf.sample_headers[229], &values); 1177 | } 1178 | // Aahs F3 1179 | { 1180 | const values = [_]i32{ 1240264, 1253064, 1240268, 1253056, 44100, 60, 0 }; 1181 | check(&sf.sample_headers[230], &values); 1182 | } 1183 | // Aahs Db3 1184 | { 1185 | const values = [_]i32{ 1253096, 1266060, 1253149, 1266052, 44100, 75, 35 }; 1186 | check(&sf.sample_headers[231], &values); 1187 | } 1188 | // SynthStrings G4 1189 | { 1190 | const values = [_]i32{ 1266092, 1270777, 1266103, 1270773, 22050, 60, 0 }; 1191 | check(&sf.sample_headers[232], &values); 1192 | } 1193 | // SynthStrings G3 1194 | { 1195 | const values = [_]i32{ 1270809, 1275475, 1270818, 1275470, 22050, 60, 0 }; 1196 | check(&sf.sample_headers[233], &values); 1197 | } 1198 | // SynthStrings G2 1199 | { 1200 | const values = [_]i32{ 1275507, 1281143, 1275516, 1281139, 22050, 60, 0 }; 1201 | check(&sf.sample_headers[234], &values); 1202 | } 1203 | // Timp Drum A1 1204 | { 1205 | const values = [_]i32{ 1281175, 1288928, 1287609, 1288921, 44100, 60, 0 }; 1206 | check(&sf.sample_headers[235], &values); 1207 | } 1208 | // Pizz Violin E5 1209 | { 1210 | const values = [_]i32{ 1288960, 1290315, 1290291, 1290307, 44100, 60, 0 }; 1211 | check(&sf.sample_headers[236], &values); 1212 | } 1213 | // Pizz Violin C4 1214 | { 1215 | const values = [_]i32{ 1290347, 1294954, 1294904, 1294946, 44100, 84, -3 }; 1216 | check(&sf.sample_headers[237], &values); 1217 | } 1218 | // Pizz Violin E3 1219 | { 1220 | const values = [_]i32{ 1294986, 1300673, 1300594, 1300665, 44100, 75, 7 }; 1221 | check(&sf.sample_headers[238], &values); 1222 | } 1223 | // SynthStrings D6 1224 | { 1225 | const values = [_]i32{ 1300705, 1303418, 1300755, 1303414, 22050, 60, 0 }; 1226 | check(&sf.sample_headers[239], &values); 1227 | } 1228 | // Contra Bass F#4 1229 | { 1230 | const values = [_]i32{ 1303450, 1304107, 1304069, 1304099, 44100, 60, 0 }; 1231 | check(&sf.sample_headers[240], &values); 1232 | } 1233 | // Contra Bass F#2 1234 | { 1235 | const values = [_]i32{ 1304139, 1309608, 1309362, 1309600, 44100, 54, 0 }; 1236 | check(&sf.sample_headers[241], &values); 1237 | } 1238 | // Contra Bass D2 1239 | { 1240 | const values = [_]i32{ 1309640, 1313738, 1313430, 1313730, 44100, 50, 0 }; 1241 | check(&sf.sample_headers[242], &values); 1242 | } 1243 | // Arco Cello D4 1244 | { 1245 | const values = [_]i32{ 1313770, 1314747, 1314688, 1314726, 44100, 86, 24 }; 1246 | check(&sf.sample_headers[243], &values); 1247 | } 1248 | // Arco Cello D2 1249 | { 1250 | const values = [_]i32{ 1314779, 1316301, 1316104, 1316293, 44100, 60, 0 }; 1251 | check(&sf.sample_headers[244], &values); 1252 | } 1253 | // Arco Cello Gb1 1254 | { 1255 | const values = [_]i32{ 1316333, 1318846, 1318600, 1318838, 44100, 54, 0 }; 1256 | check(&sf.sample_headers[245], &values); 1257 | } 1258 | // Arco Cello D6 1259 | { 1260 | const values = [_]i32{ 1318878, 1319137, 1319119, 1319129, 44100, 60, 0 }; 1261 | check(&sf.sample_headers[246], &values); 1262 | } 1263 | // Violin Eb6 1264 | { 1265 | const values = [_]i32{ 1319169, 1319986, 1319968, 1319978, 44100, 60, 0 }; 1266 | check(&sf.sample_headers[247], &values); 1267 | } 1268 | // Violin Eb5 1269 | { 1270 | const values = [_]i32{ 1320018, 1321472, 1321445, 1321464, 44100, 60, 0 }; 1271 | check(&sf.sample_headers[248], &values); 1272 | } 1273 | // Violin C5 1274 | { 1275 | const values = [_]i32{ 1321504, 1322759, 1322729, 1322751, 44100, 60, 0 }; 1276 | check(&sf.sample_headers[249], &values); 1277 | } 1278 | // Violin Gb4 1279 | { 1280 | const values = [_]i32{ 1322791, 1324122, 1324083, 1324114, 44100, 60, 0 }; 1281 | check(&sf.sample_headers[250], &values); 1282 | } 1283 | // Violin C4 1284 | { 1285 | const values = [_]i32{ 1324154, 1325497, 1325447, 1325489, 44100, 60, 0 }; 1286 | check(&sf.sample_headers[251], &values); 1287 | } 1288 | // Violin G3 1289 | { 1290 | const values = [_]i32{ 1325529, 1327055, 1326991, 1327047, 44100, 60, 0 }; 1291 | check(&sf.sample_headers[252], &values); 1292 | } 1293 | // Violin D3 1294 | { 1295 | const values = [_]i32{ 1327087, 1328680, 1328597, 1328672, 44100, 60, 0 }; 1296 | check(&sf.sample_headers[253], &values); 1297 | } 1298 | // Violin Bb2 1299 | { 1300 | const values = [_]i32{ 1328712, 1330018, 1329917, 1330011, 44100, 60, 0 }; 1301 | check(&sf.sample_headers[254], &values); 1302 | } 1303 | // SawBassWave F6 1304 | { 1305 | const values = [_]i32{ 1330050, 1330365, 1330347, 1330357, 44100, 60, 0 }; 1306 | check(&sf.sample_headers[255], &values); 1307 | } 1308 | // SawBassWave F5 1309 | { 1310 | const values = [_]i32{ 1330397, 1330519, 1330488, 1330511, 44100, 60, 0 }; 1311 | check(&sf.sample_headers[256], &values); 1312 | } 1313 | // SawBassWave Bb3 1314 | { 1315 | const values = [_]i32{ 1330551, 1332906, 1332747, 1332898, 44100, 60, 0 }; 1316 | check(&sf.sample_headers[257], &values); 1317 | } 1318 | // SawBassWave C3 1319 | { 1320 | const values = [_]i32{ 1332938, 1335075, 1334933, 1335067, 44100, 60, 0 }; 1321 | check(&sf.sample_headers[258], &values); 1322 | } 1323 | // SawBassWave C2 1324 | { 1325 | const values = [_]i32{ 1335107, 1337187, 1336911, 1337179, 44100, 60, 0 }; 1326 | check(&sf.sample_headers[259], &values); 1327 | } 1328 | // SawBassWave C1 1329 | { 1330 | const values = [_]i32{ 1337219, 1339935, 1339392, 1339927, 44100, 60, 0 }; 1331 | check(&sf.sample_headers[260], &values); 1332 | } 1333 | // Slap Bass 2 C6 1334 | { 1335 | const values = [_]i32{ 1339967, 1340146, 1340127, 1340138, 44100, 107, -21 }; 1336 | check(&sf.sample_headers[261], &values); 1337 | } 1338 | // Slap Bass 2 C4 1339 | { 1340 | const values = [_]i32{ 1340178, 1341219, 1341164, 1341211, 44100, 82, -11 }; 1341 | check(&sf.sample_headers[262], &values); 1342 | } 1343 | // Slap Bass 2 F1 1344 | { 1345 | const values = [_]i32{ 1341251, 1343726, 1343467, 1343718, 44100, 60, 0 }; 1346 | check(&sf.sample_headers[263], &values); 1347 | } 1348 | // Slap Bass 2 A0 1349 | { 1350 | const values = [_]i32{ 1343758, 1346085, 1345627, 1346077, 44100, 43, 1 }; 1351 | check(&sf.sample_headers[264], &values); 1352 | } 1353 | // Slap Bass 1 C6 1354 | { 1355 | const values = [_]i32{ 1346117, 1346269, 1346250, 1346261, 44100, 107, -21 }; 1356 | check(&sf.sample_headers[265], &values); 1357 | } 1358 | // Slap Bass 1 D4 1359 | { 1360 | const values = [_]i32{ 1346301, 1346734, 1346684, 1346726, 44100, 84, -3 }; 1361 | check(&sf.sample_headers[266], &values); 1362 | } 1363 | // Slap Bass 1 D1 1364 | { 1365 | const values = [_]i32{ 1346766, 1351360, 1351012, 1351352, 44100, 60, 0 }; 1366 | check(&sf.sample_headers[267], &values); 1367 | } 1368 | // Slap Bass 1 A0 1369 | { 1370 | const values = [_]i32{ 1351392, 1359542, 1359080, 1359534, 44100, 43, 19 }; 1371 | check(&sf.sample_headers[268], &values); 1372 | } 1373 | // Fretless Bass C6 1374 | { 1375 | const values = [_]i32{ 1359574, 1359736, 1359717, 1359728, 44100, 107, -21 }; 1376 | check(&sf.sample_headers[269], &values); 1377 | } 1378 | // Fretless BassDb4 1379 | { 1380 | const values = [_]i32{ 1359768, 1360623, 1360550, 1360615, 44100, 60, 0 }; 1381 | check(&sf.sample_headers[270], &values); 1382 | } 1383 | // Fretless BassGb1 1384 | { 1385 | const values = [_]i32{ 1360655, 1366495, 1366271, 1366487, 44100, 60, 0 }; 1386 | check(&sf.sample_headers[271], &values); 1387 | } 1388 | // Fretless Bass C1 1389 | { 1390 | const values = [_]i32{ 1366527, 1370510, 1370197, 1370502, 44100, 60, 0 }; 1391 | check(&sf.sample_headers[272], &values); 1392 | } 1393 | // Pick Bass D4 1394 | { 1395 | const values = [_]i32{ 1370542, 1371445, 1371389, 1371437, 44100, 60, 0 }; 1396 | check(&sf.sample_headers[273], &values); 1397 | } 1398 | // Pick Bass D1 1399 | { 1400 | const values = [_]i32{ 1371477, 1374208, 1373812, 1374200, 44100, 60, 0 }; 1401 | check(&sf.sample_headers[274], &values); 1402 | } 1403 | // Fingered Bass C6 1404 | { 1405 | const values = [_]i32{ 1374240, 1374354, 1374336, 1374346, 44100, 60, 0 }; 1406 | check(&sf.sample_headers[275], &values); 1407 | } 1408 | // Fingered Bass G3 1409 | { 1410 | const values = [_]i32{ 1374386, 1374885, 1374831, 1374877, 44100, 60, 0 }; 1411 | check(&sf.sample_headers[276], &values); 1412 | } 1413 | // Fingered Bass C1 1414 | { 1415 | const values = [_]i32{ 1374917, 1376562, 1376216, 1376554, 44100, 60, 0 }; 1416 | check(&sf.sample_headers[277], &values); 1417 | } 1418 | // Pick Bass C6 1419 | { 1420 | const values = [_]i32{ 1376594, 1376733, 1376714, 1376725, 44100, 60, 0 }; 1421 | check(&sf.sample_headers[278], &values); 1422 | } 1423 | // GtrHarmonics C6 1424 | { 1425 | const values = [_]i32{ 1376765, 1376907, 1376883, 1376899, 44100, 105, 38 }; 1426 | check(&sf.sample_headers[279], &values); 1427 | } 1428 | // GtrHarmonics C5 1429 | { 1430 | const values = [_]i32{ 1376939, 1377279, 1377238, 1377271, 44100, 60, 0 }; 1431 | check(&sf.sample_headers[280], &values); 1432 | } 1433 | // GtrHarmonics Ab3 1434 | { 1435 | const values = [_]i32{ 1377311, 1378165, 1377990, 1378157, 44100, 76, -1 }; 1436 | check(&sf.sample_headers[281], &values); 1437 | } 1438 | // GtrHarmonics Eb3 1439 | { 1440 | const values = [_]i32{ 1378197, 1379281, 1379175, 1379273, 44100, 73, -26 }; 1441 | check(&sf.sample_headers[282], &values); 1442 | } 1443 | // GtrHarmonics B2 1444 | { 1445 | const values = [_]i32{ 1379313, 1382009, 1381628, 1382001, 44100, 69, -15 }; 1446 | check(&sf.sample_headers[283], &values); 1447 | } 1448 | // GtrHarmonics Gb2 1449 | { 1450 | const values = [_]i32{ 1382041, 1384802, 1384645, 1384794, 44100, 66, -3 }; 1451 | check(&sf.sample_headers[284], &values); 1452 | } 1453 | // Dist Gtr A3 1454 | { 1455 | const values = [_]i32{ 1384834, 1387252, 1387194, 1387244, 44100, 60, 0 }; 1456 | check(&sf.sample_headers[285], &values); 1457 | } 1458 | // Dist Gtr E3 1459 | { 1460 | const values = [_]i32{ 1387284, 1389806, 1389731, 1389798, 44100, 60, 0 }; 1461 | check(&sf.sample_headers[286], &values); 1462 | } 1463 | // Dist Gtr B2 1464 | { 1465 | const values = [_]i32{ 1389838, 1391899, 1391802, 1391891, 44100, 60, 0 }; 1466 | check(&sf.sample_headers[287], &values); 1467 | } 1468 | // Dist Gtr G2 1469 | { 1470 | const values = [_]i32{ 1391931, 1394235, 1394115, 1394227, 44100, 60, 0 }; 1471 | check(&sf.sample_headers[288], &values); 1472 | } 1473 | // Dist Gtr D2 1474 | { 1475 | const values = [_]i32{ 1394267, 1396628, 1396470, 1396620, 44100, 60, 0 }; 1476 | check(&sf.sample_headers[289], &values); 1477 | } 1478 | // Dist Gtr A1 1479 | { 1480 | const values = [_]i32{ 1396660, 1399285, 1399077, 1399277, 44100, 60, 0 }; 1481 | check(&sf.sample_headers[290], &values); 1482 | } 1483 | // Dist Gtr E1 1484 | { 1485 | const values = [_]i32{ 1399317, 1402968, 1402693, 1402960, 44100, 60, 0 }; 1486 | check(&sf.sample_headers[291], &values); 1487 | } 1488 | // Dist Gtr C6 1489 | { 1490 | const values = [_]i32{ 1403000, 1403279, 1403261, 1403271, 44100, 60, 0 }; 1491 | check(&sf.sample_headers[292], &values); 1492 | } 1493 | // Dist Gtr E4 1494 | { 1495 | const values = [_]i32{ 1403311, 1404246, 1404205, 1404238, 44100, 60, 0 }; 1496 | check(&sf.sample_headers[293], &values); 1497 | } 1498 | // OD Gtr C6 1499 | { 1500 | const values = [_]i32{ 1404278, 1404502, 1404484, 1404494, 44100, 60, 0 }; 1501 | check(&sf.sample_headers[294], &values); 1502 | } 1503 | // OD Gtr E4 1504 | { 1505 | const values = [_]i32{ 1404534, 1405285, 1405244, 1405277, 44100, 60, 0 }; 1506 | check(&sf.sample_headers[295], &values); 1507 | } 1508 | // OD Gtr A3 1509 | { 1510 | const values = [_]i32{ 1405317, 1407024, 1406972, 1407016, 44100, 83, -22 }; 1511 | check(&sf.sample_headers[296], &values); 1512 | } 1513 | // OD Gtr E3 1514 | { 1515 | const values = [_]i32{ 1407056, 1408657, 1408591, 1408649, 44100, 78, -44 }; 1516 | check(&sf.sample_headers[297], &values); 1517 | } 1518 | // OD Gtr B2 1519 | { 1520 | const values = [_]i32{ 1408689, 1410822, 1410737, 1410814, 44100, 74, 46 }; 1521 | check(&sf.sample_headers[298], &values); 1522 | } 1523 | // OD Gtr G2 1524 | { 1525 | const values = [_]i32{ 1410854, 1412767, 1412667, 1412759, 44100, 70, -46 }; 1526 | check(&sf.sample_headers[299], &values); 1527 | } 1528 | // OD Gtr D2 1529 | { 1530 | const values = [_]i32{ 1412799, 1414868, 1414737, 1414860, 44100, 65, -43 }; 1531 | check(&sf.sample_headers[300], &values); 1532 | } 1533 | // OD Gtr A1 1534 | { 1535 | const values = [_]i32{ 1414900, 1417348, 1417177, 1417340, 44100, 61, 45 }; 1536 | check(&sf.sample_headers[301], &values); 1537 | } 1538 | // OD Gtr E1 1539 | { 1540 | const values = [_]i32{ 1417380, 1420996, 1420721, 1420988, 44100, 60, 0 }; 1541 | check(&sf.sample_headers[302], &values); 1542 | } 1543 | // Gtr Mute C4 1544 | { 1545 | const values = [_]i32{ 1421028, 1423005, 1422951, 1422997, 44100, 60, 0 }; 1546 | check(&sf.sample_headers[303], &values); 1547 | } 1548 | // Gtr Mute B2 1549 | { 1550 | const values = [_]i32{ 1423037, 1425207, 1425110, 1425199, 44100, 71, -3 }; 1551 | check(&sf.sample_headers[304], &values); 1552 | } 1553 | // Gtr Mute G2 1554 | { 1555 | const values = [_]i32{ 1425239, 1427532, 1427412, 1427524, 44100, 67, -4 }; 1556 | check(&sf.sample_headers[305], &values); 1557 | } 1558 | // Gtr Mute D2 1559 | { 1560 | const values = [_]i32{ 1427564, 1430050, 1429892, 1430042, 44100, 62, 0 }; 1561 | check(&sf.sample_headers[306], &values); 1562 | } 1563 | // Gtr Mute G1 1564 | { 1565 | const values = [_]i32{ 1430082, 1432529, 1432297, 1432521, 44100, 55, -4 }; 1566 | check(&sf.sample_headers[307], &values); 1567 | } 1568 | // Strat C4 1569 | { 1570 | const values = [_]i32{ 1432561, 1435368, 1435314, 1435360, 44100, 60, 0 }; 1571 | check(&sf.sample_headers[308], &values); 1572 | } 1573 | // Strat F#3 1574 | { 1575 | const values = [_]i32{ 1435400, 1438172, 1438100, 1438164, 44100, 60, 0 }; 1576 | check(&sf.sample_headers[309], &values); 1577 | } 1578 | // Strat C#3 1579 | { 1580 | const values = [_]i32{ 1438204, 1441476, 1441383, 1441468, 44100, 60, 0 }; 1581 | check(&sf.sample_headers[310], &values); 1582 | } 1583 | // Strat F2 1584 | { 1585 | const values = [_]i32{ 1441508, 1444813, 1444670, 1444805, 44100, 60, 0 }; 1586 | check(&sf.sample_headers[311], &values); 1587 | } 1588 | // Strat G#1 1589 | { 1590 | const values = [_]i32{ 1444845, 1448498, 1448264, 1448490, 44100, 60, 0 }; 1591 | check(&sf.sample_headers[312], &values); 1592 | } 1593 | // Jazz Guitar E6 1594 | { 1595 | const values = [_]i32{ 1448530, 1448924, 1448906, 1448916, 44100, 109, 12 }; 1596 | check(&sf.sample_headers[313], &values); 1597 | } 1598 | // Jazz Guitar E4 1599 | { 1600 | const values = [_]i32{ 1448956, 1450276, 1450235, 1450268, 44100, 60, 0 }; 1601 | check(&sf.sample_headers[314], &values); 1602 | } 1603 | // Jazz Guitar B4 1604 | { 1605 | const values = [_]i32{ 1450308, 1451662, 1451610, 1451654, 44100, 60, 0 }; 1606 | check(&sf.sample_headers[315], &values); 1607 | } 1608 | // Jazz Guitar Gb3 1609 | { 1610 | const values = [_]i32{ 1451694, 1453093, 1453026, 1453085, 44100, 78, -15 }; 1611 | check(&sf.sample_headers[316], &values); 1612 | } 1613 | // Jazz Guitar Eb3 1614 | { 1615 | const values = [_]i32{ 1453125, 1454535, 1454457, 1454527, 44100, 75, -19 }; 1616 | check(&sf.sample_headers[317], &values); 1617 | } 1618 | // Jazz Guitar Bb2 1619 | { 1620 | const values = [_]i32{ 1454567, 1455932, 1455831, 1455924, 44100, 60, 0 }; 1621 | check(&sf.sample_headers[318], &values); 1622 | } 1623 | // Jazz Guitar E2 1624 | { 1625 | const values = [_]i32{ 1455964, 1457313, 1457176, 1457305, 44100, 60, 0 }; 1626 | check(&sf.sample_headers[319], &values); 1627 | } 1628 | // Jazz Guitar C2 1629 | { 1630 | const values = [_]i32{ 1457345, 1459578, 1458475, 1458637, 44100, 60, 0 }; 1631 | check(&sf.sample_headers[320], &values); 1632 | } 1633 | // Steel AcGtr B2 1634 | { 1635 | const values = [_]i32{ 1459610, 1461616, 1461493, 1461589, 44100, 60, 0 }; 1636 | check(&sf.sample_headers[321], &values); 1637 | } 1638 | // Steel AcGtr G2 1639 | { 1640 | const values = [_]i32{ 1461648, 1463778, 1463651, 1463770, 44100, 66, -1 }; 1641 | check(&sf.sample_headers[322], &values); 1642 | } 1643 | // Steel AcGtr D2 1644 | { 1645 | const values = [_]i32{ 1463810, 1465936, 1465764, 1465928, 44100, 60, -46 }; 1646 | check(&sf.sample_headers[323], &values); 1647 | } 1648 | // Steel AcGtr A1 1649 | { 1650 | const values = [_]i32{ 1465968, 1472506, 1472280, 1472498, 44100, 56, 48 }; 1651 | check(&sf.sample_headers[324], &values); 1652 | } 1653 | // N Guitar E4 1654 | { 1655 | const values = [_]i32{ 1472538, 1474716, 1474670, 1474708, 44100, 60, 0 }; 1656 | check(&sf.sample_headers[325], &values); 1657 | } 1658 | // N Guitar C4 1659 | { 1660 | const values = [_]i32{ 1474748, 1476954, 1476899, 1476946, 44100, 60, 0 }; 1661 | check(&sf.sample_headers[326], &values); 1662 | } 1663 | // N Guitar Ab3 1664 | { 1665 | const values = [_]i32{ 1476986, 1479207, 1479140, 1479199, 44100, 60, 0 }; 1666 | check(&sf.sample_headers[327], &values); 1667 | } 1668 | // N Guitar E3 1669 | { 1670 | const values = [_]i32{ 1479239, 1481431, 1481348, 1481423, 44100, 60, 0 }; 1671 | check(&sf.sample_headers[328], &values); 1672 | } 1673 | // N Guitar B2 1674 | { 1675 | const values = [_]i32{ 1481463, 1483700, 1483598, 1483692, 44100, 60, 0 }; 1676 | check(&sf.sample_headers[329], &values); 1677 | } 1678 | // N Guitar Gb2 1679 | { 1680 | const values = [_]i32{ 1483732, 1485905, 1485772, 1485897, 44100, 60, 0 }; 1681 | check(&sf.sample_headers[330], &values); 1682 | } 1683 | // N Guitar D2 1684 | { 1685 | const values = [_]i32{ 1485937, 1488354, 1488186, 1488346, 44100, 60, 0 }; 1686 | check(&sf.sample_headers[331], &values); 1687 | } 1688 | // Harmonica D6 1689 | { 1690 | const values = [_]i32{ 1488386, 1488624, 1488615, 1488620, 22050, 60, 0 }; 1691 | check(&sf.sample_headers[332], &values); 1692 | } 1693 | // Harmonica D#4 1694 | { 1695 | const values = [_]i32{ 1488656, 1489586, 1489563, 1489582, 22050, 60, 0 }; 1696 | check(&sf.sample_headers[333], &values); 1697 | } 1698 | // Harmonica C4 1699 | { 1700 | const values = [_]i32{ 1489618, 1490301, 1490274, 1490297, 22050, 60, 0 }; 1701 | check(&sf.sample_headers[334], &values); 1702 | } 1703 | // Harmonica A3 1704 | { 1705 | const values = [_]i32{ 1490333, 1491277, 1491246, 1491273, 22050, 60, 0 }; 1706 | check(&sf.sample_headers[335], &values); 1707 | } 1708 | // Harmonica D#3 1709 | { 1710 | const values = [_]i32{ 1491309, 1492322, 1492280, 1492317, 22050, 60, 0 }; 1711 | check(&sf.sample_headers[336], &values); 1712 | } 1713 | // Harmonica A2 1714 | { 1715 | const values = [_]i32{ 1492354, 1493479, 1493411, 1493474, 22050, 60, 0 }; 1716 | check(&sf.sample_headers[337], &values); 1717 | } 1718 | // Accordion D6 1719 | { 1720 | const values = [_]i32{ 1493511, 1493654, 1493645, 1493650, 22050, 60, 0 }; 1721 | check(&sf.sample_headers[338], &values); 1722 | } 1723 | // Accordion D5 1724 | { 1725 | const values = [_]i32{ 1493686, 1494192, 1494175, 1494188, 22050, 60, 0 }; 1726 | check(&sf.sample_headers[339], &values); 1727 | } 1728 | // Accordion Bb4 1729 | { 1730 | const values = [_]i32{ 1494224, 1494743, 1494726, 1494739, 22050, 60, 0 }; 1731 | check(&sf.sample_headers[340], &values); 1732 | } 1733 | // Accordion Gb4 1734 | { 1735 | const values = [_]i32{ 1494775, 1495343, 1495323, 1495339, 22050, 60, 0 }; 1736 | check(&sf.sample_headers[341], &values); 1737 | } 1738 | // Accordion D4 1739 | { 1740 | const values = [_]i32{ 1495375, 1496000, 1495976, 1495996, 22050, 60, 0 }; 1741 | check(&sf.sample_headers[342], &values); 1742 | } 1743 | // Accordion Bb3 1744 | { 1745 | const values = [_]i32{ 1496032, 1496865, 1496837, 1496861, 22050, 60, 0 }; 1746 | check(&sf.sample_headers[343], &values); 1747 | } 1748 | // Accordion Gb3 1749 | { 1750 | const values = [_]i32{ 1496897, 1497723, 1497689, 1497719, 22050, 60, 0 }; 1751 | check(&sf.sample_headers[344], &values); 1752 | } 1753 | // Accordion Bb2 1754 | { 1755 | const values = [_]i32{ 1497755, 1498678, 1498626, 1498674, 22050, 60, 0 }; 1756 | check(&sf.sample_headers[345], &values); 1757 | } 1758 | // Accordion Gb2 1759 | { 1760 | const values = [_]i32{ 1498710, 1499761, 1499697, 1499757, 22050, 60, 0 }; 1761 | check(&sf.sample_headers[346], &values); 1762 | } 1763 | // Reed Wave C6 1764 | { 1765 | const values = [_]i32{ 1499793, 1499832, 1499811, 1499824, 44100, 104, -32 }; 1766 | check(&sf.sample_headers[347], &values); 1767 | } 1768 | // Reed Wave C5 1769 | { 1770 | const values = [_]i32{ 1499864, 1499930, 1499895, 1499922, 44100, 60, 0 }; 1771 | check(&sf.sample_headers[348], &values); 1772 | } 1773 | // Reed Wave Gb4 1774 | { 1775 | const values = [_]i32{ 1499962, 1500050, 1500004, 1500042, 44100, 86, 24 }; 1776 | check(&sf.sample_headers[349], &values); 1777 | } 1778 | // Reed Wave C4 1779 | { 1780 | const values = [_]i32{ 1500082, 1500200, 1500139, 1500192, 44100, 80, 0 }; 1781 | check(&sf.sample_headers[350], &values); 1782 | } 1783 | // Reed Wave Gb3 1784 | { 1785 | const values = [_]i32{ 1500232, 1500394, 1500311, 1500386, 44100, 74, 0 }; 1786 | check(&sf.sample_headers[351], &values); 1787 | } 1788 | // Reed Wave C3 1789 | { 1790 | const values = [_]i32{ 1500426, 1500614, 1500500, 1500606, 44100, 68, 0 }; 1791 | check(&sf.sample_headers[352], &values); 1792 | } 1793 | // Reed Wave C2 1794 | { 1795 | const values = [_]i32{ 1500646, 1500933, 1500713, 1500925, 44100, 56, 0 }; 1796 | check(&sf.sample_headers[353], &values); 1797 | } 1798 | // Church Org F6 1799 | { 1800 | const values = [_]i32{ 1500965, 1501873, 1501845, 1501865, 44100, 109, 13 }; 1801 | check(&sf.sample_headers[354], &values); 1802 | } 1803 | // Church Org C6 1804 | { 1805 | const values = [_]i32{ 1501905, 1504597, 1504561, 1504589, 44100, 103, -4 }; 1806 | check(&sf.sample_headers[355], &values); 1807 | } 1808 | // Octave Wave C6 1809 | { 1810 | const values = [_]i32{ 1504629, 1504657, 1504637, 1504649, 44100, 60, 0 }; 1811 | check(&sf.sample_headers[356], &values); 1812 | } 1813 | // Church Org C4 1814 | { 1815 | const values = [_]i32{ 1504689, 1507678, 1507586, 1507670, 44100, 84, -3 }; 1816 | check(&sf.sample_headers[357], &values); 1817 | } 1818 | // Church Org C3 1819 | { 1820 | const values = [_]i32{ 1507710, 1510713, 1510537, 1510705, 44100, 72, -3 }; 1821 | check(&sf.sample_headers[358], &values); 1822 | } 1823 | // Church Org C2 1824 | { 1825 | const values = [_]i32{ 1510745, 1515665, 1515274, 1515657, 44100, 58, 29 }; 1826 | check(&sf.sample_headers[359], &values); 1827 | } 1828 | // B3LoDistSlow F#5 1829 | { 1830 | const values = [_]i32{ 1515697, 1516989, 1516955, 1516981, 44100, 104, -32 }; 1831 | check(&sf.sample_headers[360], &values); 1832 | } 1833 | // B3LoDistSlow A4 1834 | { 1835 | const values = [_]i32{ 1517021, 1527055, 1517997, 1527051, 22050, 95, 35 }; 1836 | check(&sf.sample_headers[361], &values); 1837 | } 1838 | // B3LoDistSlow C4 1839 | { 1840 | const values = [_]i32{ 1527087, 1535320, 1527545, 1535315, 22050, 60, 0 }; 1841 | check(&sf.sample_headers[362], &values); 1842 | } 1843 | // B3LoDistSlow D#3 1844 | { 1845 | const values = [_]i32{ 1535352, 1545383, 1535698, 1545378, 22050, 60, 0 }; 1846 | check(&sf.sample_headers[363], &values); 1847 | } 1848 | // B3LoDistSlow F#2 1849 | { 1850 | const values = [_]i32{ 1545415, 1556140, 1545905, 1556136, 22050, 68, 35 }; 1851 | check(&sf.sample_headers[364], &values); 1852 | } 1853 | // Perc Organ C5 1854 | { 1855 | const values = [_]i32{ 1556172, 1558106, 1558038, 1558098, 44100, 60, 0 }; 1856 | check(&sf.sample_headers[365], &values); 1857 | } 1858 | // Perc Organ C4 1859 | { 1860 | const values = [_]i32{ 1558138, 1559618, 1559488, 1559610, 44100, 60, 0 }; 1861 | check(&sf.sample_headers[366], &values); 1862 | } 1863 | // Octave Wave E4 1864 | { 1865 | const values = [_]i32{ 1559650, 1559735, 1559687, 1559727, 44100, 60, 0 }; 1866 | check(&sf.sample_headers[367], &values); 1867 | } 1868 | // DrawBar Organ C5 1869 | { 1870 | const values = [_]i32{ 1559767, 1559881, 1559812, 1559873, 44100, 90, 44 }; 1871 | check(&sf.sample_headers[368], &values); 1872 | } 1873 | // DrawBar Organ C3 1874 | { 1875 | const values = [_]i32{ 1559913, 1560470, 1560250, 1560462, 44100, 60, 0 }; 1876 | check(&sf.sample_headers[369], &values); 1877 | } 1878 | // Dulcimer C6 1879 | { 1880 | const values = [_]i32{ 1560502, 1561644, 1561622, 1561636, 44100, 60, 0 }; 1881 | check(&sf.sample_headers[370], &values); 1882 | } 1883 | // Dulcimer C4 1884 | { 1885 | const values = [_]i32{ 1561676, 1568119, 1568055, 1568111, 44100, 60, 0 }; 1886 | check(&sf.sample_headers[371], &values); 1887 | } 1888 | // Steel AcGtr C6 1889 | { 1890 | const values = [_]i32{ 1568151, 1568399, 1568380, 1568391, 44100, 60, 0 }; 1891 | check(&sf.sample_headers[372], &values); 1892 | } 1893 | // Steel AcGtr A3 1894 | { 1895 | const values = [_]i32{ 1568431, 1569699, 1569637, 1569691, 44100, 60, 0 }; 1896 | check(&sf.sample_headers[373], &values); 1897 | } 1898 | // Steel AcGtr E3 1899 | { 1900 | const values = [_]i32{ 1569731, 1571244, 1571164, 1571236, 44100, 60, 0 }; 1901 | check(&sf.sample_headers[374], &values); 1902 | } 1903 | // Xylophone C6 1904 | { 1905 | const values = [_]i32{ 1571276, 1571632, 1571612, 1571624, 44100, 60, 0 }; 1906 | check(&sf.sample_headers[375], &values); 1907 | } 1908 | // Xylophone C4 1909 | { 1910 | const values = [_]i32{ 1571664, 1574114, 1574051, 1574106, 44100, 60, 0 }; 1911 | check(&sf.sample_headers[376], &values); 1912 | } 1913 | // Marimba C6 1914 | { 1915 | const values = [_]i32{ 1574146, 1574730, 1574712, 1574722, 44100, 109, 13 }; 1916 | check(&sf.sample_headers[377], &values); 1917 | } 1918 | // Marimba C3 1919 | { 1920 | const values = [_]i32{ 1574762, 1579629, 1579537, 1579621, 44100, 60, 0 }; 1921 | check(&sf.sample_headers[378], &values); 1922 | } 1923 | // Marimba C2 1924 | { 1925 | const values = [_]i32{ 1579661, 1585435, 1585242, 1585427, 44100, 58, -35 }; 1926 | check(&sf.sample_headers[379], &values); 1927 | } 1928 | // Vibes D6 1929 | { 1930 | const values = [_]i32{ 1585467, 1585898, 1585880, 1585890, 44100, 60, 0 }; 1931 | check(&sf.sample_headers[380], &values); 1932 | } 1933 | // Vibes D4 1934 | { 1935 | const values = [_]i32{ 1585930, 1590476, 1590428, 1590468, 44100, 60, 0 }; 1936 | check(&sf.sample_headers[381], &values); 1937 | } 1938 | // Vibes E3 1939 | { 1940 | const values = [_]i32{ 1590508, 1597905, 1597828, 1597897, 44100, 60, 0 }; 1941 | check(&sf.sample_headers[382], &values); 1942 | } 1943 | // Glockenspiel D6 1944 | { 1945 | const values = [_]i32{ 1597937, 1599038, 1598953, 1599030, 44100, 109, -36 }; 1946 | check(&sf.sample_headers[383], &values); 1947 | } 1948 | // Glockenspiel D5 1949 | { 1950 | const values = [_]i32{ 1599070, 1607838, 1607379, 1607830, 44100, 60, 0 }; 1951 | check(&sf.sample_headers[384], &values); 1952 | } 1953 | // Celesta C7 1954 | { 1955 | const values = [_]i32{ 1607870, 1608176, 1608157, 1608168, 44100, 60, 0 }; 1956 | check(&sf.sample_headers[385], &values); 1957 | } 1958 | // Celesta C5 1959 | { 1960 | const values = [_]i32{ 1608208, 1617780, 1617100, 1617772, 44100, 60, 0 }; 1961 | check(&sf.sample_headers[386], &values); 1962 | } 1963 | // Clavinet C4 1964 | { 1965 | const values = [_]i32{ 1617812, 1618660, 1618599, 1618652, 44100, 60, 0 }; 1966 | check(&sf.sample_headers[387], &values); 1967 | } 1968 | // Clavinet D6 1969 | { 1970 | const values = [_]i32{ 1618692, 1618852, 1618834, 1618844, 44100, 60, 0 }; 1971 | check(&sf.sample_headers[388], &values); 1972 | } 1973 | // Clavinet D#3 1974 | { 1975 | const values = [_]i32{ 1618884, 1620015, 1619918, 1620007, 44100, 60, 0 }; 1976 | check(&sf.sample_headers[389], &values); 1977 | } 1978 | // Clavinet A2 1979 | { 1980 | const values = [_]i32{ 1620047, 1621592, 1621458, 1621584, 44100, 60, 0 }; 1981 | check(&sf.sample_headers[390], &values); 1982 | } 1983 | // Clavinet D#2 1984 | { 1985 | const values = [_]i32{ 1621624, 1623207, 1623032, 1623199, 44100, 60, 0 }; 1986 | check(&sf.sample_headers[391], &values); 1987 | } 1988 | // Clavinet A1 1989 | { 1990 | const values = [_]i32{ 1623239, 1624656, 1624421, 1624648, 44100, 60, 0 }; 1991 | check(&sf.sample_headers[392], &values); 1992 | } 1993 | // Clavinet D#1 1994 | { 1995 | const values = [_]i32{ 1624688, 1625947, 1625606, 1625939, 44100, 60, 0 }; 1996 | check(&sf.sample_headers[393], &values); 1997 | } 1998 | // Clavinet A0 1999 | { 2000 | const values = [_]i32{ 1625979, 1627741, 1627279, 1627733, 44100, 43, 19 }; 2001 | check(&sf.sample_headers[394], &values); 2002 | } 2003 | // Harpsichord D6 2004 | { 2005 | const values = [_]i32{ 1627773, 1628409, 1628391, 1628401, 44100, 109, 13 }; 2006 | check(&sf.sample_headers[395], &values); 2007 | } 2008 | // Harpsichord Ab1 2009 | { 2010 | const values = [_]i32{ 1628441, 1630601, 1630333, 1630593, 44100, 60, 0 }; 2011 | check(&sf.sample_headers[396], &values); 2012 | } 2013 | // Harpsichord Bb4 2014 | { 2015 | const values = [_]i32{ 1630633, 1632237, 1632204, 1632229, 44100, 93, -1 }; 2016 | check(&sf.sample_headers[397], &values); 2017 | } 2018 | // Harpsichord A3 2019 | { 2020 | const values = [_]i32{ 1632269, 1633744, 1633684, 1633736, 44100, 80, -32 }; 2021 | check(&sf.sample_headers[398], &values); 2022 | } 2023 | // Harpsichord C3 2024 | { 2025 | const values = [_]i32{ 1633776, 1635476, 1635381, 1635468, 44100, 71, -42 }; 2026 | check(&sf.sample_headers[399], &values); 2027 | } 2028 | // Harpsichord E2 2029 | { 2030 | const values = [_]i32{ 1635508, 1636886, 1636741, 1636878, 44100, 64, 44 }; 2031 | check(&sf.sample_headers[400], &values); 2032 | } 2033 | // DX EP D6 2034 | { 2035 | const values = [_]i32{ 1636918, 1637561, 1637543, 1637553, 44100, 109, 13 }; 2036 | check(&sf.sample_headers[401], &values); 2037 | } 2038 | // DX EP A4 2039 | { 2040 | const values = [_]i32{ 1637593, 1639647, 1639607, 1639639, 44100, 89, 27 }; 2041 | check(&sf.sample_headers[402], &values); 2042 | } 2043 | // DX EP C4 2044 | { 2045 | const values = [_]i32{ 1639679, 1641248, 1641195, 1641240, 44100, 83, 16 }; 2046 | check(&sf.sample_headers[403], &values); 2047 | } 2048 | // DX EP Gb3 2049 | { 2050 | const values = [_]i32{ 1641280, 1643448, 1643377, 1643440, 44100, 77, -1 }; 2051 | check(&sf.sample_headers[404], &values); 2052 | } 2053 | // DX EP A2 2054 | { 2055 | const values = [_]i32{ 1643480, 1645776, 1645663, 1645768, 44100, 68, -17 }; 2056 | check(&sf.sample_headers[405], &values); 2057 | } 2058 | // DX EP C2 2059 | { 2060 | const values = [_]i32{ 1645808, 1648610, 1648411, 1648602, 44100, 58, 19 }; 2061 | check(&sf.sample_headers[406], &values); 2062 | } 2063 | // EP1 C6 2064 | { 2065 | const values = [_]i32{ 1648642, 1648806, 1648788, 1648798, 44100, 109, 12 }; 2066 | check(&sf.sample_headers[407], &values); 2067 | } 2068 | // EP1 C4 2069 | { 2070 | const values = [_]i32{ 1648838, 1649513, 1649463, 1649505, 44100, 60, 0 }; 2071 | check(&sf.sample_headers[408], &values); 2072 | } 2073 | // EP1 G3 2074 | { 2075 | const values = [_]i32{ 1649545, 1650415, 1650356, 1650407, 44100, 81, 31 }; 2076 | check(&sf.sample_headers[409], &values); 2077 | } 2078 | // EP1 E3 2079 | { 2080 | const values = [_]i32{ 1650447, 1651314, 1651246, 1651306, 44100, 78, 13 }; 2081 | check(&sf.sample_headers[410], &values); 2082 | } 2083 | // EP1 C3 2084 | { 2085 | const values = [_]i32{ 1651346, 1652231, 1652147, 1652223, 44100, 74, 21 }; 2086 | check(&sf.sample_headers[411], &values); 2087 | } 2088 | // EP1 Ab2 2089 | { 2090 | const values = [_]i32{ 1652263, 1654161, 1653961, 1654153, 44100, 60, 0 }; 2091 | check(&sf.sample_headers[412], &values); 2092 | } 2093 | // EP1 2 C6 2094 | { 2095 | const values = [_]i32{ 1654193, 1654522, 1654502, 1654514, 44100, 106, 29 }; 2096 | check(&sf.sample_headers[413], &values); 2097 | } 2098 | // EP1 2 C4 2099 | { 2100 | const values = [_]i32{ 1654554, 1655858, 1655802, 1655850, 44100, 60, 0 }; 2101 | check(&sf.sample_headers[414], &values); 2102 | } 2103 | // EP1 2 Gb3 2104 | { 2105 | const values = [_]i32{ 1655890, 1657147, 1657071, 1657139, 44100, 60, 0 }; 2106 | check(&sf.sample_headers[415], &values); 2107 | } 2108 | // EP1 2 C3 2109 | { 2110 | const values = [_]i32{ 1657179, 1658425, 1658322, 1658417, 44100, 60, 0 }; 2111 | check(&sf.sample_headers[416], &values); 2112 | } 2113 | // EP1 2 C2 2114 | { 2115 | const values = [_]i32{ 1658457, 1659857, 1659688, 1659849, 44100, 61, 24 }; 2116 | check(&sf.sample_headers[417], &values); 2117 | } 2118 | // EP1 2 C1 2119 | { 2120 | const values = [_]i32{ 1659889, 1662117, 1661742, 1662109, 44100, 47, 50 }; 2121 | check(&sf.sample_headers[418], &values); 2122 | } 2123 | // CP70 D#6 2124 | { 2125 | const values = [_]i32{ 1662149, 1662407, 1662389, 1662399, 44100, 109, 13 }; 2126 | check(&sf.sample_headers[419], &values); 2127 | } 2128 | // CP70 D#5 2129 | { 2130 | const values = [_]i32{ 1662439, 1662977, 1662948, 1662969, 44100, 60, 0 }; 2131 | check(&sf.sample_headers[420], &values); 2132 | } 2133 | // CP70 A4 2134 | { 2135 | const values = [_]i32{ 1663009, 1663592, 1663553, 1663584, 44100, 60, 0 }; 2136 | check(&sf.sample_headers[421], &values); 2137 | } 2138 | // CP70 C4 2139 | { 2140 | const values = [_]i32{ 1663624, 1664154, 1664095, 1664146, 44100, 60, 0 }; 2141 | check(&sf.sample_headers[422], &values); 2142 | } 2143 | // CP70 C3 2144 | { 2145 | const values = [_]i32{ 1664186, 1664700, 1664591, 1664692, 44100, 60, 0 }; 2146 | check(&sf.sample_headers[423], &values); 2147 | } 2148 | // CP70 D#2 2149 | { 2150 | const values = [_]i32{ 1664732, 1665396, 1665230, 1665388, 44100, 60, 0 }; 2151 | check(&sf.sample_headers[424], &values); 2152 | } 2153 | // AltoLoF 2154 | { 2155 | const values = [_]i32{ 1665428, 1676621, 1672105, 1676479, 22050, 56, 3 }; 2156 | check(&sf.sample_headers[425], &values); 2157 | } 2158 | // AltoHiB 2159 | { 2160 | const values = [_]i32{ 1676653, 1688522, 1684122, 1688522, 22500, 74, 1 }; 2161 | check(&sf.sample_headers[426], &values); 2162 | } 2163 | // AltoAlt 2164 | { 2165 | const values = [_]i32{ 1688554, 1696252, 1694827, 1696159, 22500, 82, -28 }; 2166 | check(&sf.sample_headers[427], &values); 2167 | } 2168 | // AltoLoA 2169 | { 2170 | const values = [_]i32{ 1696284, 1700442, 1700135, 1700441, 22500, 50, 0 }; 2171 | check(&sf.sample_headers[428], &values); 2172 | } 2173 | // AltoG 2174 | { 2175 | const values = [_]i32{ 1700474, 1712019, 1707354, 1712008, 22500, 58, 11 }; 2176 | check(&sf.sample_headers[429], &values); 2177 | } 2178 | // AltoHiF 2179 | { 2180 | const values = [_]i32{ 1712051, 1733484, 1729048, 1733473, 22500, 80, -21 }; 2181 | check(&sf.sample_headers[430], &values); 2182 | } 2183 | // TenorLoE 2184 | { 2185 | const values = [_]i32{ 1733516, 1735742, 1735601, 1735734, 44100, 64, -7 }; 2186 | check(&sf.sample_headers[431], &values); 2187 | } 2188 | // TenorG# 2189 | { 2190 | const values = [_]i32{ 1735774, 1737333, 1737213, 1737325, 44100, 67, -4 }; 2191 | check(&sf.sample_headers[432], &values); 2192 | } 2193 | // TenorD 2194 | { 2195 | const values = [_]i32{ 1737365, 1738524, 1738441, 1738516, 44100, 74, 0 }; 2196 | check(&sf.sample_headers[433], &values); 2197 | } 2198 | // TenorHiG 2199 | { 2200 | const values = [_]i32{ 1738556, 1739914, 1739843, 1739906, 44100, 77, -1 }; 2201 | check(&sf.sample_headers[434], &values); 2202 | } 2203 | // TenorAlt 2204 | { 2205 | const values = [_]i32{ 1739946, 1741686, 1741636, 1741678, 44100, 84, -3 }; 2206 | check(&sf.sample_headers[435], &values); 2207 | } 2208 | // TenorLoB 2209 | { 2210 | const values = [_]i32{ 1741718, 1743870, 1743694, 1743862, 44100, 60, -3 }; 2211 | check(&sf.sample_headers[436], &values); 2212 | } 2213 | // TenorHiC 2214 | { 2215 | const values = [_]i32{ 1743902, 1745449, 1745406, 1745441, 44100, 87, -18 }; 2216 | check(&sf.sample_headers[437], &values); 2217 | } 2218 | // BariAb3 2219 | { 2220 | const values = [_]i32{ 1745481, 1754938, 1753416, 1754934, 22500, 44, 25 }; 2221 | check(&sf.sample_headers[438], &values); 2222 | } 2223 | // SopHiF 2224 | { 2225 | const values = [_]i32{ 1754970, 1771196, 1768629, 1770955, 22500, 87, -24 }; 2226 | check(&sf.sample_headers[439], &values); 2227 | } 2228 | // SopHiD 2229 | { 2230 | const values = [_]i32{ 1771228, 1787167, 1782983, 1786966, 22500, 84, -27 }; 2231 | check(&sf.sample_headers[440], &values); 2232 | } 2233 | // SopHiB 2234 | { 2235 | const values = [_]i32{ 1787199, 1809611, 1805673, 1809608, 22500, 81, -30 }; 2236 | check(&sf.sample_headers[441], &values); 2237 | } 2238 | // SopHiG# 2239 | { 2240 | const values = [_]i32{ 1809643, 1831266, 1827365, 1831255, 22500, 78, -13 }; 2241 | check(&sf.sample_headers[442], &values); 2242 | } 2243 | // SopF 2244 | { 2245 | const values = [_]i32{ 1831298, 1856268, 1851819, 1856134, 22500, 75, -35 }; 2246 | check(&sf.sample_headers[443], &values); 2247 | } 2248 | // SopD 2249 | { 2250 | const values = [_]i32{ 1856300, 1879363, 1874978, 1879039, 22500, 72, -27 }; 2251 | check(&sf.sample_headers[444], &values); 2252 | } 2253 | // SopB 2254 | { 2255 | const values = [_]i32{ 1879395, 1904039, 1897522, 1901697, 22500, 69, -25 }; 2256 | check(&sf.sample_headers[445], &values); 2257 | } 2258 | // SopG 2259 | { 2260 | const values = [_]i32{ 1904071, 1933239, 1928903, 1933096, 22500, 65, -23 }; 2261 | check(&sf.sample_headers[446], &values); 2262 | } 2263 | // SopLowE 2264 | { 2265 | const values = [_]i32{ 1933271, 1965973, 1961405, 1965727, 22500, 62, -14 }; 2266 | check(&sf.sample_headers[447], &values); 2267 | } 2268 | // SopLowB 2269 | { 2270 | const values = [_]i32{ 1966005, 1991196, 1981582, 1991171, 22500, 57, -26 }; 2271 | check(&sf.sample_headers[448], &values); 2272 | } 2273 | // AltoC 2274 | { 2275 | const values = [_]i32{ 1991228, 2012114, 2007327, 2012035, 22500, 63, -21 }; 2276 | check(&sf.sample_headers[449], &values); 2277 | } 2278 | // AltoD 2279 | { 2280 | const values = [_]i32{ 2012146, 2021699, 2016975, 2021691, 22500, 65, -16 }; 2281 | check(&sf.sample_headers[450], &values); 2282 | } 2283 | // AltoLoC 2284 | { 2285 | const values = [_]i32{ 2021731, 2039536, 2034878, 2039511, 22500, 51, 8 }; 2286 | check(&sf.sample_headers[451], &values); 2287 | } 2288 | // AltoF 2289 | { 2290 | const values = [_]i32{ 2039568, 2054197, 2049738, 2054196, 22500, 68, -19 }; 2291 | check(&sf.sample_headers[452], &values); 2292 | } 2293 | // AltoHiA 2294 | { 2295 | const values = [_]i32{ 2054229, 2064430, 2059759, 2064406, 22500, 72, -14 }; 2296 | check(&sf.sample_headers[453], &values); 2297 | } 2298 | // AltoHiD 2299 | { 2300 | const values = [_]i32{ 2064462, 2075496, 2070777, 2075481, 22500, 77, -10 }; 2301 | check(&sf.sample_headers[454], &values); 2302 | } 2303 | // AltoLoD# 2304 | { 2305 | const values = [_]i32{ 2075528, 2088331, 2083522, 2088306, 22500, 54, 18 }; 2306 | check(&sf.sample_headers[455], &values); 2307 | } 2308 | // AltoA 2309 | { 2310 | const values = [_]i32{ 2088363, 2099981, 2094864, 2099959, 22500, 60, 3 }; 2311 | check(&sf.sample_headers[456], &values); 2312 | } 2313 | // BariC4 2314 | { 2315 | const values = [_]i32{ 2100013, 2109665, 2108451, 2109660, 22500, 48, 13 }; 2316 | check(&sf.sample_headers[457], &values); 2317 | } 2318 | // BariE4 2319 | { 2320 | const values = [_]i32{ 2109697, 2119785, 2119097, 2119781, 22500, 52, 6 }; 2321 | check(&sf.sample_headers[458], &values); 2322 | } 2323 | // BariAb4 2324 | { 2325 | const values = [_]i32{ 2119817, 2131435, 2130780, 2131430, 22500, 56, 12 }; 2326 | check(&sf.sample_headers[459], &values); 2327 | } 2328 | // BariC5 2329 | { 2330 | const values = [_]i32{ 2131467, 2140913, 2140477, 2140908, 22500, 60, 3 }; 2331 | check(&sf.sample_headers[460], &values); 2332 | } 2333 | // BariE5 2334 | { 2335 | const values = [_]i32{ 2140945, 2152016, 2151602, 2152012, 22500, 64, 6 }; 2336 | check(&sf.sample_headers[461], &values); 2337 | } 2338 | // BariAb5 2339 | { 2340 | const values = [_]i32{ 2152048, 2163142, 2162975, 2163138, 22500, 68, 3 }; 2341 | check(&sf.sample_headers[462], &values); 2342 | } 2343 | // BariC6 2344 | { 2345 | const values = [_]i32{ 2163174, 2169525, 2169480, 2169523, 22500, 72, 3 }; 2346 | check(&sf.sample_headers[463], &values); 2347 | } 2348 | // Tuba A#2 2349 | { 2350 | const values = [_]i32{ 2169557, 2172053, 2171962, 2172048, 22050, 60, 38 }; 2351 | check(&sf.sample_headers[464], &values); 2352 | } 2353 | // Tuba F#2 2354 | { 2355 | const values = [_]i32{ 2172085, 2174184, 2174071, 2174179, 22050, 56, 32 }; 2356 | check(&sf.sample_headers[465], &values); 2357 | } 2358 | // Tuba D2 2359 | { 2360 | const values = [_]i32{ 2174216, 2176630, 2176489, 2176626, 22050, 52, 38 }; 2361 | check(&sf.sample_headers[466], &values); 2362 | } 2363 | // Tuba F#3 2364 | { 2365 | const values = [_]i32{ 2176662, 2177969, 2177813, 2177965, 22050, 50, 18 }; 2366 | check(&sf.sample_headers[467], &values); 2367 | } 2368 | // Trombone C5 2369 | { 2370 | const values = [_]i32{ 2178001, 2179582, 2179551, 2179578, 22050, 80, 32 }; 2371 | check(&sf.sample_headers[468], &values); 2372 | } 2373 | // Trombone G4 2374 | { 2375 | const values = [_]i32{ 2179614, 2181028, 2180988, 2181024, 22050, 60, 0 }; 2376 | check(&sf.sample_headers[469], &values); 2377 | } 2378 | // FRHORN00 2379 | { 2380 | const values = [_]i32{ 2181060, 2195645, 2190284, 2195642, 22050, 58, 17 }; 2381 | check(&sf.sample_headers[470], &values); 2382 | } 2383 | // FRHORN01 2384 | { 2385 | const values = [_]i32{ 2195677, 2208863, 2202979, 2208855, 22050, 65, 29 }; 2386 | check(&sf.sample_headers[471], &values); 2387 | } 2388 | // FRHORN02 2389 | { 2390 | const values = [_]i32{ 2208895, 2223299, 2217553, 2223296, 22050, 68, 26 }; 2391 | check(&sf.sample_headers[472], &values); 2392 | } 2393 | // FRHORN03 2394 | { 2395 | const values = [_]i32{ 2223331, 2239107, 2232922, 2239105, 22050, 75, 32 }; 2396 | check(&sf.sample_headers[473], &values); 2397 | } 2398 | // A#2 FrenchHorn1 2399 | { 2400 | const values = [_]i32{ 2239139, 2258022, 2248397, 2257990, 22050, 56, 24 }; 2401 | check(&sf.sample_headers[474], &values); 2402 | } 2403 | // G3 FrenchHorn1 2404 | { 2405 | const values = [_]i32{ 2258054, 2275244, 2264615, 2275193, 22050, 65, 16 }; 2406 | check(&sf.sample_headers[475], &values); 2407 | } 2408 | // C4 FrenchHorn1 2409 | { 2410 | const values = [_]i32{ 2275276, 2291183, 2281306, 2291138, 22050, 70, 18 }; 2411 | check(&sf.sample_headers[476], &values); 2412 | } 2413 | // G4 FrenchHorn1 2414 | { 2415 | const values = [_]i32{ 2291215, 2306941, 2298023, 2306909, 22050, 77, 18 }; 2416 | check(&sf.sample_headers[477], &values); 2417 | } 2418 | // C5 FrenchHorn1 2419 | { 2420 | const values = [_]i32{ 2306973, 2324357, 2313440, 2324310, 22050, 82, 18 }; 2421 | check(&sf.sample_headers[478], &values); 2422 | } 2423 | // French Horns Eb2 2424 | { 2425 | const values = [_]i32{ 2324389, 2327387, 2327303, 2327383, 22050, 60, 0 }; 2426 | check(&sf.sample_headers[479], &values); 2427 | } 2428 | // French Horns G2 2429 | { 2430 | const values = [_]i32{ 2327419, 2330812, 2330744, 2330807, 22050, 65, -2 }; 2431 | check(&sf.sample_headers[480], &values); 2432 | } 2433 | // French Horns B2 2434 | { 2435 | const values = [_]i32{ 2330844, 2334040, 2333985, 2334035, 22050, 69, -2 }; 2436 | check(&sf.sample_headers[481], &values); 2437 | } 2438 | // French Horns Eb3 2439 | { 2440 | const values = [_]i32{ 2334072, 2336026, 2335982, 2336022, 22050, 73, -10 }; 2441 | check(&sf.sample_headers[482], &values); 2442 | } 2443 | // French Horns B3 2444 | { 2445 | const values = [_]i32{ 2336058, 2338425, 2338396, 2338421, 22050, 60, 0 }; 2446 | check(&sf.sample_headers[483], &values); 2447 | } 2448 | // French Horns C6 2449 | { 2450 | const values = [_]i32{ 2338457, 2338660, 2338650, 2338656, 22050, 107, -22 }; 2451 | check(&sf.sample_headers[484], &values); 2452 | } 2453 | // Aahs C6 2454 | { 2455 | const values = [_]i32{ 2338692, 2340059, 2338696, 2340057, 12000, 104, -46 }; 2456 | check(&sf.sample_headers[485], &values); 2457 | } 2458 | // Aahs F5 2459 | { 2460 | const values = [_]i32{ 2340091, 2344192, 2340091, 2344189, 12000, 85, -46 }; 2461 | check(&sf.sample_headers[486], &values); 2462 | } 2463 | // Aahs C5 2464 | { 2465 | const values = [_]i32{ 2344224, 2348166, 2344224, 2348163, 12000, 82, 21 }; 2466 | check(&sf.sample_headers[487], &values); 2467 | } 2468 | // Aahs A3 2469 | { 2470 | const values = [_]i32{ 2348198, 2353212, 2348198, 2353209, 12000, 79, 21 }; 2471 | check(&sf.sample_headers[488], &values); 2472 | } 2473 | // Aahs F6 2474 | { 2475 | const values = [_]i32{ 2353244, 2357597, 2353244, 2357593, 12000, 75, 21 }; 2476 | check(&sf.sample_headers[489], &values); 2477 | } 2478 | // Aahs Db4 2479 | { 2480 | const values = [_]i32{ 2357629, 2362045, 2357629, 2362042, 12000, 71, 21 }; 2481 | check(&sf.sample_headers[490], &values); 2482 | } 2483 | // Aahs Ab2 2484 | { 2485 | const values = [_]i32{ 2362077, 2366482, 2362077, 2366479, 12000, 66, 21 }; 2486 | check(&sf.sample_headers[491], &values); 2487 | } 2488 | // Aahs Eb2 2489 | { 2490 | const values = [_]i32{ 2366514, 2371614, 2366514, 2371611, 12000, 59, -46 }; 2491 | check(&sf.sample_headers[492], &values); 2492 | } 2493 | // Choir-D#21 2494 | { 2495 | const values = [_]i32{ 2371646, 2384490, 2371650, 2384485, 12000, 60, 0 }; 2496 | check(&sf.sample_headers[493], &values); 2497 | } 2498 | // Choir-A21 2499 | { 2500 | const values = [_]i32{ 2384522, 2403187, 2384526, 2403182, 12000, 60, 0 }; 2501 | check(&sf.sample_headers[494], &values); 2502 | } 2503 | // Choir-D#31 2504 | { 2505 | const values = [_]i32{ 2403219, 2423931, 2403223, 2423926, 12000, 60, 0 }; 2506 | check(&sf.sample_headers[495], &values); 2507 | } 2508 | // Choir-A31 2509 | { 2510 | const values = [_]i32{ 2423963, 2440212, 2423967, 2440206, 12000, 60, 0 }; 2511 | check(&sf.sample_headers[496], &values); 2512 | } 2513 | // Choir-F#41 2514 | { 2515 | const values = [_]i32{ 2440244, 2460185, 2440248, 2460180, 12000, 60, 0 }; 2516 | check(&sf.sample_headers[497], &values); 2517 | } 2518 | // Choir-D#51 2519 | { 2520 | const values = [_]i32{ 2460217, 2475401, 2460220, 2475396, 12000, 60, 0 }; 2521 | check(&sf.sample_headers[498], &values); 2522 | } 2523 | // Choir-A51 2524 | { 2525 | const values = [_]i32{ 2475433, 2484803, 2475435, 2484801, 12000, 60, 0 }; 2526 | check(&sf.sample_headers[499], &values); 2527 | } 2528 | // Synth Strings 2-C2 2529 | { 2530 | const values = [_]i32{ 2484835, 2494584, 2484837, 2494579, 22500, 60, 0 }; 2531 | check(&sf.sample_headers[500], &values); 2532 | } 2533 | // Synth Strings 2-C3 2534 | { 2535 | const values = [_]i32{ 2494616, 2504730, 2494618, 2504725, 22500, 60, 0 }; 2536 | check(&sf.sample_headers[501], &values); 2537 | } 2538 | // Synth Strings 2-C4 2539 | { 2540 | const values = [_]i32{ 2504762, 2517848, 2504764, 2517843, 22500, 60, 0 }; 2541 | check(&sf.sample_headers[502], &values); 2542 | } 2543 | // Synth Strings 2-C5 2544 | { 2545 | const values = [_]i32{ 2517880, 2529581, 2517882, 2529576, 22500, 60, 0 }; 2546 | check(&sf.sample_headers[503], &values); 2547 | } 2548 | // ensstringsg2 2549 | { 2550 | const values = [_]i32{ 2529613, 2555806, 2542165, 2555804, 12000, 43, -3 }; 2551 | check(&sf.sample_headers[504], &values); 2552 | } 2553 | // ensstringsc3 2554 | { 2555 | const values = [_]i32{ 2555838, 2579503, 2564633, 2579502, 12000, 48, -3 }; 2556 | check(&sf.sample_headers[505], &values); 2557 | } 2558 | // ensstringsc4 2559 | { 2560 | const values = [_]i32{ 2579535, 2600279, 2585607, 2600279, 12000, 60, -5 }; 2561 | check(&sf.sample_headers[506], &values); 2562 | } 2563 | // ensstringsg4 2564 | { 2565 | const values = [_]i32{ 2600311, 2625494, 2606853, 2625493, 12000, 67, -5 }; 2566 | check(&sf.sample_headers[507], &values); 2567 | } 2568 | // ensstringsc5 2569 | { 2570 | const values = [_]i32{ 2625526, 2648713, 2634213, 2648712, 12000, 72, -7 }; 2571 | check(&sf.sample_headers[508], &values); 2572 | } 2573 | // ensstringsg5 2574 | { 2575 | const values = [_]i32{ 2648745, 2673394, 2656663, 2673393, 12000, 79, -6 }; 2576 | check(&sf.sample_headers[509], &values); 2577 | } 2578 | // ensstringsc6 2579 | { 2580 | const values = [_]i32{ 2673426, 2686612, 2677378, 2686611, 12000, 84, -4 }; 2581 | check(&sf.sample_headers[510], &values); 2582 | } 2583 | // ensstringsg6 2584 | { 2585 | const values = [_]i32{ 2686644, 2712833, 2699598, 2712833, 12000, 91, -5 }; 2586 | check(&sf.sample_headers[511], &values); 2587 | } 2588 | // ensstringsc7 2589 | { 2590 | const values = [_]i32{ 2712865, 2727420, 2720001, 2727420, 12000, 96, -5 }; 2591 | check(&sf.sample_headers[512], &values); 2592 | } 2593 | // Str1C4 R 2594 | { 2595 | const values = [_]i32{ 2727452, 2759140, 2741576, 2756808, 12000, 60, 0 }; 2596 | check(&sf.sample_headers[513], &values); 2597 | } 2598 | // Str1C5 R 2599 | { 2600 | const values = [_]i32{ 2759172, 2781722, 2768395, 2779245, 12000, 72, 0 }; 2601 | check(&sf.sample_headers[514], &values); 2602 | } 2603 | // Str1C6 R 2604 | { 2605 | const values = [_]i32{ 2781754, 2803406, 2788890, 2801499, 12000, 84, 0 }; 2606 | check(&sf.sample_headers[515], &values); 2607 | } 2608 | // Str1C4 L 2609 | { 2610 | const values = [_]i32{ 2803438, 2835126, 2809376, 2833342, 12000, 60, 0 }; 2611 | check(&sf.sample_headers[516], &values); 2612 | } 2613 | // Str1C5 L 2614 | { 2615 | const values = [_]i32{ 2835158, 2857708, 2842936, 2857350, 12000, 72, 0 }; 2616 | check(&sf.sample_headers[517], &values); 2617 | } 2618 | // Str1C6 L 2619 | { 2620 | const values = [_]i32{ 2857740, 2879392, 2867448, 2879352, 12000, 84, 0 }; 2621 | check(&sf.sample_headers[518], &values); 2622 | } 2623 | // SynthStringsC4 2624 | { 2625 | const values = [_]i32{ 2879424, 2882136, 2879770, 2882135, 12000, 60, 0 }; 2626 | check(&sf.sample_headers[519], &values); 2627 | } 2628 | } 2629 | --------------------------------------------------------------------------------