login
Forgot?
Login with Facebook

Don't have an account? Register one now!

Dynamic MIDI Playback Component or Library

Bids 
5
Avg Bid
$1390 USD
CLOSED
  • Project ID:

    585435
  • Project Type:

    Fixed
  • Budget:

    $250-$750 USD

Project Description:

Dynamic MIDI Playback Component or Library

- Need component or library to control playback of Midi files with functions to seamlessly jump at any specified point (measure/beat/tick) to another point (measure/beat/tick) in the same song or another song file. The jump points would be dynamic, and could be set or changed while the song is playing. The library/component would also be able to load another Midi file in the background while a midi file is playing. Maximum of two Midi files in memory is acceptable (current file and next file).

- Smooth, professional, uninterrupted playback is essential.

- Would prefer that the library be written in Delphi 6 or later, but am open to a DLL written in Delphi or C++. Can be implemented as unit of functions and TObject descendent in Delphi as well. Must compile to Win32 code. DotNet not acceptable. If written in C++, must be able to recreate compilable environment on our end without purchasing costly development environment. C++ Builder 2009 or 2010 is acceptable. Source code must be well commented and clean.

- Would include functions to get list of available Midi Output devices, set the Midi Output device to use, change the key of the song and tempo, and retrieve song file information. Would also include options to patch alternate instruments for a given Midi channel, as well as turning certain channels on and off during playback.

- When jumping dynamically, the possibility exists that a Note On event would be triggered with no corresponding Note Off event since the jump point happened in between these events. The library or component would need to continue playing forward (but not play new notes) in the previous event list (simultaneously) until one of three conditions were met:

1) All active (orphaned) notes receive a Note Off event
2) Any active notes receive further Note On or Modifier events from the new position
3) A settable timeout (i.e. 3 seconds) is reached, at which time, "old notes" would be
issued a Note Off event.

- The following functions would need to be supported:

GetAvailableMidiOutputDevices - returns StringList or Delimited String of Device Names\
SetMidiOutputDevice - sets device by name (or index)
OpenMidiDevice - sets device by name or index, returns boolean
closeMidiDevice

LoadMidiFile - passing the path, and boolean indicating background load
GetMidiInfo - returns filename, tempo, total event count, and channel count
GetChannelInfo - returns event count for passed channel
SetMidiKeyTranspose - by Integer
SetMidiTempo - by float
SetMidiPosition - by Measure, Beat and Tick
GetMidiPosition - Returns current Measure, Beat and Tick

SetJumpPosition - At specified Measure, Beat and Tick
jump to another Measure, Beat and Tick
SetJumpBackground - At specified Measure, Beat and Tick
move background to foreground and play from Measure, Beat and Tick

MidiFadeout - Fades note volumes in Note On events and in active notes to zero
over a specified durection of milliseconds
ClearMidiNotesForChannel - Issues Note Off events for any notes that remain
active on a given channel

Additional Project Description:

01/08/2010 at 7:08 EST:
3 Additional Requirements:

- Setting or Property to ignore Midi System Events

- Setting or Property to set maximum volume of overall song and maximum volume of each channel.

- Function to set instrument patch for a given channel.



Skills required:

C Programming, Delphi

Project posted by:

adoniechad United States
(0 Reviews)

Last seen:

If you are the project creator or one of the bidders, please Log In for more options.


Awarded Bids

hackinthebochs United States
hackinthebochs
United States From United States     Offline
 Accepted
$700 in 14 days 
0
over 2 years ago
0.0

0.0

0 Reviews
0% Completion Rate
Hi, full details of my bid are in your PM. Thank you.

All Bids ()

exrobert1 China
exrobert1
China From China     Offline
$1850 in 40 days 
0
over 2 years ago
0.0

0.0

0 Reviews
50% Completion Rate
please check PMB. thank you.
macrocybertech China
macrocybertech
China From China     Offline
$1500 in 15 days 
0
over 2 years ago
what about developing by VC++2003?
Trickier Russian Federation
Trickier
Russian Federation From Russian Federation     Offline
  Foundation EUFreelance.com Member
$700 in 10 days 
0
over 2 years ago
0.0

0.0

1 Review
0% Completion Rate
Hi I can do your project
vricksons India
vrickson_comp_logo.JPG
vricksons
India From India     Offline
$2200 in 33 days 
0
over 2 years ago
Ya, it can be implemented easily, please check PMB.Thanks.