This is a nice Audio Mixer I made in C#.NET - VS8. It uses MCI component to play media files, -may work with video files too.-
1st of all, this is an "Audio Mixer Console Simulator", what does an audio mixer do? It mixes sounds. This kind of consoles are used in recording studios and live performances for mixing audio, for example when bands do live presentations the mixer is what unify the bass, guitar, drums, vocals and all other instruments, so signals can go out by the same pair of speakers with the correct volume level, panning, equalization, etc..
This project is a Console Simulation, so dont work like a real mixer console. It only mixes media files such as mp3, wav, ogg, ..
In this case i made an 10x4 console, that means 10tracks x 4buses (we can mix up-to 10 media files simultaneously, with 4 different output settings.)
Ok, lets go to the project.
This is the main window, there are 10 tracks, and on the right part we have master volume controls and Bus-Output selection where we can choose which signal we will be listening.
Here is where we choose the 10 media files. We can see how this part of the console would look in a real mixer (behind the form title), where you plug-in the cable coming from the mics/instruments; here we dont have cables, we have files.
Lets get back into the main form, specificly into a track. Here ill be explaining each part:
1.track caption: its the title of the track. by doing double-click you can edit it and put things like 'bass' so you know what signal does that track manipulate.
2.input selection: where you select the number of input signal from the frmInputs.
3.pre-amplification volume level: its the level of the incoming signal before it is manipulated (in this case we dont manipulate it but in the future we can add an equalizer and some other stuff into the tracks.)
4.buses-exit: here you adjust the level of the signal that you want to send to each bus. For example if you leave the green track with 0, when you change in the Bus-Output selection (at the right part of the main form) to Aux2 you wont listen the track.
5.pan level: its the signal position in the stereo speakers. 0 means that the sound goes to both speakers by the same level. -100 means that all the signal will go into the left speaker, and +100 ito the rightone. So if we put +50, we will be having more signal in the right speaker than in the leftone.
6.solo switch: this button activates the solo-mode. This means that all other tracks without this button pressed will be muted.
7.mute switch: mutes the track.
8.track main volume level: it works like the pre-amplification volume level, with the difference of changing the signal volume after being manipulated -by equalizer and other stuff.-
Ok, hope you understand better the idea and how the console works, I will be explaining in some days how i use the MCI, but Basically this is the idea:
There is MCI controls into each track and each Input-Player-Control (the 10 controls from the frmInputs). When you click OK button from frmInputs, each track sincronizes itself with the position of the Input-Player-Controls. That is the 'magic idea' i had to manipulate with easy the signals and sincronize them like if them were into a live mode.
Here i paste the simply code that makes this feeling of having the signals accesible to all the tracks like if them were connected with a cable.