Final Thoughts
aAVis was quite possibly the assignment I've had the most amount of problems with in the entirety of my uni history ( 6 years ). Almost everything that could go wrong, did. My laptop died, I had problems with OpenGL, and the GUI. I had unknown memory leaks, and I had to change my idea about three times. However in the end, I think it is one of the most impressive projects I have ever completed.
Evaluation of Output
I started off with a single visualisation. The final output was a tool used to create visuals. It was a big leap from one to the other. The final product is by no means well polished, and by no means 'easy' to use as it is rather particular about certain things due to quirks in the programming and in the libraries. However I am entirely satisfied with the prototype I have built. Although the prototype is not ready for public release, I feel I could send it off with a list of instructions and many people could have a play with it and produce some very interesting presets. The initial aim of the project was to allow it to be used by not only home users, but by VJs in nightclubs. Unfortunately due to system restrictions, it would be rare to find a computer powerful enough that is also portable enough to take to multiple venues - however this could just be because my laptop is a few years old now. As the finished output is a prototype, I don't feel bad leaving things like opomisation and a few bugs slip by. The program works well enough to be run for up to an hour solidly with absolutely no problems ( unless the user does something wrong ).
Goals
At the start of this course I set myself a list of goals. Throughout the semester I wanted to build something that would help me achieve these goals, and to build something that I could be proud of as a third year university student. I wanted to challenge myself, and not simply breeze by. I belive I have achieved that, and all of my goals :
Create Something Visually Appealing
At its heart, aAVis is purely visual. It creates images that react to music, and is designed to aid and enhance the listening experience with complimentory visual stimuli. In order to do this, it obivously has to be visually appealing. If you examine some of the screenshots in the header image at the top of the screen, I believe I have accomplished this goal. aAVis is capable of producing some incredibly visually appealing images. At the exhibition I had people behind me say 'that looks cool' - which is essentially the reaction I wanted to get. I had many people think I merely had winamp or windows media player and was playing some music, it was only when I opened the cusomisation panel that they released it was actually another assignment. The fact that people associated my assignment with the visuals that were already on the market means I achieved my goal of making something visually appealing - and I personally am quite happy with what I created.
Create Something Impressive
"Impressive" is a broad term. To me, impressive covers both the external, and internal side. externally, I created something visually appealing. Internally, I wrote over 3565 lines of code. That's pretty impressive. I created a dynamic GUI system, a mathetmatical function parser, a dynamic particle system, a preset loading/saving system, and an audio analysis system. All of which is impressive in it's own right. I don't think there is a doubt in my mind that I created something that I personally am impressed with. Different people are impressed by different aspects - at the exhibition there were many people who were impressed with the visual features, others were impressed with the customisability, and others were simply impressed at the fact that it was running in java. All in all, I believe aAVis *is* impressive, no matter who you are, and how you are looking at it.
Learn a new Programming Language
Technically, aAVis runs on two programming languages. The Processing language is essentially Java, and then OpenGL functions run in their own language (OpenGL, or JOGL). In order to build aAVis I had to learn both of these. In my first degree (software engineering), I'd studied java quite extensively for the first two years, however almost all of that knowledge had gone. What my school and university programming classes all taught me however is that essentially all programming is the same ( exceptions include things like functional programming and languages like haskell ) and that it's not the language that matters, it's the fundamentals of code. Learning a language is easy, getting it to do what you want is the tricky part. My mind seems to understand how to code generically, I just then need to convert that to the appropriate programming langauge. OpenGL is a different story however, as it is essentially a series of complicated and confusing function calls with large numbers of parameters. However there were large amounts of help throughout the internet and I did gain a basic understanding on how OpenGL works. I personally would love to experiment more with this great 3D tool, and will continue to do so throughout my career.
Develop an Understanding of Audio Analysis
Although I didn't use half of my audio analysis in the final version of aAVis, I did learn a lot about the way audio is analysed and intepreted by applications. It is definitely something I wish to follow up in the future. I would like to focus more on the analysis of beat detection. Maybe by keeping a log of previous beat detections and developing some sort of simple BPM timer. Something to aid in the automatic detection of beats and rhythms. I had to do large amounts of research and wade through some complicated mathematics, but I believe aAVis has given me an understanding of audio analysis that I did not possess earlier.
Build Something I can be Proud Of
Am I proud of aAVis ? Yes.
Essentially I am a perfectionist, I always want things to be as polished as possible, and I will not show them off unless I am entirely happy with them. I have been showing people screenshots, videos, and work in progress versions of aAVis from day one. It is the type of project I enjoy working on, and I feel I have created something that I can be proud to call my own.
Final Thoughts
Throughout this semester I have created a complicated Audio-Analysis, Graphical-Producing, Customisable Visual Creation Tool. I set out to create a project that I could be impressed with, and would impress others - and judging from the reception from friends, family and strangers - I believe I have accomplished that. I feel this is the assignment I can be most proud of from my experiences at UQ Ipswich. My final thoughts ? Even though It was a difficult process, I am extremely glad I pushed myself and did something so work-intensive. I may have almost died from the multiple issues and stress-related headaches, but I believe I'm richer for the experience, and I've got the project to show for it. There's nothing quite so rewarding as looking up on a computer screen at some beautiful moving graphics, and be able to say "I made that".
I hope you enjoy looking at aAVis as much as I enjoyed making it