Lab 4

Salute my fellow programmer,

It is me again, with some update on my coding adventure. It took me a long time but I am now able to update my progress on my SPO600 lab 4.

This is my objective, that I copied from the Lab4 page:

+Build and test this file.

  • Does it produce the same output each time?

+Test the performance of this program.

  • How long does it take to run the scaling?
  • How much time is spent scaling the sound samples? Be sure to eliminate the time taken for the non-scaling part of the program (e.g., random sample generation).
  • Do multiple runs take the same time? How much variation do you observe? What is the likely cause of this variation?
  • Is there any difference in the results produced by the various algorithms? How much does numeric accuracy matter in this application?

So first of all, I extract the whole file, just as I should

Then I started running the test to see the run time for it.

I realize it gave the same result 94. After I Pre-calculate a lookup table (array) of all possible sample values multiplied by the volume factor, and look up each sample in that table to get the scaled values. This is what I got.

And here, I convert the volume factor 0.75 to a fix-point integer by multiplying by a binary number representing a fixed-point value “1”.

Overall, this lab gave me a chance to practice with alternative methods for my coding experience, I will update more with my lab 5 progress. Thanks for reading.

SPO600 Lab 1

Hi there everyone,

This is my first lab for SPO600, so it is quite easy. I just need to find 2 open source software packages that has different licenses, so I chose Audacity, which has GNU General Public License (GPL) and LibreOffice, which has Mozilla Public License v2.0 license for this lab.

+ Accept Code Procedure:

For Audacity, they use Mailing List and Github to get codes from their community, which proves to be super useful at receiving and improving project, and also widely accessible by a lot of open source developer. Meanwhile, LibreOffice uses Bugzilla for bugtracking and testing bug report, and also using github to provide source code for the developer.

+ Succefully Submitted Patch

The next thing that I did was identifying 1 succefully submitted patch by the community, and with that, I saw a post about a request for support for labels in 2 formats to Audacity github rep by a user name Pokechu22. As what I have seen, this user forked the original rep, and then work on it by his own by creating a new branch called subrip-label-v2, create a pull request that require the master branch to update. After a some checking, the request was passed and accepted by the owner of Audacity. There were a lot of other people working on this project too. Issues were resolve and pull requests were creating constantly. It usually does not take long for both the participants and the owner to communicate with each others on how to improve the application even more. github is a really convenient tool, so I can see why these two application prefer to use github.

Overall, I think this approach of getting bug fixes and communicating with developer are very convenient and helpful. If I were in the community, I would use github carefully, test my submission in many ways so that it gives helpful result contribute to this big open source comminuty.

0.4 Final

Hey, hello for the last time.

So, this is my final post for this course now ( I may update this site more with other courses’s content in the future).

For the last few weeks, I have a lot of works to do, from job and also from other courses, so I have to choose something that suit my time. After a while, I found a rougelike project that is really interesting, and it needs some help with implemented a stat, so I help the owner with it. It was a JavaScript feature that I implemented after I have found out that he wanted it to be like Pokemon Speed stat. I was just added another variables in both player and monster stat, and also change the battlehandler to support speed stat by deciding whether monster or player has a higher stat. After This project, I learned more about how game works in website, and I may use it in my other courses in the future.

That is it for now, I think I will be off for a while. See you guys later.


0.4 Update

Greeting everyone,

I am sorry, so far I have not yet been able to update anything just yet, I am still finding trouble at looking for a proper project to contribute with all homework and assignment behind.

I am currently looking at some website bugs or game that may need to add some feature in, I will update in time when I can

Thank you, and see you in my last post.

Final 0.3 Post

Good evening my fellow coders.

Yes, I know that I am late for the post, because I had a lot of trouble working on my old projects, so I had some changes that I would like to mention today

Firstly, I find my old issues quite difficult, so I decided to switch to another project called SpaceShooter. I help the project by adding some soundtrack to the game, and implement a simple JavaScript file for it. I admit that I made a lot of commits because I was uploading the files at the wrong order and styles, so I had to do it again.

For this issues, I have to look up at a JavaScript audio library project called Howler, so that I can implement the audio easily. It was a new discovery for me because I may need it in future project. I think this project helps me dig into JavaScript deeper, helping me in a long run in Open Source Projects.

Thank you for your time, and I will see you later.

Issue Link: https://github.com/angeredbovine/SpaceShooter/pull/5

Howler Link: https://github.com/goldfire/howler.js/

Music Link: https://www.bensound.com/


  • The new cool sound library that you should have a look

Blog Post

Hello my fellow progammer friend,

So, it has been one week, and I am still currently working on 2 of the projects that I mentioned. It was quite hard and I still trying to get my work done in time.

To be honest, I am not really the direction that needed to complete this project. I am currently just trying to make it run first in my computer. I also try to search for more information about JavaScript and C++ commands and functions to implement and fix the bugs.

I will try to post new update whenever I have done something new. For now, my plan is to try finish these projects as soon as I can to have time to recheck. If I find out that I can not fix the bug, I will post a blog with new project links in it.

Thank you for reading until nơ. I will see you in the next post.

Lab 8

Hi everyone, again again 🙂

So, it is just only about few weeks left, and I got some new issues and request to pull. For this lab, I will choose an issue to work with, and after some time looking for a fit open source project to work with, I found out that I can work with emscripten and speak.js.


Emscripten is an LLVM-to-JavaScript compiler, while speak.js is a port of the eSpeak speech synthesizer from C++ to JavaScript using Emscripten. I chose them because I found myself easier to deal with the issues in it. I will be updating my progress more frequently, although there may be some delay due to my busy schedule for the last few weeks.

Thank you for reading :D.