Skip to content

Instantly share code, notes, and snippets.

View cpmpercussion's full-sized avatar
🏠
Working from home

Charles Martin cpmpercussion

🏠
Working from home
View GitHub Profile
@cpmpercussion
cpmpercussion / csv2bib.py
Created August 6, 2024 13:29
Generate a Bibtex file from the NIME2023 proceedings from a CSV file with the metadata
import csv
import shutil
from pypdf import PdfReader
# Move PDF files to proceedings format
PAPERS_IN_DIR = "20240201-cr-files"
PAPERS_OUT_DIR = "NIME2023-proceedings"
def convert_csv_to_bibtex(csv_file, bibtex_file, copy_files = False):
"""Convert a CSV file to BibTeX format"""
@cpmpercussion
cpmpercussion / examiner_meeting_data.py
Last active November 21, 2023 08:59
FAIS minus: a script for handling for_SAS data exported from Gradebook
#!/usr/bin/env python3
"""FAIS Minus --- a script for handling final marks exported from Wattle Gradebook
OVERVIEW:
This script helps process the final mark output from Gradebook, including:
- generating stats per cohort
- recording and updating special grades (e.g., DA/RP/WD)
- exporting CSV files that are _actually_ SAS-ready.
#!/bin/bash
echo "$1"
videoname=${1%%.*}
#echo "$videoname"
ffmpeg -i $1 -c:v libx264 -b:v 2M -minrate 0.5M -preset fast -vf scale=1920:1080 -c:a aac -b:a 128K ${videoname}_1080.mp4
ffmpeg -i $1 -c:v libx264 -b:v 0.5M -minrate 0.5M -preset fast -vf scale=960:540 -c:a aac -b:a 128K ${videoname}_540.mp4
ffmpeg -i $1 -y -codec:a libmp3lame -ac 2 -ar 44100 -ab 64k -id3v2_version 3 -metadata title="$videoname" -metadata album_artist="Charles Martin" -metadata album="COMP2300 2020" -metadata genre="Vocal" -metadata date="2020" ${videoname}_audio.mp3
echo "done, phew."
@cpmpercussion
cpmpercussion / short_report.tex
Created January 15, 2020 23:57
A LaTeX template for short student reports
% LaTeX Template for short student reports.
% Citations should be in bibtex format and go in references.bib
\documentclass[a4paper, 11pt]{article}
\usepackage[top=3cm, bottom=3cm, left = 2cm, right = 2cm]{geometry}
\geometry{a4paper}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\usepackage{bm}
@cpmpercussion
cpmpercussion / music_datasets.md
Last active November 4, 2019 05:23
Datasets and Tools for Music Research

Datasets

  • Harmonix Set - Beats, downbeats, and functional structural annotations for 912 Pop tracks.
  • da-tacos - a dataset for cover song identification and understanding

Tools

  • deezer/spleeter - Spleeter is the Deezer source separation library with pretrained models written in Python and uses Tensorflow
@cpmpercussion
cpmpercussion / get_available_gpus.py
Created November 4, 2019 05:11
get visible GPUs with Tensorflow
from tensorflow.python.client import device_lib
def get_available_gpus():
local_device_protos = device_lib.list_local_devices()
return [x.name for x in local_device_protos if x.device_type == 'GPU']
get_available_gpus()
@cpmpercussion
cpmpercussion / midi_parse_script.py
Last active January 14, 2021 08:42
A script to parse lots of MIDI files into a simple melody-only 16th-note-only NumPy array format. Generates worker processes to use all available CPU power.
from music21 import converter, instrument, note, chord, stream, midi
import numpy as np
import pandas as pd
import os
import time
import h5py
import argparse
import multiprocessing
parser = argparse.ArgumentParser()
@cpmpercussion
cpmpercussion / Makefile
Created January 27, 2017 15:28
NIME paper markdown makefile
DOCNAME=nime-paper-input.md
OUTNAME=rendered-output
REFSFILE=references.bib
ARGS=--bibliography $(REFSFILE)
nime:
pandoc --template=nime.latex --self-contained --natbib --filter pandoc-fignos $(DOCNAME) -o $(OUTNAME).tex
sed -i '.bak' 's/\citep{/\cite{/g' $(OUTNAME).tex
pdflatex $(OUTNAME)
bibtex $(OUTNAME)
@cpmpercussion
cpmpercussion / nime-paper-input.md
Created January 27, 2017 15:09
NIME Markdown Paper Template

title: 'A Very Well-Written NIME Paper' author:

  • name: Author one affiliation: University address: University email: [email protected]
  • name: Author two affiliation: University address: University
@cpmpercussion
cpmpercussion / nime.template
Created January 27, 2017 15:06
Pandoc Template for NIME Papers
%% Pandoc template for creating NIME papers
%% Adapted from NIME paper template and Pandoc latex template.
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}
\usepackage{hyperref}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother