CFugue, The C++ Music Programming Library



CFugue, meaning Carnatic Fugue, is a high level Music Programming Library.

CFugue makes it possible to play music notes directly from C/C++ programs, without ever having to deal with the low-level MIDI complexities. This library provides a beautiful abstraction that lets you concetrate on programming the Music rather than worry about the MIDI nuances.

CFugue has numerous features that make it possible to use it directly from many platforms, including but not limited to ASP pages, .Net applications and even non-Windows based systems.


Using CFugue to play music is as easy as writing plain music notes. Just create a Player object and call the Play method on it, supplying the Music notes to be played. Simple.

    #include "CFugueLib.h"
    void main()
        CFugue::Player player; // Create the Player Object
        player.Play("C D E F G A B"); // Play the Music Notes on the default MIDI output port

And the music notes are not restricted to be of just Western sytle either. CFugue fully supports both Western and Carnatic Music notations - with a simple hint from the KeySignature directive, one should be able to switch between them seemlessly.

For more usage demonstrations, please refer to CFugue examples.


CFugue is a C++ runtime environment for music note programming with below features:

For further details on CFugue music note specifications, please refer to CFugue MusicString.


CFugue is ready to be used in your applications. It can be found at the downloads section of


CFugue is under active development, with much of the features, such as rendering to sheet music, etc. pending. By the time the development completes, we hope to have this Limitations section to be empty.


This is a product of CineFx Research Labs, made available free of charge for personal and research use. For commercial usage, please contact the author.

CFugue is distributed with the hope that it will be useful. No warranty of what-so-ever is implied, including MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Author: Gopalakrishna Palem

Project: CFugue

Copyright (C) 2009 Cenacle Research India Private Limited

CFugue, the C++ Music Programming Library © Copyright 2009 Cenacle Research India Private Limited Gopalakrishna Palem