Ray Bradley Karla N. Juárez David Wood Advisor: Dr. Stephen Murrell May 2 nd, 2005.

Slides:



Advertisements
Similar presentations
Window Movie Maker Presented by Mr. Bran.
Advertisements

Using 2D sprite with OpenGL 2003 team Koguyue. Overview Motivation and basic concepts Advantages with using OpenGL Basic requirements of implementation.
Light Led Panel Esraa Nassar Mona Amer Supervisor : Dr.Ashraf Armoush.
Video Object Tracking and Replacement for Post TV Production LYU0303 Final Year Project Spring 2004.
David Meredith Minim David Meredith
A1 Acoustic Rhinometer The following presentation gives an overview of the main functions of the A1Acoustic Rhinometer, it’s accessories and normal operational.
Intro to Game Development An introduction to Swing, Java2D, JOGL, and game design Created by: Dennis Lawter and Dustin Scott.
Video Object Tracking and Replacement for Post TV Production LYU0303 Final Year Project Spring 2004.
LYU0603 A Generic Real-Time Facial Expression Modelling System Supervisor: Prof. Michael R. Lyu Group Member: Cheung Ka Shun ( ) Wong Chi Kin ( )
Customizable Audio Kaleidoscope Agustya Mehta, Dennis Ramdass, Tony Hwang Final Project Spring 2007.
Tutorial 7 Working with Multimedia. XP Objectives Explore various multimedia applications on the Web Learn about sound file formats and properties Embed.
Remote Surveillance Vehicle Design Review By: Bill Burgdorf Tom Fisher Eleni Binopolus-Rumayor.
How to Use Microsoft PowerPoint What is PowerPoint? Presentation software that allows you to create slides, handouts, notes, and outlines. Slide.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
Hardware Specialised Devices
$100 $400 $300 $200 $400 $200 $100$100 $400 $200$200 $500$500 $300 $200 $500 $100 $300 $100 $300 $500 $300 $400$400 $500.
Chapter Objectives Explain Web page multimedia issues
Lab 8 – C# Programming Adding two numbers CSCI 6303 – Principles of I.T. Dr. Abraham Fall 2012.
$100 $400 $300 $200 $400 $200 $100$100 $400 $200$200 $500$500 $300 $200 $500 $100 $300 $100 $300 $500 $300 $400$400 $500.
CSCI-235 Micro-Computers in Science Hardware Part II.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
 Project overview  Project-specific success criteria  Block diagram  Component selection rationale  Packaging design  Schematic and theory of operation.
