Commit Graph

7 Commits

Author SHA1 Message Date
Anachronaut
6bdc3a4b48 Normalize oscillator gains across patch library for consistent mix levels
Boosted osc gains on 40 patches that were too quiet to sit well together
under a shared master volume knob.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-08 17:18:15 -04:00
Anachronaut
2d24006fd9 Add 101-patch library organized by instrument family
Bass (7): SlapBass, FretlessBass, SynthBass1, PickBass, SubBass, RubberBass, FunkBass
Brass (7): Trumpet, Trombone, FrenchHorn, MutedTrumpet, SynthBrass, BrassSection, Tuba
Classic (1): WobbleBass
Drums (8): Kick808, Snare, HiHatClosed, HiHatOpen, Tom, Clap, Rimshot, Cowbell
Leads (7): SawLead, SquareLead, CaliopeLead, WhistleLead, MoogLead, PluckLead, DistortedLead
Mallets (8): Marimba, Xylophone, Glockenspiel, TubularBells, MusicBox, Vibraphone, SteelDrum, Celesta
Pads (7): PolyPad, SweepPad, ChoirPad, CrystalPad, DarkPad, MetallicPad, StringPad
Plucked (7): AcousticGuitar, NylonGuitar, ElectricGuitar, Harp, Lute, Mandolin, PizzicatoStrings
World (8): Sitar, Shakuhachi, Koto, SteelGuitar, Kalimba, Shamisen, Dulcimer, Bagpipe

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 22:33:17 -04:00
Anachronaut
e40645f280 Fix patch browser keyboard navigation to cover directory rows
Arrow keys now navigate the full virtual row list (../, subdirs, patches)
rather than only patch rows. Landing on a patch auto-loads it as before;
landing on .. or a subdir highlights it and Enter confirms navigation.
Added patchVCursor to UIState to track keyboard focus independently of
the loaded patch. Mouse-click on a patch now also syncs the cursor so
subsequent arrow-key movement starts from the right position.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 22:32:46 -04:00
Anachronaut
ff59c7c66a Add README.md
Covers overview, features, build instructions (Linux + Windows
cross-compile), patch system, MIDI/CC Learn setup, and credits.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 19:36:40 -04:00
Anachronaut
75e0894ff8 v0.9.5 beta — full feature build ready for distribution
Core additions since initial commit:
- Platform-split MIDI (midi_linux.c / midi_windows.c)
- Patch system: save/load/scan, subdirectory navigation, favourites
- Config system: last MIDI device and CC mappings persisted to disk
- Custom embedded pixel font and sprite sheet (no loose asset files at runtime)
- Window icon embedded at runtime (SetWindowIcon) and in Windows .exe (windres)
- chdirToExeDir() in platform.c so double-click launch finds patches/ correctly
- About screen accessible from Master panel

UI polish:
- TITLE_BAR_H constant (20 px) — sprite buttons now fit inside title bars
- All title bar text, button overlay text, and close/active labels vertically centred
- Full-screen dim overlay computed from camera transform (no more partial coverage)
- Patch browser: folder navigation, breadcrumb title, 256-slot limit lifted

Build:
- Makefile auto-discovers sources; embeds sprites/font/icon via xxd rules
- Windows cross-compile: make PLATFORM=windows (mingw-w64 + windres)
- windows.h isolated in platform.c to avoid Rectangle/CloseWindow conflicts with raylib.h
- WIN_RES uses lazy = assignment so OBJ_DIR expands correctly for windres output path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 19:18:34 -04:00
Anachronaut
801ea22d3e Mapped oscillator pulse width to modulation wheel. 2026-03-14 09:23:08 -04:00
Anachronaut
48ee8c2c75 Initial commit of project. 2026-03-13 15:09:17 -04:00