Skip to content

Instantly share code, notes, and snippets.

View psobot's full-sized avatar

Peter Sobot psobot

View GitHub Profile
@psobot
psobot / autoclip.py
Created October 22, 2023 13:51
AutoClip™ - Split up Music Rehearsal Videos
"""
1. Record an Off-Beat Jazz rehearsal session with an Sony A7C camera
2. Plug in an SD card to your Mac
3. Run this script, which will automatically segment the rehearsal session and render
to lower-quality, shareable, Google Drive-able H265-encoded video files
4. Upload to Google Drive
5. Get better at playing Jazz
Requirements:
python3 -m pip install tqdm ffmpeg-python numpy ffmpeg matplotlib
@psobot
psobot / stacksearch.py
Created September 27, 2022 17:03
Search a Python stack for a variable with a given name
import inspect
from typing import Tuple, Any
def search_stack_for_variable(variable_name: str, frame=None) -> Tuple[str, Any]:
if frame is None:
frame = inspect.currentframe()
if variable_name not in frame.f_locals:
if frame.f_back is None:
raise ValueError(f"No variable named \"{variable_name}\" found in callstack.")
@psobot
psobot / protodump.py
Created March 13, 2022 21:58
Protobuf Definition Dumper
"""
Super hacky script to parse compiled Protobuf definitions out of one or more binary files.
Very useful if, say, you want to pull the internal data structures out of a compiled App Store app.
Requires `pip install 'protobuf>=3.20.0rc1'`.
Example usage:
python3 protodump.py /Applications/SomeAppBundle.app ./proto_files_go_here/
(c) Peter Sobot (@psobot), March 13, 2022
@psobot
psobot / kos_file_dumper.py
Last active June 13, 2023 16:27
Kurzweil KOS File Packer/Unpacker
"""
Kurzweil K2500/K2600 KOS operating system update file packer/repacker
by Peter Sobot, Nov 6, 2021
@psobot / github@petersobot.com
Requirements: none! Pure Python. Just use Python 3.2+.
"""
import os
import math
@psobot
psobot / receive_midi_sample_dump.py
Last active November 10, 2021 21:13
MIDI Sample Dump Receiver
"""
MIDI Sample Dump receive script
by Peter Sobot, Nov 6, 2021
@psobot / github@petersobot.com
Requirements: pip install python-rtmidi tqdm numpy pysoundfile
"""
import argparse
import rtmidi
@psobot
psobot / ccl_bplist.py
Created May 5, 2018 16:24
Instruments Decoder/Re-encoder
"""
Copyright (c) 2012-2016, CCL Forensics
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
@psobot
psobot / path.py
Created April 3, 2018 13:26
Python File and Directory Helpers
import os
from glob import glob
class Directory(object):
def __init__(self, _dir=None):
if _dir:
self._dir = os.path.abspath(os.path.expanduser(_dir))
else:
self._dir = os.path.abspath(os.getcwd())
@psobot
psobot / generate_k2500xs_ui.py
Last active November 27, 2017 07:51
Kurzweil K2500XS UI Generator
"""
generate_k2500xs_ui.py
November 26, 2017 by @psobot
MIT licensed
Generates a screen image for the Kurzweil K2500XS
(http://www.vintagesynth.com/kurzweil/k2500.php)
program list and keymap can be provided on the command line with
--programs <program 1> <program 2>...
@psobot
psobot / README.md
Created July 9, 2017 16:16
Xbox API Downloader

This tiny script hits the Xbox API and downloads a user's entire Xbox360 achievement history into flat JSON files on disk, as well as a Sqlite DB.

Needs:

@psobot
psobot / Context.sublime-menu
Created March 21, 2017 19:14
Rails "Copy Test Runner Command to Clipboard" for Sublime Text 2
[
{ "command": "get_single_test_run", "caption": "Copy Test Runner Command to Clipboard" },
{ "caption": "-", "id": "end" }
]