From ed82fe01c8286dd2f30793f0bda444b5c1764df3 Mon Sep 17 00:00:00 2001
From: Matus Novak <mn00272@surrey.ac.uk>
Date: Sun, 17 Mar 2019 22:59:45 +0000
Subject: [PATCH] Added more sections to the report

---
 report/bibliography.bib            |   8 +++
 report/chapters/abbreviations.md   |  18 +++++
 report/chapters/abstract.md        |   8 +++
 report/chapters/acknowledgement.md |   3 +
 report/chapters/acronyms.md        |   1 -
 report/chapters/design.md          | 101 ++++++++++++++++-------------
 report/chapters/introduction.md    |  53 ++++++++++++++-
 report/chapters/literature.md      |   9 ++-
 report/chapters/originality.md     |   3 +
 report/chapters/requirements.md    |  16 ++++-
 report/chapters/research.md        |   1 -
 report/chapters/specifications.md  |   1 -
 report/chapters/testing.md         |   4 +-
 report/images/BinTray.png          | Bin 0 -> 97699 bytes
 report/index.mdpp                  |  10 +--
 report/make.bat                    |   2 +-
 16 files changed, 179 insertions(+), 59 deletions(-)
 create mode 100644 report/chapters/abbreviations.md
 delete mode 100644 report/chapters/acronyms.md
 create mode 100644 report/chapters/originality.md
 delete mode 100644 report/chapters/research.md
 delete mode 100644 report/chapters/specifications.md
 create mode 100644 report/images/BinTray.png

