diff --git a/scripts/build_non_orchestral.py b/scripts/build_non_orchestral.py new file mode 100644 index 0000000..81553b5 --- /dev/null +++ b/scripts/build_non_orchestral.py @@ -0,0 +1,563 @@ +#!/usr/bin/env python3 +"""Build non-orchestral factory instrument presets. + +Sources: + - Acoustic Guitar: University of Iowa MIS (unrestricted license) + - Bass Guitar: Karoryfer Growlybass CC0 (public domain) + - Drum Kit: Salamander Drumkit (public domain) + +Usage: + python3 scripts/build_non_orchestral.py + # or with anaconda (needed for aubio): + ~/anaconda3/bin/python3 scripts/build_non_orchestral.py +""" + +import json +import os +import re +import subprocess +import sys +from pathlib import Path + +# Try to import aubio (needed for guitar splitting) +try: + import aubio + HAS_AUBIO = True +except ImportError: + HAS_AUBIO = False + print("WARNING: aubio not installed — guitar splitting will be skipped") + print(" Install with: pip install aubio") + +SAMPLES_DIR = Path.home() / "Downloads" / "non-orchestral-samples" +INSTRUMENTS_DIR = Path(__file__).parent.parent / "src" / "assets" / "instruments" + +NOTE_NAMES = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'] +FLAT_TO_SHARP = {'Db': 'C#', 'Eb': 'D#', 'Gb': 'F#', 'Ab': 'G#', 'Bb': 'A#'} +NOTE_MAP = { + 'c': 0, 'c#': 1, 'db': 1, 'd': 2, 'd#': 3, 'eb': 3, + 'e': 4, 'f': 5, 'f#': 6, 'gb': 6, 'g': 7, 'g#': 8, 'ab': 8, + 'a': 9, 'a#': 10, 'bb': 10, 'b': 11, +} + + +def note_to_midi(note_name: str, octave: int) -> int: + return (octave + 1) * 12 + NOTE_MAP[note_name.lower()] + + +def midi_to_name(midi: int) -> str: + return f"{NOTE_NAMES[midi % 12]}{midi // 12 - 1}" + + +def parse_note_str(n: str) -> int: + """Parse 'E2', 'Bb5', 'C#3' etc to MIDI number.""" + if len(n) >= 3 and n[1] in 'b#': + name, oct = n[:2], int(n[2:]) + name = FLAT_TO_SHARP.get(name, name) + else: + name, oct = n[0], int(n[1:]) + return (oct + 1) * 12 + NOTE_NAMES.index(name) + + +def convert_to_mp3(input_path: Path, mp3_path: Path, bitrate: str = '192k'): + """Convert any audio to normalized MP3.""" + mp3_path.parent.mkdir(parents=True, exist_ok=True) + if mp3_path.exists(): + return + subprocess.run([ + 'ffmpeg', '-i', str(input_path), + '-af', 'loudnorm=I=-16:TP=-1:LRA=11', + '-ar', '44100', '-ab', bitrate, + '-y', '-loglevel', 'error', + str(mp3_path) + ], check=True) + + +def extract_segment(input_path: Path, output_path: Path, start: float, end: float, + bitrate: str = '192k'): + """Extract a time segment from audio and convert to normalized MP3.""" + output_path.parent.mkdir(parents=True, exist_ok=True) + if output_path.exists(): + return + duration = end - start + subprocess.run([ + 'ffmpeg', '-ss', str(start), '-i', str(input_path), + '-t', str(duration), + '-af', 'loudnorm=I=-16:TP=-1:LRA=11', + '-ar', '44100', '-ab', bitrate, + '-y', '-loglevel', 'error', + str(output_path) + ], check=True) + + +def compute_key_ranges(layers: list[dict]) -> list[dict]: + if not layers: + return layers + layers.sort(key=lambda l: l['root_key']) + for i, layer in enumerate(layers): + if i == 0: + layer['key_min'] = 0 + else: + midpoint = (layers[i-1]['root_key'] + layer['root_key']) // 2 + 1 + layer['key_min'] = midpoint + layers[i-1]['key_max'] = midpoint - 1 + if i == len(layers) - 1: + layer['key_max'] = 127 + return layers + + +def make_preset(name: str, description: str, author: str, tags: list[str], + layers: list[dict], attack: float = 0.01, release: float = 0.3) -> dict: + return { + "metadata": { + "name": name, + "description": description, + "author": author, + "version": 1, + "tags": tags + }, + "midi_targets": [0], + "output_node": 2, + "nodes": [ + { + "id": 0, "node_type": "MidiInput", "name": "MIDI In", + "parameters": {}, "position": [100.0, 100.0] + }, + { + "id": 1, "node_type": "MultiSampler", "name": f"{name} Sampler", + "parameters": {"0": 1.0, "1": attack, "2": release, "3": 0.0}, + "sample_data": {"type": "multi_sampler", "layers": layers}, + "position": [350.0, 0.0] + }, + { + "id": 2, "node_type": "AudioOutput", "name": "Out", + "parameters": {}, "position": [700.0, 100.0] + } + ], + "connections": [ + {"from_node": 0, "from_port": 0, "to_node": 1, "to_port": 0}, + {"from_node": 1, "from_port": 0, "to_node": 2, "to_port": 0} + ] + } + + +# ============================================================ +# ACOUSTIC GUITAR (University of Iowa MIS) +# ============================================================ + +def detect_onsets(fpath: str, threshold: float = 0.3, minioi: float = 2.0, + method: str = "default") -> list[float]: + """Detect note onsets in an audio file using aubio.""" + src = aubio.source(fpath, 44100, 512) + onset_det = aubio.onset(method, 1024, 512, 44100) + onset_det.set_threshold(threshold) + onset_det.set_minioi_s(minioi) + onsets = [] + while True: + samples, read = src() + if onset_det(samples): + onsets.append(onset_det.get_last_s()) + if read < 512: + break + if not onsets or onsets[0] > 1.0: + onsets.insert(0, 0.0) + return onsets + + +def get_file_duration(fpath: str) -> float: + """Get audio file duration in seconds.""" + result = subprocess.run( + ['ffprobe', '-v', 'error', '-show_entries', 'format=duration', + '-of', 'default=noprint_wrappers=1:nokey=1', fpath], + capture_output=True, text=True) + return float(result.stdout.strip()) + + +# Preferred string for each MIDI note range (avoids duplicates across strings) +GUITAR_STRING_RANGES = { + 'sulE': (40, 49), # E2-C#3 + 'sulA': (50, 54), # D3-F#3 + 'sulD': (55, 58), # G3-A#3 + 'sulG': (59, 63), # B3-D#4 + 'sulB': (64, 68), # E4-G#4 + 'sul_E': (69, 83), # A4-B5 +} + + +def build_guitar(): + """Split Iowa MIS guitar chromatic scales into individual notes and build preset.""" + if not HAS_AUBIO: + print(" SKIPPED (aubio required)") + return + + guitar_dir = SAMPLES_DIR / "iowa-guitar" / "extracted" / "1644stereo" + if not guitar_dir.exists(): + print(f" ERROR: Guitar samples not found at {guitar_dir}") + return + + out_dir = INSTRUMENTS_DIR / "guitar" / "acoustic-guitar" + samples_dir = out_dir / "samples" + samples_dir.mkdir(parents=True, exist_ok=True) + + # Process each dynamic level + DYNAMICS = {'pp': (0, 42), 'mf': (43, 95), 'ff': (96, 127)} + all_layers = [] + + for dyn, (vel_min, vel_max) in DYNAMICS.items(): + print(f" Processing {dyn} dynamics...") + # Use lower threshold for pp to catch quiet onsets + threshold = 0.2 if dyn == 'pp' else 0.3 + + for fname in sorted(os.listdir(guitar_dir)): + if not fname.endswith('.aif'): + continue + parts = fname.replace('.aif', '').split('.') + if parts[1] != dyn: + continue + + string = parts[2] + note_range_str = parts[3] + + # Parse note range + m = re.match(r'([A-G][b#]?\d)([A-G][b#]?\d)', note_range_str) + if m: + file_lo = parse_note_str(m.group(1)) + file_hi = parse_note_str(m.group(2)) + else: + file_lo = file_hi = parse_note_str(note_range_str) + + # Check overlap with preferred range for this string + pref_lo, pref_hi = GUITAR_STRING_RANGES.get(string, (0, 0)) + overlap_lo = max(file_lo, pref_lo) + overlap_hi = min(file_hi, pref_hi) + if overlap_lo > overlap_hi: + continue # No notes needed from this file + + fpath = str(guitar_dir / fname) + total_notes = file_hi - file_lo + 1 + + if total_notes == 1: + # Single note file + mp3_name = f"{midi_to_name(file_lo)}_{dyn}.mp3" + print(f" {fname} -> {mp3_name}") + convert_to_mp3(Path(fpath), samples_dir / mp3_name) + all_layers.append({ + "file_path": f"samples/{mp3_name}", + "root_key": file_lo, + "velocity_min": vel_min, + "velocity_max": vel_max, + }) + continue + + # Multi-note file: detect onsets and split + onsets = detect_onsets(fpath, threshold=threshold) + duration = get_file_duration(fpath) + + if len(onsets) != total_notes: + # Try progressively different thresholds and methods + found = False + for method in ["default", "specflux"]: + for t in [0.1, 0.15, 0.2, 0.5, 0.8, 1.0]: + onsets = detect_onsets(fpath, threshold=t, method=method) + if len(onsets) == total_notes: + found = True + break + if found: + break + if not found: + print(f" SKIPPING {fname} (no threshold/method gives {total_notes} onsets)") + continue + + # Extract each needed note + for note_idx in range(total_notes): + midi = file_lo + note_idx + if midi < overlap_lo or midi > overlap_hi: + continue # Not in our preferred range + + start = onsets[note_idx] + end = onsets[note_idx + 1] if note_idx + 1 < len(onsets) else duration + # Trim to max 8 seconds per note (plenty for guitar decay) + end = min(end, start + 8.0) + + mp3_name = f"{midi_to_name(midi)}_{dyn}.mp3" + print(f" {fname} [{note_idx}] -> {mp3_name} ({start:.2f}s-{end:.2f}s)") + extract_segment(Path(fpath), samples_dir / mp3_name, start, end) + + all_layers.append({ + "file_path": f"samples/{mp3_name}", + "root_key": midi, + "velocity_min": vel_min, + "velocity_max": vel_max, + }) + + # Compute key ranges per velocity group + vel_groups = {} + for layer in all_layers: + vel_key = (layer["velocity_min"], layer["velocity_max"]) + vel_groups.setdefault(vel_key, []).append(layer) + + final_layers = [] + for vel_key, group in vel_groups.items(): + group = compute_key_ranges(group) + for layer in group: + layer["velocity_min"] = vel_key[0] + layer["velocity_max"] = vel_key[1] + final_layers.extend(group) + + preset = make_preset( + "Acoustic Guitar", + "Nylon-string classical guitar (Raimundo 118) with three velocity layers", + "University of Iowa MIS", + ["guitar", "acoustic", "nylon", "classical"], + final_layers, + attack=0.001, release=0.8, + ) + preset_path = out_dir / "acoustic-guitar.json" + with open(preset_path, 'w') as f: + json.dump(preset, f, indent=2) + print(f" -> Wrote {preset_path} ({len(final_layers)} layers)") + + +# ============================================================ +# BASS GUITAR (Karoryfer Growlybass) +# ============================================================ + +def parse_growlybass_filename(filename: str) -> dict | None: + """Parse Growlybass naming: note_dyn_rr.wav (e.g. a2_ff_rr1.wav, db2_pp_rr3.wav)""" + m = re.match(r'([a-g][b#]?)(\d+)_(pp|p|f|ff)_rr(\d+)\.wav', filename.lower()) + if not m: + return None + note, octave = m.group(1), int(m.group(2)) + dynamic = m.group(3) + rr = int(m.group(4)) + midi = note_to_midi(note, octave) + return {'midi': midi, 'note': f"{note.upper()}{octave}", 'dynamic': dynamic, 'rr': rr} + + +def build_bass_guitar(): + """Build bass guitar instrument from Karoryfer Growlybass samples.""" + source_dir = SAMPLES_DIR / "growlybass" / "extracted" / "Growlybass" / "sustain" + if not source_dir.exists(): + print(f" ERROR: Growlybass samples not found at {source_dir}") + return + + out_dir = INSTRUMENTS_DIR / "guitar" / "bass-guitar" + samples_dir = out_dir / "samples" + samples_dir.mkdir(parents=True, exist_ok=True) + + # Growlybass has 4 dynamics (pp, p, f, ff) and 4 round robins each. + # We'll use round robin 1 only (our MultiSampler doesn't support round robin yet) + # and map all 4 dynamics to velocity layers. + DYNAMICS_ORDER = ['pp', 'p', 'f', 'ff'] + dynamics_groups: dict[str, list[dict]] = {} + + for wav in sorted(source_dir.glob("*.wav")): + parsed = parse_growlybass_filename(wav.name) + if not parsed: + print(f" WARNING: Could not parse {wav.name}") + continue + if parsed['rr'] != 1: + continue # Only use round robin 1 + + dyn = parsed['dynamic'] + mp3_name = f"{parsed['note']}_{dyn}.mp3" + mp3_path = samples_dir / mp3_name + print(f" Converting {wav.name} -> {mp3_name} (MIDI {parsed['midi']})") + convert_to_mp3(wav, mp3_path) + + layer = { + "file_path": f"samples/{mp3_name}", + "root_key": parsed['midi'], + } + dynamics_groups.setdefault(dyn, []).append(layer) + + # Assign velocity ranges + num_levels = len(dynamics_groups) + vel_step = 128 // num_levels + dyn_keys = sorted(dynamics_groups.keys(), + key=lambda d: DYNAMICS_ORDER.index(d)) + for i, dyn in enumerate(dyn_keys): + vel_min = i * vel_step + vel_max = (i + 1) * vel_step - 1 if i < num_levels - 1 else 127 + for layer in dynamics_groups[dyn]: + layer["velocity_min"] = vel_min + layer["velocity_max"] = vel_max + + # Compute key ranges per velocity group + all_layers = [] + for dyn, group in dynamics_groups.items(): + group = compute_key_ranges(group) + all_layers.extend(group) + + preset = make_preset( + "Bass Guitar", + "Electric bass guitar (Squier Jazz) with four velocity layers", + "Karoryfer Samples (CC0)", + ["guitar", "bass", "electric"], + all_layers, + attack=0.001, release=0.5, + ) + preset_path = out_dir / "bass-guitar.json" + with open(preset_path, 'w') as f: + json.dump(preset, f, indent=2) + dyn_summary = ", ".join(f"{k}: {len(v)}" for k, v in dynamics_groups.items()) + print(f" -> Wrote {preset_path} ({len(all_layers)} layers: {dyn_summary})") + + +# ============================================================ +# DRUM KIT (Salamander Drumkit) +# ============================================================ + +# Salamander uses GM-like drum mapping. +# Files: kick_OH_F_1.wav, snare_OH_FF_1.wav, hihatClosed_OH_P_1.wav, etc. +# OH = overhead mic, F/FF/P/PP/MP/Ghost = dynamics, number = round robin + +# GM drum map — maps Salamander drum names to MIDI notes +GM_DRUMS = { + 'kick': 36, # C2 - Bass Drum 1 + 'snare': 38, # D2 - Acoustic Snare + 'snareOFF': 40, # E2 - Electric Snare (snares off) + 'snareStick': 37, # C#2 - Side Stick + 'hihatClosed': 42, # F#2 - Closed Hi-Hat + 'hihatOpen': 46, # A#2 - Open Hi-Hat + 'hihatFoot': 44, # G#2 - Pedal Hi-Hat + 'hiTom': 50, # D3 - High Tom + 'loTom': 45, # A2 - Low Tom + 'crash1': 49, # C#3 - Crash Cymbal 1 + 'crash2': 57, # A3 - Crash Cymbal 2 + 'ride1': 51, # D#3 - Ride Cymbal 1 + 'ride1Bell': 53, # F3 - Ride Bell + 'cowbell': 56, # G#3 - Cowbell + 'splash1': 55, # G3 - Splash Cymbal +} + + +def parse_salamander_filename(filename: str) -> dict | None: + """Parse Salamander naming: drum_OH_dyn_rr.wav or drum_dyn_rr.wav""" + # Try with OH mic prefix first + m = re.match(r'(\w+?)_OH_([A-Za-z]+)_(\d+)\.wav', filename) + if not m: + # Some drums (cowbell, bellchime) don't have _OH_ + m = re.match(r'(\w+?)_([A-Z][A-Za-z]*)_(\d+)\.wav', filename) + if not m: + return None + drum, dynamic, rr = m.group(1), m.group(2).lower(), int(m.group(3)) + midi = GM_DRUMS.get(drum) + if midi is None: + return None + return {'midi': midi, 'drum': drum, 'dynamic': dynamic, 'rr': rr} + + +def build_drum_kit(): + """Build drum kit instrument from Salamander Drumkit samples.""" + # Find the OH (overhead mic) sample directory + sal_base = SAMPLES_DIR / "salamander-drums" + source_dir = None + for candidate in [sal_base / "OH", + sal_base / "salamanderDrumkit" / "OH"]: + if candidate.exists(): + source_dir = candidate + break + + if source_dir is None: + for p in sal_base.rglob("OH"): + if p.is_dir(): + source_dir = p + break + + if source_dir is None: + print(f" ERROR: Salamander OH samples not found under {sal_base}") + return + + print(f" Using samples from: {source_dir}") + out_dir = INSTRUMENTS_DIR / "drums" / "drum-kit" + samples_dir = out_dir / "samples" + samples_dir.mkdir(parents=True, exist_ok=True) + + # Group by drum type and dynamics + # We'll use OH (overhead) mic for a natural stereo image + # Only use round robin 1 to keep size down + drum_groups: dict[str, dict[str, list]] = {} # drum -> {dyn: [layers]} + + for wav in sorted(source_dir.glob("*.wav")): + parsed = parse_salamander_filename(wav.name) + if not parsed: + continue + if parsed['rr'] != 1: + continue + + drum = parsed['drum'] + dyn = parsed['dynamic'] + mp3_name = f"{drum}_{dyn}.mp3" + mp3_path = samples_dir / mp3_name + print(f" Converting {wav.name} -> {mp3_name} (MIDI {parsed['midi']})") + convert_to_mp3(wav, mp3_path) + + drum_groups.setdefault(drum, {}).setdefault(dyn, []).append({ + "file_path": f"samples/{mp3_name}", + "root_key": parsed['midi'], + }) + + # Build layers: each drum piece gets its own MIDI note + # Dynamics map to velocity layers + DYNAMICS_ORDER = ['ghost', 'pp', 'p', 'mp', 'mf', 'f', 'ff'] + all_layers = [] + + for drum, dyn_map in drum_groups.items(): + dyn_keys = sorted(dyn_map.keys(), + key=lambda d: DYNAMICS_ORDER.index(d) if d in DYNAMICS_ORDER else 3) + num_levels = len(dyn_keys) + + if num_levels == 1: + for layer in list(dyn_map.values())[0]: + layer["velocity_min"] = 0 + layer["velocity_max"] = 127 + layer["key_min"] = layer["root_key"] + layer["key_max"] = layer["root_key"] + all_layers.append(layer) + else: + vel_step = 128 // num_levels + for i, dyn in enumerate(dyn_keys): + vel_min = i * vel_step + vel_max = (i + 1) * vel_step - 1 if i < num_levels - 1 else 127 + for layer in dyn_map[dyn]: + layer["velocity_min"] = vel_min + layer["velocity_max"] = vel_max + layer["key_min"] = layer["root_key"] + layer["key_max"] = layer["root_key"] + all_layers.append(layer) + + preset = make_preset( + "Drum Kit", + "Acoustic drum kit (Salamander) — GM-compatible MIDI mapping", + "Salamander Drumkit (Public Domain)", + ["drums", "percussion", "kit", "acoustic"], + all_layers, + attack=0.001, release=0.5, + ) + preset_path = out_dir / "drum-kit.json" + with open(preset_path, 'w') as f: + json.dump(preset, f, indent=2) + print(f" -> Wrote {preset_path} ({len(all_layers)} layers, {len(drum_groups)} drums)") + + +# ============================================================ +# MAIN +# ============================================================ + +def main(): + print("=== Building Non-Orchestral Factory Instruments ===\n") + + print("\n[1/3] Acoustic Guitar (University of Iowa MIS)") + build_guitar() + + print("\n[2/3] Bass Guitar (Karoryfer Growlybass)") + build_bass_guitar() + + print("\n[3/3] Drum Kit (Salamander Drumkit)") + build_drum_kit() + + print("\n=== Done! ===") + + +if __name__ == '__main__': + main() diff --git a/src/assets/instruments/drums/drum-kit/drum-kit.json b/src/assets/instruments/drums/drum-kit/drum-kit.json new file mode 100644 index 0000000..0d31995 --- /dev/null +++ b/src/assets/instruments/drums/drum-kit/drum-kit.json @@ -0,0 +1,346 @@ +{ + "metadata": { + "name": "Drum Kit", + "description": "Acoustic drum kit (Salamander) \u2014 GM-compatible MIDI mapping", + "author": "Salamander Drumkit (Public Domain)", + "version": 1, + "tags": [ + "drums", + "percussion", + "kit", + "acoustic" + ] + }, + "midi_targets": [ + 0 + ], + "output_node": 2, + "nodes": [ + { + "id": 0, + "node_type": "MidiInput", + "name": "MIDI In", + "parameters": {}, + "position": [ + 100.0, + 100.0 + ] + }, + { + "id": 1, + "node_type": "MultiSampler", + "name": "Drum Kit Sampler", + "parameters": { + "0": 1.0, + "1": 0.001, + "2": 0.5, + "3": 0.0 + }, + "sample_data": { + "type": "multi_sampler", + "layers": [ + { + "file_path": "samples/cowbell_p.mp3", + "root_key": 56, + "velocity_min": 0, + "velocity_max": 41, + "key_min": 56, + "key_max": 56 + }, + { + "file_path": "samples/cowbell_mp.mp3", + "root_key": 56, + "velocity_min": 42, + "velocity_max": 83, + "key_min": 56, + "key_max": 56 + }, + { + "file_path": "samples/cowbell_ff.mp3", + "root_key": 56, + "velocity_min": 84, + "velocity_max": 127, + "key_min": 56, + "key_max": 56 + }, + { + "file_path": "samples/crash1_p.mp3", + "root_key": 49, + "velocity_min": 0, + "velocity_max": 63, + "key_min": 49, + "key_max": 49 + }, + { + "file_path": "samples/crash1_ff.mp3", + "root_key": 49, + "velocity_min": 64, + "velocity_max": 127, + "key_min": 49, + "key_max": 49 + }, + { + "file_path": "samples/crash2_p.mp3", + "root_key": 57, + "velocity_min": 0, + "velocity_max": 63, + "key_min": 57, + "key_max": 57 + }, + { + "file_path": "samples/crash2_ff.mp3", + "root_key": 57, + "velocity_min": 64, + "velocity_max": 127, + "key_min": 57, + "key_max": 57 + }, + { + "file_path": "samples/hiTom_p.mp3", + "root_key": 50, + "velocity_min": 0, + "velocity_max": 41, + "key_min": 50, + "key_max": 50 + }, + { + "file_path": "samples/hiTom_f.mp3", + "root_key": 50, + "velocity_min": 42, + "velocity_max": 83, + "key_min": 50, + "key_max": 50 + }, + { + "file_path": "samples/hiTom_ff.mp3", + "root_key": 50, + "velocity_min": 84, + "velocity_max": 127, + "key_min": 50, + "key_max": 50 + }, + { + "file_path": "samples/hihatClosed_p.mp3", + "root_key": 42, + "velocity_min": 0, + "velocity_max": 63, + "key_min": 42, + "key_max": 42 + }, + { + "file_path": "samples/hihatClosed_f.mp3", + "root_key": 42, + "velocity_min": 64, + "velocity_max": 127, + "key_min": 42, + "key_max": 42 + }, + { + "file_path": "samples/hihatFoot_mp.mp3", + "root_key": 44, + "velocity_min": 0, + "velocity_max": 127, + "key_min": 44, + "key_max": 44 + }, + { + "file_path": "samples/hihatOpen_p.mp3", + "root_key": 46, + "velocity_min": 0, + "velocity_max": 41, + "key_min": 46, + "key_max": 46 + }, + { + "file_path": "samples/hihatOpen_f.mp3", + "root_key": 46, + "velocity_min": 42, + "velocity_max": 83, + "key_min": 46, + "key_max": 46 + }, + { + "file_path": "samples/hihatOpen_ff.mp3", + "root_key": 46, + "velocity_min": 84, + "velocity_max": 127, + "key_min": 46, + "key_max": 46 + }, + { + "file_path": "samples/kick_p.mp3", + "root_key": 36, + "velocity_min": 0, + "velocity_max": 41, + "key_min": 36, + "key_max": 36 + }, + { + "file_path": "samples/kick_f.mp3", + "root_key": 36, + "velocity_min": 42, + "velocity_max": 83, + "key_min": 36, + "key_max": 36 + }, + { + "file_path": "samples/kick_ff.mp3", + "root_key": 36, + "velocity_min": 84, + "velocity_max": 127, + "key_min": 36, + "key_max": 36 + }, + { + "file_path": "samples/loTom_pp.mp3", + "root_key": 45, + "velocity_min": 0, + "velocity_max": 41, + "key_min": 45, + "key_max": 45 + }, + { + "file_path": "samples/loTom_mp.mp3", + "root_key": 45, + "velocity_min": 42, + "velocity_max": 83, + "key_min": 45, + "key_max": 45 + }, + { + "file_path": "samples/loTom_ff.mp3", + "root_key": 45, + "velocity_min": 84, + "velocity_max": 127, + "key_min": 45, + "key_max": 45 + }, + { + "file_path": "samples/ride1Bell_f.mp3", + "root_key": 53, + "velocity_min": 0, + "velocity_max": 127, + "key_min": 53, + "key_max": 53 + }, + { + "file_path": "samples/ride1_mp.mp3", + "root_key": 51, + "velocity_min": 0, + "velocity_max": 63, + "key_min": 51, + "key_max": 51 + }, + { + "file_path": "samples/ride1_ff.mp3", + "root_key": 51, + "velocity_min": 64, + "velocity_max": 127, + "key_min": 51, + "key_max": 51 + }, + { + "file_path": "samples/snareOFF_p.mp3", + "root_key": 40, + "velocity_min": 0, + "velocity_max": 63, + "key_min": 40, + "key_max": 40 + }, + { + "file_path": "samples/snareOFF_f.mp3", + "root_key": 40, + "velocity_min": 64, + "velocity_max": 127, + "key_min": 40, + "key_max": 40 + }, + { + "file_path": "samples/snareStick_f.mp3", + "root_key": 37, + "velocity_min": 0, + "velocity_max": 127, + "key_min": 37, + "key_max": 37 + }, + { + "file_path": "samples/snare_ghost.mp3", + "root_key": 38, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 38, + "key_max": 38 + }, + { + "file_path": "samples/snare_mp.mp3", + "root_key": 38, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 38, + "key_max": 38 + }, + { + "file_path": "samples/snare_f.mp3", + "root_key": 38, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 38, + "key_max": 38 + }, + { + "file_path": "samples/snare_ff.mp3", + "root_key": 38, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 38, + "key_max": 38 + }, + { + "file_path": "samples/splash1_p.mp3", + "root_key": 55, + "velocity_min": 0, + "velocity_max": 63, + "key_min": 55, + "key_max": 55 + }, + { + "file_path": "samples/splash1_f.mp3", + "root_key": 55, + "velocity_min": 64, + "velocity_max": 127, + "key_min": 55, + "key_max": 55 + } + ] + }, + "position": [ + 350.0, + 0.0 + ] + }, + { + "id": 2, + "node_type": "AudioOutput", + "name": "Out", + "parameters": {}, + "position": [ + 700.0, + 100.0 + ] + } + ], + "connections": [ + { + "from_node": 0, + "from_port": 0, + "to_node": 1, + "to_port": 0 + }, + { + "from_node": 1, + "from_port": 0, + "to_node": 2, + "to_port": 0 + } + ] +} \ No newline at end of file diff --git a/src/assets/instruments/drums/drum-kit/samples/cowbell_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/cowbell_ff.mp3 new file mode 100644 index 0000000..6105455 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/cowbell_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/cowbell_mp.mp3 b/src/assets/instruments/drums/drum-kit/samples/cowbell_mp.mp3 new file mode 100644 index 0000000..c84a377 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/cowbell_mp.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/cowbell_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/cowbell_p.mp3 new file mode 100644 index 0000000..b3cab23 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/cowbell_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/crash1_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/crash1_ff.mp3 new file mode 100644 index 0000000..be71382 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/crash1_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/crash1_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/crash1_p.mp3 new file mode 100644 index 0000000..4fa4310 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/crash1_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/crash2_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/crash2_ff.mp3 new file mode 100644 index 0000000..7cc9299 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/crash2_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/crash2_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/crash2_p.mp3 new file mode 100644 index 0000000..20ac462 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/crash2_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hiTom_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/hiTom_f.mp3 new file mode 100644 index 0000000..793ac6a Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hiTom_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hiTom_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/hiTom_ff.mp3 new file mode 100644 index 0000000..95a58f4 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hiTom_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hiTom_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/hiTom_p.mp3 new file mode 100644 index 0000000..22fbaee Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hiTom_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hihatClosed_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/hihatClosed_f.mp3 new file mode 100644 index 0000000..8232144 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hihatClosed_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hihatClosed_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/hihatClosed_p.mp3 new file mode 100644 index 0000000..f4368b3 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hihatClosed_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hihatFoot_mp.mp3 b/src/assets/instruments/drums/drum-kit/samples/hihatFoot_mp.mp3 new file mode 100644 index 0000000..8adbb53 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hihatFoot_mp.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hihatOpen_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/hihatOpen_f.mp3 new file mode 100644 index 0000000..4026e8f Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hihatOpen_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hihatOpen_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/hihatOpen_ff.mp3 new file mode 100644 index 0000000..70e4442 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hihatOpen_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/hihatOpen_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/hihatOpen_p.mp3 new file mode 100644 index 0000000..4fdc211 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/hihatOpen_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/kick_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/kick_f.mp3 new file mode 100644 index 0000000..a6b4d70 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/kick_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/kick_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/kick_ff.mp3 new file mode 100644 index 0000000..19cea2f Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/kick_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/kick_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/kick_p.mp3 new file mode 100644 index 0000000..d76afd8 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/kick_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/loTom_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/loTom_ff.mp3 new file mode 100644 index 0000000..1fa54a2 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/loTom_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/loTom_mp.mp3 b/src/assets/instruments/drums/drum-kit/samples/loTom_mp.mp3 new file mode 100644 index 0000000..26d733b Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/loTom_mp.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/loTom_pp.mp3 b/src/assets/instruments/drums/drum-kit/samples/loTom_pp.mp3 new file mode 100644 index 0000000..78aa770 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/loTom_pp.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/ride1Bell_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/ride1Bell_f.mp3 new file mode 100644 index 0000000..dc419d7 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/ride1Bell_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/ride1_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/ride1_ff.mp3 new file mode 100644 index 0000000..b7ed742 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/ride1_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/ride1_mp.mp3 b/src/assets/instruments/drums/drum-kit/samples/ride1_mp.mp3 new file mode 100644 index 0000000..063d605 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/ride1_mp.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/snareOFF_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/snareOFF_f.mp3 new file mode 100644 index 0000000..cc669fe Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/snareOFF_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/snareOFF_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/snareOFF_p.mp3 new file mode 100644 index 0000000..8dc5360 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/snareOFF_p.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/snareStick_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/snareStick_f.mp3 new file mode 100644 index 0000000..4724a77 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/snareStick_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/snare_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/snare_f.mp3 new file mode 100644 index 0000000..a77927f Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/snare_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/snare_ff.mp3 b/src/assets/instruments/drums/drum-kit/samples/snare_ff.mp3 new file mode 100644 index 0000000..c3f0711 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/snare_ff.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/snare_ghost.mp3 b/src/assets/instruments/drums/drum-kit/samples/snare_ghost.mp3 new file mode 100644 index 0000000..0c7be22 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/snare_ghost.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/snare_mp.mp3 b/src/assets/instruments/drums/drum-kit/samples/snare_mp.mp3 new file mode 100644 index 0000000..7a17135 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/snare_mp.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/splash1_f.mp3 b/src/assets/instruments/drums/drum-kit/samples/splash1_f.mp3 new file mode 100644 index 0000000..b0d3807 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/splash1_f.mp3 differ diff --git a/src/assets/instruments/drums/drum-kit/samples/splash1_p.mp3 b/src/assets/instruments/drums/drum-kit/samples/splash1_p.mp3 new file mode 100644 index 0000000..7078cb6 Binary files /dev/null and b/src/assets/instruments/drums/drum-kit/samples/splash1_p.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/acoustic-guitar.json b/src/assets/instruments/guitar/acoustic-guitar/acoustic-guitar.json new file mode 100644 index 0000000..c598d7e --- /dev/null +++ b/src/assets/instruments/guitar/acoustic-guitar/acoustic-guitar.json @@ -0,0 +1,1122 @@ +{ + "metadata": { + "name": "Acoustic Guitar", + "description": "Nylon-string classical guitar (Raimundo 118) with three velocity layers", + "author": "University of Iowa MIS", + "version": 1, + "tags": [ + "guitar", + "acoustic", + "nylon", + "classical" + ] + }, + "midi_targets": [ + 0 + ], + "output_node": 2, + "nodes": [ + { + "id": 0, + "node_type": "MidiInput", + "name": "MIDI In", + "parameters": {}, + "position": [ + 100.0, + 100.0 + ] + }, + { + "id": 1, + "node_type": "MultiSampler", + "name": "Acoustic Guitar Sampler", + "parameters": { + "0": 1.0, + "1": 0.001, + "2": 0.8, + "3": 0.0 + }, + "sample_data": { + "type": "multi_sampler", + "layers": [ + { + "file_path": "samples/E2_pp.mp3", + "root_key": 40, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 0, + "key_max": 40 + }, + { + "file_path": "samples/F2_pp.mp3", + "root_key": 41, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 41, + "key_max": 41 + }, + { + "file_path": "samples/F#2_pp.mp3", + "root_key": 42, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 42, + "key_max": 42 + }, + { + "file_path": "samples/G2_pp.mp3", + "root_key": 43, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 43, + "key_max": 43 + }, + { + "file_path": "samples/G#2_pp.mp3", + "root_key": 44, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 44, + "key_max": 44 + }, + { + "file_path": "samples/A2_pp.mp3", + "root_key": 45, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 45, + "key_max": 45 + }, + { + "file_path": "samples/A#2_pp.mp3", + "root_key": 46, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 46, + "key_max": 46 + }, + { + "file_path": "samples/B2_pp.mp3", + "root_key": 47, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 47, + "key_max": 47 + }, + { + "file_path": "samples/C3_pp.mp3", + "root_key": 48, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 48, + "key_max": 48 + }, + { + "file_path": "samples/C#3_pp.mp3", + "root_key": 49, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 49, + "key_max": 49 + }, + { + "file_path": "samples/D3_pp.mp3", + "root_key": 50, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 50, + "key_max": 50 + }, + { + "file_path": "samples/D#3_pp.mp3", + "root_key": 51, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 51, + "key_max": 51 + }, + { + "file_path": "samples/E3_pp.mp3", + "root_key": 52, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 52, + "key_max": 52 + }, + { + "file_path": "samples/F3_pp.mp3", + "root_key": 53, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 53, + "key_max": 53 + }, + { + "file_path": "samples/F#3_pp.mp3", + "root_key": 54, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 54, + "key_max": 54 + }, + { + "file_path": "samples/G3_pp.mp3", + "root_key": 55, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 55, + "key_max": 55 + }, + { + "file_path": "samples/G#3_pp.mp3", + "root_key": 56, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 56, + "key_max": 56 + }, + { + "file_path": "samples/A3_pp.mp3", + "root_key": 57, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 57, + "key_max": 57 + }, + { + "file_path": "samples/A#3_pp.mp3", + "root_key": 58, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 58, + "key_max": 58 + }, + { + "file_path": "samples/B3_pp.mp3", + "root_key": 59, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 59, + "key_max": 59 + }, + { + "file_path": "samples/C4_pp.mp3", + "root_key": 60, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 60, + "key_max": 60 + }, + { + "file_path": "samples/C#4_pp.mp3", + "root_key": 61, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 61, + "key_max": 61 + }, + { + "file_path": "samples/D4_pp.mp3", + "root_key": 62, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 62, + "key_max": 62 + }, + { + "file_path": "samples/D#4_pp.mp3", + "root_key": 63, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 63, + "key_max": 63 + }, + { + "file_path": "samples/E4_pp.mp3", + "root_key": 64, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 64, + "key_max": 64 + }, + { + "file_path": "samples/F4_pp.mp3", + "root_key": 65, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 65, + "key_max": 65 + }, + { + "file_path": "samples/F#4_pp.mp3", + "root_key": 66, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 66, + "key_max": 66 + }, + { + "file_path": "samples/G4_pp.mp3", + "root_key": 67, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 67, + "key_max": 67 + }, + { + "file_path": "samples/G#4_pp.mp3", + "root_key": 68, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 68, + "key_max": 68 + }, + { + "file_path": "samples/A4_pp.mp3", + "root_key": 69, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 69, + "key_max": 69 + }, + { + "file_path": "samples/A#4_pp.mp3", + "root_key": 70, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 70, + "key_max": 70 + }, + { + "file_path": "samples/B4_pp.mp3", + "root_key": 71, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 71, + "key_max": 71 + }, + { + "file_path": "samples/C5_pp.mp3", + "root_key": 72, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 72, + "key_max": 72 + }, + { + "file_path": "samples/C#5_pp.mp3", + "root_key": 73, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 73, + "key_max": 73 + }, + { + "file_path": "samples/D5_pp.mp3", + "root_key": 74, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 74, + "key_max": 74 + }, + { + "file_path": "samples/D#5_pp.mp3", + "root_key": 75, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 75, + "key_max": 75 + }, + { + "file_path": "samples/E5_pp.mp3", + "root_key": 76, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 76, + "key_max": 76 + }, + { + "file_path": "samples/F5_pp.mp3", + "root_key": 77, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 77, + "key_max": 77 + }, + { + "file_path": "samples/F#5_pp.mp3", + "root_key": 78, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 78, + "key_max": 78 + }, + { + "file_path": "samples/G5_pp.mp3", + "root_key": 79, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 79, + "key_max": 79 + }, + { + "file_path": "samples/G#5_pp.mp3", + "root_key": 80, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 80, + "key_max": 80 + }, + { + "file_path": "samples/A5_pp.mp3", + "root_key": 81, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 81, + "key_max": 81 + }, + { + "file_path": "samples/A#5_pp.mp3", + "root_key": 82, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 82, + "key_max": 82 + }, + { + "file_path": "samples/B5_pp.mp3", + "root_key": 83, + "velocity_min": 0, + "velocity_max": 42, + "key_min": 83, + "key_max": 127 + }, + { + "file_path": "samples/E2_mf.mp3", + "root_key": 40, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 0, + "key_max": 40 + }, + { + "file_path": "samples/F2_mf.mp3", + "root_key": 41, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 41, + "key_max": 41 + }, + { + "file_path": "samples/F#2_mf.mp3", + "root_key": 42, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 42, + "key_max": 42 + }, + { + "file_path": "samples/G2_mf.mp3", + "root_key": 43, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 43, + "key_max": 43 + }, + { + "file_path": "samples/G#2_mf.mp3", + "root_key": 44, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 44, + "key_max": 44 + }, + { + "file_path": "samples/A2_mf.mp3", + "root_key": 45, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 45, + "key_max": 45 + }, + { + "file_path": "samples/A#2_mf.mp3", + "root_key": 46, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 46, + "key_max": 46 + }, + { + "file_path": "samples/B2_mf.mp3", + "root_key": 47, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 47, + "key_max": 47 + }, + { + "file_path": "samples/C3_mf.mp3", + "root_key": 48, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 48, + "key_max": 48 + }, + { + "file_path": "samples/C#3_mf.mp3", + "root_key": 49, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 49, + "key_max": 49 + }, + { + "file_path": "samples/D3_mf.mp3", + "root_key": 50, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 50, + "key_max": 50 + }, + { + "file_path": "samples/D#3_mf.mp3", + "root_key": 51, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 51, + "key_max": 51 + }, + { + "file_path": "samples/E3_mf.mp3", + "root_key": 52, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 52, + "key_max": 52 + }, + { + "file_path": "samples/F3_mf.mp3", + "root_key": 53, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 53, + "key_max": 53 + }, + { + "file_path": "samples/F#3_mf.mp3", + "root_key": 54, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 54, + "key_max": 54 + }, + { + "file_path": "samples/G3_mf.mp3", + "root_key": 55, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 55, + "key_max": 55 + }, + { + "file_path": "samples/G#3_mf.mp3", + "root_key": 56, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 56, + "key_max": 56 + }, + { + "file_path": "samples/A3_mf.mp3", + "root_key": 57, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 57, + "key_max": 57 + }, + { + "file_path": "samples/A#3_mf.mp3", + "root_key": 58, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 58, + "key_max": 58 + }, + { + "file_path": "samples/B3_mf.mp3", + "root_key": 59, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 59, + "key_max": 59 + }, + { + "file_path": "samples/C4_mf.mp3", + "root_key": 60, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 60, + "key_max": 60 + }, + { + "file_path": "samples/C#4_mf.mp3", + "root_key": 61, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 61, + "key_max": 61 + }, + { + "file_path": "samples/D4_mf.mp3", + "root_key": 62, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 62, + "key_max": 62 + }, + { + "file_path": "samples/D#4_mf.mp3", + "root_key": 63, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 63, + "key_max": 63 + }, + { + "file_path": "samples/E4_mf.mp3", + "root_key": 64, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 64, + "key_max": 64 + }, + { + "file_path": "samples/F4_mf.mp3", + "root_key": 65, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 65, + "key_max": 65 + }, + { + "file_path": "samples/F#4_mf.mp3", + "root_key": 66, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 66, + "key_max": 66 + }, + { + "file_path": "samples/G4_mf.mp3", + "root_key": 67, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 67, + "key_max": 67 + }, + { + "file_path": "samples/G#4_mf.mp3", + "root_key": 68, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 68, + "key_max": 68 + }, + { + "file_path": "samples/A4_mf.mp3", + "root_key": 69, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 69, + "key_max": 69 + }, + { + "file_path": "samples/A#4_mf.mp3", + "root_key": 70, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 70, + "key_max": 70 + }, + { + "file_path": "samples/B4_mf.mp3", + "root_key": 71, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 71, + "key_max": 71 + }, + { + "file_path": "samples/C5_mf.mp3", + "root_key": 72, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 72, + "key_max": 72 + }, + { + "file_path": "samples/C#5_mf.mp3", + "root_key": 73, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 73, + "key_max": 73 + }, + { + "file_path": "samples/D5_mf.mp3", + "root_key": 74, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 74, + "key_max": 74 + }, + { + "file_path": "samples/D#5_mf.mp3", + "root_key": 75, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 75, + "key_max": 75 + }, + { + "file_path": "samples/E5_mf.mp3", + "root_key": 76, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 76, + "key_max": 76 + }, + { + "file_path": "samples/F5_mf.mp3", + "root_key": 77, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 77, + "key_max": 77 + }, + { + "file_path": "samples/F#5_mf.mp3", + "root_key": 78, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 78, + "key_max": 78 + }, + { + "file_path": "samples/G5_mf.mp3", + "root_key": 79, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 79, + "key_max": 79 + }, + { + "file_path": "samples/G#5_mf.mp3", + "root_key": 80, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 80, + "key_max": 80 + }, + { + "file_path": "samples/A5_mf.mp3", + "root_key": 81, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 81, + "key_max": 81 + }, + { + "file_path": "samples/A#5_mf.mp3", + "root_key": 82, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 82, + "key_max": 82 + }, + { + "file_path": "samples/B5_mf.mp3", + "root_key": 83, + "velocity_min": 43, + "velocity_max": 95, + "key_min": 83, + "key_max": 127 + }, + { + "file_path": "samples/E2_ff.mp3", + "root_key": 40, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 0, + "key_max": 40 + }, + { + "file_path": "samples/F2_ff.mp3", + "root_key": 41, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 41, + "key_max": 41 + }, + { + "file_path": "samples/F#2_ff.mp3", + "root_key": 42, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 42, + "key_max": 42 + }, + { + "file_path": "samples/G2_ff.mp3", + "root_key": 43, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 43, + "key_max": 43 + }, + { + "file_path": "samples/G#2_ff.mp3", + "root_key": 44, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 44, + "key_max": 44 + }, + { + "file_path": "samples/A2_ff.mp3", + "root_key": 45, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 45, + "key_max": 45 + }, + { + "file_path": "samples/A#2_ff.mp3", + "root_key": 46, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 46, + "key_max": 46 + }, + { + "file_path": "samples/B2_ff.mp3", + "root_key": 47, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 47, + "key_max": 47 + }, + { + "file_path": "samples/C3_ff.mp3", + "root_key": 48, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 48, + "key_max": 48 + }, + { + "file_path": "samples/C#3_ff.mp3", + "root_key": 49, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 49, + "key_max": 49 + }, + { + "file_path": "samples/D3_ff.mp3", + "root_key": 50, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 50, + "key_max": 50 + }, + { + "file_path": "samples/D#3_ff.mp3", + "root_key": 51, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 51, + "key_max": 51 + }, + { + "file_path": "samples/E3_ff.mp3", + "root_key": 52, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 52, + "key_max": 52 + }, + { + "file_path": "samples/F3_ff.mp3", + "root_key": 53, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 53, + "key_max": 53 + }, + { + "file_path": "samples/F#3_ff.mp3", + "root_key": 54, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 54, + "key_max": 54 + }, + { + "file_path": "samples/G3_ff.mp3", + "root_key": 55, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 55, + "key_max": 55 + }, + { + "file_path": "samples/G#3_ff.mp3", + "root_key": 56, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 56, + "key_max": 56 + }, + { + "file_path": "samples/A3_ff.mp3", + "root_key": 57, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 57, + "key_max": 57 + }, + { + "file_path": "samples/A#3_ff.mp3", + "root_key": 58, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 58, + "key_max": 58 + }, + { + "file_path": "samples/B3_ff.mp3", + "root_key": 59, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 59, + "key_max": 59 + }, + { + "file_path": "samples/C4_ff.mp3", + "root_key": 60, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 60, + "key_max": 60 + }, + { + "file_path": "samples/C#4_ff.mp3", + "root_key": 61, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 61, + "key_max": 61 + }, + { + "file_path": "samples/D4_ff.mp3", + "root_key": 62, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 62, + "key_max": 62 + }, + { + "file_path": "samples/D#4_ff.mp3", + "root_key": 63, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 63, + "key_max": 63 + }, + { + "file_path": "samples/E4_ff.mp3", + "root_key": 64, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 64, + "key_max": 64 + }, + { + "file_path": "samples/F4_ff.mp3", + "root_key": 65, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 65, + "key_max": 65 + }, + { + "file_path": "samples/F#4_ff.mp3", + "root_key": 66, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 66, + "key_max": 66 + }, + { + "file_path": "samples/G4_ff.mp3", + "root_key": 67, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 67, + "key_max": 67 + }, + { + "file_path": "samples/G#4_ff.mp3", + "root_key": 68, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 68, + "key_max": 68 + }, + { + "file_path": "samples/A4_ff.mp3", + "root_key": 69, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 69, + "key_max": 69 + }, + { + "file_path": "samples/A#4_ff.mp3", + "root_key": 70, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 70, + "key_max": 70 + }, + { + "file_path": "samples/B4_ff.mp3", + "root_key": 71, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 71, + "key_max": 71 + }, + { + "file_path": "samples/C5_ff.mp3", + "root_key": 72, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 72, + "key_max": 72 + }, + { + "file_path": "samples/C#5_ff.mp3", + "root_key": 73, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 73, + "key_max": 73 + }, + { + "file_path": "samples/D5_ff.mp3", + "root_key": 74, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 74, + "key_max": 74 + }, + { + "file_path": "samples/D#5_ff.mp3", + "root_key": 75, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 75, + "key_max": 75 + }, + { + "file_path": "samples/E5_ff.mp3", + "root_key": 76, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 76, + "key_max": 76 + }, + { + "file_path": "samples/F5_ff.mp3", + "root_key": 77, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 77, + "key_max": 77 + }, + { + "file_path": "samples/F#5_ff.mp3", + "root_key": 78, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 78, + "key_max": 78 + }, + { + "file_path": "samples/G5_ff.mp3", + "root_key": 79, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 79, + "key_max": 79 + }, + { + "file_path": "samples/G#5_ff.mp3", + "root_key": 80, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 80, + "key_max": 80 + }, + { + "file_path": "samples/A5_ff.mp3", + "root_key": 81, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 81, + "key_max": 81 + }, + { + "file_path": "samples/A#5_ff.mp3", + "root_key": 82, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 82, + "key_max": 127 + } + ] + }, + "position": [ + 350.0, + 0.0 + ] + }, + { + "id": 2, + "node_type": "AudioOutput", + "name": "Out", + "parameters": {}, + "position": [ + 700.0, + 100.0 + ] + } + ], + "connections": [ + { + "from_node": 0, + "from_port": 0, + "to_node": 1, + "to_port": 0 + }, + { + "from_node": 1, + "from_port": 0, + "to_node": 2, + "to_port": 0 + } + ] +} \ No newline at end of file diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_ff.mp3 new file mode 100644 index 0000000..821e14a Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_mf.mp3 new file mode 100644 index 0000000..2c87363 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_pp.mp3 new file mode 100644 index 0000000..19a41b0 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_ff.mp3 new file mode 100644 index 0000000..144d343 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_mf.mp3 new file mode 100644 index 0000000..2a5e6fd Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_pp.mp3 new file mode 100644 index 0000000..11cdef1 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_ff.mp3 new file mode 100644 index 0000000..62919b5 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_mf.mp3 new file mode 100644 index 0000000..0409744 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_pp.mp3 new file mode 100644 index 0000000..f0381fd Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_ff.mp3 new file mode 100644 index 0000000..1b7ddd2 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_mf.mp3 new file mode 100644 index 0000000..fae1141 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_pp.mp3 new file mode 100644 index 0000000..e134300 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A#5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A2_ff.mp3 new file mode 100644 index 0000000..11ea314 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A2_mf.mp3 new file mode 100644 index 0000000..e134e61 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A2_pp.mp3 new file mode 100644 index 0000000..53f44df Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A3_ff.mp3 new file mode 100644 index 0000000..507e22e Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A3_mf.mp3 new file mode 100644 index 0000000..ae11dbf Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A3_pp.mp3 new file mode 100644 index 0000000..d595350 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A4_ff.mp3 new file mode 100644 index 0000000..0f179da Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A4_mf.mp3 new file mode 100644 index 0000000..e2ada7d Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A4_pp.mp3 new file mode 100644 index 0000000..22974f7 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A5_ff.mp3 new file mode 100644 index 0000000..c29db65 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A5_mf.mp3 new file mode 100644 index 0000000..d16fafb Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/A5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/A5_pp.mp3 new file mode 100644 index 0000000..2216873 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/A5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B2_ff.mp3 new file mode 100644 index 0000000..46f92d2 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B2_mf.mp3 new file mode 100644 index 0000000..4462048 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B2_pp.mp3 new file mode 100644 index 0000000..573c431 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B3_ff.mp3 new file mode 100644 index 0000000..1bc4c19 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B3_mf.mp3 new file mode 100644 index 0000000..3992c21 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B3_pp.mp3 new file mode 100644 index 0000000..25a9207 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B4_ff.mp3 new file mode 100644 index 0000000..f6449df Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B4_mf.mp3 new file mode 100644 index 0000000..0dcd4d9 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B4_pp.mp3 new file mode 100644 index 0000000..c8b8d07 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B5_mf.mp3 new file mode 100644 index 0000000..95ae7f8 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/B5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/B5_pp.mp3 new file mode 100644 index 0000000..a9b9688 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/B5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_ff.mp3 new file mode 100644 index 0000000..d1c6938 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_mf.mp3 new file mode 100644 index 0000000..b15aebc Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_pp.mp3 new file mode 100644 index 0000000..026b2e1 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_ff.mp3 new file mode 100644 index 0000000..5cde638 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_mf.mp3 new file mode 100644 index 0000000..05324dd Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_pp.mp3 new file mode 100644 index 0000000..38997cd Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_ff.mp3 new file mode 100644 index 0000000..2b736c2 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_mf.mp3 new file mode 100644 index 0000000..3637a90 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_pp.mp3 new file mode 100644 index 0000000..32eddfe Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C#5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C3_ff.mp3 new file mode 100644 index 0000000..4d16a27 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C3_mf.mp3 new file mode 100644 index 0000000..ca16b46 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C3_pp.mp3 new file mode 100644 index 0000000..4ee3e08 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C4_ff.mp3 new file mode 100644 index 0000000..a5dc052 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C4_mf.mp3 new file mode 100644 index 0000000..85657ac Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C4_pp.mp3 new file mode 100644 index 0000000..0c8d4a8 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C5_ff.mp3 new file mode 100644 index 0000000..bac9a98 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C5_mf.mp3 new file mode 100644 index 0000000..bf6e313 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/C5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/C5_pp.mp3 new file mode 100644 index 0000000..95d97a3 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/C5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_ff.mp3 new file mode 100644 index 0000000..644c143 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_mf.mp3 new file mode 100644 index 0000000..3fa8dbb Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_pp.mp3 new file mode 100644 index 0000000..8afaead Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_ff.mp3 new file mode 100644 index 0000000..c7ca49a Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_mf.mp3 new file mode 100644 index 0000000..367cd9b Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_pp.mp3 new file mode 100644 index 0000000..3def7a6 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_ff.mp3 new file mode 100644 index 0000000..ef67de1 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_mf.mp3 new file mode 100644 index 0000000..c939adf Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_pp.mp3 new file mode 100644 index 0000000..0500e51 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D#5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D3_ff.mp3 new file mode 100644 index 0000000..88e515c Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D3_mf.mp3 new file mode 100644 index 0000000..0b3dc71 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D3_pp.mp3 new file mode 100644 index 0000000..4f692f0 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D4_ff.mp3 new file mode 100644 index 0000000..ad4ee1e Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D4_mf.mp3 new file mode 100644 index 0000000..1d9be08 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D4_pp.mp3 new file mode 100644 index 0000000..d6cd0c5 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D5_ff.mp3 new file mode 100644 index 0000000..1ced195 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D5_mf.mp3 new file mode 100644 index 0000000..f572e14 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/D5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/D5_pp.mp3 new file mode 100644 index 0000000..e1c9d13 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/D5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E2_ff.mp3 new file mode 100644 index 0000000..cfd2948 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E2_mf.mp3 new file mode 100644 index 0000000..98465d7 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E2_pp.mp3 new file mode 100644 index 0000000..cbf4e8e Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E3_ff.mp3 new file mode 100644 index 0000000..9cf96df Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E3_mf.mp3 new file mode 100644 index 0000000..444a2a0 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E3_pp.mp3 new file mode 100644 index 0000000..2055885 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E4_ff.mp3 new file mode 100644 index 0000000..1d005c6 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E4_mf.mp3 new file mode 100644 index 0000000..5396f75 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E4_pp.mp3 new file mode 100644 index 0000000..413e003 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E5_ff.mp3 new file mode 100644 index 0000000..6ebc4a9 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E5_mf.mp3 new file mode 100644 index 0000000..e50a30f Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/E5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/E5_pp.mp3 new file mode 100644 index 0000000..a0b7100 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/E5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_ff.mp3 new file mode 100644 index 0000000..66f126e Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_mf.mp3 new file mode 100644 index 0000000..ac56e39 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_pp.mp3 new file mode 100644 index 0000000..c549819 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_ff.mp3 new file mode 100644 index 0000000..da0bff1 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_mf.mp3 new file mode 100644 index 0000000..9803449 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_pp.mp3 new file mode 100644 index 0000000..f239527 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_ff.mp3 new file mode 100644 index 0000000..637e06c Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_mf.mp3 new file mode 100644 index 0000000..0f41cf2 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_pp.mp3 new file mode 100644 index 0000000..9a7d110 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_ff.mp3 new file mode 100644 index 0000000..673499a Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_mf.mp3 new file mode 100644 index 0000000..42396c5 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_pp.mp3 new file mode 100644 index 0000000..f7f408b Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F#5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F2_ff.mp3 new file mode 100644 index 0000000..4f6a807 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F2_mf.mp3 new file mode 100644 index 0000000..93f461c Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F2_pp.mp3 new file mode 100644 index 0000000..5ffeb07 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F3_ff.mp3 new file mode 100644 index 0000000..d1de938 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F3_mf.mp3 new file mode 100644 index 0000000..3394936 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F3_pp.mp3 new file mode 100644 index 0000000..6259b18 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F4_ff.mp3 new file mode 100644 index 0000000..89b7f15 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F4_mf.mp3 new file mode 100644 index 0000000..6d2cd24 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F4_pp.mp3 new file mode 100644 index 0000000..11428ce Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F5_ff.mp3 new file mode 100644 index 0000000..af5b89a Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F5_mf.mp3 new file mode 100644 index 0000000..8b39da4 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/F5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/F5_pp.mp3 new file mode 100644 index 0000000..728f6f1 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/F5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_ff.mp3 new file mode 100644 index 0000000..4ca705d Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_mf.mp3 new file mode 100644 index 0000000..7a7a986 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_pp.mp3 new file mode 100644 index 0000000..b0b5449 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_ff.mp3 new file mode 100644 index 0000000..5ae42d2 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_mf.mp3 new file mode 100644 index 0000000..064e576 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_pp.mp3 new file mode 100644 index 0000000..30e8584 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_ff.mp3 new file mode 100644 index 0000000..25515c4 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_mf.mp3 new file mode 100644 index 0000000..3b0f084 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_pp.mp3 new file mode 100644 index 0000000..9716a09 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_ff.mp3 new file mode 100644 index 0000000..5616ae2 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_mf.mp3 new file mode 100644 index 0000000..9d30576 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_pp.mp3 new file mode 100644 index 0000000..d446e75 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G#5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G2_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G2_ff.mp3 new file mode 100644 index 0000000..f89d4ca Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G2_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G2_mf.mp3 new file mode 100644 index 0000000..c405586 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G2_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G2_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G2_pp.mp3 new file mode 100644 index 0000000..ed3fde9 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G3_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G3_ff.mp3 new file mode 100644 index 0000000..0f27696 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G3_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G3_mf.mp3 new file mode 100644 index 0000000..eebb3de Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G3_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G3_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G3_pp.mp3 new file mode 100644 index 0000000..fbc6ed1 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G4_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G4_ff.mp3 new file mode 100644 index 0000000..df42621 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G4_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G4_mf.mp3 new file mode 100644 index 0000000..611f084 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G4_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G4_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G4_pp.mp3 new file mode 100644 index 0000000..707ae10 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G5_ff.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G5_ff.mp3 new file mode 100644 index 0000000..b06dc12 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G5_mf.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G5_mf.mp3 new file mode 100644 index 0000000..26edd7a Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G5_mf.mp3 differ diff --git a/src/assets/instruments/guitar/acoustic-guitar/samples/G5_pp.mp3 b/src/assets/instruments/guitar/acoustic-guitar/samples/G5_pp.mp3 new file mode 100644 index 0000000..aa92444 Binary files /dev/null and b/src/assets/instruments/guitar/acoustic-guitar/samples/G5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/bass-guitar.json b/src/assets/instruments/guitar/bass-guitar/bass-guitar.json new file mode 100644 index 0000000..e0be3a0 --- /dev/null +++ b/src/assets/instruments/guitar/bass-guitar/bass-guitar.json @@ -0,0 +1,521 @@ +{ + "metadata": { + "name": "Bass Guitar", + "description": "Electric bass guitar (Squier Jazz) with four velocity layers", + "author": "Karoryfer Samples (CC0)", + "version": 1, + "tags": [ + "guitar", + "bass", + "electric" + ] + }, + "midi_targets": [ + 0 + ], + "output_node": 2, + "nodes": [ + { + "id": 0, + "node_type": "MidiInput", + "name": "MIDI In", + "parameters": {}, + "position": [ + 100.0, + 100.0 + ] + }, + { + "id": 1, + "node_type": "MultiSampler", + "name": "Bass Guitar Sampler", + "parameters": { + "0": 1.0, + "1": 0.001, + "2": 0.5, + "3": 0.0 + }, + "sample_data": { + "type": "multi_sampler", + "layers": [ + { + "file_path": "samples/DB2_f.mp3", + "root_key": 37, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 0, + "key_max": 38 + }, + { + "file_path": "samples/E2_f.mp3", + "root_key": 40, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 39, + "key_max": 41 + }, + { + "file_path": "samples/GB2_f.mp3", + "root_key": 42, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 42, + "key_max": 43 + }, + { + "file_path": "samples/A2_f.mp3", + "root_key": 45, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 44, + "key_max": 46 + }, + { + "file_path": "samples/C3_f.mp3", + "root_key": 48, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 47, + "key_max": 49 + }, + { + "file_path": "samples/EB3_f.mp3", + "root_key": 51, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 50, + "key_max": 52 + }, + { + "file_path": "samples/GB3_f.mp3", + "root_key": 54, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 53, + "key_max": 55 + }, + { + "file_path": "samples/A3_f.mp3", + "root_key": 57, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 56, + "key_max": 58 + }, + { + "file_path": "samples/C4_f.mp3", + "root_key": 60, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 59, + "key_max": 61 + }, + { + "file_path": "samples/EB4_f.mp3", + "root_key": 63, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 62, + "key_max": 64 + }, + { + "file_path": "samples/GB4_f.mp3", + "root_key": 66, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 65, + "key_max": 67 + }, + { + "file_path": "samples/A4_f.mp3", + "root_key": 69, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 68, + "key_max": 70 + }, + { + "file_path": "samples/C5_f.mp3", + "root_key": 72, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 71, + "key_max": 73 + }, + { + "file_path": "samples/EB5_f.mp3", + "root_key": 75, + "velocity_min": 64, + "velocity_max": 95, + "key_min": 74, + "key_max": 127 + }, + { + "file_path": "samples/DB2_ff.mp3", + "root_key": 37, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 0, + "key_max": 38 + }, + { + "file_path": "samples/E2_ff.mp3", + "root_key": 40, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 39, + "key_max": 41 + }, + { + "file_path": "samples/GB2_ff.mp3", + "root_key": 42, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 42, + "key_max": 43 + }, + { + "file_path": "samples/A2_ff.mp3", + "root_key": 45, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 44, + "key_max": 46 + }, + { + "file_path": "samples/C3_ff.mp3", + "root_key": 48, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 47, + "key_max": 49 + }, + { + "file_path": "samples/EB3_ff.mp3", + "root_key": 51, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 50, + "key_max": 52 + }, + { + "file_path": "samples/GB3_ff.mp3", + "root_key": 54, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 53, + "key_max": 55 + }, + { + "file_path": "samples/A3_ff.mp3", + "root_key": 57, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 56, + "key_max": 58 + }, + { + "file_path": "samples/C4_ff.mp3", + "root_key": 60, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 59, + "key_max": 61 + }, + { + "file_path": "samples/EB4_ff.mp3", + "root_key": 63, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 62, + "key_max": 64 + }, + { + "file_path": "samples/GB4_ff.mp3", + "root_key": 66, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 65, + "key_max": 67 + }, + { + "file_path": "samples/A4_ff.mp3", + "root_key": 69, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 68, + "key_max": 70 + }, + { + "file_path": "samples/C5_ff.mp3", + "root_key": 72, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 71, + "key_max": 73 + }, + { + "file_path": "samples/EB5_ff.mp3", + "root_key": 75, + "velocity_min": 96, + "velocity_max": 127, + "key_min": 74, + "key_max": 127 + }, + { + "file_path": "samples/DB2_p.mp3", + "root_key": 37, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 0, + "key_max": 38 + }, + { + "file_path": "samples/E2_p.mp3", + "root_key": 40, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 39, + "key_max": 41 + }, + { + "file_path": "samples/GB2_p.mp3", + "root_key": 42, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 42, + "key_max": 43 + }, + { + "file_path": "samples/A2_p.mp3", + "root_key": 45, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 44, + "key_max": 46 + }, + { + "file_path": "samples/C3_p.mp3", + "root_key": 48, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 47, + "key_max": 49 + }, + { + "file_path": "samples/EB3_p.mp3", + "root_key": 51, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 50, + "key_max": 52 + }, + { + "file_path": "samples/GB3_p.mp3", + "root_key": 54, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 53, + "key_max": 55 + }, + { + "file_path": "samples/A3_p.mp3", + "root_key": 57, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 56, + "key_max": 58 + }, + { + "file_path": "samples/C4_p.mp3", + "root_key": 60, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 59, + "key_max": 61 + }, + { + "file_path": "samples/EB4_p.mp3", + "root_key": 63, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 62, + "key_max": 64 + }, + { + "file_path": "samples/GB4_p.mp3", + "root_key": 66, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 65, + "key_max": 67 + }, + { + "file_path": "samples/A4_p.mp3", + "root_key": 69, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 68, + "key_max": 70 + }, + { + "file_path": "samples/C5_p.mp3", + "root_key": 72, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 71, + "key_max": 73 + }, + { + "file_path": "samples/EB5_p.mp3", + "root_key": 75, + "velocity_min": 32, + "velocity_max": 63, + "key_min": 74, + "key_max": 127 + }, + { + "file_path": "samples/DB2_pp.mp3", + "root_key": 37, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 0, + "key_max": 38 + }, + { + "file_path": "samples/E2_pp.mp3", + "root_key": 40, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 39, + "key_max": 41 + }, + { + "file_path": "samples/GB2_pp.mp3", + "root_key": 42, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 42, + "key_max": 43 + }, + { + "file_path": "samples/A2_pp.mp3", + "root_key": 45, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 44, + "key_max": 46 + }, + { + "file_path": "samples/C3_pp.mp3", + "root_key": 48, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 47, + "key_max": 49 + }, + { + "file_path": "samples/EB3_pp.mp3", + "root_key": 51, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 50, + "key_max": 52 + }, + { + "file_path": "samples/GB3_pp.mp3", + "root_key": 54, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 53, + "key_max": 55 + }, + { + "file_path": "samples/A3_pp.mp3", + "root_key": 57, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 56, + "key_max": 58 + }, + { + "file_path": "samples/C4_pp.mp3", + "root_key": 60, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 59, + "key_max": 61 + }, + { + "file_path": "samples/EB4_pp.mp3", + "root_key": 63, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 62, + "key_max": 64 + }, + { + "file_path": "samples/GB4_pp.mp3", + "root_key": 66, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 65, + "key_max": 67 + }, + { + "file_path": "samples/A4_pp.mp3", + "root_key": 69, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 68, + "key_max": 70 + }, + { + "file_path": "samples/C5_pp.mp3", + "root_key": 72, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 71, + "key_max": 73 + }, + { + "file_path": "samples/EB5_pp.mp3", + "root_key": 75, + "velocity_min": 0, + "velocity_max": 31, + "key_min": 74, + "key_max": 127 + } + ] + }, + "position": [ + 350.0, + 0.0 + ] + }, + { + "id": 2, + "node_type": "AudioOutput", + "name": "Out", + "parameters": {}, + "position": [ + 700.0, + 100.0 + ] + } + ], + "connections": [ + { + "from_node": 0, + "from_port": 0, + "to_node": 1, + "to_port": 0 + }, + { + "from_node": 1, + "from_port": 0, + "to_node": 2, + "to_port": 0 + } + ] +} \ No newline at end of file diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A2_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A2_f.mp3 new file mode 100644 index 0000000..3547131 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A2_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A2_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A2_ff.mp3 new file mode 100644 index 0000000..ca4b9c2 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A2_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A2_p.mp3 new file mode 100644 index 0000000..1adbb5e Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A2_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A2_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A2_pp.mp3 new file mode 100644 index 0000000..07934b8 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A3_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A3_f.mp3 new file mode 100644 index 0000000..e004fb3 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A3_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A3_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A3_ff.mp3 new file mode 100644 index 0000000..1060212 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A3_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A3_p.mp3 new file mode 100644 index 0000000..46d6d47 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A3_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A3_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A3_pp.mp3 new file mode 100644 index 0000000..f32aae0 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A4_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A4_f.mp3 new file mode 100644 index 0000000..c01d172 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A4_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A4_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A4_ff.mp3 new file mode 100644 index 0000000..21c4606 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A4_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A4_p.mp3 new file mode 100644 index 0000000..d06c4af Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A4_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/A4_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/A4_pp.mp3 new file mode 100644 index 0000000..5d78614 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/A4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C3_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C3_f.mp3 new file mode 100644 index 0000000..f381062 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C3_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C3_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C3_ff.mp3 new file mode 100644 index 0000000..b11489a Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C3_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C3_p.mp3 new file mode 100644 index 0000000..161ee02 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C3_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C3_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C3_pp.mp3 new file mode 100644 index 0000000..ee3ee0d Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C4_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C4_f.mp3 new file mode 100644 index 0000000..19b718f Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C4_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C4_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C4_ff.mp3 new file mode 100644 index 0000000..6986d73 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C4_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C4_p.mp3 new file mode 100644 index 0000000..695ec8d Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C4_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C4_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C4_pp.mp3 new file mode 100644 index 0000000..b45701a Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C5_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C5_f.mp3 new file mode 100644 index 0000000..af12841 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C5_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C5_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C5_ff.mp3 new file mode 100644 index 0000000..4948a66 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C5_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C5_p.mp3 new file mode 100644 index 0000000..ae0c1cd Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C5_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/C5_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/C5_pp.mp3 new file mode 100644 index 0000000..2955bba Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/C5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/DB2_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/DB2_f.mp3 new file mode 100644 index 0000000..fca2753 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/DB2_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/DB2_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/DB2_ff.mp3 new file mode 100644 index 0000000..9277b80 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/DB2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/DB2_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/DB2_p.mp3 new file mode 100644 index 0000000..0904ab2 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/DB2_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/DB2_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/DB2_pp.mp3 new file mode 100644 index 0000000..bfa304b Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/DB2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/E2_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/E2_f.mp3 new file mode 100644 index 0000000..7676826 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/E2_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/E2_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/E2_ff.mp3 new file mode 100644 index 0000000..92d39d0 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/E2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/E2_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/E2_p.mp3 new file mode 100644 index 0000000..5507a7d Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/E2_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/E2_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/E2_pp.mp3 new file mode 100644 index 0000000..4b0b4d6 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/E2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB3_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB3_f.mp3 new file mode 100644 index 0000000..604c3e5 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB3_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB3_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB3_ff.mp3 new file mode 100644 index 0000000..d587c24 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB3_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB3_p.mp3 new file mode 100644 index 0000000..d5a00b8 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB3_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB3_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB3_pp.mp3 new file mode 100644 index 0000000..3b34861 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB4_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB4_f.mp3 new file mode 100644 index 0000000..ee5fb14 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB4_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB4_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB4_ff.mp3 new file mode 100644 index 0000000..7892b89 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB4_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB4_p.mp3 new file mode 100644 index 0000000..c0b844a Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB4_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB4_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB4_pp.mp3 new file mode 100644 index 0000000..2d42f95 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB4_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB5_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB5_f.mp3 new file mode 100644 index 0000000..5878053 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB5_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB5_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB5_ff.mp3 new file mode 100644 index 0000000..83d0ef3 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB5_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB5_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB5_p.mp3 new file mode 100644 index 0000000..27369d5 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB5_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/EB5_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/EB5_pp.mp3 new file mode 100644 index 0000000..7aeb3f7 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/EB5_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB2_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB2_f.mp3 new file mode 100644 index 0000000..544addd Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB2_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB2_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB2_ff.mp3 new file mode 100644 index 0000000..5c6cc9b Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB2_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB2_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB2_p.mp3 new file mode 100644 index 0000000..8d1bce3 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB2_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB2_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB2_pp.mp3 new file mode 100644 index 0000000..68515c4 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB2_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB3_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB3_f.mp3 new file mode 100644 index 0000000..f5f9f32 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB3_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB3_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB3_ff.mp3 new file mode 100644 index 0000000..ac0f5f9 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB3_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB3_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB3_p.mp3 new file mode 100644 index 0000000..d42561c Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB3_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB3_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB3_pp.mp3 new file mode 100644 index 0000000..298a05e Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB3_pp.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB4_f.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB4_f.mp3 new file mode 100644 index 0000000..19c3c75 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB4_f.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB4_ff.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB4_ff.mp3 new file mode 100644 index 0000000..73db1ff Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB4_ff.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB4_p.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB4_p.mp3 new file mode 100644 index 0000000..aa9fd43 Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB4_p.mp3 differ diff --git a/src/assets/instruments/guitar/bass-guitar/samples/GB4_pp.mp3 b/src/assets/instruments/guitar/bass-guitar/samples/GB4_pp.mp3 new file mode 100644 index 0000000..37c970a Binary files /dev/null and b/src/assets/instruments/guitar/bass-guitar/samples/GB4_pp.mp3 differ