Joshua Rabanal

Research areas


Using Raman spectroscopy we analyzed the chemical composition of Polythiophene samples bathed in lead based salts. This analysis was done regionally and used as a means to measure of the electronic doping of the polymer samples.

View Research


This android application implements music-XML file types to create sheet music editing software often refereed to music composition software. It allows for the editing of multiple lines of music displayed in an infinite list-view to make better use of the screen sizes of cellphones and tablets. The application allows for the exportation of music into various file types including e-pub, Word, and Wav files.

View Application

Fourier Transforms of Musical Instruments

This tool enables for the conversion of large Sound-font files into smaller XML files. This conversion results in a compression of a Sound-font to an XML file 1/6th the original size. After the gzip, the file is further compressed to 1/20th the original size.

This tool uses fourier transforms, linear curve fitting and other signal processing methods to produce an output representation of the instrument sound as a series of functions.

Synchronous XML Parser

This XML parser library allows for the synchronous parsing of xml. Due to the synchronous nature of the parser this allows for the loading of meta data contained in the file without the overhead of parsing the entire file. It is implemented using an interface as a parameter to allow for multiple implementations of the parser without the need to overwrite the base parser code contained. Due to this, the parser has been used to parse simple XML-HTTP requests, html files and, music-XML files using the same library.

This Product is primarily used in the html pre-processor application that follows.

HTML Preproccessor

This small java library takes an input folder and compiles and compresses all of the html into singleton files. It accomplishes this by including all of the imported CSS files and non asynchronous script files. This preprocessor also implements the HTML W3C attribute "w3-include-html" instead of allowing the script to include the files which can cause multiple round trips, this library recognizes the include statement and inserts the specified file as a child node.

HTTP server

This server is used as the back-end for the previously described Notate android application. It allows for the cloud saving of files, and serves as the help section with various articles on how to better use the application. It includes the HTML preprocessor, and can work with HTTPS if the proper ciphers are provided.

SIP Server

SIP(Session Initiation Protocol) is a popular server client protocol used by many popular services like Whatsapp and Facebook messenger to initiate phone calls and video calls. This Java implementation of the SIP protocol uses Datagrams to maintain the connection of clients and dial in other clients to dliver messages and initiate sessions on a variety of protocols.

Raspberry Pi internet Router

This Java and C++ implementation of raw sockets functions as a DNS server, DHCP server and a Router by parsing ethernet packets and their content packets to pass internet requests to the correct host.