CineFx Labs

Bridging the Gap between Academics and Industry
Home     About Us     Our Work     Contact Us     Site Map      
Events     ITIL     Trainings      
Opensource Libraries and Tools Developed in CineFX Labs

CineFx Labs actively pursuits research in many domains of computation including but not limited to Information Theory, Computer Visualization, Mathematical Modeling, Dynamics Simulation and Computer Graphics. Many of our libraries and tools are used in commercial and open-source projects alike across the world. If you find any library or tool useful for your purpose, feel free to go through the relevant documentation and use it in your application. If you have a research idea that you would like to get implemented or query for a tool, do not hesitate to contact us.


CFugue, MusicNote Library
Popularily referred to as CFugue, meaning Carnatic Fugue or the C/C++ replacement of JFugue, MusicNoteLib is a high level Music Programming Library. This library makes it possible to play music notes directly from C/C++ programs, without ever having to deal with the low-level MIDI complexities. It provides a beautiful abstraction that lets you concetrate on programming the music rather than worry about the MIDI nuances.

Provides features that makes it possible to use this library directly from many platforms, including but not limited to ASP pages, .Net applications and even non-Windows based systems. With built-in support for both Western and Carnatic music, programming music with this library is as sample as writing plain Music Notes.

For more details and downloads: http://musicnote.sourceforge.net/


PlayByEar Application
An opensource application that lets music learners improve their Play-By-Ear capabilities of Music. With support for over 100 different instruments, users will be able to practice identifying the notes of their own favorite instrument.

For the first time in the world, this is a single application that seamlessly supports both Western and Carnatic Music Notations.

The application is designed around simple Question/Answer paradigm. It plays (poses) a series of notes that the user has to identify (using the Virtual Keyboard Control provided on the application Window). The questions are designed around the concepts of reinforced learning paradigm. With questions designed to be set at multiple levels of difficulty, users of all levels (from beginners to advanced) should be able take advantage of the application starting at their own level of Music Knowledge.

The scoring system is based around advanced behavioral learning patterns that captures users' Music recognition capabilities through different metrics that help them immensely with progressive learning.

For more details and downloads: http://musicnote.sourceforge.net/


Phonetic Translation Library

Phonetic Translation Library is a project that aims to create reusable components (C++ libraries, COM components, and Edit controls) for Phonetic Transliteration of Indian languages, such as Telugu, Tamil, and Kannada etc. Reuse, platform-compatibility and easy-of-use are the primary design considerations. This release ships with both ready to use end-user tools and programming API libraries, components. In-built support for 10 Indian Languages.


End-user tools available as part of this are:
  • A simple phonetic transliteration application for typical users who use Indian language content (mails, instant messaging, greeting card designs). Just enter the words and get them transliterated phonetically to the chosen language.
  • A complete RichText editing application to typeset documents in Indian languages. This is for more serious users who would like to use phonetic transliteration for creating Indian language documents (Desktop publishing). Helpful for preserving old Indian classical books and documents in native language format. Supports multiple platform-compatible output formats such as Html, OpenOffice document and Acrobat PDF.

Library API/Components available for Developers are:

  • C/C++ API for using directly as a Library from any C/C++ project
  • DllImport options for use with .Net and VB applications
  • COM components for use with Script languages (vb/java script). The component is Registration-free-COM ready.
  • Multi-platform compatible Phonetic RichEdit Text control ready to be used with GUI applications. Supports Mac, Linux and Windows versions


Supported Languages: Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Sanskrit, Tamil, Telugu


Maya API Tracer
An open source tool for tracing Maya API calls made by any given application. Uses specialized version of Trace n Patch library customized to trace the Maya C++ API. Quite useful for Maya Plug-in developers and end-users alike to help optimize their scenes based on the internal evaluations of Maya runtime.

Object Introspection Library (OIL)
A developer library aimed at providing the Object Introspection capabilities for C++ developers using the techniques of Template Meta Programming. The goal is to be able to inspect and modify the contents of any given C++ object at run time. This library facilitates the collection of meta-data information for the class and member variables in C++ modules and optionally displays the information. The robust event handling mechanism provided by the library lets developers track the changes to the variables at run-time and handle the changes on the fly. This functionality is quite invaluable in the development of profiling, debugging and instrumentation tools.


Trace n Patch
A developer library that provides the ability to selectively detour Win32API functions and patch them at run-time with user supplied .Net code on per-process basis. The non-intrusive nature of this library allows tracing and modification for any valid Win32 process without requiring its source code, while the run-time per-process modifications guarantee the alterations only for the target process without affecting the other system processes. With the ability to serialize the modifications into an executable file, this library provides the ability to generate new programs from existing programs without requiring the original source code (by generating Trampoline functions and injecting the user supplied .Net code into the existing Win32 processes at run-time). This is a very useful library for reverse engineering applications, instrumentation tools and process monitoring applications.

Sequence Modeling Library
A mathematical library with efficient indexing and de-indexing functions for various mathematical sequences such as,
  1. Range Sequence
  2. Permutation Sequence
  3. Combinational Sequence
Uses arbitrary precision arithmetic to provide the indexing facilities for sequences of any length without restrictions. This simple and efficient library is useful for various routine tasks such as object serialization, graph statistics encoding, script debugging analysis etc.

Event Tracking Library for Windows
A developer library that provides system-wide event tracking facility for Windows applications. Uses Microsoft Active Accessibility technology to provide in-application event notifications without requiring any external dependencies (such as Dlls) to be loaded at run time. This offers light weight solution for event tracking and is quite useful for tasks such as computer based training, command context analysis, user requirement prediction etc.

Movie Creation Library for Windows
A developer library designed with Zero Error Impact Architecture (ZEIA) to provide movie creation facility for windows applications. ZEIA is a low cost alternative to fault-tolerance that aims at minimizing the error impact by inhibiting the error propagation to external modules. Uses finite state machine mechanism to implement ZEIA. Supports the creation of movies in
  1. Audio-video interleaved format (AVI)
  2. Windows media format (WMV)
  3. Quick Time format (MOV)
This easy-to-use library can generate movie files from any native HBitmap sequence and is quite useful for recording the OpenGL / DirectX simulations.

Universal Progress Dialog
A developer library for providing the progress dialog interfaces for lengthy background computations in Windows GUI mode applications. When requested to perform a lengthy computation, this library automatically takes care of spawning and manipulating the necessary background worker threads and the GUI synchronization details, freeing the developer from the routine thread manipulation tasks. A quite flexible library that can be used in both WIN32 and MFC applications with same ease without any restrictions.

.Net Obfuscator Tool with CLR-Hosting
A developer tool that is quite useful for .Net developers for deploying their managed assemblies without being vulnerable to the dissemblers. This simple and elegant tool uses the .Net features of reflection and interoperability in combination with the WIN32 cryptography services to provide security for the managed assemblies. Further, an alternate option to use the CLR-Hosting technique is also available. These techniques do not involve any modifications to the assembly code and hence are quite safe and more accessible compared with the existing commercial obfuscation techniques.