The Music SDK (or in full, the Music Notation Library Software Development Kit) provides you with a software library that helps you to easily implement advanced music notation and playback features in any Windows, Mac and/or iPad application.
The purpose of this library is to provide a software library that delivers services for music notation displaying and playing - as found in many music software products – so that software developers may use these features without the need to develop a full music notation library by themselves.
The SDK is available at two levels as well as an on-demand, custom-made SDK.
SDK level I mainly handles existing music documents for display, file format conversion, real time playback and transposition.
With SDK Level II you can also edit the music content of documents and create new documents with fully customized content.
You can also select some of the features offered by the two SDK levels and we can build a custom-made SDK just for your needs, so that you pay only for the features you really need.
The music SDK is provided as a C header file as well as a C file that will load a DLL library on Windows and a "dylib" dynamic library for Mac OS X and as a static library for iOS on iPad.
To help you discover the benefits and detailed technical features of this SDK, here is how this page is organized:
The first level of the SDK mainly handles existing music documents for display, playback and transpose, as well as music file format conversion and printing.
With the music SDK level I API (Application Programming Interface), you will be able to add the following features to your Windows, Mac andiPad applications.
Import a MIDI file
Import a MIDI file and display the music notation of it inside your program, in any graphic area, in any zoom value. Decide which measures and instruments you will display. A TrueType music font is provided with the SDK to display the music symbols.
Import a MusicXML file
The MusicXML file format has become the standard used by hundreds of music software to exchange the graphic and playback content of a music score.
A MIDI file does not contain any graphic or page layout information, so this standard was really needed to define a file format that could be used to exchange information between music notation programs.
The SDK will open a MusicXML file, display it, play it, transpose it, without the need for you to understand the full MusicXML specification.
The part of the SDK that handles the musicXML file format represents in fact about 11,500 lines of C++ code, so you won't need to loose your time writing that code again and you can focus on your own music application features.
Import a Pizzicato music file
As the SDK has been extracted from the Pizzicato music software development project, it also has its own native music file format, with extension ".piz". You can learn more about this software here :
With the license of the SDK, you will receive a license of the Pizzicatomusic software, which means that you can prepare and edit documents in that software for your needs.
For instance, if you are writing music tutorial applications, you can prepare all your documents inside Pizzicato (including any text, music symbols, chords, music content, instruments,...) and use them directly in your application for display, playback, transpose,...
Export the music to MIDI, MusicXML, Pizzicato, PDF and audio
From the above file formats (MIDI, MusicXML, Pizzicato), you can then easily export them into these three formats, but also as a PDF file that you can print, or as an audio WAV file by using a SoundFont sample library (you can find some SoundFont libraries on the Internet).
Opening and saving files can be done by specifying the path name to the file, or simply as a raw data buffer with the content of the file.
Display, play and transpose the score
The music SDK will display the music in any graphic area that you specify (for Windows, a Device Context; for Mac, an NSView of the Cocoa framework).
You specify the zoom factor and what part of the score to display. You can display it in:
Through the SDK, you have access to the Windows or Mac MIDI ports, including the wave table synthesizers (Microsoft GS Wave table and Apple QuickTime Instruments), so you can play the score or a part of it.
Specify the tempo, volume and instrument for each track or staff.
See the notes colored as they are played and a cursor showing the playback point in real time.
Display a piano keyboard and/or a guitar fret board, that will show the notes played in real time.
Transpose any part of the score by tonality or interval.
Do you need more technical details about the music SDK level I ?
In addition to the features provided by the first level of the music SDK, the second level opens the door to any editing of the content of the score.
In your application, through the call to the interface of the SDK, you will get access to the information of every note, music symbol, MIDI event, measure,... You can get the information, change it or add new measures and content to build a new score.
The SDK API level II will provide you with the following features for your Windows and/or Mac applications.
Create and edit the structure of a new score
A music document is structured with one or more instruments playing together, for a given number of measures. The SDK interface lets you add, insert or remove staffs and measures.
The graphical width of a measure can be modified and the types of bar lines set to a normal line, thick line, double line, end line, repeat line or invisible line.
For repeat signs, you can also define the way the music will be played, so as to respect the standard music playback of repeat signs.
Edit the page layout
The music SDK will help you arrange the way the score is displayed on a page.
The number of measures per system (a system is a graphic set of staffs that are played together), the number of systems per page and the general layout of the music can be precisely defined, page per page, system per system or globally.
Any layout can be defined, even for special needs including text and music content for instance in music tutorials. The position of each system on the page, as well as the distances between staffs of a system can be easily defined, as well as paper size, margins and scaling.
You can define text blocks for title, composer, copyright notice or any text content for a tutorial. The fonts, size and type are defined also.
Edit the instrument parameters
For each staff displayed, the following information can be fully edited:
Specify the clef, the time and key signatures
Define the key signature, the time signature and the clef for each staff and change them at any measure.
Manage the measure content
The music content is located in the measures as a sequence of objects that can be created, edited and destroyed.
Each object as a data structure to define its parameters. The main types of objects are:
Specific API functions of the music SDK handle each type of object. You can browse through the objects of a measure and edit the value of each parameter of these objects.
As you add or modify the content of a measure, you can call a function to automatically apply spacing so that the layout of the content of the measure is standard with common musical practice.
Specify the fonts
The fonts used for text, lyrics, measure numbers, tuplets, chords,... may be specified to improve the quality of the presentation of the score.
Manage the chord progression
Each score can be associated with a chord progression, that you can define, edit and display.
The chords may also be automatically converted into notes on the staff.
Add, remove, edit and inspect the MIDI events related to the each instrument.
The API also provides a function to send MIDI events in real time.
When the user clicks into the score area, the API lets you retrieve the musical object that was clicked. Also when the user clicks in the keyboard or guitar fret board display area.
Benefits of the music SDK
Using the music SDK will help you to concentrate on the real added value of your own application, without the need to write thousands of lines of code to handle the basic music objects and their complexities.
Do you need more technical details about the music SDK level II ?
Your application may only need a few of the features offered by the full SDK level I and II.
We offer you a more personalized solution by letting you select a set of features of these SDK levels and submit them to us for a quote.
We will then make you a customized offer and price quote according to the features you really need in your application.
You can browse the modules and even the specific functions and submit to us a list of what you need and we will offer you the best compromise between features and pricing.
You will find the list of modules and functions in the following two descriptions of the levels of the SDK:
Submit the list of the features you need for your application to this email address :
and you will soon receive a free quote and proposition for a technical solution to your needs.
The music SDK level I provides an API that can be used to convert music files. Here is a list of possible conversions of music file formats.
MIDI file to PDF
By its nature, a MIDI file only contains the information to play a piece of music, through a sequence of notes ON and notes OFF events, well defined in time. There are also various controllers and parameters that are used to specify the instruments, the volume,...
So a MIDI file does not contain the clef information or any of the graphic information found on a sheet music. For instance, a C# has the same code as a Db. A whole note is the same as two tied half notes. Nothing is defined in term of page layout.
The work needed to convert a MIDI file into notation is quite complex and needs quite some processing.
The SDK can import a MIDI file and transcribe the result into music notation that can be displayed on the screen.
From the resulting score, you can specify information about the page layout and the SDK can then export the result into a graphic PDF file of the resulting sheet music.
MIDI file to MusicXML file
The imported MIDI file can also be exported into a MusicXML file, which is a standard way to represent the information found in a sheet music, in addition to all playback information found in a MIDI file.
From the resulting score, the music SDK will convert each measure into the MusicXML standard file format, so that this file can then be used by almost any music notation program.
MIDI file to audio WAVE file
Here, the graphic content of the score has no importance. With the information found in the MIDI file regarding which notes to play with what instrument, the SDK can use an existing sample library to play it virtually in audio and create the standard audio WAVE file.
The sound libraries that can be used are either a SoundFont file (you can find many such sound libraries on the Internet, as files with extension *.sf2) or a prepared list of samples that you can create and edit with the Pizzicato music software (you receive this software included in the SDK licence).
musicXML file to PDF file
All graphic and playback information of a sheet music are included in the musicXML file format, as an extension of the xml language. However, reading a musicXML file and creating the display of the music is not a simple task. The music SDK will do that for you.
musicXML file to MIDI or audio file
The playback of a piece of music may be stored inside a musicXML file, or may be retrieved from the description of the content of the measures.
From that information, a MIDI playback file can be created. By using a sound library as explained above, an audio WAVE file can also be generated.
Here is a diagram that shows how your application can handle the various file formats through the use of the API of the music SDK:
This application presents a few examples of what can be integrated into an program by using the MNL Software development kit level I and II.
Example 1 can be implemented with the SDK level I and the other four examples need the SDK level II.
The main window displays 5 buttons to run 5 different application examples. The interface has been kept very simple and is only intended to show how the SDK works.
In the example application, there are 3 elements directly drawn by the SDK: the music keyboard, the guitar fret board and the score area. The buttons are simply drawn by the example application, as simple rectangles where the user can click to make the program work.
The music SDKs are available in a large range of licenses and prices, according to the features you need and to what you will do with the resulting application.
The range of licenses goes from a private use of the SDK on one OS (Mac, Windows or iPad), up to the full commercial use on all platforms. It also provides an Academic license for schools, universities, research associations or similar.