Click here to Skip to main content
15,886,026 members
Articles / Artificial Intelligence

Developing MIDI applications with DirectMusic

Rate me:
Please Sign up or sign in to vote.
4.91/5 (45 votes)
11 Apr 2008LGPL325 min read 609.5K   9.5K   147  
A wrapper class library for the DirectMusic MIDI.
/*
 __  __  _  ____  _   _________ __  ______ _  ____  __  _
|  \/  || ||  _ \| | (  /_   _//  \/_   _/| |/    \|  \| | 
| |\/| || || |_| | |  \ \ | | | <> | | |  | || <> || |\  | 
|_|  |_||_||____/|_| /___)|_| |_||_| |_|  |_|\____/|_| \_| 
					   
////////////////////////////////////////////////////////////////////////
  
  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
 
  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 
Copyright (c) 2002-2003 by Carlos Jim�nez de Parga  
All rights reserved.
For any suggestion or failure report, please contact me by e-mail: 
cjimenez@servitel.es
  
///////////////////////////////////////////////////////////////////////

Module : GMMusicData.h
Purpose: Defines the header implementation for the CGMMusicData class
Date Format: Day/Month/Year
Created: CJP / 10-04-2002
History: CJP / 29-12-2003 
	
	  // 11-10-2002 Update

	  1. Solved problems with Midi port selection
	  
	  2. Improved built-in keyboard
		
	  3. Supervised the multithread-safe application	

	  4. Improved the interactive interface 
	  
	  5. Application restructured to the new CDirectMidi wrapper
	  
	  6. Added the Microsoft Software Synthesizer

	  7. Added keyboard support 
	  
	  8. Fixed bugs in classes design 
	  
      9. Improved playback thread using Events
	  
	  10. Guide line on the list control

	  // 6 - 10 - 2003 Update
	   
	  11. Added exception handling
	  
	  12. Included the piano keyboard control

	  13. Enhanced implicit multitask synchronization system
	  
      14. Simplified the class hierarchy 

	  15. Program structure grouped into new classes
	  
      16. Fixed bugs in calls to DirectMidi library

	  17. Program released under GNU (General Public License) terms	
	
	  // 29 - 12- 2003 Update
	  
	  18. Fixed running status bug

	  19. Fixed DLS port bug 
	  
	  20. Fixed message list bugs 

	  21. Loading and saving of .MDS sequenced files 

	  22. Unlimited recording 	
*/

#if !defined(AFX_GMMUSICDATA_H__8B3225E6_FD0B_4CD4_9727_23480F9B56BB__INCLUDED_)
#define AFX_GMMUSICDATA_H__8B3225E6_FD0B_4CD4_9727_23480F9B56BB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

namespace CGMMusicData
{
	const TCHAR* GetInstrument(int index); 
	const TCHAR*  GetEnglishNote(unsigned char note);
	const TCHAR*  GetSpanishNote(unsigned char note); 
};

#endif // !defined(AFX_GMMUSICDATA_H__8B3225E6_FD0B_4CD4_9727_23480F9B56BB__INCLUDED_)

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU Lesser General Public License (LGPLv3)


Written By
Software Developer
Spain Spain
I obtained my PhD degree in Computer Graphics at the National Distance Education University (UNED) in October 2019. I also hold a Ms. degree in Software Engineering and Computer Systems and a Bs. degree in Computer Science from the National Distance Education University (UNED).
I have been employed as a C++ software developer in several companies since year 2000.
I currently work as a Tutor-Professor of Symbolic Logic, Discrete Math and Java Object-Oriented Programming at UNED-Cartagena (Spain) since 2015.

Comments and Discussions