Skip to content

Instantly share code, notes, and snippets.

@maxymania
maxymania / AREADME.md
Last active August 2, 2025 06:57
Web Audio API based Impulse Response Generator for ConvolverNode based Reverb

Web Audio API based Impulse Response Generator

This is an example source code, enables the use of the ConvolverNode of the Web Audio API. The convolution based reverb is a really powerful tool, but one might not know where to get started. Typically, there is an elaborate process of recording an impulse response with real equipment in a real room, or using a program to capture a certain filter as described in this video, but if you come from OpenAL, or if you want to start from scratch real quick, you'll need a simpler

@maxymania
maxymania / projection.cpp
Last active July 13, 2025 18:19
Vulkan Projection Matrix from OpenGL Projection Matrix (C++ with glm)
// Public domain.
#include <glm/mat4x4.hpp>
#include <glm/gtc/matrix_transform.hpp>
/*
Adjustment matrix, that transforms coordinates from OpenGL NDC to Vulkan NDC.
*/
inline glm::mat4 gl2vk_matrix()
{
/*
@maxymania
maxymania / buildBvh.cpp
Last active July 6, 2025 18:18
Morton Code Computation in C++
// see also https://www.youtube.com/watch?v=LAxHQZ8RjQ4
#include <entt/entt.hpp>
#include <glm/vec3.hpp>
#include <glm/common.hpp>
#include <tuple>
template<int O, int...V>
constexpr uint64_t qstretch(uint64_t src)
{
return (
@maxymania
maxymania / PDF_Units.java
Created April 14, 2020 16:12
The units for Unit to Inch Conversion
// https://stackoverflow.com/questions/21520015/pdfbox-converting-inches-or-centimeters-into-the-coordinate-system
private static final int DEFAULT_USER_SPACE_UNIT_DPI = 72;
private static final float MM_TO_UNITS = 1/(10*2.54f)*DEFAULT_USER_SPACE_UNIT_DPI;
@maxymania
maxymania / hyperswitch.js
Last active December 30, 2020 17:02
NodeJS Hyperswarm utility.
/*
Copyright (C) 2019 Simon Schmidt
Usage of the works is permitted provided that this instrument is retained with
the works, so that any entity that uses the works is notified of this instrument.
DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
*/
const hyperswarm = require('hyperswarm');
@maxymania
maxymania / liner.js
Last active December 11, 2019 13:12
NodeJS Line Reader using async/await
/*
Copyright (C) 2019 Simon Schmidt
Usage of the works is permitted provided that this instrument is retained with
the works, so that any entity that uses the works is notified of this instrument.
DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
*/
const EventEmitter = require('events');
@maxymania
maxymania / SplitterLib.java
Created September 23, 2019 06:06
Unicode-Splitter in java.
// Public Domain!
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.IntFunction;
import java.util.function.IntPredicate;
import org.jparsec.Parser;
import org.jparsec.Parsers;
import org.jparsec.pattern.CharPredicate;
import org.jparsec.pattern.Pattern;
import org.jparsec.pattern.Patterns;
@maxymania
maxymania / NioTransport.java
Last active November 27, 2019 13:04
Netty Bootstrap/Server Bootstrap abstraction
// Public Domain!
import io.netty.bootstrap.Bootstrap;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.ServerChannel;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
@maxymania
maxymania / OggDecoder.java
Last active January 23, 2019 05:53
Ogg Stream segmenter for netty (4.1.32)
/*
Copyright (c) 2019 Simon Schmidt
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
package main
import "context"
import "github.com/paulmach/osm"
import "github.com/paulmach/osm/osmpbf"
import "github.com/paulmach/osm/osmxml"
import "encoding/xml"
import "fmt"