This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# wavfile.py (Enhanced) | |
# Date: 20190213_2328 Joseph Ernest | |
# | |
# URL: https://gist.github.com/josephernest/3f22c5ed5dabf1815f16efa8fa53d476 | |
# Source: scipy/io/wavfile.py | |
# | |
# Added: | |
# * read: also returns bitrate, cue markers + cue marker labels (sorted), loops, pitch | |
# See https://web.archive.org/web/20141226210234/http://www.sonicspot.com/guide/wavefiles.html#labl | |
# * read: 24 bit & 32 bit IEEE files support (inspired from wavio_weckesser.py from Warren Weckesser) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- | |
# | |
# This is a Markdown template. Write in Markdown in the main #content div. Let the result be rendered automatically. | |
# | |
# author: Joseph Ernest (twitter: @JosephErnest) | |
# url: http://github.com/josephernest/ | |
# license: MIT license | |
--> | |
<!DOCTYPE html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# From "A simple unix/linux daemon in Python" by Sander Marechal | |
# See http://stackoverflow.com/a/473702/1422096 and http://web.archive.org/web/20131017130434/http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ | |
# | |
# Modified to add quit() that allows to run some code before closing the daemon | |
# See http://stackoverflow.com/a/40423758/1422096 | |
# | |
# Modified for Python 3 (see also: http://web.archive.org/web/20131017130434/http://www.jejik.com/files/examples/daemon3x.py) | |
# | |
# Joseph Ernest, 20200507_1220 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -v | |
# CREATE A RASPBIAN JESSIE IMAGE FOR SAMPLERBOX | |
# 2016-08-31 | |
# | |
# USAGE: chmod 777 samplerbox_maker.sh ; nohup sudo ./samplerbox_maker.sh & | |
set -e | |
sudo apt-get update && sudo apt-get install -y cdebootstrap kpartx parted sshpass zip |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
zeroterm is a light weight terminal allowing both: | |
* lines written one after another (normal terminal/console behaviour) | |
* fixed position text | |
Note: Requires an ANSI terminal. For Windows 7, please download https://github.com/downloads/adoxa/ansicon/ansi160.zip and run ansicon.exe -i to install it. | |
""" | |
from sys import stdout | |
import time |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# note name (example: C3, C#3) into midi note number (example: 60, 61, etc.) | |
import re | |
note = "F3" | |
pattern = r"([A-Ga-g]#?[0-9])" | |
m = re.match(pattern, note) | |
notes = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var DBFILENAME = './myDb.json'; | |
var fs = require('fs'); // filesystem access needed | |
var myDb = {}; // the DB will be in RAM | |
try { myDb = JSON.parse(fs.readFileSync(DBFILENAME)); } catch(e) { } // read DB from disk | |
function serialize() { fs.writeFile(DBFILENAME + '.temp', JSON.stringify(myDb), function(err) { if (!err) { fs.rename(DBFILENAME + '.temp', DBFILENAME); } } ); } | |
function serializeSync() { fs.writeFileSync(DBFILENAME + '.temp', JSON.stringify(myDb)); fs.rename(DBFILENAME + '.temp', DBFILENAME); } | |
setInterval(serialize, 60 * 1000); // serialize to disk every minute | |
process.on('exit', serializeSync); process.on('SIGINT', serializeSync); process.on('SIGTERM', serializeSync); // serialize to disk when process terminates | |
/* |
NewerOlder