Git Product home page Git Product logo

music_notes's Introduction

music_notes

This flutter library wants to render music notation. There is tons of things still missing. Currently it can only render staff systems (one or two), time signatures, simple accidentals, bar lines and simple notes and simple note beams.

It also has a very basic musicxml parser, that only supports, what this library is able to render.

I only work on this infrequently when I have time and feel like it 🙂

In the example folder you find a small dummy app showing the library in action.

Screenshot

Screenshot

music_notes's People

Contributors

ghost23 avatar

Stargazers

Tsekuu avatar TalionSD avatar  avatar BruceL avatar Donavon Guyot avatar Kun Hong avatar  avatar David Rasch avatar Rafael Justino avatar  avatar  avatar Yeahia Md. Arif avatar  avatar SSSamuel avatar Ronald Garcia Bernardo avatar Albert Mañosa avatar Lukas Himsel avatar AlanPaine avatar MFine avatar Paul Choi avatar Eirik Stien avatar  avatar

Watchers

 avatar

music_notes's Issues

Spacing between bass and treble clefs

Hi,
I want to adjust the staff height of the sheet depending on the screen height but spacing between bass and treble clefs is calculated abnormally after a certain minimum staff height.

Screen shot of a normal spacing:

image

Screen shot of an abnormal spacing:

image

Can you please tell me where I should look in the code to fix this problem?

Piano app that uses this library

Here is the first working version of my piano app integrated with this library to display keys pressed on a midi keyboard.

sampleapp.mp4

Octave - 2?

Hi,

What is the reason of subtracting 2 from the octave value of the note specified in XML?

Pitch? parsePitchXML(XmlElement pitchXML) {
  final stepElmt = pitchXML.getElement('step');
  final String? stepString = stepElmt?.innerText;
  final BaseTones? step = stepString != null
      ? BaseTones.values
          .firstWhere((e) => e.toString() == 'BaseTones.$stepString')
      : null;

  final octaveElmt = pitchXML.getElement('octave');
  final int? octave =
      octaveElmt != null ? int.parse(octaveElmt.innerText) : null;

  final alterElmt = pitchXML.getElement('alter');
  final int? alter = alterElmt != null ? int.parse(alterElmt.innerText) : null;

  if (step != null && octave != null) {
    return Pitch(step, octave - 2, alter);
  } else {
    return null;
  }
}

State of the package

Hi,

i just found this package and tried to get it up and running.
But it seams, that it is not reading scores exported from MuseScore.
I made a simple example with a 4/4 score and a single quarter c.
But i had to change a lot in code and musicXml to get it render anything than empty lines...

Is this package still maintained?
Do you want contributions?
Is its goal to render any musicXml or is there a smaller usecase for what it should be used?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.