Skip to content

Instantly share code, notes, and snippets.

View harieamjari's full-sized avatar

Al-buharie harieamjari

View GitHub Profile
@harieamjari
harieamjari / kpa.c
Last active October 2, 2023 03:10
An implementation of Karplus-Strong Algorithm in C. Using /dev/urandom in linux.
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>
#define SECONDS 6 /* you can change this to suit for your preferences */
#define LENGTH 300 /* you can experiment with different string length */
char wav_struct[] = {
'R', 'I', 'F', 'F',
@harieamjari
harieamjari / t_wav.c
Created August 18, 2020 08:49
A (not complete) template for writing convolution algorithms in C.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char wav_struct[] = {
'R', 'I', 'F', 'F',
0, 0, 0, 0, /* chunksize */
'W', 'A', 'V', 'E',
'f', 'm', 't', ' ', /* subchunk1id */
16, 0, 0, 0, /* subchunk1size */
@harieamjari
harieamjari / exp.c
Created August 24, 2020 13:03
Compute the product of base and exponent.
#include <stdio.h>
#define INF 0x7F800000
int inf = INF;
long double factorial(const int temp) {
if (temp == 0)
return 1.0;
long double fact = 1;
for (int i = 1; i <= temp; i++) {
@harieamjari
harieamjari / delay_wav.c
Last active January 26, 2021 05:04
Add a delay line to a s16le mono 44100 wav file.
/*
DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE
Version 1, October 2013
Copyright (c) 2020 Al-buharie Amjari <healer.harie@gmail.com>
Everyone is permitted to copy and distribute verbatim or modified copies
of this license document, and changing it is allowed as long as the name
is changed.
DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE TERMS
@harieamjari
harieamjari / mathrix.c
Created October 3, 2020 11:49
Matrix multiplication of a vertex of a cube.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define _USE_MATH_DEFINES
struct vector {
double x, z, y;
};
@harieamjari
harieamjari / project.c
Last active January 26, 2021 05:28
Project a 3D vector to a 2D plane.
/*
DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE
Version 1, October 2013
Copyright (c) 2020 Al-buharie Amjari <healer.harie@gmail.com>
Everyone is permitted to copy and distribute verbatim or modified copies
of this license document, and changing it is allowed as long as the name
is changed.
DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE TERMS
@harieamjari
harieamjari / template_ping.c
Created October 27, 2020 11:46
Writing libpng template
#include <stdio.h>
#include <stdlib.h>
#include <png.h>
int width, height;
int main(){
width = 1500; height = 1000;
char filename[] = "t.png";
/*open stream */
@harieamjari
harieamjari / circle.c
Last active November 8, 2020 11:39
Simple raytracer in C
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <png.h>
#include <assert.h>
int width, height;
int main(int argc, char *argv[]){
if (argc != 4) {printf("usage: %s Pz c r\n", argv[0]); return 1;}
@harieamjari
harieamjari / sphere.c
Last active December 25, 2020 02:26
Minimal ray sphere intersection in C
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <png.h>
#include <assert.h>
struct vec3D {
double x,y,z;
};
@harieamjari
harieamjari / diwav.c
Last active January 26, 2021 05:01
Wave equation
/*
DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE
Version 1, October 2013
Copyright (c) 2020 Al-buharie Amjari <healer.harie@gmail.com>
Everyone is permitted to copy and distribute verbatim or modified copies
of this license document, and changing it is allowed as long as the name
is changed.
DO WHAT THE FUCK YOU WANT TO BUT IT'S NOT MY FAULT PUBLIC LICENSE TERMS