Quick Start
The PHP MIDI Library requires PHP 5.3.0 or later. If you have no patience and a UNIX shell, take a look at the quick and dirty section. Otherwise, read the entire page (it won't take long).
Quick and Dirty
- Download or clone
- Create script:
vi midilibtest.php
- Paste and exchange placeholder MIDI file with location of real MIDI file:
<?php require_once 'Midi/bootstrap.php'; use \Midi\Parsing\FileParser; use \Midi\Reporting\TextFormatter; use \Midi\Reporting\Printer; $parser = new FileParser(); $parser->load('/path/to/midi/file.mid'); $printer = new Printer(new TextFormatter(), $parser); $printer->printAll(); ?>
- Save
- Run:
php midilibtest.php
- ???
- Profit
Installation
- Download the default package
- Extract it somewhere
-
To use the library in your code, all you need to do is include
the bootstrap.php file, which is located at
Midi/bootstrap.php
.
Usage
When you include the bootstrapper, it autoloads
all the classes you'll need to use the library. Below is a code snippet that
will parse a file named "test.mid" and use the
TextFormatter
to format the results. This will print the parse results out to stdout.
<?php require_once 'Midi/bootstrap.php'; use \Midi\Parsing\FileParser; use \Midi\Reporting\TextFormatter; use \Midi\Reporting\Printer; $parser = new FileParser(); $parser->load('test.mid'); $printer = new Printer(new TextFormatter(), $parser); $printer->printAll(); ?>
To get prettier results, like you can see in the demo, use
the HtmlFormatter
along with the
MultiFilePrinter
.
Note that using this combination of formatter and printer uses AJAX to
do pagination, which means you need a webserver to view the results. Use the
FilePrinter
instead if a webserver is not available. This will make one giant HTML file rather than
many, as the MultiFilePrinter
does.
When you run this code snippet, it will create a directory called "test" and place the resultant HTML files in there.
<?php require_once 'Midi/bootstrap.php'; use \Midi\Parsing\FileParser; use \Midi\Reporting\HtmlFormatter; use \Midi\Reporting\MultiFilePrinter; $file = 'test.mid'; $parser = new FileParser(); $parser->load($file); $formatter = new HtmlFormatter(); $formatter->setMultiFile(true); $printer = new MultiFilePrinter($formatter, $parser, dirname(__FILE__) . '/test'); $printer->printAll(); ?>