hi everyone!!

I am a final year student doing software engineering..
I need help on my final year project. I am interested in music. i have an idea but i am not sure it can be finished in 7 months time or not. my plan is a sheet music reader. A system that is capble to scan a sheet of music and analyse it. XML file should be generated that captures as much as possible of the music information on the music sheet. Then generating MIDI output from the Music XML file. I really do not know how to do go about ..how do convert the image of the scanned document into a xml? And how do i convert it into midi? What are the areas of study i need to consider? Please give me advice on this project.
I thank all of you in advance!!

Dani AI

Generated

Quick, practical plan for (buildable in 7 months if scoped tightly).

Optical Music Recognition (OMR) is the core research area here; it is nontrivial—printed scores are much easier than handwritten ones—so pick one and keep the scope small at first. A good roadmap is: (1) reliable scanning and image cleanup, (2) staff detection and symbol recognition, (3) map recognized symbols to MusicXML, (4) convert MusicXML to MIDI and refine timing/voices. The OMR literature explains why each stage is a separate challenge. ()

Use an existing OMR engine rather than writing everything from scratch. Audiveris is a mature open-source OMR that handles printed scores and can export MusicXML; it is a good starting point to get an end-to-end baseline quickly. (Audiveris: https://github.com/Audiveris/audiveris)

For MusicXML -> MIDI, Python has solid tools. The music21 toolkit reads MusicXML and writes MIDI; that lets the project focus on recognition accuracy and mapping rather than low-level MIDI file format details. A minimal conversion looks like:

from music21 import converter

score = converter.parse('input.musicxml')
score.write('midi', fp='output.mid')

(See music21 docs: https://www.music21.org/music21docs/usersGuide/usersGuide_08_installingMusicXML.html)
For lower-level MIDI control (channels, program changes), consider mido (https://mido.readthedocs.io/).

Use public OMR datasets and tools to train/test and measure progress. The MUSCIMA++ repo and the OMR-Datasets collection list many useful datasets (handwritten and typeset), which are invaluable for evaluation and for picking realistic failure cases. (MUSCIMA++: https://github.com/OMR-Research/muscima-pp ; OMR datasets: https://github.com/apacha/OMR-Datasets)

Tie this back to earlier replies: was right to point to "music OCR" as the field to study; s pointer toward MIDI/XML workflows is along the same route but use modern MusicXML/OCR+music21 tools rather than building the format converters from scratch. Suggested milestones: month 1 scope + sample collection; months 2–3 baseline OMR with Audiveris; month 4 map/clean MusicXML; month 5 MIDI conversion + basic UI; months 6–7 polish, evaluation, and write-up. Start with clean, single-staff printed pages at 300 dpi to produce demonstrable results quickly, then broaden from there.

Recommended Answers

All 5 Replies

You have to use Music OCR techniques. Check http://www.musitek.com/ for a product doing something similar. For the xml to midi part you have to look for the file format or library for writing midi files.

hi everyone!!

I am a final year student doing software engineering..
I need help on my final year project. I am interested in music. i have an idea but i am not sure it can be finished in 7 months time or not. my plan is a sheet music reader. A system that is capble to scan a sheet of music and analyse it. XML file should be generated that captures as much as possible of the music information on the music sheet. Then generating MIDI output from the Music XML file. I really do not know how to do go about ..how do convert the image of the scanned document into a xml? And how do i convert it into midi? What are the areas of study i need to consider? Please give me advice on this project.
I thank all of you in advance!!

you dont have to worry abt
it's easy

MIDI-XML version 0.02
=====================

MIDI-XML is a suite of Perl modules that provide the capability to convert
MIDI files to XML and XML to MIDI files. It builds on the foundation provided
by MIDI-Perl which provides the capability to read and write MIDI files. This
initial release provides the ability to produce and parse MidiXML. The
classes may subclassed to provide support for other DTDs.

MIDI-XML also provides built-in collections of the the various MIDI events and
derivable collections, such as measures.

INSTALLATION

To install this module type the following:

perl Makefile.PL
make
make test
make install

DEPENDENCIES

This module requires these other modules and libraries:

MIDI::Opus MIDI::Track MIDI::Event HTML::Entities XML::Parser

SUPPORT

Questions, bug reports, useful code bits, and suggestions for
MIDI-XML should just be sent to me at

DOCUMENT TYPE DEFINITIONS

The DTD for MidiXML may be had at this URL:

This release supports version 0.7

AVAILABILITY

The latest version of MIDI-XML is available from the Comprehensive
Perl Archive Network (CPAN). Visit <http://www.perl.com/CPAN/> to
find a CPAN site near you.

i have collected this info for u
any queries further
or if u want a prototype for ur project pm me

I am Final yer student i want to write a program for mysalfe. so i need your help to get the simple coding. Could you send me a simple program as soon as posible. This is my email <EMAIL SNIPPED>

commented: 3 years late, email address, gimme gimme gimmee -7

I am Final yer student i want to write a program for mysalfe. so i need your help to get the simple coding. Could you send me a simple program as soon as posible. This is my email <EMAIL SNIPPED>

You can check sourceforge.net ,etc .

  1. Please do not bump old threads in the future to just ask question of your own instead of providing some answer
  2. If you wish continue discussion, create new thread in appropriate forum section and do not forget to mention your level/confidence with which ever language you are about to use
  3. Thread closed as it is getting attention of "I want project idea" and "I want coding" and similar requests which are not beneficial
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.