Saturday 15 November 2008

Coffee?

From my understanding of music composer setups, a Mac DAW ( Digital Audio Workstation ) is as common as a Windows based one. This suggests that the end user targeted by this project could be on either platform and developing for one will completely cut out the other. In an area of development where helping the user is the primary focus, isolating one group because of platform choice might not be in the best interests of the application. Perhaps C# is not the ideal language to develop this software with as using windows forms will restrict users to a windows environment.

A different, more cross platform approach would be to use the JVM environment. Java has a very powerful GUI development API called Swing, rivaling Microsoft's Windows Forms and after following some of this tutorial on using the JNI ( Java Native Interface ) I have learned that it is fairly simple to call C++ code in Java similar to the way I can in C#. So far Java would act in a similar fashion to C# in this project while hopefully providing a platform independent solution. The only conflicts that would arise regarding platform dependence would come from the unmanaged C++ code. These would be possible to resolve as the audio API of choice, FMOD, is cross platform. From what I can tell from the Firelight website is that they're are different libraries depending on run time environment so this may be an issue if the underlying C++ structure will need to be tailored for the specific platform.

While Java does not have any support for pointer arithmetic ( a large advantage of C# ) the JNI does allow java objects to be manipulated in unmanaged code. This does pose as a huge advantage over C# because even though you can marshall C++ data types to C# data types you cannot do it the other way round. Obviously without a complete design layout of the application I cannot determine which techniques are more appropriate to this situation. However, at face value Java does seem to be very inviting.

Some tests and tutorials will need to be completed before a final decision can be made. I do have experience with C# but having never touched Java before it would be foolish to jump straight in and depend on it.

Thursday 13 November 2008

References and Bibliography

This post is going to act as a place to store all references to any reading material etc. with regard to the project. It shall be expanded upon when new material is consulted.

Material

Anderton , C., [no date]. So What Does "Sample Accurate" Mean, Anyway? [Online]. Available at: http://www.harmony-central.com/articles/tips/sample_accuracy/ [accessed 17th October 2008]


Audiokinetic. 2007. Wwise [software] version 2008.3. Available from http://www.audiokinetic.com/4105/try-wwise-now.asp [ Accessed 19th October ] Montreal, Quebec, Canada : Audiokinetic inc.


Barrier, M. Interview with Carl Stalling [ online ] Available from: http://www.michaelbarrier.com/Funnyworld/Stalling/Stalling.htm [ Accessed 27th April 2009 ]


Bernsee, S. Time Stretching And Pitch Shifting of Audio Signals – An Overview. [ online ] Available from: http://www.dspdimension.com/admin/time-pitch-overview/ [ Accessed 20th October 2008 ]


Bersnstein, D., 1997. Creating an Interactive Audio Environment. [Online]. Available at: http://www.gamasutra.com/view/feature/3238/creating_an_interactive_audio_.php [accessed 16th April 2009]


Brandon, A. 2004. Audio for Games: Planning, Process and Production. New Riders.


Brandon, A., 2008. Next-Gen Audio Square-Off: PlayStation 3 vs. Xbox 360. [Online]. Available at:
http://www.gamasutra.com/view/feature/3814/nextgen_audio_squareoff_.php [accessed 1st October 2008]


Chang, K. S., Kim, G. B., Kim, T. Y. 2007. Video Game Console Audio: Evolution and Future Trends. Washington: IEEE Computer Society. Available from : http://doi.ieeecomputersociety.org/10.1109/CGIV.2007.87[ Accessed 3rd November 2008 ]


Chuck D, 2003. Composing, Producing and Implementing an Interactive Music Soundtrack for a Video Game, lecture at the Game Developers Conference, San Jose, 2003.


Chuck, W., Dawson, B. 2006. Coding for Multiple Cores, lecture at the Game Developers Conference, San Jose, 2006.


Clark, A., 2007. Defining Adaptive Music. [Online]. Available at: http://www.gamasutra.com/view/feature/1567/defining_adaptive_music.php [accessed 1st October 2008]


Creative Labs. 2008. OpenAL [online]. Available from: http://connect.creativelabs.com/openal/default.aspx [Accessed 2nd December 2008]



Firelight Technologies Pty. Ltd.. 2008. FMOD [online]. Available from: http://www.fmod.org/
[Accessed 2nd December 2008]




Halliwell, L. 2008. Building World-Class Art Tools. [Online] Available at:
http://lukehalliwell.wordpress.com/category/game-development/tools/ [ Accessed 16th November 2008 ]


Henein, M. 2007. Sound Integration. Mix, Professional Audio and Music Production [online]. Available from: http://mixonline.com/recording/applications/audio_next_revolution_played/ [Accessed 11 November 2008]


Henein, M. 2007. Field Test: Audiokinetic Wwise 2007.1 Videogame Software. Mix, Professional Audio and Music Production. [online]. Available from: http://mixonline.com/gear/reviews/audio_audiokinetic_wwise_videogame/ [ Accessed 19th October 2008]


Hoffman, K. 2006. Microsoft Visual C# 2005 Unleashed. SAMS publishing.


Khawaja, N., 2008. Making Your Game Tools Fast And Efficient . [Online]. Available at: http://www.gamasutra.com/view/feature/3798/making_your_game_tools_fast_and_.php [accessed 16th October 2008]


Kirmse, A., 2004. Game Programming Gems 4 . Charles River Media.


LucasArts. 1991. Monkey Island 2: LeChuck's Revenge [Disk]. Amiga, MS DOS, Macintosh, FM Towns. LucasArts.


Novell Group. 2008. Mono [software] Version 2.0. Available from : http://www.go-mono.com/mono-downloads/download.html [accessed 16th November 2008]


O'Donnell, M., 2002. Producing Audio For Halo. In: Game Developer Conference, San Jose, 24 March, 2002 [Online]. Available at: http://halo.bungie.org/misc/gdc.2002.music/ [accessed 1st October 2008]


Parker, J. R., Heerema, J. 2007. Musical Interaction in Computer Games. New York: AMC. Available from http://portal.acm.org/citation.cfm?id=1328243 [Accessed 3rd November 2008 ]


Patin, F. Beat Detection Algorithms. [online]. Available at: http://www.gamedev.net/reference/articles/article1952.asp [accessed 1st september]


Robinson, C., et al. 2007. The Twelfth Annual Interactive Music Conference Project BAR-B-Q 2007. Group Report: Overcoming Roadblocks in the Quest for Interactive Audio. Texas, San Antorio. Available at http://www.projectbarbq.com/bbq07/bbq07r6.htm [ Accessed 1st October ]


Schildt, H. 2006. C++ The Complete Reference. 4th edition. California: McGraw-Hill/Osbourne .


Shah, S. Playstation 3 Next-Gen Audio: Metal Gear Solid 4. [Online]. Available from http://uk.gamespot.com/features/6147812/index.html [Accessed 16th April 2009 ]


Sony Creative Software Inc.. 2008. ACID Pro [software] Version 7.0. [ online ] Available From : http://www.sonycreativesoftware.com/download/trials/acidpro [ Accessed 1st December 2008 ]



Sterns, B. Trail: Java Native Interface. [ online ] Available From : http://java.sun.com/docs/books/tutorialNB/download/tut-native1dot1.zip [Accessed 15th November 2008 ]


Whitmore, G., 2003. Design With Music In Mind: A Guide to Adaptive Audio for Game Designers . [Online]. Available at: http://www.gamasutra.com/view/feature/2852/design_with_music_in_mind_a_guide_.php [accessed 1st October 2008]


WikiRecording. Digital Recording. [online]. Available from: http://www.wikirecording.org/DAW [Accessed 2nd December 2008]