Ranjeet Department of Physics & Astrophysics University of Delhi Working with Origin.
Getting Started. XNA Game Studio 4.0 To download XNA Game Studio 4.0 itself, go to XNA Game.
Tutorial 7 Working with Multimedia. XP Objectives Explore various multimedia applications on the Web Learn about sound file formats and properties Embed.
OpenGL Shading Language (Advanced Computer Graphics) Ernest Tatum.
Department of Computer Science and Engineering, CUHK 1 Final Year Project 2003/2004 LYU0302 PVCAIS – Personal Video Conference Archives Indexing System.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
1 ETC. 2 Sounds FX Sounds FX –WAV audio files –Load into memory and play it »Load »Play »Stop »Pause –2D or 3D »3D should be integrated into scene management.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Copyright © Curt Hill Sounds, Resource Packs, JSON What more would you want?
11 Adding Sounds Session 7.1. Session Overview  Find out how to capture and manipulate sound on a Windows PC  Show how sound is managed as an item of.
MULTIMEDIA DEFINITION OF MULTIMEDIA
CHAPTER TEN AUTHORING.
Tutorial 7 Working with Multimedia. New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 2 Objectives Explore various multimedia applications.
Tutorial 7 Working with Multimedia. New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 2 Objectives Explore various multimedia applications.
CHAPTER 5 Input Control © 2008 Cengage Learning EMEA.
Hark the Sound Version 2 Meghan Dickenson Megan Dunigan Max Smolens Scott Weeks.
Input Devices Lecture 3 Input Devices Md. Mahbubul Alam, PhD PRESENTED BY MD. MAHBUBUL ALAM, PHD 1.
Soundscapes James Martin. Overview Problem Statement Proposed Solution Solution Created (Modules, Model, Pics) Testing Looking Back See It in Action Q&A.
SD1230 Unit 6 Desktop Applications. Course Objectives During this unit, we will cover the following course objectives: – Identify the characteristics.
1 Electrical and Computer Engineering Guitar Virtuos Justin D’Alessando (EE) Jacob Dionne (CSE) Adam Montalbano (CSE) Jeffrey Newton (EE) Team Kelly Comprehensive.
1 Contents  Audio  Sprite  Input devices  Game production milestones  Course summary.
Adobe Photoshop CS5 – Illustrated Unit A: Getting Started with Photoshop CS5.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Haptic & Direct User Input with DirectInput ® 8 API Graphics Lab. Korea Univ.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Super Pong Andrew S. Dunsmore CSC436 August 2004.
Development of a Software Renderer for utilizing 3D Contents on a 2D-based Mobile System Sungkwan Kang 1, Joonseub Cha 2, Jimin Lee 1 and Jongan Park 1,
CSCI-100 Introduction to Computing Hardware Part II.
Super EastGate Jon Caron, Ryan Fleming, Antonio Guarino, and Mike LoVerme Merrimack College Introduction Super EastGate is a 2D side scroller game that.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
11 Adding a Bread Bat Session Session Overview  We have created a cheese sprite that bounces around the display  We now need to create a bread.
Adobe Photoshop CS4 – Illustrated Unit A: Getting Started with Photoshop CS4.
QSREALM.BLOGSPOT.COM Input Output Devices. QSREALM.BLOGSPOT.COM Input – Output Devices Also known as Peripheral Devices. These surround a computer’s CPU.
$100 $400 $300 $200 $400 $200 $100$100 $400 $200$200 $500$500 $300 $200 $500 $100 $300 $100 $300 $500 $300 $400$400 $500.
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
Soundscapes James Martin. Overview Review System TestingPrototype Q & A.
Reference: What is it? A multimedia python library – Window Management – Graphics geometric shapes bitmaps (sprites) – Input Mouse Keyboard.
Standard Input Devices
Standard Methods of Input.
CHAPTER 5 Input Control © 2008 Cengage Learning EMEA.
LECTURE Course Name: Computer Application
Sinhala Language Support for Java Micro Edition
Managed DirectX Joe Gavin.
GRAPHICAL USER INTERFACE
Image Coding and Compression
Presentation transcript:

Ray Bradley Karla N. Juárez David Wood Advisor: Dr. Stephen Murrell May 2 nd, 2005

Overview What is DMC? Implementation choices Equipment used Coding the game Beat detection Direct input Graphics Integration Testing Demonstration Improvements Thoughts

What is DMC? DMC is based on very popular arcade game Dance Dance Revolution (DDR) Simple Idea Players stand on a mat Step on the arrows that correspond to scrolling arrows DMC is an enhanced version of DDR Detects beats in real-time Use your own music

DMC’s Features Users choose a sound (.wav) file Players can adjust The frequency the game uses to find beats The sensitivity used in determining beats When a beat is detected in real-time, game randomly grabs a dance pattern and executes that pattern

Choices for Implementation Graphics Library OpenGL DirectX  DirectInput Coding Language Java C++  Compatible with graphics libraries  Widely used in game programming Beat Detection Simple Sound Energy Algorithm Frequency Selected Sound Energy Algorithm  Detection based on frequency  Detected beats missed by Simple Algorithm Sound File Format.WAV  Raw data  No compression

Gathering Equipment MadCatz Beat Pad for Sony Playstation Playstation to USB Converter/Adapter

Coding Overview Beat Detection Obtaining input from dance pad using DirectX Graphics using DirectX

