Skip to content
This repository has been archived by the owner. It is now read-only.
visual MIDI player for Moonlight
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


MLDSP is a visual music player, to make MIDI authoring fun :)

So far, it only plays and visualizes SMF.

There are two outcomes from this project:

	- mldsp/web: It is runnable as a Silverlight application.
	  Since Silverlight does not provide MIDI functionality, it does
	  *not* play the songs, but just visualizes songs on the UI.

	  Online demo version is available at

	- mldsp/gtk: It is runnable as a Moonlight.Gtk application. It
	  provides MIDI player functionality, which is based on portmidi
	  effort (which is part of PortMedia project):

It still has some stubs and misses some useful functionality.

** Build and run mldsp/web

	NOTE: as of 0.2.2, MonoDevelop won't build mldsp(-gtk) successfully.
	Use make to build it.

	Just open mldsp-web.sln, build and run it.

** Build and run mldsp/gtk

	You can either open mldsp.sln in MonoDevelop, or run make instead:

		./configure [--prefix=/path/to/install]
		make install

	There is a Makefile that can let you build and install mldsp.
	(It is generated from MonoDevelop Makefile integration, with some
	hacky tricks to copy xap files into lib directory.)

	Once you have built and installed mldsp, just run:

	mldsp [deviceID]

	If you don't know what is your preferred device, just give "?"
	as the argument, and it will list your MIDI output devices.
	By default, it would be Thru port (that makes no sound).

	[updated] now you can simply select the device from the main menu.

** Dependencies

There is not a few dependencies that are not easy to get. For mldsp/web
it is only Tsukimi that is actual dependency.

	- Moonlight.Gtk: when you build moon with-managed=yes, Moonlight.Gtk
	  is also built too. pkg-config will tell you its availability as
	  moonlight-gtk package.

	- Tsukimi: it is my attempt to port processing application to
	  Moonlight land.
	  mldsp's primary UI was initially created using tsukimi,
	  but it's not automatically generated anymore (I've added changes

	  I have put the built-in dlls in "build" directory.

	- portmidi(-sharp): portmidi itself is an external project<del>, but since
	  it does not provide shared libraries, you have to build my
	  shared version of it. Check my portmidi-sharedlib project: </del>
	  <ins>my explanation above is somewhat obsolete. Now portmidi is
	  CMake-based and could build shared libraries too. So you don't
	  need my hack above</ins>.
	  PortMidiSharp binding is actually in mldsp source, so you don't
	  have to wonder how it could be built and installed (there is no
	  installation instructions, nor even portmidi-sharp.dll build).
You can’t perform that action at this time.