diff --git a/report/bibliography.bib b/report/bibliography.bib
index 3590570..eb9bf40 100644
--- a/report/bibliography.bib
+++ b/report/bibliography.bib
@@ -227,4 +227,12 @@
   year = {2017},
   publisher = {http://photobyte.org},
   howpublished = {\url{http://photobyte.org/137mhz-polar-orbiting-weather-satellites/}}
+}
+
+@misc{bintray,
+  title = {Welcome to JFrog BinTray},
+  author = {Rami Honig},
+  year = {2018},
+  publisher = {jfrog.com},
+  howpublished = {\url{https://www.jfrog.com/confluence/display/BT/Welcome+to+JFrog+Bintray}}
 }
\ No newline at end of file
diff --git a/report/chapters/abbreviations.md b/report/chapters/abbreviations.md
new file mode 100644
index 0000000..eeee79e
--- /dev/null
+++ b/report/chapters/abbreviations.md
@@ -0,0 +1,18 @@
+# Abbreviations
+
+| Abbreviation | Definition |
+| ------------ | ---------- |
+| CI           | Continuous Integration |
+| REW          | Radio Enabled Web |
+| SDR          | Software Defined Radio |
+| GCC          | GNU C Compiler |
+| LLVM         | Apple's Clang Low Level Virtual Machine |
+| MSVC         | Microsoft Studio Visual C++ |
+| x64          | The 64-bit system |
+| amd64        | Also refers to the 64-bit system |
+| x86_64       | The 64-bit version of the x86 architecture. Also refers to the 64-bit system |
+| x32          | The 32-bit system |
+| x86         | The 32-bit instruction system, refers to the 32-bit system |
+| i686          | The 32-bit instruction set, part of the x86 family |
+| win32        | Windows specific 32-bit architecture, used by MSVC |
+| win64        | Windows specific 64-bit architecture, used by MSVC |
diff --git a/report/chapters/abstract.md b/report/chapters/abstract.md
index 8957164..b15b9c9 100644
--- a/report/chapters/abstract.md
+++ b/report/chapters/abstract.md
@@ -1 +1,9 @@
 # Abstract
+
+In this report we look at the design and implementation of small scale websites transmission over FM Radio. The project, "Radio Enabled Web", consists of a Encoder and a Decoder parts. These two applications, more precisely shared libraries, can encode a static HTML website into an audio file. This audio file can be then transmitted using conventional FM Transmitter, and then received on the other side. The received audio is then decoded via the Decoder application, and shown to the user via browser.  
+
+This project, Radio Enabled Web, utilizes the FM radio transmitter and a receiver to transmit the contents of the website. However, it is possible to use any other carrier that uses audio, for example an amateur short-band radio. 
+
+The Radio Enabled Web (REW), splits both the Decoder and Encoder into small standalone blocks, which can be used by the user. These blocks are C++ classes, and are purely optional. These blocks can be assembled into a custom pipeline, or integrated into any other viable language. The main part of this project is the GUI application(s) and Command Line Interfaces that can be used out of the box.
+
+This report mainly consists of software design, implementation, and testing of the Radio Enabled Web.
diff --git a/report/chapters/acknowledgement.md b/report/chapters/acknowledgement.md
index 1320079..e415e6e 100644
--- a/report/chapters/acknowledgement.md
+++ b/report/chapters/acknowledgement.md
@@ -1 +1,4 @@
 # Acknowledgement
+
+I would like to thank the grocery shop under the University library for a constant supply of energy drinks, which were greatly needed to complete this project.
+
diff --git a/report/chapters/acronyms.md b/report/chapters/acronyms.md
deleted file mode 100644
index e4acb87..0000000
--- a/report/chapters/acronyms.md
+++ /dev/null
@@ -1 +0,0 @@
-# Acronyms
diff --git a/report/chapters/design.md b/report/chapters/design.md
index 9611023..b1c0668 100644
--- a/report/chapters/design.md
+++ b/report/chapters/design.md
@@ -2,29 +2,29 @@
 
 ## 4.1 Software
 
-The aim of this project is not only to transmit entire web pages through an FM radio, but also to provide the API for the user. The API, in form of a library, must be easily understood and well documented. The API will provide a basic set of building blocks for the user to arrange them in any desirable pipeline. These blocks in a form of a pipeline can be used to encode or decode the transmission, or further enhance the library. The aim is to also provide a basic CLI (Command Line Interface) with pre-built pipeline that can be used to encode and then decode the transmission. Additionally, to provide a http server for localhost, in order for the user to be able to browse the decoded transmission through a web browser of their choice. 
+The aim of this project is not only to transmit entire web pages through an FM radio, but also to provide the API for the user. The API, in form of a library, must be easily understood and well documented. The API will provide a basic set of building blocks for the user to arrange them in any desirable pipeline. These blocks, in a form of a pipeline, can be used to encode or decode the transmission, or further enhance the library. The aim is to provide a basic CLI (Command Line Interface) with pre-built pipeline that can be used to encode and then decode the transmission. Additionally, to provide a HTTP server for localhost, in order for the user to be able to browse the decoded transmission through a web browser of their choice.
 
 ### 4.1.1 Programming language and environment
 
-C++ was chosen as the implementation language for this project. The main reason behind this decision was performance benefits of compiled languages over an interpreted languages [@languagesbenchmark]. Another reason for the chosen language is that I have past experience working with this language in my own personal projects. C++ is a good choice for an open source library as it can be integrated into interpreter library. For example, using pybind11 [@pybind11] to create python bindings, or by using Node [@nodejsaddons] to create a JavaScript library. C++ libraries can be also easily integrated into C# Net Framework via dllimport [@csharpdllimport], Ruby [@rubyextensions], and many more.
+C++ was chosen as the implementation language for this project. The main reason behind this decision was performance benefits of the compiled languages over the interpreted languages [@languagesbenchmark]. Another reason for the chosen language is that I have past experience working with this language in my own personal projects. C++ is a good choice for an open source library, as it can be integrated into interpreted language. For example, using pybind11 [@pybind11] to create python bindings, or by using Node [@nodejsaddons] to create a JavaScript library. C++ libraries can be also easily integrated into C# Net Framework via dllimport [@csharpdllimport], Ruby [@rubyextensions], and many more.
 
-Additionally, the decoding part of this project needs to listen to the raw audio input of the user's machine. Therefore, it is essential that the application needs to run at real-time speed. The use of C++ will greatly improve the efficiency of the decoding algorithm.
+Additionally, the decoding part of this project needs to listen to the raw audio input of the user's machine. Therefore, it is essential that the application needs to run at real-time speeds. The use of C++ will greatly improve the efficiency of the decoding algorithm.
 
-The C++ offers a standard library [@stdlib] which contains the basic building blocks for the project needs. However, unlike Java and other high level languages, C++ does not offer out of the box networking library or filesystem library. The standard library, or STD for short, only provides us with language specific additions, such as: strings, vectors (dynamic arrays), optionals, and mainly the smart pointers. The smart pointers are a new addition to the C++ standard library version 11. It is a word of mouth that C or C++ applications are memory leaky, meaning, the application built in C or C++ are eventually leak memory and therefore use all of the available resources. However, these smart pointers are meant to help the programmer to reduce the likelihood of that happening. Normally when a new object is allocated, the standard way of doing it is through malloc (in C) or new operator (in C++). The memory needs to be then deleted via free (in C) or operator delete (in C++). The smart pointers encapsulate the raw pointers in an smart pointer object instance, and delete the memory when the instance fall out of scope. The project will have a heavy use of this feature.
+The C++ offers a standard library [@stdlib], which contains the basic building blocks for what the project needs. However, unlike Java and other high level languages, C++ does not offer out of the box networking library or filesystem library. The standard library, or STD for short, only provides us with language specific additions, such as strings, vectors (dynamic arrays), optionals, and the smart pointers. The smart pointers are a new addition to the C++ standard library version 11. It is a word of mouth that C or C++ applications are memory leaky, meaning, the application built in C or C++ will eventually leak memory and therefore use all of the available resources. However, these smart pointers are meant to help the programmer to reduce the likelihood of that happening. Normally when a new object is allocated, the standard way of doing it is through malloc (in C) or new operator (in C++). The memory needs to be then deleted via free (in C) or operator delete (in C++). The smart pointers encapsulate the raw pointers in an smart pointer object instance, and delete the memory when the instance fall out of scope. The project will have a heavy use of this feature.
 
 The C++ comes with many versions, the standards, from C++98 (1998) up to C++20 (2020). The project will use the C++ 17 standard. The reason behind this chose is that the smart pointers have been first introduced in C++11 and later enhanced with additional features in C++14. Additionally, C++17 offers better metaprograming features than its predecessors. However, due to issues with the continuous integration and Mac OSX, the standard had to be lowered to C++ 14.
 
-For the unit testing the Catch2 [@catch2] framework was chosen. The framework does not produce any static or dynamic libraries, instead only a single header file is needed for a integration. This Catch2 unit testing framework also offers a real time expression expansion for the each assert macro. This is extremely beneficial when it comes to asserting comparisons between two values in the unit tests. For example, when testing if a `std::vector` contains a specific number of elements, we can call `REQUIRE(vec.size() == 10);`. If this assertion fails, the Catch2 will print it out as an error `8 == 10`. This also works for more complicated types such as strings.
+For the unit testing, the Catch2 [@catch2] framework was chosen. The framework does not produce any static or dynamic libraries, instead only a single header file is needed for a integration. This Catch2 unit testing framework also offers a real time expression expansion for the each assert macro. This is extremely beneficial when it comes to asserting comparisons between two values in the unit tests. For example, when testing if a `std::vector` contains a specific number of elements, we can call `REQUIRE(vec.size() == 10);`. If this assertion fails, the Catch2 will print it out as an error `8 == 10`. This also works for more complicated types such as strings.
 
 ### 4.1.2 Package Manager and build system
 
-The C++ does not have an official package manager. There are many third party options such as Microsoft's vcpkg [@vcpkg] or conan [@conan]. The vcpkg is available on all three major platforms (Windows, Linux, and OSX) and offers packages in i686, amd64, or arm. This seems as a great choice for a package manager of this project, however there are some issues with it. First, the vcpkg does not offer a static binaries of the library on Linux and OSX, only dynamic binaries. This is also reversed on Windows where the the manager offers mainly static binaries with little or no choice of using dynamic binaries instead. Second, the vcpkg requires user's knowledge about complicated C++ building mechanism. This breaks the idea of this project, the entire project must be easy to understand and build by the user. The conan has been discarded due to a reason that the official documentation lacks the essentials, and the offer of the libraries is not comprehensive as we need. This leaves us with no other choice than building the libraries ourselves.
+The C++ does not have an official package manager. There are many third party options such as Microsoft's vcpkg [@vcpkg] or conan [@conan]. The vcpkg is available on all three major platforms (Windows, Linux, and OSX) and offers packages in i686, amd64, or arm. This seems as a great choice for a package manager of this project, however there are some issues with it. First, the vcpkg does not offer a static binaries of the library on Linux and OSX, only dynamic binaries. This is also reversed on Windows where the the manager offers mainly static binaries with little or no choice of using dynamic binaries instead. Second, the vcpkg requires user's knowledge about complicated C++ building mechanism. This breaks the idea of this project, the entire project must be easy to understand and easily built by the user. The conan has been discarded due to a reason that the official documentation lacks the essentials, and the offer of the libraries is not comprehensive as need for this project. This leaves us with no other choice than to build the libraries ourselves.
 
 Instead of using a package manager, the Git Submodules [@gitsubmodules] will be used. The Git submodules is a way of adding other Git repositories into our project. The libraries will be simply added as a git submodule and then fetched from the remote git origin into a subfolder of the project. The contents of those libraries will not be pushed to the main repository, instead only the submodule metadata needed to fetch the library. This slightly introduces a complexity of the building system, but allows us to chose a specific commit or compilation flags for each of the library we will need.
 
-The C++ offers no standard way of building the application from sources. There are many different offers of tools when it comes to building and generating project files for C++ applications. One of the popular one is automake [@automake]. The automake was primarly designed to work only on Linux based systems, and has almost non-existing support for Windows without using a virtual machine or a port of Linux tools. Automake is used by many open source C++ libraries, however due to Linux only support it can not be used in the project. Instead, CMake [@cmake] will be used. CMake offers a simple intuitive scripting language which can be used to identify source files, add include directories, and link libraries for the target executable (this project) or a library. CMake fulfils the needs as it is easy to install and the commands to build the project are easy to follow for a beginner.
+The C++ offers no standard way of building the application from sources. There are many different offers of tools when it comes to building and generating project files. One of the popular one is automake [@automake]. The automake was primarly designed to work only on Linux based systems, and has almost non-existing support for Windows without using a virtual machine or a port of Unix shell tools. Automake is used by many open source C++ libraries. However, due to Linux only support, it can not be used in this project. Instead, CMake [@cmake] will be used. CMake offers a simple intuitive scripting language, which can be used to identify source files, add include directories, and link libraries for the target executable (this project) or a library. CMake fulfils the needs, as it is easy to install, and the commands to build the project are easy to follow for a beginner.
 
-Additionally CMake offers an optional variables to be added into the building script. For example, it is possible to add `BUILD_EXAMPLES` or `BUILD_TESTS` conditional boolean variable which a user can set to true or false. Using this variables, the project's CMake script file `CMakeLists.txt` will conditionally include examples and tests into the final generated project files. These project files can be anything from a simple Makefile, Visual Studio solution files, or even Mac XCode files. The CMake also offers a GUI which greatly reduces the complexity of user experience.
+Additionally, CMake offers an optional variables to be added into the building script. For example, it is possible to add `BUILD_EXAMPLES` or `BUILD_TESTS` conditional boolean variables, which a user can set to true or false. Using this variables, the project's CMake script file `CMakeLists.txt` will conditionally include examples and tests into the final generated project files. These project files can be anything from a simple Makefile, Visual Studio solution files, or even Mac XCode files. The CMake also offers a GUI which greatly reduces the complexity of the user experience.
 
 ![CMake GUI when building project files](images/C__Users_Matus_Documents_Projects_com3001_build.png)
 
@@ -32,14 +32,14 @@ Additionally CMake offers an optional variables to be added into the building sc
 
 The following third party libraries have been chosen for this project.
 
-* argagg [@argagg] - This library provides a command line argument parsing. Needed for the command line interface part of this project.
-* asio [@asio] - A library to create a basic http server. This server will be listening on the localhost and serving the decoded transmission to the user.
+* argagg [@argagg] - This library provides a command line argument parsing. Needed for the command line interface part of this project. The library only needs a list of arguments and their description. Additionally, a help page is automatically generated using the description. 
+* asio [@asio] - A library to create a basic http server. This server will be listening on the localhost and serving the decoded transmission to the user. The main part of the Asio is asynchronous networking, which will be needed when we want to separate decoding and serving via threads.
 * dirent [@dirent] - A library to wrap Windows specific file system functions to be compatible with Unix functions. The original dirent is a library provided inside of every Linux based system. However due to the differences between Linux and Windows, this library provides a translation for Windows compilers between those two environments. This is only needed when building on Windows and will be enabled or disabled by CMake during configuration.
-* zlib [@zlib] - This is a common compression library. It will be used to compress the source website into raw stream of bytes before being transformed into packets and transmitted.
-* portaudio [@portaudio] - A cross platform audio input/output library. This library will be used by the Decoder to listen for transmission.
-* qt5 [@qt5] - A cross platform GUI library developed by Nokia.
+* zlib [@zlib] - This is a common compression library. It will be used to compress the source website into raw stream of bytes before being transformed into packets and transmitted. The zlib is well used compression library among many real world applications. Therefore, its documentation has been perfected, and easily understood, over the course of many years. 
+* portaudio [@portaudio] - A cross platform audio input/output library. This library will be used by the Decoder to listen for transmission. Many Linux distributions already provides this library by default, which we need to take into consideration in our CMake scripts.
+* qt5 [@qt5] - A cross platform GUI library developed by Nokia. This library provides a basic set of UI widgets, alongside with some more complex ones. In this project, only the basic set will be used, to reduce the size of the output executable. The Qt5 has a commercial fee, however because this project is open source, we are allowed to use Qt5 without paying for it.
 
-All of the third party libraries are included as a git submodule. Only the libraries that need compilation step, such as zlib, will be included in the CMake generator. Any other libraries that are header only, meaning they do not require compilation step, are only included as a include directory for the compiler.
+All of the third party libraries are included as a git submodule. Only the libraries that need compilation step, such as zlib, portaudio, and Qt5, will be included in the CMake generator. Any other libraries that are header only, meaning they do not require compilation step, are only included as a include directory for the compiler.
 
 ### 4.1.4 Integrated development environment
 
@@ -71,7 +71,7 @@ Microsoft Visual Studio 2017 [@visualstudio] with ReSharper C++ [@resharper] has
 
 ## 4.2 Continuous Integration
 
-The continuous integration is an essential part when building C++ applications or libraries. Due to a reason that the output binary (either an executable or a dynamic library) is platform dependent, we will need to test the compilation and tests for all of the platforms we wish to distribute to. The continuous integration is an online service which listens to changes within the repository and launches a build for every change. This change can be a commit, new tag, or a pull request. With a use of this service we can ensure that the code written is platform independent. In this project, the three major platforms have been included: Windows, Linux, and OSX. Additionally, the i686 and amd64 versions need to be included in the Windows testing. The status of all of the continuous integration is listed in the README file of the repository. 
+The continuous integration is an essential part when building C++ applications or libraries. Due to a reason that the output binary (either an executable or a dynamic library) is platform dependent, we will need to test the compilation and unit tests for all of the platforms we wish to distribute to. The continuous integration is an online service which listens to changes within the repository, and launches a build for every introduced change. This change can be a new commit, new tag, or a pull request. With a use of this service, we can ensure that the code written is platform independent. In this project, the three major platforms have been included: Windows, Linux, and OSX. Additionally, the i686 and amd64 versions need to be included in the Windows testing. The status of all of the continuous integration is listed in the README file of the repository. 
 
 ![Status of continuous integration listed in the README file of the project on GitLab.](images/Build_Status.png)
 
@@ -79,7 +79,7 @@ The continuous integration is an essential part when building C++ applications o
 
 The AppVeyor [@appveyor] is a continuous integration that offers building software on Windows virtual machines. The MinGW and MSVC compilers (both in amd64 and i686 settings) have been included in the building script. During the build, the latest commit is fetched from the repository, and using a custom script provided, the project is built and the output packed into a single artifact zip file. The artifact contains the binary distribution of the command line interface, alongside with the dynamic library and header files.
 
-Due to the CRT [@iteratordebug] in MSVC compiler, the build system had to be adjusted for Visual Studio 2017. While the output binary for MinGW, or Unix system is built in Release mode only, The Visual Studio build needs to output both Debug and Release binaries. The Debug mode produces a non optimized library with debug symbols and the Release mode produces optimized library with no debug symbols attached. These debug symbols are only needed for the development of an application that used this library. However, due to the CRT in MSVC compiler, the CRT library on Windows is not compatible if the CRT used in the built binary does not match the debug level used. For example, if the user decides to download the Release version, and tries to use it in their own custom application built in Debug mode, it will cause compilation error. Therefore, both Debug and Release versions must be published. This does not apply for MinGW, GCC, or Clang compiler. 
+Due to the CRT [@iteratordebug] in MSVC compiler, the build system had to be adjusted for Visual Studio 2017. While the output binary for MinGW, or Unix system is built in the release mode only. The Visual Studio build needs to output both the debug and the release binaries. The debug mode produces a non optimized library with debug symbols attached. The release mode produces optimized and minimized library with no debug symbols. These debug symbols are only needed for the development of an application that used this library. However, due to the CRT in MSVC compiler, the CRT library on Windows is not compatible if the CRT used in the built binary does not match the debug level used. For example, if the user decides to download the release version, and tries to use it in their own custom application built in debug mode, it will cause compilation error. Therefore, both debug and release versions must be published. This does not apply for MinGW, GCC, or Clang compiler. 
 
 Only Visual Studio 2017 in Win32 and Win64 mode and MinGW 6.3.0 in i686 and x86_64 mode are used in this continuous integration.
 
@@ -87,7 +87,7 @@ Only Visual Studio 2017 in Win32 and Win64 mode and MinGW 6.3.0 in i686 and x86_
 
 ### 4.2.2 Travis CI
 
-The Travis CI [@travisci] is a continuous integration that offers building software on both Linux and Mac OSX. Similarly as in AppVeyor, the build is launched on every new commit pushed to the repository. The Linux GCC 7.3.0 in x64 mode and Apple Clang LLVM 8.0.0 in x64 mode is used during compilation.
+The Travis CI [@travisci] is a continuous integration that offers building software on both Linux and Mac OSX. Similarly, as in AppVeyor, the build is launched on every new commit pushed to the repository. The Linux GCC 7.3.0 in x64 mode and Apple Clang LLVM 8.0.0 in x64 mode is used during compilation.
 
 ![Example of Travis CI build](images/TravisCI.png)
 
@@ -95,17 +95,21 @@ The Travis CI [@travisci] is a continuous integration that offers building softw
 
 The Circle CI [@circleci] is a continuous integration that only offers building software on Linux. As in both AppVeyor and Travis CI, The Circle CI launches the build on every new commit. For the purposes of this project, only Linux GCC 5.5, 6.4, 7.3, and 8.2 in x64 mode is used.
 
-After the successful build of the software on various version of GCC, the documentation building process is run in two separate jobs. During this, the first job "build_docs" will run Doxygen [@doxygen] which will parse the header files and produces XML output. This XML output is further processed by DoxyBook [@doxybook] and exported as Markdown into a temporary folder. In the second job, the last job, the Markdown documentation is converted into HTML static pages via VuePress [@vuepress], and finally pushed into the `gh-pages` branch on the GitHub mirrored repository.
+After a successful build of the software, on various version of GCC, the documentation building process is run in two separate jobs. During this, the first job "build_docs" will run Doxygen [@doxygen] which will parse the header files and produces an XML output. This XML output is further processed by DoxyBook [@doxybook] and exported as Markdown into a temporary folder. In the second job, the final job, the Markdown documentation is converted into HTML static pages via VuePress [@vuepress], and finally pushed into the `gh-pages` branch on the GitHub mirrored repository. These HTML files can be browsed online by accessing the repository.
 
 ![Example of Circle CI build](images/CircleCI.png)
 
 ### 4.2.4 Distribution of binary artifacts
 
-TBA: Bintray artifacts
+When the artifacts are built on the continuous integrations, they are pushed to the BinTray [@bintray] into a custom generic repository. This repository is no more than a simple file storage with versioning labelling system. The reason behind BinTray is that if we wish to distribute the library and the header files to the user, we need to make it available to them. If this was a Java application, we could distribute the library via Maven. However, this is not possible with C++, as there is no official package distribution software to do it for us. We could host the artifacts on University's GitLab, but due to the problem with non-working pipelines, I have decided not to try this feature as it may be a waste of time. Instead, we could use the mirror repository on GitHub to host the artifacts. This can work until we reach the 1GB of used space. After this limit is reached, a friendly warning is sent to the owner forcing them to release some space. This has lead me to BinTray which allows up to 10GB of space and up to 1TB of download traffic, more than needed for these artifacts.
+
+When the artifact is built, it is compressed into a zip file. The versioning of these zip files is the following this schema: `rew-<version>-<machine>-<compiler>.zip`, where the `<version>` is the version described by the git, the tag, and the `<machine>-<compiler>` are retrieved from the compiler itself. This versioning is useful for the developer, if they wish to integrate this software in their own application. However, for a common user, this is a highly confusing naming scheme. It would be more beneficial to host a website, for example a product website, with three simple options (Windows, Linux, and OSX) for downloading the software. This product website does not exist, but could be part of the future of this project.
+
+![Example of all artifacts collected on BinTray](images/BinTray.png)
 
 ### 4.2.5 Documentation
 
-The documentation is implemented via Doxygen [@doxygen] and a custom Doxygen xml parser DoxyBook [@doxybook]. The Doxygen parses the header files of this project and outputs an XML structure representing the classes, namespaces, and functions. This XML structure is then processed by DoxyBook, an open source command line utility created and maintained by myself. This utility converts the XML into Markdown files. The markdown files are then processed by VuePress [@vuepress]. The VuePress is a Vue.js [@vue] based platform for creating blogs and static page documentation. The reason for this choice is that the files generated can be browsed offline without a use of a HTTP server. Additionally, the generated static HTML files can be also uploaded to GitHub's gh-pages. The gh-pages is a name of a branch of a repository. If the branch is populated with HTML files, the GitHub will then automatically publish them online, without a use of a server. These files, the documentation, can be then viewed by anyone.
+The documentation is implemented via Doxygen [@doxygen] and a custom Doxygen xml parser DoxyBook [@doxybook]. The Doxygen parses the header files of this project and outputs an XML structure representing the classes, namespaces, and functions. This XML structure is then processed by DoxyBook, an open source command line utility created and maintained by myself. This utility converts the XML into Markdown files. The markdown files are then processed by VuePress [@vuepress]. The VuePress is a Vue.js [@vue] based platform for creating blogs and static page documentation. The reason for this choice is that the files generated can be browsed offline without a use of a HTTP server. Additionally, the generated static HTML files can additionally be uploaded to the GitHub's gh-pages. The gh-pages is a name of a branch of a repository. If the branch is populated with HTML files, the GitHub will then automatically publish them online, without a use of a server. These files, the documentation, can be then viewed by anyone.
 
 ~~~{.cpp caption="Example of Doxygen comments within the header files"}
 REW_NAMESPACE{
@@ -133,9 +137,9 @@ REW_NAMESPACE{
 
 ### 4.3.1 System structure
 
-The system was split into two separate components: Encoder and Decoder. The Encoder will be designed to only accept a folder containing all website files, and outputs a raw stream of samples that can be saved into an audio file. These samples, a PCM stream, is a stream of 32bit floating point values representing the entire encoded website as audio. The samples need to be normalized values between -1.0f and +1.0f, so that they have the maximum gain possible, without causing audio clipping. Any values beyond or under +/-1.0f will be wrapped over, causing glitches. Any audio PCM sample of 0.0f is considered to be infinitely silent, while +/-1.0f is considered highest possible gain. The Decoder needs to accept these PCM samples, either through an audio input or from an audio file. The Decoder will then process these samples and extracts the compressed stream of data that holds the website contents.
+The system was split into two separate components: the Encoder and the Decoder. The Encoder will be designed to only accept a folder containing all website files, and outputs a raw stream of samples that can be saved into an audio file. These samples, a PCM stream, is a stream of 32bit floating point values representing the entire encoded website as an audio. The samples need to be normalized values between -1.0f and +1.0f, so that they have the maximum gain possible, without causing audio clipping. Any values beyond or under +/-1.0f will be wrapped over, causing glitches - clipping. Any audio PCM sample of 0.0f is considered to be infinitely silent, while +/-1.0f is considered highest possible gain. The Decoder needs to accept these PCM samples, either through an audio input or from an audio file. The Decoder will then process these samples and extracts the compressed stream of data that holds the website contents.
 
-Command Line Interface will be provided alongside of the encoder and decoder libraries, so that the user can use these application without integrating the library in their own software. However, our target demographic may not have the technical skills to operate the CLI. Therefore, a GUI application, one for the Encoder and one for the Decoder, will be part of the project and binary distribution provided for the user. This GUI will be implemented via Qt5 [@qt5], a cross platform library developed by Nokia. GTK+ [@gtk] was considered at the beginning, however due to incompatibility on newer Mac OSX versions, the GTK will not correctly work unless the user enables X11 manually. Therefore, QT5 for its wide compatibility was chosen as the GUI framework for this project. The binary distribution of Qt5 will be distributed alongside the GUI binary distribution of the Encoder and Decoder. This is necessary to ensure that the target user does not need to install Qt5 globally into their machine.
+Command Line Interface will be provided alongside of the encoder and decoder libraries, so that the user can use these application without integrating the library in their own software. However, our target demographic may not have the technical skills to operate the CLI. Therefore, a GUI application, one for the Encoder and one for the Decoder, will be part of the project and binary distribution provided for the user. This GUI will be implemented via Qt5 [@qt5], a cross platform library developed by Nokia. GTK+ [@gtk] was considered at the beginning, however due to incompatibility on newer Mac OSX versions, the GTK will not correctly work unless the user enables the X11 manually. Therefore, QT5 for its wide compatibility, was chosen as the GUI framework for this project. The binary distribution of Qt5 will be distributed alongside the GUI binary distribution of the Encoder and the Decoder. This is necessary to ensure that the target user does not need to install Qt5 globally into their machine.
 
 All of the dependencies and target binaries are defined inside of the CMakeLists.txt files, one file for each Encoder or Decoder component.
 
@@ -143,9 +147,9 @@ All of the dependencies and target binaries are defined inside of the CMakeLists
 
 ### 4.3.2 API Design
 
-Because this project is meant to be open source, it must have a consistent API that is intuitive and easy to integrate to a custom software. Additionally, the algorithm must be adjustable. To satisfy these requirements, the algorithm was split into multiple blocks. Each block, using its own specific input data type, will consume the input and outputs it either in the same data type, or a new data type. Each block only does a single specific work, and is completely standalone. The blocks can be arranged together to form a pipeline (can be also described as flowgraph). This kind of implementation was inspired by GNU Radio [@gnuradio].
+Because this project is meant to be open source, it must have a consistent API that is intuitive and easy to integrate to a custom software. Additionally, the algorithm must be adjustable. To satisfy these requirements, the algorithm was split into multiple blocks. Each block, using its own specific input data type, will consume the input and outputs it either in the same data type, or a new data type. Each block only does a single specific work and is completely standalone. The blocks can be arranged together to form a pipeline (can be also described as flowgraph). This kind of implementation was inspired by the GNU Radio [@gnuradio].
 
-Each block is a derived class of Input and Output class. However, not every block needs to inherit both Input and Output classes. For example, a file audio source block, does not need to have an input, it only produces an output. An abstract Input class contains a virtual method `process()`. This method is called by the abstract Output class in order to forward the data. Due to the strict static typing of C++, the combination of Input and Output derived classes will always match.
+Each block is a derived class of the Input and the Output base classes. However, not every block needs to inherit both Input and Output classes. For example, a file audio source block, does not need to have an input, it only produces an output. An abstract Input class contains a virtual method `process()`. This method is called by the abstract Output class in order to forward the data. Due to the strict static typing of C++, the combination of Input and Output derived classes will always match.
 
 ~~~{.cpp caption="The abstract Input with omitted code"}
 template<typename T>
@@ -177,19 +181,19 @@ private:
 
 Using this idea, the following blocks have been implemented as listed below:
 
-* `Clamp<typename I, typename O>` - A block that clamps the input based on a specific minimum and maximum variables. This is necessary in order to ensure that the algorithm produces samples in -1.0f and +1.0f range.
-* `Merge<typename T, size_t N>` - A block that can merge N number of streams into a single stream for further processing. During this, the data is not converted to another data type, instead it is re-used.
-* `Multiply<typename T>` - This block simply multiplies the input stream by a fixed value.
-* `AudioSource` - (Decoder only) An abstract block that is used to produce an output of 32bit float PCM samples. This block needs to be further implemented. An implementation of `AudioReader` class, for reading audio files, and `AudioListener` class, for listening to the microphone audio input on the machine. TBA: WavAudioReader + PhysicalAudioListener.
-* `FirFiler` - (Decoder only) Filters out a specific frequency from a raw stream of PCM samples.
-* `Goertzel` - (Decoder only) Filters the input stream of 32bit float PCM samples and outputs a magnitude based on the frequency being tracked.
+* `Clamp<typename I, typename O>` - A block that clamps the input based on a specific minimum and maximum variables. This is necessary in order to ensure that the algorithm produces samples in -1.0f and +1.0f range. At the same time, the output is converted into a different data type, specified by the template parameters.
+* `Merge<typename T, size_t N>` - A block that can merge N number of streams into a single stream for further processing. During this, the data is not converted to another data type, instead it is re-used. During this process, the data is temporarily stored within the block. The data is forwarded once the length of all input paths matches, and then released and the input buffer reset.
+* `Multiply<typename T>` - This block simply multiplies the input stream by a fixed value. No data type conversion happens.
+* `AudioSource` - (Decoder only) An abstract block that is used to produce an output of 32bit float PCM samples. This block needs to be further implemented. An implementation of abstract `AudioReader` class, for reading audio files, and abstract `AudioListener` class, for listening to the microphone audio input on the machine. These two classes are then further implemented as concrete `WavAudioReader` and `PhysicalAudioListener` classes. `WavAudioReader` is meant to read audio samples from a WAV file, while the `PhysicalAudioListener` reads the audio samples from a physical input device.
+* `FirFiler` - (Decoder only) This block is meant to filter out noise. It works by listening to a specific frequency from a raw stream of PCM samples.
+* `Goertzel` - (Decoder only) Filters the input stream of 32bit float PCM samples and outputs a magnitude based on the frequency being tracked. The block needs to be initialized with a specific window size. This window size greatly changes the output magnitude and the accuracy of the algorithm as a whole.
 * `ByteAssembler` - (Decoder only) Takes a raw stream of Goertzel processed data and assembles a byte.
 * `PacketAssembler` - (Decoder only) Takes a raw stream of bytes and converts it into a Packet. An 8bit CRC is applied before the packet is constructed in order to verify its integrity.
-* `FileAssembler` - (Decoder only) Takes a stream of packets and assembles the output file if all of the packets have been provided. This block caches the packets based on a file ID, and only outputs a file if all of the packets are provided and can be decompressed.
+* `FileAssembler` - (Decoder only) Takes a stream of packets and assembles the output file, only if all of the packets have been provided. This block caches the packets based on a file ID, and only outputs a file if all of the packets are provided and can be decompressed.
 * `FrameSync` - (Decoder only) Waits for a frame synchronization and forwards a specific number of samples further down the pipeline. The amount of samples to forward is determined by the size of a single packet. This specific amount is necessary in order to ensure that the samples will or will not contain the packet we need to decode.
-* `AudioSink` - (Encoder only) Similarly as in `AudioSource` except its role is reversed. An abstract class that is meant to be derived into a custom implementation in order to output the samples into a WAV file or a speaker output on the machine.
-* `FileLoader` - (Encoder only) Loads a file into a memory and appends the file name at the start of the byte array representing the contents. Simply forwards the file in memory further down the connected blocks.
-* `PacketGenerator` - (Encoder only) Accepts an in-memory file, and using a zlib compression the packets are generated.
+* `AudioSink` - (Encoder only) Similarly as in `AudioSource` except its role is reversed. An abstract class that is meant to be derived into a custom implementation in order to output the samples into a WAV file or a speaker output on the machine. This class is further specialized as abstract `AudioWriter`, and a block `WavAudioWriter` has been provided as the concrete class. Additionally, `PhysicalAudioOutput` is provided as well.
+* `FileLoader` - (Encoder only) Loads a file into a memory and appends the file name at the start of the byte array representing the contents. Simply forwards the contents further down the connected blocks.
+* `PacketGenerator` - (Encoder only) Accepts an in-memory file, and using a zlib compression, the data is compressed and packets are generated.
 * `SamplesGenerator` - (Encoder only) Constructs samples using a raw stream of bytes. In this case, the stream of bytes are the packets from the `PacketGenerator`.
 
 More custom blocks can be implemented by the user using the abstract Input and Output classes. The new blocks will automatically be compatible with the pre-existing blocks as listed above.
@@ -198,7 +202,7 @@ The detailed explanation behind the functionality of these blocks is explained i
 
 ### 4.3.3 Fast Fourier Transform and Goertzel Algorithm
 
-During the prototyping phase, a Fast Fourier Transform (FFT) was considered in order to listen for the two specific frequencies representing the binary stream of data. After a lot of research done on this topic, a decision was made that using FFT was computationally heavy for a simple work we need. In this project, we are only looking at two specific frequencies, representing high and low bits, and a complete silence, representing no transmission. In the end, Goertzel Algorithm was used to do this. While FFT produces a buckets for a range of frequencies, Goertzel only produces a magnitude of a specific frequency we are trying to listen to. If no frequency is detected, the output of the algorithm is close or equal to zero. Goertzel can be sumarized in the following code:
+During the prototyping phase, a Fast Fourier Transform (FFT) was considered in order to listen for the two specific frequencies representing the binary stream of data. After a lot of research done on this topic, a decision was made that using FFT was computationally heavy for a simple work we need. In this project, we are only looking at the two specific frequencies, representing high and low bits, and a complete silence, representing no transmission. In the end, the Goertzel algorithm was used to perform this process. While the FFT produces buckets for a range of frequencies, the Goertzel only produces a magnitude of a specific frequency we are trying to listen to. If no frequency is detected, the output of the algorithm is close or equal to zero. The Goertzel can be sumarized in the following code:
 
 ~~~{.cpp caption="Processing samples via Goertzel to produce a magnitude."}
 void processSamples(const float* samples, const size_t length) {
@@ -214,7 +218,7 @@ void processSamples(const float* samples, const size_t length) {
 }
 ~~~
 
-The same algorithm can be represented in less than 23 assembly instructions. Not only Geortzel is faster than FFT, but it also solves the same problem.
+The same algorithm can be represented in less than 23 assembly instructions. Not only the Goertzel is faster than the FFT, but it also solves the same problem we have.
 
 ~~~{.S caption="Processing samples via Goertzel represented as assembly. Compiled via GCC 8.3 amd64 with -O2."}
 processSamples(float const*, unsigned long):
@@ -244,11 +248,11 @@ processSamples(float const*, unsigned long):
 
 ### 4.3.4 Packet design and the Algorithm
 
-In order to transmit the files, or any large data, over an FM radio, we need to convert the files into an audio. There are multiple ways how to do this. For this project, Frequency Shift Keying (FSK) [@fsk] will be used. FSK encodes the stream of bits into two different frequencies. For the purpose of naming simplicity, the frequency to encode the low bit will be called low frequency, and the to encode the high bit will be called high frequency. To implement this, a simple `ToneSynth` class has been constructed. Combined with `SamplesGenerator` block, it creates PCM samples from a raw stream of bytes. Each byte is encoded into a fixed number of samples. This way we ensure that the Decoder can listen to a fix sized block of samples to decode it back into a byte. Additionally, frequencies 2400hz and 4800hz have been chosen for the low and high frequencies. Each byte is additionally delimited by a silence with a width of a single encoded bit. This way, we can easily calculate the expected number of samples for the entire input. 
+In order to transmit the files, or any large data, over an FM radio, we need to convert the files into an audio. There are multiple ways how to do this. For this project, Frequency Shift Keying (FSK) [@fsk] will be used. The FSK encodes the stream of bits into two different frequencies. For the purpose of the naming simplicity, the frequency to encode the low bit will be called low frequency, and the frequency to encode the high bit will be called high frequency. To implement this, a simple `ToneSynth` class has been constructed. Combined with the `SamplesGenerator` block, it creates PCM samples from a raw stream of bytes. Each byte is encoded into a fixed number of samples. This way we ensure that the Decoder can listen to a fix sized block of samples, in order to decode it back into a byte. Additionally, frequencies 2400hz and 4800hz have been chosen for the low and high frequencies. Each byte is additionally delimited by a silence with a width of a single encoded bit. This way, we can easily calculate the expected number of samples for the entire input. The choice of having the high frequency the double of the low frequency, is to ensure that the start and the end of the sine wave matches. This increases the accuracy of the Goertzel algorithm.
 
 ![UTF-8 string "Hello" encoded as a PCM samples using Frequency Shift Keying.](images/hello_pcm.png)
 
-Next, to decode the audio and make sense of the PCM samples, we apply the Goertzel algorithm. The Goertzel algorithm works in fixed number of samples, a window. The size of the Goertzel window greatly changes the magnitude of the output. After many attempts and tests made, a window size of a length of a single encoded bit has been chosen. Using sample rate of 48Khz and a single bit length of 1.25 millisecond, the window size is 60 samples. This window also slides per single sample. Using this method I have been able to produce the best bit detection results.
+Next, to decode the audio, and make sense of the PCM samples, we apply the Goertzel algorithm. The Goertzel algorithm works in a fixed number of samples, a window. The size of the Goertzel window greatly changes the magnitude of the output. After many attempts and tests made, a window size of a length of a single encoded bit has been chosen. Using sample rate of 48Khz and a single bit length of 1.25 millisecond, the window size is 60 samples. This window also slides per single sample. Using this method I have been able to produce the best bit detection results.
 
 ![UTF-8 string "Hello" decoded via Goertzel from PCM samples. Orange magnitude representing the magnitude of the high frequency and the blue magnitude representing the low frequency.](images/hello_goertzel.png)
 
@@ -260,7 +264,9 @@ To find the start and the end of the encoded byte, we simply look for the empty
 
 ![UTF-8 string "Hello" decoded via Goertzel and clamped from PCM samples. The delimiter between the bytes is highlighted.](images/hello_clamp_arrows.png)
 
-When we find the start and the end of the magnitude sequence, we can test for the length of the samples. If the does not match the expected length, it is discarded. However, not exact amount of samples may be found, while still being a valid sequence of samples. For example, an audio input of the user's machine may record in 47.9Khz due to chap hardware, while the application is configured in 48Khz. To fix this, a tiny margin has been applied during the length verification. When the byte is constructed, it is simply forwarded down the block pipeline for further processing.
+When we find the start and the end of the magnitude sequence, we can test for the length of the samples. If the sequence does not match the expected length, it is discarded. However, not exact amount of samples may be found, while still being a valid sequence of samples. For example, an audio input of the user's machine may record in 47.9Khz due to lower-quality hardware, while the application is configured in 48Khz. To fix this, a tiny margin has been applied during the length verification. When the byte is constructed, it is simply forwarded down the block pipeline for further processing.
+
+The process of detecting wether the bits in the byte are low or high, we simply count the incoming magnitudes. These magnitudes come from a `Merge` block. This block outputs N number of streams. In our case, we are listening to two frequencies, therefore two streams. This stream is a clamped value of the Goertzel algorithm. Because it is clamped, we either get 1 or 0. To check wether we have a high or low bit, we simply divide the entire byte sequence into 8 equal buckets. Within each of the bucket, we count the number of `1` within each of the high or low stream. The higher count wins and we get a high or low bit.
 
 However, to encode a large number of data, we need to split the source data into a fixed sized packets. If we transmit the entire large file, the user's receiver may be interrupted, or simply temporarily blocked due to ambient noise, and the entire file lost. Instead, we use packets. Each packet has a simple fixed sized header that identifies the file ID and a packet sequence number. The packet structure then follows by a raw stream of data, in our case a 32 byte chunk, and finally by a single byte representing the 8-bit CRC of the entire packet. 
 
@@ -281,20 +287,20 @@ struct Packet {
 
 When we receive the packet, the algorithm, more specifically the `FileAssembler` block, will cache the received packets until the final packet has been received. To check whether we have the final packet, the `FileAssembler` block simply searches for the `{ 0xff, 0xff, 0x00, 0x00 }` sequence. This sequence is the footer of the zlib [@zlib] stream. Before the packets are constructed on the Encoder side, the data is compressed through zlib and the footer is appended automatically. We can use this to detect the end of the stream, and therefore the end of the packet sequence. To decompress the data, we simply feed the 32 byte chunks of data into the zlib deflator in the correct order. The CRC of the packet, and the zlib deflating process, should ensure that the decoded data is valid.
 
-However, to mark the start and the end of the packet, we need to include synchronization. To implement this, we need to consider the following scenarios:
+However, to mark the start and the end of the packet, we need to include a synchronization. To implement this, we need to consider the following scenarios:
 
 * The receiver, the FM radio, on the user's side may be interrupted by a noise or a hardware defect.
 * The transmission may be blocked by machine's interrupts (the machine, for example a computer, that transmits the data).
 * The receiver, the FM radio, may start receiving data in the middle of the packet. (The user has plugged in the audio input in the middle of the transmission).
 * The Decoder may be blocked by the user's machine interrupts or other tasks.
 
-The Decoder is not meant to run on a dedicated hardware, therefore interruption of the audio input may happen at any time. To ensure that we have the beginning of the packet, we introduce a synchronization bytes. These bytes is a sequence of bytes that are transmitted at the start of every packet. The idea comes from NOAA satellites [@noaa]. More precisely, the synchronization of the weather images sent by the satellites [@fmpicture]. 
+The Decoder is not meant to run on a dedicated hardware, therefore interruption of the audio input may happen at any time. To ensure that we have the beginning of the packet, we introduce the synchronization bytes. These bytes is a sequence of bytes that are transmitted at the start of each packet. The idea comes from NOAA satellites [@noaa]. More precisely, the synchronization of the weather images sent by the satellites [@fmpicture]. 
 
 ![Example of the transmission sent by the NOAA satellites. The synchronization is seen on the right as a quick transition between black and white pixels. The credits for the image belong to Mike Richards from his blog post "137MHz Polar Orbiting Weather Satellites" [@noaadecoding]](images/noaa.png)
 
 In this project, we use the same idea. The beginning of the packet is marked with a synchronization sequence of `{0xff, 0x00, 0xff, 0x00}` bytes. This was later changed to sequence `{0xf0, 0xf0, 0xf0, 0xf0}`. In the NOAA satellites, the synchronization sequence also marks the speed at which the data is transmitted, the baudrate. However due to the time constraints of this project, this was not implemented. Instead, the receiver must know the baudrate beforehand. This is something that could be added in the future.
 
-When the synchronization sequence is detected, the Decoder then starts to buffer fixed number of samples, before forwarding it into the similar algorithm (explained in the section further). This fixed number of samples is calculated based on the baudrate (width of a single bit in number of samples), the sample rate of the audio input (usually 48Khz), and the spacing (the delimiter) between the bytes. When the samples are buffered, they are forwarded into the next stage, which follors the same algorithm with minor modifications, and packets are generated. If the packet is generated, it is verified for its integrity by calculating the CRC and comparing the value with the CRC value appended in the packet.
+When the synchronization sequence is detected, the Decoder then starts to buffer fixed number of samples before forwarding it into a similar algorithm (explained in the section further). This fixed number of samples is calculated based on the baudrate (width of a single bit in number of samples), the sample rate of the audio input (usually 48Khz), and the spacing (the delimiter) between the bytes. When the samples are buffered, they are forwarded into the next stage, which follors the same algorithm with some minor modifications, and packets are generated. If the packet is generated, it is verified for its integrity by calculating the CRC and comparing the value with the CRC value appended in the packet.
 
 ![Packet visualized in Adobe Audition. Because this is start of the transmission (the exported audio file), the file ID starts with zero. Additionally, this is the first packet, therefore the sequence ID is also zero.](images/packet_example_audition.png)
 
@@ -306,11 +312,11 @@ The idea behind the algorithm is simple: accept a raw stream of 32bit float PCM
 
 This pipeline as shown above proved to be unsuccessful due to a reason that the packet synchronization breaks down. The reason is that the number of data that enters a block may not match the number of data that comes out of it. For example, when we are converting Goertzel decoded output of raw ones and zeros, it is converted into bytes. This is not a 1:1 conversion. Therefore, the track of time is lost. The algorithm can detect the synchronization bytes, however if the data failed to decode, the system will still have partial data that can affect the next packet. For example, it is possible that the Decoder will receive only the first three bytes of the synchronization sequence, the last byte fails to decode, and then the first byte of the file ID happens to be `0xf0`. The Decoder will mark that as the start of the packet, and the next 32+5 bytes are used, whether they form a real packet or a random sequence of mixed data. 
 
-This is a problem that we can solve by adding Frame Synchronization (`FrameSync` class) block. This block internally implements the same pipeline as above, however the track of the time is added into the bytes decoded. The track of time is measured in the number of samples and not via the system clock. The reason for this is that the algorithm does not run in a real time environment, unless a dedicated hardware is used. It is possible for the Decoder to be temporarily interrupted by the system process scheduler, therefore the system time would not match, even if we have received the bytes in correct distance apart. The `FrameSync` block remembers the last N bytes. This N matches the number of bytes in the expected synchronization sequence. This sequence must be the same for the Encoder and Decoder, otherwise no packets would be detected. If the received N bytes matches the expected sequence, the `FrameSync` block starts to buffer the next X number of samples. Additionally, the buffered bytes also need to verified for the distance at which the bytes have been received. The distance is the number of samples it takes to encode a single byte. If the distance is higher, this simply means the bytes received are not neighbours, and the buffer is reset. As mentioned previously, the X number (in the internal buffer for forwarding packet samples) is the amount of samples that is expected to hold the entire packet. This is calculated based on the expected width of a single byte, and the delimiter between the bytes. When the buffer is filled, it is then forwarded into the next pipeline (see figure below). If the packet is decoded, it is added into the `FileAssembler`. If no packet is decoded, for example due to noise or transmission errors, the pipeline is reset and no packet is added. When the pipeline is reset, it simply listens for the next synchronization sequence.
+This is a problem that we can solve by adding a frame synchronization (`FrameSync` class) block. This block internally implements the same pipeline as above, however the track of the time is added into the bytes decoded. The track of time is measured in the number of samples and not via the system clock. The reason for this is that the algorithm does not run in a real time environment, unless a dedicated hardware is used. It is possible for the Decoder to be temporarily interrupted by the system process scheduler, therefore the system time would not match, even if we have received the bytes in correct distance apart. Additionally, the raw samples from the audio input device may not come at exact intervals. It all depends on the OS process scheduler. The `FrameSync` block remembers the last N bytes. This N matches the number of bytes in the expected synchronization sequence. This sequence must be the same for the Encoder and the Decoder, otherwise no packets would be detected. If the received N bytes matches the expected sequence, the `FrameSync` block starts to buffer the next X number of samples. Additionally, the buffered bytes also need to verified for the distance at which the bytes have been received. The distance is the number of samples it takes to encode a single byte. If the distance is higher, this simply means the bytes received are not neighbours, and the buffer is reset. As mentioned previously, the X number (in the internal buffer for forwarding packet samples) is the amount of samples that is expected to hold the entire packet. This is calculated based on the expected width of a single byte, and the delimiter between the bytes. When the buffer is filled, it is then forwarded into the next pipeline (see figure below). If the packet is decoded, it is added into the `FileAssembler`. If no packet is decoded, for example due to noise or transmission errors, the pipeline is reset and no packet is added. When the pipeline is reset, it simply listens for the next synchronization sequence.
 
 ![The algorithm (pipeline) with functional synchronization. Each color represents a different data type produced based on the block.](images/piepline_new.png)
 
-This pipeline is provided in the dynamic library of the Decoder. However the user, if they wish to, are able to reconstruct this pipeline in their own specific way. The user is also able to further connect their own custom blocks, for example to forward the data into their own software for further processing. This is optional and not the main usage of this algorithm. The main usage is simply to encode or decode websites. The target user of this application does not have programming skills to implement this. This block design is purely an optional feature.
+This pipeline is provided in the dynamic library of the Decoder. However, the user, if they wish to, is able to reconstruct this pipeline in their own specific way. The user is also able to further connect their own custom blocks, for example to forward the data into their own software for further processing. This is an optional feature and not the main usage of this algorithm. The main usage is simply to encode or decode a static websites. The target user of this application may not have programming skills to implement this. This block design is purely an optional feature.
 
 ### 4.3.6 Command Line Interface
 
@@ -342,13 +348,16 @@ build\Debug\decoder-cli.exe --help
         Serve the decoded files on local HTTP server via http://localhost:8080
 ~~~
 
-TBA: ASIO and serving HTTP files.
+To be added: ASIO and serving HTTP files.
 
 ### 4.3.7 Graphical User Interface
 
-TBA: Qt5 and GUI description + screenshots.
+To be added: Qt5 and GUI description + screenshots.
  
 ## 4.4 Unit Testing
 
+To be added: Unit testing with Catch2
+
 ## 4.5 Performance Testing
 
+To be added: Performance testing on different hardware and different OS. 
diff --git a/report/chapters/introduction.md b/report/chapters/introduction.md
index e10b99d..c8cf3cd 100644
--- a/report/chapters/introduction.md
+++ b/report/chapters/introduction.md
@@ -1 +1,52 @@
-# Introduction
+# 1. Introduction
+
+The aim of this project is to create a fully working GUI application and CLI application to transmit static web pages over FM Radio. This project will additionally consists of a shared library, which can be used the user. Having a shared library is beneficial for the user, if they wish to modify or enhance the Decoder or the Encoder. But, the target end user of this application is not a developer nor an engineer. Thus, a GUI application will be provided. Additionally, a CLI program will be provided alongside the GUI. The CLI can be used on IoT devices such as Raspberry Pi or simply on machines that do not have GUI capabilities.
+
+Because of the limitations of the carrier (audio), the throughput is limited to few bytes per second. Therefore this project is intended to be used with a simple static website with little to no embedded images. A great example is a Wikipedia article.
+
+## 1.1 Background
+
+There have been many natural disasters around the world, such as the hurricanes Maria and Irma in Puerto Rico in 2017. People have been left without electricity for months. Because of this, the information infrastructure collapsed, people had no access to the internet or media. The idea of this project is to provide an internet access in times of similar crisis. 
+
+This project, Radio Enabled Web, can use already existing hardware, the FM radio, to receive the static website. The FM Radio is an old technology and easily accessible and cheap. On the other had, people do not have FM transmitter laying around in their houses. However, it is possible to construct low power FM transmitter from around 20 passive components and few transistors. The FM transmitter circuit can be found in some beginner electronics DIY books. Therefore, the idea is that it only needs one person to create the FM transmitter, with little to no electronics skills. Additionally, because FM radios are common domestic appliance, the users will only require the application and a computer.
+
+This project can be used to distribute a static website to the public, when the infrastructure collapses. The contents of the websites can provide a basic guidelines for the public, such as a map of refugee camps or specific instructions given to the citizens from the government. 
+
+## 1.2 Motivation
+
+The idea of this project came to me when I was working with my brother on a hobby project with Software Defined Radio (SDR). We were interested in receiving raw weather images from a NOAA [@noaa] satellite orbiting around the Earth. The satellite constantly transmits the data, and anyone who listens with the proper hardware can receive these images. I was also interested in decentralized internet, an internet created by the users, that can survive a natural disaster. Thus, the FM radio internet idea was born. The initial idea was to have a specific 
+
+
+Additionally, I wanted to create something unique that can benefit the public.
+
+## 1.3 Aims & Objectives
+
+This project aims to develop a GUI and CLI applications to encode or decode an audio into a static website. The following criteria are:
+
+* Design a block based algorithm that can be structured into any kind of pipeline. This pipeline will be used to decode or encode the static website into an audio.
+* Create a shared (dynamic) library that consists of pre-build set of blocks and the algorithm itself. Leave the implementation open so that it can be adjusted if needed to.
+* Create continuous integration scripts so that the application and the library are tested for every new added feature. The CI also serves as a proof that the application is portable across different platforms.
+* Create a CLI that uses the shared library. The CLI can be used on non GUI enabled computers to transmit or decode the data.
+* Create a GUI that a user can use to encode or decode the static website.
+* Create a HTTP server that is embedded into both the CLI and GUI applications so that the user can browse the encoded website with a web browser.
+* Perform tests with real FM hardware and modify the implementation if needed to.
+
+## 1.4 Success Criteria
+
+The following are success criteria needed for this project to be marked as success:
+
+* A working implementation of the encoding and decoding algorithm.
+* Ability to decode the data from noisy transmission. A noise filter must be implemented.
+* A working Command Line Interface.
+* A working Graphical User Interface.
+* Cross platform support for Windows, Linux, and Mac OSX.
+
+## 1.5 Report Structure
+
+* *1. Introduction* - This section provides a brief introduction and highlights the aims and objectives of this project.
+* *2. Literature Review* - This section provides an investigation into already existing or similar technologies. Additionally, relevant findings are highlighted.
+* *3. System Requirements* - This section includes a set of features of the system. This section also provides software and hardware specifications.
+* *4. System Design and Implementation* - The main part of this report, which consists of detailed description of the algorithm implementation and C++ project structure as a whole. This section is also dedicated to a usability of continuous integration.
+* *5. System Testing* - This entire section is dedicated to testing of the algorithm via FM transmitter and receiver. The section is also dedicated to performance testing on a number of different hardware.
+* *6. Conclusion and Future Work* - This section highlights the success of this project. Additionally, any changes or improvements that have not been included in the final implementation are described in here.
+
diff --git a/report/chapters/literature.md b/report/chapters/literature.md
index 7984f4f..66131b0 100644
--- a/report/chapters/literature.md
+++ b/report/chapters/literature.md
@@ -1 +1,8 @@
-# Literature Review
+# 2. Literature Review
+
+This chapter will discuss any relevant technologies and relevant encoding or decoding strategies explained.
+
+## 2.1 Modulation
+
+
+
diff --git a/report/chapters/originality.md b/report/chapters/originality.md
new file mode 100644
index 0000000..fbcd497
--- /dev/null
+++ b/report/chapters/originality.md
@@ -0,0 +1,3 @@
+# Declaration of Originality
+
+I confirm that the submitted work is my own work and that I have clearly identified and fully acknowledged all material that is entitled to be attributed to others (whether published or unpublished) using the referencing system set out in the programme handbook. I agree that the University may submit my work to means of checking this, such as the plagiarism detection service Turnitin® UK. I confirm that I understand that assessed work that has been shown to have been plagiarised will be penalised.
diff --git a/report/chapters/requirements.md b/report/chapters/requirements.md
index 1049473..069c09f 100644
--- a/report/chapters/requirements.md
+++ b/report/chapters/requirements.md
@@ -1 +1,15 @@
-# System Requirements
+# 3. System Requirements
+
+## 3.1 Functional Requirements
+
+## 3.2 Non-Functional Requirements
+
+## 3.3 Software and Hardware Specifications
+
+## 3.4 Technical Feasibility
+
+### 3.4.1 Legal Feasibility
+
+### 3.4.2 operational Feasibility
+
+### 3.4.3 Economical Feasibility
diff --git a/report/chapters/research.md b/report/chapters/research.md
deleted file mode 100644
index 15d2a04..0000000
--- a/report/chapters/research.md
+++ /dev/null
@@ -1 +0,0 @@
-# Research topic in theory
diff --git a/report/chapters/specifications.md b/report/chapters/specifications.md
deleted file mode 100644
index 247b185..0000000
--- a/report/chapters/specifications.md
+++ /dev/null
@@ -1 +0,0 @@
-# Specifications
diff --git a/report/chapters/testing.md b/report/chapters/testing.md
index f00b526..10da05e 100644
--- a/report/chapters/testing.md
+++ b/report/chapters/testing.md
@@ -1 +1,3 @@
-# Testing
+# 5. System Testing
+
+To be added: Testing on a real FM transmitter and receiver hardware.
diff --git a/report/images/BinTray.png b/report/images/BinTray.png
new file mode 100644
index 0000000000000000000000000000000000000000..39682a5b5493d790e595f79fb9de26b833275a04
GIT binary patch
literal 97699
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

literal 0
HcmV?d00001

diff --git a/report/index.mdpp b/report/index.mdpp
index cefeba2..e058c24 100644
--- a/report/index.mdpp
+++ b/report/index.mdpp
@@ -5,22 +5,22 @@ date: January 1 1970
 geometry: "left=3cm,right=3cm,top=2cm,bottom=2cm"
 ---
 
+!INCLUDE "chapters/originality.md"
+
 !INCLUDE "chapters/abstract.md"
 
 !INCLUDE "chapters/acknowledgement.md"
 
-!INCLUDE "chapters/acronyms.md"
+!INCLUDE "chapters/abbreviations.md"
 
-!INCLUDE "chapters/introduction.md"
+\tableofcontents
 
-!INCLUDE "chapters/research.md"
+!INCLUDE "chapters/introduction.md"
 
 !INCLUDE "chapters/literature.md"
 
 !INCLUDE "chapters/requirements.md"
 
-!INCLUDE "chapters/specifications.md"
-
 !INCLUDE "chapters/design.md"
 
 !INCLUDE "chapters/testing.md"
diff --git a/report/make.bat b/report/make.bat
index 30d0858..168fd3b 100644
--- a/report/make.bat
+++ b/report/make.bat
@@ -1,3 +1,3 @@
 mkdir build
 markdown-pp index.mdpp -o build/report.md
-pandoc --filter pandoc-citeproc --bibliography=bibliography.bib --variable papersize=a4paper --csl=ieee.csl --toc --listings --include-in-header mixins/fix-captions.tex --include-in-header mixins/titlesec.tex --include-in-header mixins/table.tex --include-in-header mixins/listings.tex -o build/report.pdf build/report.md
+pandoc --filter pandoc-citeproc --bibliography=bibliography.bib --variable papersize=a4paper --csl=ieee.csl --listings --include-in-header mixins/fix-captions.tex --include-in-header mixins/titlesec.tex --include-in-header mixins/table.tex --include-in-header mixins/listings.tex -o build/report.pdf build/report.md
-- 
GitLab