All Projects → paulrosen → Abcjs

paulrosen / Abcjs

Licence: other
javascript for rendering abc music notation

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Abcjs

Html Midi Player
🎹 Play and display MIDI files on the web
Stars: ✭ 158 (-86.15%)
Mutual labels:  music, music-player, midi
purescript-school-of-music
Port of the Haskell School of Music to Purescript
Stars: ✭ 21 (-98.16%)
Mutual labels:  music-player, midi, music-notation
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 (-47.41%)
Mutual labels:  music, music-player, midi
Musicbox
😊 🎵 MusicPlayer 一站式收听多平台音乐(网易云, 虾米, QQ)的跨平台音乐播放器,尽情享受吧~✨
Stars: ✭ 1,130 (-0.96%)
Mutual labels:  music, music-player
Sfz2bitwig
Convert .SFZ files into Bitwig Studio multisample instruments.
Stars: ✭ 37 (-96.76%)
Mutual labels:  music, midi
Leadsheets
A LaTeX package for creating leadsheets and songbooks
Stars: ✭ 38 (-96.67%)
Mutual labels:  music-notation, music
Intellij Music
Play fancy music based on your keyboard activity in IDE
Stars: ✭ 28 (-97.55%)
Mutual labels:  music, midi
Kaku
🎧 Kaku is a highly integrated music player supports different online platform like YouTube, SoundCloud, Vimeo and more. Available on Mac, Windows and Linux.
Stars: ✭ 1,028 (-9.9%)
Mutual labels:  music, music-player
Lofi Player
🎧 A Lofi Player built with HTML, CSS and Javascript using Parcel as Module Bundler https://lakscastro.github.io/lofi-player
Stars: ✭ 38 (-96.67%)
Mutual labels:  music, music-player
Museeks
🎵 A simple, clean and cross-platform music player
Stars: ✭ 1,030 (-9.73%)
Mutual labels:  music, music-player
Audio player flutter
🎧 Apple Music / Tidal Audio Player for Flutter
Stars: ✭ 52 (-95.44%)
Mutual labels:  music, music-player
Strawberry
🍓 Strawberry Music Player
Stars: ✭ 972 (-14.81%)
Mutual labels:  music, music-player
Musicode
🎶 Markup language for music creation and analysis! -- https://hlorenzi.github.io/musicode/
Stars: ✭ 34 (-97.02%)
Mutual labels:  music-notation, music
Midichlorian
A Visual Studio extension that allows you to write code and automate the IDE using MIDI musical instruments.
Stars: ✭ 65 (-94.3%)
Mutual labels:  music, midi
Midiflip
🎹 MIDI music mayhem - flip, transpose, and arbitrarily remap pitches in MIDI files
Stars: ✭ 33 (-97.11%)
Mutual labels:  music, midi
Starrysky
🔥A Powerful and Streamline MusicLibrary(一个丰富的音乐播放封装库,支持多种音频格式,完美解决你的问题。)
Stars: ✭ 1,022 (-10.43%)
Mutual labels:  music, music-player
Vyplayindicator
PlayIndicator inspired by Apple's Music Player.
Stars: ✭ 47 (-95.88%)
Mutual labels:  music, music-player
Theorytracker
🎼 HTML5/WebAudio multi-track functional harmony analysis and songwriting app! -- https://hlorenzi.github.io/theorytracker/
Stars: ✭ 62 (-94.57%)
Mutual labels:  music-notation, music
A Pop
🎶 HD Music Streaming and Sharing Web App
Stars: ✭ 55 (-95.18%)
Mutual labels:  music, music-player
Awesome Music
Awesome Music Projects
Stars: ✭ 925 (-18.93%)
Mutual labels:  music-notation, midi

abcjs

Javascript library for rendering standard music notation in a browser.

This library makes it easy to incorporate sheet music into your websites. You can also turn visible ABC text into sheet music on websites that you don't own using a greasemonkey script, or change your own website that contains ABC text with no other changes than the addition of one javascript file. You can also generate MIDI files or play them directly in your browser.

List of Examples

Full documentation is here: abcjs documentation

Last version supporting midi.js is 6.0.0-beta.28

The file abcjs version supporting midi.js is the last version of the old style of sound production that will receive updates.

Rename the default branch to main

The default branch is now named main. If you have cloned this repo previously, you can change it with:

git branch -m master main
git fetch origin
git branch -u origin/main main

New css for audio control 6.0.0-beta.27

Be sure to download the latest abcjs-audio.css file if you are using it. If you are styling the audio control with your own css, add the rule:

.abcjs-css-warning {
	display: none;
}

Historical abcjs Packages 6.0.0-beta.27

Old versions of abcjs have been removed from this repo. If you are looking for them, you can find them here: Historical Versions

Breaking change when using midi.js for 6.0.0-beta.26

The midi.js package is no longer a direct dependency, it is now a peerDependency so it is not included by default. That way, users who aren't using the old style of sound generation won't need to load the package. If you are using the old style that uses midi.js, include this line in your package.json file:

"midi": "https://github.com/paulrosen/MIDI.js.git#abcjs"

Note that if you are using the minified version of the library with a <script> tag this does not apply to you.

Change in wrapping behavior for 6.0.0-beta.25

There have been some tweaks to the way wrapping is calculated. Hopefully this will make your music layout a little better. If you start seeing odd results, let me know.

Change in output folders for 6.0.0-beta.25

The files in /bin are being phased out. You can get the executables from /dist and the file names will not have the version number attached.

Many of the old versions that were in /bin are no longer kept in the active branches. If you need a particular old version then you can go to the branch with that tag to get it.

The last version in each major version number is still available in the active branch as well as many recent versions.

Default soundfont change for 6.0.0-beta.21

In this beta the default soundfont was changed to https://paulrosen.github.io/midi-js-soundfonts/abcjs/ Hopefully you will find that sounds better. If you set the soundfont directly then you won't notice any change. If you prefer the old soundfont, use the soundFontUrl: "https://paulrosen.github.io/midi-js-soundfonts/FluidR3_GM/" option when calling the synth functions.

Informal roadmap

I'm trying to get all the issues that will create breaking changes done before releasing 6.0.0. There will still be a few beta versions to come.

I am going to try to release new beta versions regularly with a few improvements in each.

The two changes that are coming soon that might affect your code are:

  1. Break apart the paths in the SVG so that parts of the note can be targeted. (For instance, just the flag, or one note in a chord.)
  2. Be able to set the minimum spacing for notes when there are lots of notes on a line.

There will also be a number of the open issues considered for each beta version.

If you have a particular issue that is impeding your usage of this library, please mention it in the issue.

Thanks, Paul

Future breaking changes

For most users of abcjs there probably won't be any more breaking changes in this beta.

There will probably still be some changes to the structure of the SVG that is created but if you aren't doing post-processing you won't notice except for better layout of the music.

There might be a few changes to the data that is returned from the callbacks, both the click listener and timing callbacks. Hopefully that will just be added data and won't affect any code.

Issues

Thanks so much for the bug reports and feature requests that are pouring into the issues. I appreciate you taking the time to help improve abcjs. This is not a full time project, though, so I can't promise a quick turn around on the issues. I am going to attempt to be caught up on responding once a week at least.

And I would love some help on this project, including documentation, bug fixes, testing, refactoring, modernizing tools, and adding features. If you are so inclined, please get in touch.

Supported by BrowserStack

If you aren't using the same browser and machine that I use, you can thank BrowserStack for their support of this open-source project.

BrowserStack

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].