VMM Virtual MIDI Machine is a programming language for writing algorithmic music. View some screenshots of the compiler and runtime in action, download VMM. Read the documentation and run some scripts.
There is an easy way to program VMM by defining constants for various aspects in a setup. Maybe this will help some of the vintage Casio fans out there, as well as give other users some ideas for making their coding tasks easier. Not all notes are mapped, only those in the range typically used by Casio keyboards. Casio Notes can be found here.
Credits go to James S. Elkins for this tip!
I am currently developing the Multiport feature, and I would like to propose what I have in mind. If you have any comment, please post them on the contact page.
The idea is that programming in VMM would allow you to access all available MIDI in and out ports in the same program.
Since VMM (currently) does not support strings, or any datatype other than 'number' it would be difficult to specify a port in VMM code.
So I created the concept of a 'mapped MIDI port', where you can assign numbers to a MIDI port and refer to that number in your VMM code. The management of those mappings should be done in the runtime program (not in the compiler), so that you do not need to recompile when you want to use another MIDI port.
As an example:
Let's say that you have 2 MIDI ports, one is connected a physical synthesizer and another to a software synthesiser (Reaktor, FM8, DiscoDSP,..).
In your code you could define 2 constants, one for the physical synth and one for the soft synth like this:
global const SYNTH_PORT = 1;
global const SOFT_SYNTH_PORT = 2;
In the VMM runtime you should match those numbers (1 and 2) to the MIDI ports. So your program does not know anything about MIDI ports, only about those numbers.
As you can see, this site went through an update. If you have any comments or questions about it, or want to be linked, feel free to contact us.
You are all invited:
Since the birth of the Virtual MIDI Machine, people have been asking us about new features such as the ability to use multiple MIDI ports, a build in MIDI sequencer, writing to MIDI Files, and more.
Development woke up again, so you will see some of these new features appearing soon.
We would also like to add
- tutorials about VMM and in general
- tutorials about VMM in scenarios with software like
Cubase, Reaktor, Sonar, SoundFonts, .. or any freeware VST instruments.
- tutorials about electronic music composition with VMM,
or anything you did with VMM and MIDI
You are all invited to participate in the tutorials section. Or if you want to see examples of certain things, we are open for requests.
All submissions and scripts are also welcome, how simple they might be...
Those who are interested can contact us.
More information about VMM you can find in the news archive.