@kernel.chat/kbot 3.97.1 → 3.97.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -537,6 +537,252 @@ const SOUND_RECIPES = {
537
537
  },
538
538
  description: 'Metallic pluck — inharmonic FM, bell-like attack, short decay',
539
539
  },
540
+ // ─── Drift (analog-modeled synth) ───────────────────────────────────────
541
+ 'drift_dark_bass': {
542
+ synth: 'Drift',
543
+ params: {
544
+ 'Osc 1 Shape': 0.8, // Near-saw, harmonically rich
545
+ 'Osc 2 On': 1,
546
+ 'Osc 2 Shape': 0.6,
547
+ 'Osc 2 Detune': 0.05,
548
+ 'Osc 2 Level': 0.7,
549
+ 'Filter Freq': 300,
550
+ 'Filter Res': 0.25,
551
+ 'Filter Drive': 0.4,
552
+ 'Filter Type': 0, // LP
553
+ 'Drift Amount': 0.3,
554
+ 'LFO Rate': 0.4,
555
+ 'LFO Amount': 0.1,
556
+ 'LFO Dest': 0, // Filter
557
+ 'Amp Attack': 0.005,
558
+ 'Amp Decay': 0.4,
559
+ 'Amp Sustain': 0.8,
560
+ 'Amp Release': 0.2,
561
+ 'Volume': 0.85,
562
+ },
563
+ description: 'Dark Drift bass — filtered saw with analog drift and subtle movement',
564
+ },
565
+ 'drift_warm_bass': {
566
+ synth: 'Drift',
567
+ params: {
568
+ 'Osc 1 Shape': 0.4, // Between triangle and saw
569
+ 'Osc 2 On': 1,
570
+ 'Osc 2 Shape': 0.3,
571
+ 'Osc 2 Detune': 0.08,
572
+ 'Osc 2 Level': 0.6,
573
+ 'Filter Freq': 500,
574
+ 'Filter Res': 0.15,
575
+ 'Filter Drive': 0.2,
576
+ 'Filter Type': 0, // LP
577
+ 'Drift Amount': 0.5,
578
+ 'LFO Rate': 0.2,
579
+ 'LFO Amount': 0.08,
580
+ 'LFO Dest': 0, // Filter
581
+ 'Amp Attack': 0.01,
582
+ 'Amp Decay': 0.3,
583
+ 'Amp Sustain': 0.85,
584
+ 'Amp Release': 0.25,
585
+ 'Volume': 0.85,
586
+ },
587
+ description: 'Warm Drift bass — round and fat, gentle analog drift',
588
+ },
589
+ 'drift_analog_lead': {
590
+ synth: 'Drift',
591
+ params: {
592
+ 'Osc 1 Shape': 1.0, // Full saw
593
+ 'Osc 2 On': 1,
594
+ 'Osc 2 Shape': 0.9,
595
+ 'Osc 2 Detune': 0.12,
596
+ 'Osc 2 Level': 0.8,
597
+ 'Filter Freq': 2500,
598
+ 'Filter Res': 0.35,
599
+ 'Filter Drive': 0.3,
600
+ 'Filter Type': 0, // LP
601
+ 'Drift Amount': 0.25,
602
+ 'LFO Rate': 3.0,
603
+ 'LFO Amount': 0.05,
604
+ 'LFO Dest': 0, // Filter
605
+ 'Amp Attack': 0.01,
606
+ 'Amp Decay': 0.2,
607
+ 'Amp Sustain': 0.85,
608
+ 'Amp Release': 0.15,
609
+ 'Volume': 0.75,
610
+ },
611
+ description: 'Analog Drift lead — detuned saws, resonant filter, vintage character',
612
+ },
613
+ 'drift_lo_fi': {
614
+ synth: 'Drift',
615
+ params: {
616
+ 'Osc 1 Shape': 0.5,
617
+ 'Osc 2 On': 0,
618
+ 'Filter Freq': 1200,
619
+ 'Filter Res': 0.1,
620
+ 'Filter Drive': 0.6, // Drive for lo-fi saturation
621
+ 'Filter Type': 0, // LP
622
+ 'Drift Amount': 0.7, // Heavy drift for wobble
623
+ 'LFO Rate': 0.15,
624
+ 'LFO Amount': 0.2,
625
+ 'LFO Dest': 0, // Filter
626
+ 'Amp Attack': 0.01,
627
+ 'Amp Decay': 0.5,
628
+ 'Amp Sustain': 0.6,
629
+ 'Amp Release': 0.3,
630
+ 'Volume': 0.7,
631
+ },
632
+ description: 'Lo-fi Drift — heavy drift, filter drive, warped and vintage',
633
+ effects: [{
634
+ name: 'Saturator',
635
+ params: { 'Drive': 8, 'Type': 1, 'Output': -3, 'Dry/Wet': 0.4 },
636
+ }],
637
+ },
638
+ 'drift_ethereal_pad': {
639
+ synth: 'Drift',
640
+ params: {
641
+ 'Osc 1 Shape': 0.3, // Soft, triangle-ish
642
+ 'Osc 2 On': 1,
643
+ 'Osc 2 Shape': 0.2,
644
+ 'Osc 2 Detune': 0.15,
645
+ 'Osc 2 Level': 0.6,
646
+ 'Filter Freq': 1800,
647
+ 'Filter Res': 0.2,
648
+ 'Filter Drive': 0.1,
649
+ 'Filter Type': 0, // LP
650
+ 'Drift Amount': 0.6, // High drift for organic movement
651
+ 'LFO Rate': 0.1,
652
+ 'LFO Amount': 0.25,
653
+ 'LFO Dest': 0, // Filter
654
+ 'Amp Attack': 2.0,
655
+ 'Amp Decay': 2.5,
656
+ 'Amp Sustain': 0.5,
657
+ 'Amp Release': 3.0,
658
+ 'Volume': 0.65,
659
+ },
660
+ description: 'Ethereal Drift pad — slow, drifting, organic and alive',
661
+ effects: [{
662
+ name: 'Reverb',
663
+ params: { 'Decay Time': 5.0, 'Room Size': 0.85, 'Dry/Wet': 0.45 },
664
+ }],
665
+ },
666
+ // ─── Meld (MPE-capable bi-timbral synth) ──────────────────────────────
667
+ 'meld_bright_pad': {
668
+ synth: 'Meld',
669
+ params: {
670
+ 'Engine 1 Type': 0, // Harmonic engine
671
+ 'Engine 1 Brightness': 0.7,
672
+ 'Engine 1 Color': 0.6,
673
+ 'Engine 1 Level': 0.8,
674
+ 'Engine 2 On': 1,
675
+ 'Engine 2 Type': 0, // Harmonic engine
676
+ 'Engine 2 Brightness': 0.8,
677
+ 'Engine 2 Color': 0.4,
678
+ 'Engine 2 Level': 0.6,
679
+ 'Filter Type': 0, // LP
680
+ 'Filter Freq': 4000,
681
+ 'Filter Res': 0.15,
682
+ 'Amp Attack': 1.0,
683
+ 'Amp Decay': 1.5,
684
+ 'Amp Sustain': 0.7,
685
+ 'Amp Release': 2.5,
686
+ 'Volume': 0.7,
687
+ },
688
+ description: 'Bright Meld pad — dual harmonic engines, open and airy',
689
+ effects: [{
690
+ name: 'Chorus',
691
+ params: { 'Rate 1': 0.4, 'Amount 1': 0.25, 'Dry/Wet': 0.3 },
692
+ }],
693
+ },
694
+ 'meld_dark_pad': {
695
+ synth: 'Meld',
696
+ params: {
697
+ 'Engine 1 Type': 1, // Noise engine
698
+ 'Engine 1 Brightness': 0.2,
699
+ 'Engine 1 Color': 0.3,
700
+ 'Engine 1 Level': 0.7,
701
+ 'Engine 2 On': 1,
702
+ 'Engine 2 Type': 0, // Harmonic engine
703
+ 'Engine 2 Brightness': 0.2,
704
+ 'Engine 2 Color': 0.5,
705
+ 'Engine 2 Level': 0.8,
706
+ 'Filter Type': 0, // LP
707
+ 'Filter Freq': 600,
708
+ 'Filter Res': 0.2,
709
+ 'Amp Attack': 1.5,
710
+ 'Amp Decay': 2.0,
711
+ 'Amp Sustain': 0.6,
712
+ 'Amp Release': 2.5,
713
+ 'Volume': 0.7,
714
+ },
715
+ description: 'Dark Meld pad — noise + harmonic blend, moody and textured',
716
+ },
717
+ 'meld_fm_bass': {
718
+ synth: 'Meld',
719
+ params: {
720
+ 'Engine 1 Type': 2, // FM engine
721
+ 'Engine 1 Brightness': 0.4,
722
+ 'Engine 1 Color': 0.6,
723
+ 'Engine 1 Level': 1.0,
724
+ 'Engine 2 On': 0,
725
+ 'Filter Type': 0, // LP
726
+ 'Filter Freq': 450,
727
+ 'Filter Res': 0.3,
728
+ 'Amp Attack': 0.005,
729
+ 'Amp Decay': 0.5,
730
+ 'Amp Sustain': 0.7,
731
+ 'Amp Release': 0.2,
732
+ 'Volume': 0.85,
733
+ },
734
+ description: 'Meld FM bass — single FM engine, warm and punchy low end',
735
+ },
736
+ 'meld_harmonic_lead': {
737
+ synth: 'Meld',
738
+ params: {
739
+ 'Engine 1 Type': 0, // Harmonic engine
740
+ 'Engine 1 Brightness': 0.6,
741
+ 'Engine 1 Color': 0.7,
742
+ 'Engine 1 Level': 1.0,
743
+ 'Engine 2 On': 1,
744
+ 'Engine 2 Type': 2, // FM engine
745
+ 'Engine 2 Brightness': 0.5,
746
+ 'Engine 2 Color': 0.5,
747
+ 'Engine 2 Level': 0.4,
748
+ 'Filter Type': 0, // LP
749
+ 'Filter Freq': 3500,
750
+ 'Filter Res': 0.25,
751
+ 'Amp Attack': 0.01,
752
+ 'Amp Decay': 0.3,
753
+ 'Amp Sustain': 0.85,
754
+ 'Amp Release': 0.15,
755
+ 'Volume': 0.75,
756
+ },
757
+ description: 'Meld harmonic lead — bright harmonic engine with FM shimmer',
758
+ },
759
+ 'meld_noise_texture': {
760
+ synth: 'Meld',
761
+ params: {
762
+ 'Engine 1 Type': 1, // Noise engine
763
+ 'Engine 1 Brightness': 0.5,
764
+ 'Engine 1 Color': 0.4,
765
+ 'Engine 1 Level': 0.8,
766
+ 'Engine 2 On': 1,
767
+ 'Engine 2 Type': 1, // Noise engine
768
+ 'Engine 2 Brightness': 0.6,
769
+ 'Engine 2 Color': 0.7,
770
+ 'Engine 2 Level': 0.6,
771
+ 'Filter Type': 1, // HP
772
+ 'Filter Freq': 500,
773
+ 'Filter Res': 0.15,
774
+ 'Amp Attack': 2.0,
775
+ 'Amp Decay': 3.0,
776
+ 'Amp Sustain': 0.4,
777
+ 'Amp Release': 3.5,
778
+ 'Volume': 0.6,
779
+ },
780
+ description: 'Meld noise texture — dual noise engines, evolving ambient atmosphere',
781
+ effects: [{
782
+ name: 'Reverb',
783
+ params: { 'Decay Time': 6.0, 'Room Size': 0.9, 'Dry/Wet': 0.55 },
784
+ }],
785
+ },
540
786
  // ─── FX ────────────────────────────────────────────────────────────────
