Good Software...
Is instantaneous, it doesn't make me wait.
Remembers things for me.
Draws intelligent conclusions based on my past behavior and correctly predicts what I want to do next.
Allows me to make mistakes and experiment.
Good Software...
Is instantaneous, it doesn't make me wait.
Remembers things for me.
Draws intelligent conclusions based on my past behavior and correctly predicts what I want to do next.
Allows me to make mistakes and experiment.
/* | |
Is it faster to process 4 channels of audio in parallel through their own | |
biquads using a hand-rolled SIMD implementation. | |
Interestingly enough, the SIMD version is faster the more channels you add, | |
up to a point... With 64 channels, the naive code is a tiny bit faster, | |
presumably because now the compiler will vectorize the loop itself? (Didn't | |
check the assembly.) |
; The Game of Nim | |
; 68000 assembly source by Matthijs 'Tice' Hollemans of the Fantasy Freaks | |
; converted from an Int*l 8085 (!) coding example... (but improved upon considerably!) | |
; To do: | |
; * intuition stuff (met gadgets enzo) | |
; * Meer pc-relative spul (=kortere executable) | |
************************************************************************** INITIALISATION * |
#pragma once | |
#include <vector> | |
/** | |
Very basic Cooley-Tukey FFT, not optimized for speed at all. | |
This is a complex-valued FFT, so you need to provide both real and imaginary | |
input values (set imaginary to zero for audio input). The complex values are | |
interleaved. |
To me, great software is beautiful software.
Obviously, the primary concern is that the software works properly, that it does what it is supposed to. But if that is all, the software will never be great.
Here are my conditions that great software must meet, from most important to least important. But they all matter!
0 poke808,225:gosub 31000 | |
1 poke53269,0 | |
10 remifa=0thena=1:load"c.font3",8,1 | |
20 remifa=1thena=2:load"lespirites",8,1 | |
900 ww=68:dim n(ww):dim keer$(50) | |
1000 rem *** the game *** | |
1010 rem ** after a game over ** | |
1015 poke 53265,peek(53265) and 239 | |
1020 sc=0:gd=0:ft=0:ln=0:l$="":w$="":keer=1:keer$(0)="":keer$(1)="" | |
1030 gosub 20000:gosub 10000:jaja=0 |
#pragma once | |
#include <cmath> | |
/** | |
State variable filter (SVF), designed by Andrew Simper of Cytomic. | |
http://cytomic.com/files/dsp/SvfLinearTrapOptimised2.pdf | |
The frequency response of this filter is the same as of BZT filters. |
To allow the Hugging Face version of Whisper to predict word-level timestamps, a new property alignment_heads
must be added to the GenerationConfig
object. This is a list of [layer, head]
pairs that select the cross-attention heads that are highly correlated to word-level timing.
If your Whisper checkpoint does not have the alignment_heads
property yet, it can be added in two possible ways.
Method 1. Change the model.generation_config
property:
# load the model
model = WhisperForConditionalGeneration.from_pretrained("your_checkpoint")
#pragma once | |
#include <JuceHeader.h> | |
/** | |
Silences the buffer if bad or loud values are detected in the output buffer. | |
Use this during debugging to avoid blowing out your eardrums on headphones. | |
If the output value is out of the range [-1, +1] it will be hard clipped. | |
*/ | |
inline void protectYourEars(float *buffer, int sampleCount) |
// Compile this with: | |
// $ gcc synth.c -o synth -framework AudioToolbox | |
// Based on the CH07_AUGraphSineWave example from the book | |
// "Learning Core Audio: A Hands-On Guide to Audio Programming | |
// for Mac and iOS" by Chris Adamson and Kevin Avila | |
#include <AudioToolbox/AudioToolbox.h> | |
typedef struct |