GitGroove is a project that tries to combine software development and music in an experimental, playful way it transforms all your contributions into a sonic narrative and offers a unique way to experience your work in a whole new way.
In GitGroove, every contribution becomes a musical element. The data in your GitHub profile (e.g. day of the week, amount of contributions per day and week) is translated into musical parameters. This creates a carpet of sound that reflects the development of your projects and makes them audible.
The harmony in GitGroove is created by the intelligent assignment of Git metrics to musical components. The number of contributions per day, for example, influences the dynamics of Chord progressions and arpeggios been played, while the time sequence of the contributions determines the rhythm. The use of keys, scales and chords based on the contribution data creates an overall harmonic picture that is both structured and acoustically appealing.
GitGroove's approach is primarily experimental. It's a project that invites you to discover and participate. It offers developers in particular the opportunity to look at their projects from a new perspective and to experience and explore the connection between code and sound.
Feel free to expand and customize GitGroove to your liking.
Cheers
Mike
In case you're interested in how the harmony is created, check out the following part:
The GitGroove Harmony System transforms Git contributions into dynamic musical patterns. The HarmonyManager forms the heart of the musical logic and works closely with the PatternGenerator.
- Base keys: C major and C minor
- Contribution Level > 2: Major key (brighter, active sound)
- Contribution Level ≤ 2: Minor key (calmer sound)
- Intelligent root note selection with history system
- Maximum root repetitions: 4
Dynamic progression selection based on harmonic context:
- Basic (I-IV-V-I): On dominant (5th degree)
- Pop (I-V-vi-IV): On subdominant (4th degree)
- Automatic adaptation of progression to new root notes
-
Bass Voice (Octave 2)
- Root note of current chord
- Level-based rhythm patterns
- Velocity variation for natural sound
-
Chord Voices / Pads (Octave 3)
- Full chords with extended types
- Rhythmic patterns by level
- Supports maj7, min7, dom7, sus4
-
Arpeggios / Lead (Octave 3)
- Complex pattern variations
- Dynamic extensions
- Active only at level > 2
- Level 0: Single notes
- Level 1: Basic patterns
- Level 2: Extended patterns with velocity
- Level 3: Complex rhythms
- Level 4: Full rhythmic variation
- Level 2: Basic sequence
- Level 3: Extended sequence with direction change
- Level 4: Complex melodic patterns
- Major: [0, 4, 7]
- Minor: [0, 3, 7]
- Dominant 7: [0, 4, 7, 10]
- Minor 7: [0, 3, 7, 10]
- Sus4: [0, 5, 7]
- Intelligent selection of available roots
- Focus on primary degrees (I, IV, V)
- History-based decision making
- Avoidance of frequent repetitions
- Dynamic octave distribution
- Level-based extensions
- Automatic fallback mechanisms
- Safe note generation
- Reactive values for key, scale, progression
- Flexible pattern generation
- Robust error handling
- Precise timing system