I was building some bezier interpolation code and half way through I settled on these jiggling creatures
A Pen by Matthew Willox on CodePen.
| MAJOR | 0 4 7 | |
| MINOR | 0 3 7 | |
| DIMINISHED | 0 3 6 | |
| AUGMENTED | 0 4 8 | |
| MAJOR_SEVENTH | 0 4 7 B | |
| MINOR_SEVENTH | 0 3 7 A | |
| DOMINANT_SEVENTH | 0 4 7 A | |
| DIMINISHED_SEVENTH | 0 3 6 9 | |
| HALF_DIMINISHED_SEVENTH | 0 3 6 A | |
| MAJOR_NINTH | 0 4 7 B 2 |
I was building some bezier interpolation code and half way through I settled on these jiggling creatures
A Pen by Matthew Willox on CodePen.
| // SPDX-License-Identifier: UNLICENSED | |
| pragma solidity ^0.8.0; | |
| import "@openzeppelin/contracts/utils/Strings.sol"; | |
| import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; | |
| import "@openzeppelin/contracts/access/Ownable.sol"; | |
| import "@openzeppelin/contracts/utils/Counters.sol"; | |
| import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; |
| import VuMeter from "./VuMeter"; | |
| export const DEFAULT_CONFIG = [ | |
| { | |
| filter: { | |
| frequency: 250, | |
| Q: 3, | |
| type: "lowpass" | |
| }, | |
| compressor: { |
| export default class VUMeterNode extends AudioWorkletNode { | |
| constructor(context, updateIntervalInMS = 16.67) { | |
| super(context, "vumeter", { | |
| numberOfInputs: 1, | |
| numberOfOutputs: 0, | |
| channelCount: 1, | |
| processorOptions: { | |
| updateIntervalInMS | |
| } | |
| }); |
| export default class PhaseScope extends AudioWorkletNode { | |
| constructor(context, updateIntervalInMS = 16.67) { | |
| super(context, 'phasescope', { | |
| numberOfInputs: 2, | |
| numberOfOutputs: 0, | |
| channelCount: 1, | |
| processorOptions: { | |
| updateIntervalInMS | |
| } | |
| }); |
| // SPDX-License-Identifier: UNLICENSED | |
| pragma solidity ^0.8.0; | |
| import "@openzeppelin/contracts/utils/Strings.sol"; | |
| import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; | |
| import "@openzeppelin/contracts/access/Ownable.sol"; | |
| import "@openzeppelin/contracts/utils/Counters.sol"; | |
| import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; | |
| import "./IContent.sol"; |
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| /// @title Base64 | |
| /// @author Brecht Devos - <brecht@loopring.org> | |
| /// @notice Provides functions for encoding/decoding base64 | |
| library Base64 { | |
| string internal constant TABLE_ENCODE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| bytes internal constant TABLE_DECODE = hex"0000000000000000000000000000000000000000000000000000000000000000" |
| import { useXR, useController, useXRFrame } from '@react-three/xr'; | |
| import { Vector3 } from 'three'; | |
| import { useRef } from 'react'; | |
| // mapping | |
| // 1: Trigger | |
| // 2: Grip | |
| // 4: Stick Buttons |
| import { useXR, useController, useXRFrame } from '@react-three/xr'; | |
| import { Vector3 } from 'three'; | |
| import { useRef } from 'react'; | |
| export default function StrafeController({ | |
| hand = 'right', | |
| sensitivity = 0.05, | |
| zeroY = true, |