Skip to content

Releases: sauloverissimo/gingopy

v2.0.1

29 Mar 21:43

Choose a tag to compare

Fixes

  • Enharmonic map: Cbb, Fbb, bbC, bbF were off by one semitone (applied single flat instead of double flat)
  • Interval table: #11 anglo_saxon label was d11 (diminished), corrected to A11 (augmented)
  • Mode brightness: fix ranking to match circle-of-fifths ordering (Locrian=0, Phrygian=1, Aeolian=2, Dorian=3, Mixolydian=5, Ionian=6, Lydian=7)

Maintenance

  • Updated all repository URLs after rename (gingo -> gingopy)
  • Updated documentation links (MkDocs, README, pyproject.toml)
  • PyPI package name remains gingo (unchanged)

All 496 C++ tests pass.

v2.0.0

07 Mar 02:05

Choose a tag to compare

Gingo v2.0.0

New Features

  • MIDI 1.0 & 2.0 I/O β€” Read/write Standard MIDI Files and MIDI 2.0 UMP streams
  • Monitor β€” Real-time MIDI event monitoring and routing
  • MIDI-CI Handler β€” Protocol negotiation, property exchange, and profile management
  • ExpressionState β€” Per-note expression parameter tracking

Improvements

  • Duration β€” Extended duration arithmetic and tuplet support
  • Tempo β€” Tempo map and BPM conversion enhancements
  • Field β€” Harmonic field refactoring and improvements
  • Documentation β€” Expanded guides, API reference, and interactive examples

Infrastructure

  • Updated .gitignore for cleaner repository
  • Windows compatibility fixes for test temp files
  • Version bump to 2.0.0

v1.1.0 β€” Fretboard & FretboardSVG

18 Feb 03:34

Choose a tag to compare

πŸͺ‡ Gingo v1.1.0 β€” Fretboard & FretboardSVG

Fretboard β€” Guitar fingering engine

  • Fretboard.violao(), .cavaquinho(), .bandolim() β€” factory methods for standard instruments
  • Fretboard(tuning, num_frets) β€” custom instruments with any tuning
  • fretboard.fingering(chord) β€” optimal CAGED-based fingering generation
  • fretboard.scale_positions(scale, fret_lo, fret_hi) β€” scale positions on the neck
  • fretboard.positions(note) β€” all occurrences of a note on the fretboard
  • Multi-criteria scoring algorithm: span, position, finger count, sounding strings, barre detection
  • 22/24 standard CAGED chord shapes match reference (jguitar.com)

FretboardSVG β€” SVG renderer for fretboard diagrams

  • chord(), fingering(), scale(), note(), positions() β€” individual diagrams
  • field(), progression() β€” composite layouts (Grid, Horizontal, Vertical)
  • full() β€” full open fretboard visualization
  • write() β€” save SVG to file

Orientation & Handedness

  • Orientation: Horizontal (fretboard view) / Vertical (chord box)
  • Handedness: RightHanded / LeftHanded
  • All FretboardSVG methods support both parameters with smart defaults
  • Backward compatible: existing calls produce identical output

New structs & enums

  • Tuning, FretPosition, Fingering, StringState
  • StringAction (Open, Fretted, Muted), Orientation, Handedness

CLI

  • gingo fretboard chord CM --svg chord.svg
  • gingo fretboard scale "C major" --svg scale.svg
  • gingo fretboard field "C major" --svg field.svg
  • --left (left-handed), --horizontal / --vertical (orientation)

Visual showcase

The README now includes SVG examples for all instrument visualizations:

FretboardSVG PianoSVG
Chord diagrams (vertical/horizontal) Chord voicings (close/open/shell)
Scale maps on the neck Scale highlighting
Harmonic field grids Harmonic field (7 keyboards)
Chord progressions Full 88-key keyboard
Left-handed support β€”

Tests

  • 1102 tests (426 C++ / Catch2 + 676 Python / pytest) β€” 100% passing

v1.0.0

04 Feb 12:24

Choose a tag to compare

Release 1.0.0