Software

Please visit my Github page for an extensive collection of software I have developed. Below are a few highlights

DREiMac: Dimensionality Reduction with Eilenberg-MacLane Coordinates

I worked with Jose Perea and Luis Scoccola to create a library for nonlinear dimension reduction to topological spaces, including tori, projective planes, and lens spaces. Please refer to our extended abstract in the Journal of Open Source Software (JOSS) for more info.



ripser.py

I worked with Nathaniel Saul and Rann Bar-On to create a user friendly Python interface to Uli Bauer's ripser library for fast persistent homology computations. We made this cross-platform and easy to install (pip install ripser), and we have a number of Python notebooks showing usage and showcasing different applications of the software. Please refer to our extended abstract in the Journal of Open Source Software (JOSS) for more info.



linmdtw

With the help of one of my students Elizabeth Dempsey, I devised linear memory, parallelizable algorithm for Dynamic Time Warping (DTW), referred to as ``linmdtw'' for short. This algorithm can be used to align multivarite time series that are re-parameterized version of each other, such as audio feature frames of different orchestral performances. This repository contains a Python implementation of efficient cython implementations of FastDTW and Memory-Restricted Multiscale DTW (MrMsDtw). Please refer to the background examples in the documentation for usage.



Covers 1000 Dataset/Demo

As part of my paper on fusing features for automatic cover song identification, I curated a new dataset of 1000 cover songs. I've provided the features for this dataset at http://www.covers1000.net/ in the hopes that they will be useful to others researching this problem. Since the main contribution of my work is acurate beat-level alignment of cover songs across many different genres/styles, I also created an interactive web GUI to examine the alignments my algorithm produces with different feature sets.



GraphDitty Music Structure Visualization

As part of my research on automatic cover song identification, I designed a scheme to fuse different features (HPCP, MFCC) to improve self-similarity matrices (SSMs) for musical audio. To showcase the algorithm and to visually show how much it cleans up the SSMs, I created a GUI where users can listen to music synchronized with the SSMs and with a d3-force-directed graph derived from them. Click here for a live demo, and click here to run code to generate your own examples.



LoopDitty Geometric Music Visualizer

As part of my research on geometric/topological time series analysis, I created a web interface with WebGL that can be used to view a projection of the high dimensional geometric curves I use to represent music, and I synchronize this projection with the music so that the curve is drawn as the music evolves. I call this program "LoopDitty," and it can be used to visualize any song on Soundcloud, in addition to custom songs users upload. Watch as the curve goes to different regions of space for verses, choruses, and bridges, and notice how the curve varies locally for different types of music.

Basic Audio Waveform Generator

I made a simple program in Javascript to generate basic audio waveforms from combinations of pure tones, which is useful in teaching, particularly for music teachers who don't have experience coding but who want to show some of the basic physics.



G-RFLCT

G-RFLCT stands for "Geometry Radio Frequency Library by Chris Tralie." It started off as a library to do image source calculation and beam tracing for radar applications, but it turned into a more general purpose library for 3D geometry tasks and education.

Current Features

  • Support for 3D primitives and primitive transformations: Vectors, Points, Rays, Planes, etc
  • Support for 3D polygon meshes, including geometry methods (PCA, slice by plane) and some topology methods (triangle subdivision, basic no-frills hole filling). Can load and save .off or .obj files with color
  • Basic 3D mesh viewer with a polar camera and a vertex picker using PyOpenGL, which supports color, texture, and Phong illumination

Algorithms Implemented and Tested

  • Iterative closest points
  • Laplacian Mesh Editing and the Heat Kernel Signature
  • Image sources calculation for an arbitrary polygon mesh

Algorithms under development

  • Polygon beam tracing
  • 3D Planar Reflective Symmetry Transform
  • Fast marching for geodesic distances
  • Generalized Multidimensional Scaling


Grad School Logbook Organizer

This links to something on my Github Page that's half program half tutorial. It's a simple logbook program I created to help keep track of a lot of different projects going on at once during my Ph.D. It's a very thin layer over HTML that allows the stitching together of many different entries as HTML files, which are organized by date and tagged. I would highly recommend anyone in grad school to use this program or to do something similar in LaTeX! It's very easy to get disorganized, and you want to document every little thing you do every day so you don't end up having to repeat any effort