Skip to content

Instantly share code, notes, and snippets.

René Dudfield illume

View GitHub Profile
@illume
illume / circle_draw.py
Last active Feb 22, 2019
hexagonal circle drawing
View circle_draw.py
#!/usr/bin/env python
import pygame
import math
def rotate(origin, point, angle):
ox, oy = origin
px, py = point
qx = ox + math.cos(angle) * (px - ox) - math.sin(angle) * (py - oy)
qy = oy + math.sin(angle) * (px - ox) + math.cos(angle) * (py - oy)
return int(qx), int(qy)
@illume
illume / metronome.py
Last active Nov 14, 2018
A metronome in pygame.
View metronome.py
"""
Show a light for every beat.
Show the BPM as text.
Use 4/4 timing. Four beats to a bar.
Press space until the BPM gets to what you want.
"""
import time
import os
import pygame as pg
@illume
illume / flask_matplotlib.py
Last active Dec 13, 2018
Shows how to use flask and matplotlib together.
View flask_matplotlib.py
""" Shows how to use flask and matplotlib together.
Shows SVG, and png.
The SVG is easier to style with CSS, and hook JS events to in browser.
python3 -m venv venv
. ./venv/bin/activate
pip install flask matplotlib
python flask_matplotlib.py
"""
@illume
illume / pypy-bench-testsprite.py
Last active Jan 4, 2019
pypy hacky benchmark based on example testsprite.py
View pypy-bench-testsprite.py
#!/usr/bin/env python
# like the testsprite.c that comes with sdl, this pygame version shows
# lots of sprites moving around.
import pygame, sys, os
from pygame.locals import *
from random import randint
from time import time
import gc
import pygame.joystick
View BEXT-wav-files.diff
diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c
index b4ad6c7..2d50486 100644
--- a/src/audio/SDL_wave.c
+++ b/src/audio/SDL_wave.c
@@ -445,7 +445,7 @@ SDL_AudioSpec * SDL_LoadWAV_RW (SDL_RWops *src, int freesrc,
}
/* 2 Uint32's for chunk header+len, plus the lenread */
headerDiff += lenread + 2 * sizeof(Uint32);
- } while ( (chunk.magic == FACT) || (chunk.magic == LIST) );
+ } while ( (chunk.magic == FACT) || (chunk.magic == LIST) || (chunk.magic == BEXT) );
@illume
illume / portmidi.rb
Last active May 17, 2018
portmidi homebrew formular without broken python
View portmidi.rb
class Portmidi < Formula
desc "Cross-platform library for real-time MIDI I/O"
homepage "https://sourceforge.net/projects/portmedia/"
url "https://downloads.sourceforge.net/project/portmedia/portmidi/217/portmidi-src-217.zip"
sha256 "08e9a892bd80bdb1115213fb72dc29a7bf2ff108b378180586aa65f3cfd42e0f"
revision 1
bottle do
cellar :any
sha256 "c8f2755fd775064c282da84d666336d9125c6e70082975ffdc0867dee60b5802" => :high_sierra
@illume
illume / invertit.py
Last active Apr 18, 2018
Shows the invert function.
View invertit.py
import os
import pygame as pg
main_dir = os.path.split(os.path.abspath(__file__))[0]
# data_dir = os.path.join(main_dir, 'data')
data_dir = main_dir
def show(image):
screen = pg.display.get_surface()
screen.fill((0, 255, 255))
@illume
illume / custom_events.py
Created Mar 16, 2018
pygame custom events, arudino serial ports.
View custom_events.py
# Shows how to send custom events with pygame.
# AND serial port data (from perhaps an arduino).
# It sends the serial data into pygame (with custom events).
# The SERIAL event is only posts when it receives a new line.
# NOTE: No error correction is done here. Serial data can corrupt.
import pygame as pg
import serial
ser = serial.Serial('/dev/tty.usbmodem1411', 9600, timeout = 0)
@illume
illume / sound_samples.py
Last active Mar 15, 2018
Plays short Tone using only pygame + python builtin 'array' type.
View sound_samples.py
""" Some examples for generating and converting sounds for pygame.
Python 2.7, 3.6
Shows:
- a simple 'square wave' generated
- resampling sample rates (eg, 8363 to 44100)
- using built in python array for making pygame.Sound samples.
- samples at different bit sizes
- converting from signed 8 to signed 16bit
@illume
illume / weirdomouse.py
Created Mar 1, 2018
See if there are weird mouse coordinates in the corners?
View weirdomouse.py
import pygame
pygame.init()
pygame.display.set_mode((500, 400), 0, 32)
while True:
for event in pygame.event.get():
print(event)
You can’t perform that action at this time.