brettbuddin / Musictheory
Licence: mit
π΅ Music theory concepts in Go.
Stars: β 53
Programming Languages
go
31211 projects - #10 most used programming language
Projects that are alternatives of or similar to Musictheory
Mixxx
Mixxx is Free DJ software that gives you everything you need to perform live mixes.
Stars: β 2,510 (+4635.85%)
Mutual labels: audio, music, midi
Minibae
The platform-neutral Beatnik Audio Engine, Mini Edition (miniBAE) is an exceptionally mature, well-rounded, and reliable computer music and sound system specially customized for small-footprint and embedded applications.
Stars: β 82 (+54.72%)
Mutual labels: audio, music, midi
Audiokit
Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS
Stars: β 8,827 (+16554.72%)
Mutual labels: audio, music, midi
Bitmidi.com
πΉ Listen to free MIDI songs, download the best MIDI files, and share the best MIDIs on the web
Stars: β 422 (+696.23%)
Mutual labels: audio, music, midi
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: β 1,258 (+2273.58%)
Mutual labels: audio, music, midi
Clubber
Application of music theory in audio reactive visualizations
Stars: β 325 (+513.21%)
Mutual labels: audio, music, midi
Midiwriterjs
β¬ A JavaScript library which provides an API for programmatically generating and creating expressive multi-track MIDI files and JSON objects.
Stars: β 381 (+618.87%)
Mutual labels: audio, music, midi
Awesome Music Production
A curated list of software, services and resources to create and distribute music.
Stars: β 340 (+541.51%)
Mutual labels: audio, music, midi
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: β 600 (+1032.08%)
Mutual labels: audio, music, midi
Romplayer
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player
Stars: β 445 (+739.62%)
Mutual labels: audio, music, midi
Zrythm
a highly automated and intuitive digital audio workstation - official mirror
Stars: β 703 (+1226.42%)
Mutual labels: audio, music, midi
Waveform Playlist
Multitrack Web Audio editor and player with canvas waveform preview. Set cues, fades and shift multiple tracks in time. Record audio tracks or provide audio annotations. Export your mix to AudioBuffer or WAV! Project inspired by Audacity.
Stars: β 919 (+1633.96%)
Mutual labels: audio, music
Blipkit
C library for creating the beautiful sound of old sound chips
Stars: β 23 (-56.6%)
Mutual labels: audio, music
Jssynth
Make music in your browser with this synthesizer and sequencer
Stars: β 25 (-52.83%)
Mutual labels: audio, music
Cs.2click
π A Better Audio Router for a Modular System.
Stars: β 7 (-86.79%)
Mutual labels: audio, music
Intellij Music
Play fancy music based on your keyboard activity in IDE
Stars: β 28 (-47.17%)
Mutual labels: music, midi
Music Theory
Explorations in music theory.
Usage
package main
import (
mt "github.com/brettbuddin/musictheory"
"github.com/brettbuddin/musictheory/intervals"
)
func main() {
root := mt.NewPitch(mt.C, mt.Natural, 4)
root.Name(mt.AscNames) // C4
root.Freq() // 261.625565 (Hz)
root.MIDI() // 72
P5 := mt.Perfect(5) // Perfect 5th
A4 := mt.Augmented(4) // Augmented 4th
root.Transpose(P5).Name(mt.AscNames) // G4
root.Transpose(A4).Name(mt.AscNames) // F#4
root.Transpose(P5.Negate()).Name(mt.AscNames) // F3
mt.NewScale(root, intervals.Dorian, 1)
// [C4, D4, Eb4, F4, G4, A4, Bb4]
mt.NewScale(root, intervals.Mixolydian, 2)
// [C4, D4, E4, F4, G4, A4, Bb4, C5, D5, E5, F5, G5, A5, Bb5]
rootPosition := mt.NewChord(root, intervals.DiminishedSeventh)
// [C4, Eb4, Gb4, A4]
firstInversion := rootPosition.Invert(1)
// [C5, Eb4, Gb4, A4]
secondInversion := rootPosition.Invert(2)
// [C5, Eb5, Gb4, A4]
note := mt.NewNote(root, mt.D16) // C4 sixteenth note
note.Time(mt.D4, 120) // 125ms (quarter note getting the beat at 120 BPM)
}
ζ₯½γγΏγΎγοΌ
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].