Monday, August 24, 2015

Developing an engine.

Well, it is obvious I haven't been around for a while. I have been busy studying and attempting to create a game engine

The reasons why I don't like to use a licensed engine is because I would be at the mercy of that engine's developers and corporate decisions. When one doesn't trust corporations, it is logical to find and build one's own resources. It takes longer, but I think the effort pays off in the long run.

It is going to be a challenge to implement the game design decisions I have in for the long term. In short term, it is a simple educational matching game. But as new versions of it are developed, Machine Learning for improving the difficulty and learning paths, complex AI for pathfinding,and finite state machine for the major entities will become necessary.

Friday, October 31, 2014

Remastering an audio track from multimedia file using Open Source tools

I finished the multimedia file manipulation tutorial. In this case I show the audience how to effectively and at one's best attempt remaster a neglected audio track from a multimedia file found at coursera's website. Any other unheeded multimedia file bearing a lacking audio track may be used, but the filters would have to be applied with slightly different parameters. Notice it does not make any miracles, it simply improves a low quality recorded voice track.

We use the famous Open Source audio software Audacity to apply Noise Removal, Compress Dynamics, Equalization, Zero Cross, Silence and other filters. After the voice track is improved, we set a series of parameters for FFmpeg:


ffmpeg.exe -i path/video_filename -i path/audio_filename -map 0:0 -map 1:0 -vcodec copy -acodec libmp3lame -b:a 128k -ac 2 output_filename.mp4 It will show series of statistics from the processing being computed in regards to the frames, quality, time, size, etc. Once it finishes the processing, the output file will be ready to be played by default on the bin directory of FFmpeg.

Sunday, June 8, 2014

Ethernet issues

Extending the RAM memory from 3 GB(3 slots with 1 GB of RAM slots) to 4GB of RAM, by adding a compatible RAM module to the remaining slot(1GB of DIMM 6400 RAM, at 800 Mhz) turned out to disable the Ethernet card. So I tried resinstalling the ethernet driver, the BIOS and motherboard device drivers to no avail.

Ultimately I installed a new PCI Ethernet card and the networks started working. Thankfully I had an Ethernet card stored in a warehouse, otherwise I would be left spending for a new Ethernet card or not possessing network connection at all.

Friday, March 28, 2014

Gabriel's idiocy.






















Despitemy seemingly intact ego, sometimes I LOOK at myself  with self loathe, feeling guilty that such simple operations like radicalization of a fraction would fly over my head. I blame it on sleep deprivation, which is diminishing over time.

Reviewing some trigonometry, I stumbled upon this exercise on the excellent Free and Open Khan academy website.



 

                ___


Of course BC  is equal to 5 since tan is 1 and the other side(opposite to the angle) is 5.

However, it is not clear how

 5
___
√50


  1
____
  ___
√2


But the answer is: radicalization, i.e. multiplying the unit-length denominator by the monomial(term). In other words square root of 50 divided by square root of 50 multiplied by 5 divided by square root of 50.

Here are the steps:


0,70710678118654752440084436210485

 5
___
√50




Radicalization:

5·√50
____
50

Simplification:

 √50
 ____
  10

Factorization:

    ____
  √5· 10
  ______
    10
   
Square factorization:

     __    ___
   √5  · √10
   ___________
        10

Reverse radicalization:
       
    ___
   √5
   _____
    ___
   √10

Factorization

     ___
   √5
   _____
     ___
   √2·5

Square factorization:

     ___
   √5
   _____
     _      _
   √2 · √5

Finally:




   1
   ____
    ___
   √2

Which radicalized equates to:


Friday, March 7, 2014

First C++ program

I decided to finish a screencast as quick as possible without loosing profession touch It took me 2 days. Way  too much, so I must either decrease the quality to out of the mill screencast, or take pauses from game development every day to work progressively. Seems that C++ is the logical step, since right now I am reviewing many of the concepts I had long time stopped using.


Sunday, November 24, 2013

Animation, tougher and more time-consuming than what may appear to be.

It takes much more time to animate in the traditional, cell animation style than with 3D, mainly because the 3D suite(program) automates the process with bones, skinning and inverse kinetics. With 2D cell animation, the burden is on the animator to visualize test and move each section of the character.

Now that I am with a button animation of a breathing character, I realize that animating with GAP does take a lot of time. It allow to create animations reminiscent of the old days, but the sacrifice is time consumption.

Blender seems a nice platform to start animations. But for time constrains, I am unable to create the animations there. Another year may pass before I am able to animate in Blender though.

Monday, November 11, 2013

Animation and humour

One of the reasons that educational videos aren't as popular as the rest of videos(entertainment, mostly) is because they tend to sacrifice amusement for substance. Whilst it is more efficient in the short term(get away with the information as soon as possible), in the long term it is better to add humour and creative value that will make the audience crave more.

My recent attempt to add this is being challenged by the fact that animation does take a long time, even dimple ones like maraca shaking and caricaturesque breathing movements.

Thursday, October 17, 2013

How to de-es a track in post-production.

First of all, remember that the best de-esser is done whilst recording, with the pop filter and conscious attenuated 's's, 'p's, 'c's and 't's. If in case you apply a compressor for augmenting the loudness and diminishing the dynamic range, as I do, you will notice these consonants' amplitude to be increased(because the compressor I use increases the amplitude of lower volume waves and mitigates|or wholly halts| the amplification of higher volume waves.) That's what this mini-guide is all about.

Procedure to de-es a vocal track the fastest possible way.


First of all avoid hard sibilants and plosives while recording. When mistakes are made, use Audacity to edit the vocal track.

First of all, duplicate twice the original vocal track and name the original: “original vocal” so that we can work on the copies whilst the original is left unchanged. Name the duplicate: “duplicate”, and the other duplicate: “just in case.”

On the “just in case” track, apply the spitFish de-esser, available for free, as a VSTi plug-in. Audacity accepts the plug-in as long as you put the DLL on the “plugins” folder where Audacity was saved.








Instead of using the default settings use the sense and depth at max and tune at 5.5 Khz . Most importantly activate the “listen” switch which will cause the detected specified samples to remain, instead of being eliminated. Clicking on “OK” will create an “S” sounding track. Check whether only "S"s were highlighted, otherwise silence(«ctrl+l» while selected) the samples that do not inhere.

Play it back checking once again that it did avoid non "S"s like "SH"s, "CH" and occasionally "T"s. Otherwise recheck the "just in case track" for non pertaining samples and silence them(«ctrl+l» while selected).
Amplify those "S"s that seem to attenuated, and call the "compressor" plugin in case you are in hurry, and can't bother to verify each "S"s decent amplitude.









Using the “duplicate” track, and ensuring that the "just in case" track is bellow it, apply the auto duck (included by default with Audacity) with the following parameters:




Duck amount: 28,625 dB
Outer fade down length: 0,02 seconds
Inner fade down length: 0,14 seconds
Maximum pause: 0,15 seconds
Outer fade up length: 0,02 seconds
Inner fade up length: 0,14 seconds
Threshold: -37,128 dB

Once clicked on OK, you will observe the “S”s highly reduced in amplitude on the "duplicate" track.  Now try Compress dynamics with the following parameters:




Compress ratio: 1,0
Compression hardness: 0,905
Floor: -46,1
Noise gate falloff: 7,9
Maximum amplitude: 0,99

And later reapply the AutoDuck filter on the same "duplicate" track, using the "just in case" track as the side-chaining accomplice. Checking whether it reduced the amplitude of a non “S” is redundant(since you already rechecked it in the first pass).

You have finished.