Monday, 29 March 2010

Real-Time Sound Enhancer


As part of my coursework for the Sound Processing module I built a real-time sound enhancer, using the FMOD Ex library. It implements a band reject filter while splitting the signal in two bands at an adjustable frequency between 100 and 3000Hz and merging the two bands together. 8 additional harmonics are added on the lower band using Chebyshev waveshaping (Chebyshev Polynomials).

The user can at real time adjust the split frequency, the level of the lower and upper band and the odd and even harmonics. There are also the functionalities of bypassing the effects, playing and stopping the sound and uploading new input sounds from the file system.

Friday, 29 January 2010

The countdown has started!

The last semester of my university degree has started and I am very satisfied with the choices of modules I made. The two modules are Software Agents and Sound Processing.

The Sound Processing one contains physics and mathematics. We will be looking at Fast Fourier Transform (FFT). In the first lecture I revisited waves in physics and all the related formulas, learnt the anatomy of the human ear, coded waves, unified them and reproduced their sounds using MATLAB.

For the Software Agents module I will have to build a system with an agent (or a Multi-Agent system) that learns from the environment. I will focus on Machine Learning and more specifically on Reinforcement Learning.

I am also progressing with my dissertation, implementing the fitness function of the genetic algorithm.

Wednesday, 28 October 2009

Robot Controller

I am creating an FSM (Finite State Machine) that can be used as a controller to control the actions of a robot.

There is a grid with a food trail in it. My robot will have to find and follow that trail. There are gaps in the trail. The robot cannot keep a count of the food it found. It doesn't have to perfectly follow the entire food trace, and it shouldn't have masses of states to precise follow this food trail.

My available commands:
  • move (1 step forward)
  • left  (turns robot left)
  • right  (turns robot right)
  • food-ahead
  • eat
  • off-grid (determines if the robot has stepped off the grid)
      I haven't decided yet if the robot will be able to return back to the grid in case that it has stepped off it.

      Wednesday, 14 October 2009

      Busy busy busy...

      The first semester started and the modules are very interesting so far! =D I am taking an extra module C++ which is prerequisite for Games Technology for next semester ^^

      I am currently looking for a data set so I can apply a data mining technique (such as clustering, association analysis, classification) to it. I would be interested in using Neural Networks. If so, I will have to separate my data set into two parts: the training and test set. After that I will train my network applying back propagation using the training set and check if everything is OK by running the test set on it. I should definitely be careful not to overfit it. That would be an interesting coursework. I have to investigate more my options though =D

      Monday, 21 September 2009

      Here we go!

      The new academic year begins next week! It is my final year at university. Here are the modules I will be studying:
      • Parallel and Concurrent Programming
      • Data Mining
      • Software Agents
      • Games Technology
      • Theory of Computation
      • My dissertation, which is a financial application that allocates assets using genetic algorithms and finds the best efficient portfolio for different investor profiles.
      Back to programming now! More details later on =D

      Monday, 31 August 2009

      Eclipse configuration

      • Configuration for Eclipse Galileo - M2Eclipse - Subversive
      • (M2Eclipse-0.9.9: http://m2eclipse.sonatype.org/releases/0.9.9.200906081351 )
      • Hibenate tools: http://download.jboss.org/jbosstools/updates/stable
      • eclEmma.org - Java code coverage for Eclipse: http://update.eclemma.org


      To configure manually eclipse workspaces edit the file:
      eclipse\configuration\.settings\org.eclipse.ui.ide.prefs

      A simple way to create new Eclipse workspace with all your old settings is to copy this directory .metadata/.plugins/org.eclipse.core.runtime/.settings into your new workspace directory.

      To configure static imports simply configure static import favorites on the
      Window > Preferences > Java > Editor > Content Assist > Favorites preference page

      Sunday, 17 May 2009

      Remotely backing up my data on the Cloud

      Since I formatted my laptop recently I decided to find an online repository so I can store my files there. I created a Dropbox account and I made a request for the Ubuntu One. Soon I will have an Ubuntu One account and I will be able to compare those two.


      Dropbox is quite fun. It runs in the background on the desktop and it synchronizes my files to my laptop and the web. It is a content management system that does versioning like SVN. The files are accessible on the internet via a url.

      You can get both accounts for free with 2GB storage space but you have to pay if you want more space.