Beat Detection Theory Sound Energy Algorithm A beat is heard when the sound energy at that instant is greater than average of previous energies. Instant ~ 23 ms Sound History ~ 1 sec Fast Fourier Transform Separate sound into frequency sub-bands Detect beats at specific frequency ranges

Beat Detection Implementation Wave File samples/sec Stereo (2 channels) Compute FFT of buffers, Left and Right Packed together; Left: Real, Right: Imaginary Unpacked with aid of the Fourier symmetries:

Beat Detection Implementation Compute magnitude of complex pairs at chosen frequency sub-band Sub-bands  43 sub-bands  Width grows exponentially with frequency

Beat Detection Implementation Compare computed instant energy density with local average energy density multiplied by a sensitivity constant Adjust local average energy density by adding in newest and subtracting out oldest

Reading/Playing Wave Files Wave Reader Class Reads wave file Supplies pointer to data buffer Methods to refill the data buffer Buffered Player Class Manages communication with windows sound device Uses 10 level buffering scheme Accepts pointer to data buffer and refill function

DirectX’s Input Method DirectInput gathers information from input device Classes are designed to accommodate various devices More control than using the Windows API for input devices

DirectInput “Joystick” class provides access to functions specifically for “joystick” control The following functions were used to access gamepad EnumDevicesCallback(); EnumObjectsCallback(); DirectInput8Create(); g_lpDI->EnumDevices(DI8DEVCLASS_GAMECTRL, EnumDevicesCallback, NULL, DIEDFL_ATTACHEDONLY) g_joystickDevice->EnumObjects( EnumObjectsCallback, NULL, DIDFT_ALL) g_joystickDevice->Acquire();

DirectInput Once the object has been “created” and “acquired” only two function calls are necessary to gather the pad’s input g_joystickDevice->Poll(); g_joystickDevice->GetDeviceState( sizeof(DIJOYSTATE2), &gamepad );

The Axis Problem Driver for converter detects arrow pads as axes Buffer was designed to remember the last 6 inputs Could not be too large or it would affect game play Timer controlled how often buffer would be updated

Contacting Soyo Attempts were made to find alternative drivers for the converter Contacted Soyo, still waiting for answer

Coding the Graphics Two classes were created Arrow Outline  Stationary  4 objects used in game Scrolling Arrow  Movement is required  5 arrows for each direction are constructed, but not all used at a time

Coding the Graphics Basic Arrow Class Arrow(int intDirection) bool IsActive(); void ResetArrow(); void SetTexture();

Graphics – Setting Texture Arrow object can be made for any direction Direction is passed as a parameter to constructor Constructor chooses the region required for texture – bitmap image drawn on top of object Coordinates from bitmap file correspond to screen coordinates

Graphics – Texture & Animation Animation can be done by modifying bitmap- to-screen coordinates Requires access to graphics card each time coordinates are modified Faster approach is to use matrix translation D3DXMatrixTranslation(&mat, x, y, z) Requires significant computing power when constantly rendering  Use a timer to send ‘Render’ signal

Graphics - Text Easy to implement using Direct3D’s font class and methods LPD3DXFONT Used to Confirm correct step Keep score Display frequency and sensitivity

Integration The input objects were added directly to graphics code Beat detection added Single object Instantiated in separate thread  Communicates using structure Sends WM_BEAT message when beat detected User interface added Start screen Open file dialog box Frequency and sensitivity controls OOP design made integration easy

Testing Problems discovered Delay between when the arrow was stepped on and when DMC registered step Beat detection caused graphics to slow down Tweaked the timing of WM_BEAT message

DMC Demo Let’s play

Future Improvements Graphics Dancing model User interface Custom dialog box Control through game pad Two-player mode Additional difficulty levels Device driver for button detection Support other audio formats Allow users to edit dance patterns

Final Thoughts Utilized techniques learned in programming courses Gained experience programming in Windows environment as well as DirectX programming