# Visual Basic > Games and Graphics Programming > Game Demos >  XCustoms® Studio Lines (EXE + Source)

## XCustoms

Its Not A Game But It Uses DirectXShow

Features:

Plays MP3 Files
Create Beats With Your Numpad
Record Music
Set Music Volume
Set Music Speed

Its Realy Cool You All Should Try It

Numpad Controls:
1 = Kick
2 = Snare
3 = Hi Hat
. = Open Hi Hat
4 = High Tom
5 = Mid Tom
6 = Low Tom
+ = Crash

You Can Add Some Things If You Want  :Smilie:

----------


## metalmidget

All I get is beeps from my computer... My speakers don't do anything.

----------


## XCustoms

The Sounds Folder Has To Be At The Same Directory As The Application

----------


## metalmidget

Ah. That means that it only works if you
a) Run the exe.
b) Move all the project files up a level and run them
c) Move the sound folder into the project files folder.
I just moved the project files.

----------


## TheBigB

Nice  :Wink: 

Would be even nicer if it would play to sounds/beats at the same time though.
This maybe could be done by having your app running twice, but using GetAsyncKeypress for keyrecognition. This though is an inefficient way of doing it. If you have something, let me know  :Roll Eyes (Sarcastic): 

Btw, I'll try to add some kind of sampler feature to it, so that you give a tap rhythm and it will continue automatically.

----------


## metalmidget

Yeah it's a nice project. Looks very professional. As BigB said, multiple sounds at once would be a big improvement. I believe sndPlaySound can do this, with the right parameters, I'm not sure though. It would be cool if you could set one or more sounds playing continuously, and have a bunch of horizontal scroll-bars to set speed for each sound that's on a loop. Could be easily implemented with timers, or more preferably, gettickcount, or even better, queryperformancecounter and queryperformancefrequency. You'll find guides for using all of these APIs under the game loop tutorials in this forum's FAQ.

----------


## TheBigB

I have quick-written a piece of code in your app.
Not complete yet, though.

You hit the command button, at the first tap, a timer starts counting time and taps. 
After that it calculates an average and gives you the average tap speed, which is set to another timer's interval.
It stops counting and set the second timer when there is a pause of more than 1 second (which reminds me I need to subtract that second from the average...)(done!)
It now only works with the kick drum, but this is just a quick version.

----------