541
787
  'fx_riser': {
542
788
  synth: 'Wavetable',
@@ -684,6 +930,32 @@ const MATCH_RULES = [
684
930
  { keywords: ['pluck', 'acoustic'], recipe: 'pluck_acoustic' },
685
931
  { keywords: ['pluck', 'natural'], recipe: 'pluck_acoustic' },
686
932
  { keywords: ['pluck'], recipe: 'pluck_acoustic' },
933
+ // Drift synth
934
+ { keywords: ['drift', 'bass', 'dark'], recipe: 'drift_dark_bass' },
935
+ { keywords: ['drift', 'bass', 'warm'], recipe: 'drift_warm_bass' },
936
+ { keywords: ['drift', 'bass'], recipe: 'drift_dark_bass' },
937
+ { keywords: ['drift', 'lead'], recipe: 'drift_analog_lead' },
938
+ { keywords: ['drift', 'lo', 'fi'], recipe: 'drift_lo_fi' },
939
+ { keywords: ['drift', 'lofi'], recipe: 'drift_lo_fi' },
940
+ { keywords: ['drift', 'pad', 'dark'], recipe: 'dark_pad' },
941
+ { keywords: ['drift', 'pad', 'ethereal'], recipe: 'drift_ethereal_pad' },
942
+ { keywords: ['drift', 'pad'], recipe: 'drift_ethereal_pad' },
943
+ { keywords: ['drift', 'analog'], recipe: 'drift_analog_lead' },
944
+ { keywords: ['drift'], recipe: 'drift_dark_bass' },
945
+ // Meld synth
946
+ { keywords: ['meld', 'pad', 'bright'], recipe: 'meld_bright_pad' },
947
+ { keywords: ['meld', 'pad', 'dark'], recipe: 'meld_dark_pad' },
948
+ { keywords: ['meld', 'pad'], recipe: 'meld_bright_pad' },
949
+ { keywords: ['meld', 'bass'], recipe: 'meld_fm_bass' },
950
+ { keywords: ['meld', 'fm'], recipe: 'meld_fm_bass' },
951
+ { keywords: ['meld', 'lead'], recipe: 'meld_harmonic_lead' },
952
+ { keywords: ['meld', 'harmonic'], recipe: 'meld_harmonic_lead' },
953
+ { keywords: ['meld', 'noise'], recipe: 'meld_noise_texture' },
954
+ { keywords: ['meld', 'texture'], recipe: 'meld_noise_texture' },
955
+ { keywords: ['meld', 'ambient'], recipe: 'meld_noise_texture' },
956
+ { keywords: ['meld', 'bright'], recipe: 'meld_bright_pad' },
957
+ { keywords: ['meld', 'dark'], recipe: 'meld_dark_pad' },
958
+ { keywords: ['meld'], recipe: 'meld_bright_pad' },
687
959
  // FX
688
960
  { keywords: ['riser'], recipe: 'fx_riser' },
689
961
  { keywords: ['rise'], recipe: 'fx_riser' },
@@ -702,6 +974,7 @@ const SYNTH_NAME_MAP = {
702
974
  'drift': 'Drift',
703
975
  'analog': 'Analog',
704
976
  'electric': 'Electric',
977
+ 'meld': 'Meld',
705
978
  'serum2': 'Serum 2',
706
979
  'serum': 'Serum 2',
707
980
  'vital': 'Vital',
@@ -775,7 +1048,7 @@ export function registerSoundDesignerTools() {
775
1048
  },
776
1049
  synth: {
777
1050
  type: 'string',
778
- description: 'Override synth choice: "operator", "wavetable", "drift", "analog", "electric", "serum2". If omitted, the best synth is chosen automatically from the recipe.',
1051
+ description: 'Override synth choice: "operator", "wavetable", "drift", "meld", "analog", "electric", "serum2". If omitted, the best synth is chosen automatically from the recipe.',
779
1052
  },
780
1053
  },
781
1054
  tier: 'free',
@@ -797,8 +1070,10 @@ export function registerSoundDesignerTools() {
797
1070
  const categories = [
798
1071
  '**808 bass**: "808", "dark 808", "808 slide", "808 hard clip"',
799
1072
  '**Sub bass**: "sub bass", "warm sub", "triangle sub"',
800
- '**Leads**: "bright lead", "acid lead", "supersaw", "dark bell"',
801
- '**Pads**: "dark pad", "warm pad", "ambient pad", "shimmer pad", "string pad"',
1073
+ '**Leads**: "bright lead", "acid lead", "supersaw", "dark bell", "drift lead", "meld lead"',
1074
+ '**Pads**: "dark pad", "warm pad", "ambient pad", "shimmer pad", "string pad", "drift pad", "meld pad"',
1075
+ '**Drift synth**: "drift bass", "drift lead", "drift lo-fi", "drift pad"',
1076
+ '**Meld synth**: "meld pad", "meld bass", "meld lead", "meld noise texture"',
802
1077
  '**Keys**: "rhodes", "wurlitzer", "organ", "electric piano"',
803
1078
  '**Plucks**: "pluck", "digital pluck", "metallic pluck"',
804
1079
  '**FX**: "riser", "noise sweep", "impact"',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernel.chat/kbot",
3
- "version": "3.97.1",
3
+ "version": "3.97.4",
4
4
  "description": "Open-source terminal AI agent. 787+ tools, 35 agents, 20 providers. Dreams, learns, watches your system. Controls your phone. Fully local, fully sovereign. MIT.",
5
5
  "type": "module",
6
6
  "repository": {