v6.1 — every embedded preset is now a unique visual: 16-family seeded stand-in generator, approx badges, version-gated library re-seed

This commit is contained in:
Z User 2026-10-27 06:10:58 +00:00
parent c5180a9837
commit f3fd5100d0
95 changed files with 3605 additions and 2012 deletions

Binary file not shown.

View file

@ -10,6 +10,9 @@ datasource db {
// A preset script file living somewhere in the folder tree.
// folderPath is the full path from the virtual root, e.g. "root/embedded/Synth-C".
// Names are unique per folder (files in a directory).
// approx = true marks embedded presets that are generated stand-ins rather
// than ports of the original's code (the original relies on effects the
// script engine cannot run).
model Preset {
id String @id @default(cuid())
name String
@ -17,6 +20,7 @@ model Preset {
description String @default("")
content String
isBuiltIn Boolean @default(false)
approx Boolean @default(false)
folderPath String @default("root/user created")
// Path to the original Winamp .avs binary in /public (downloadable), if any.
originalFile String?
@ -40,5 +44,8 @@ model Settings {
defaultScript String?
bandConfig String?
beatConfig String?
// Version stamp of the embedded preset library; when it changes, the
// root/embedded subtree is re-seeded from BUILTIN + EMBEDDED_LIBRARY.
embeddedSeed String?
updatedAt DateTime @updatedAt
}

View file

@ -1,7 +1,7 @@
import { NextRequest, NextResponse } from 'next/server'
import { db } from '@/lib/db'
import { BUILTIN_PRESETS } from '@/lib/ava/presets'
import { EMBEDDED_LIBRARY } from '@/lib/ava/embedded-presets'
import { EMBEDDED_LIBRARY, EMBEDDED_SEED_VERSION } from '@/lib/ava/embedded-presets'
import { ensureFolderRows, isValidName, normalizeFolderPath } from '@/lib/server/preset-tree'
export const dynamic = 'force-dynamic'
@ -18,18 +18,32 @@ const BASE_FOLDERS = [
]
/**
* One-time seed: folder backbone + the full embedded library
* (5 hand-ported classics + 90 auto-ported Winamp AVS presets from the
* user's Google Drive collection, organized exactly as the drive folders
* were: Synth-C / Amp Picks / Dynamics / Envision).
* Version-gated seed: folder backbone + the full embedded library
* (5 hand-ported classics + 90 Winamp AVS presets from the user's Google
* Drive collection, organized as Synth-C / Amp Picks / Dynamics / Envision).
*
* The embedded subtree (root/embedded/**) refreshes automatically whenever
* EMBEDDED_SEED_VERSION changes (i.e. the library was regenerated) — user
* presets outside root/embedded are never touched.
*/
async function ensureSeeded(): Promise<void> {
const folderCount = await db.folder.count()
if (folderCount > 0) return
const settings = await db.settings.findUnique({
where: { id: 'main' },
select: { embeddedSeed: true },
})
if (settings?.embeddedSeed === EMBEDDED_SEED_VERSION) return
try {
await db.folder.createMany({ data: BASE_FOLDERS.map((path) => ({ path })) })
// Migrate legacy pre-folder databases: old built-ins sat at the top level.
await db.preset.deleteMany({ where: { isBuiltIn: true } })
await ensureFolderRows(BASE_FOLDERS)
// refresh the embedded library subtree (+ legacy stray built-ins)
await db.preset.deleteMany({
where: {
OR: [
{ folderPath: 'root/embedded' },
{ folderPath: { startsWith: 'root/embedded/' } },
{ isBuiltIn: true },
],
},
})
await db.preset.createMany({
data: [
...BUILTIN_PRESETS.map((p) => ({
@ -39,6 +53,7 @@ async function ensureSeeded(): Promise<void> {
content: p.content,
originalFile: p.originalFile ?? null,
isBuiltIn: true,
approx: false,
folderPath: 'root/embedded/Synth-C',
})),
...EMBEDDED_LIBRARY.map((p) => ({
@ -48,12 +63,17 @@ async function ensureSeeded(): Promise<void> {
content: p.content,
originalFile: p.originalFile ?? null,
isBuiltIn: true,
// the converter recorded the download nesting — normalize to the
// clean tree ("root/embedded/root/embedded/Amp Picks" → "root/embedded/Amp Picks")
approx: p.approx ?? false,
// tolerate old converter output that recorded the download nesting
folderPath: p.folder.replace('root/embedded/root/embedded/', 'root/embedded/'),
})),
],
})
await db.settings.upsert({
where: { id: 'main' },
update: { embeddedSeed: EMBEDDED_SEED_VERSION },
create: { id: 'main', embeddedSeed: EMBEDDED_SEED_VERSION },
})
} catch (err) {
// Two first requests racing → unique violation: the other request seeded.
if ((err as { code?: string })?.code !== 'P2002') throw err
@ -73,6 +93,7 @@ export async function GET() {
description: true,
content: true,
isBuiltIn: true,
approx: true,
folderPath: true,
originalFile: true,
updatedAt: true,

View file

@ -278,6 +278,14 @@ function TreePreset({ preset, depth }: { preset: PresetItem; depth: number }) {
<span className={cn('truncate text-xs', running ? 'font-medium text-emerald-300' : 'text-zinc-300')}>
{preset.name}
</span>
{preset.approx && (
<span
title="Approximation — the original preset relies on effects the script engine can't run, so this is a uniquely generated stand-in"
className="shrink-0 rounded border border-amber-300/30 bg-amber-300/10 px-1 font-mono text-[9px] leading-4 text-amber-300/90"
>
≈
</span>
)}
</button>
{preset.originalFile && (
<a

File diff suppressed because it is too large Load diff

View file

@ -22,6 +22,9 @@ export interface PresetItem {
description: string
content: string
isBuiltIn: boolean
/** true = generated stand-in (embedded presets whose original relies on
* effects the script engine cannot run); false = original/user code. */
approx?: boolean
/** Full path from the virtual root, e.g. "root/embedded/Synth-C". */
folderPath: string
/** Path of the original Winamp .avs binary in /public, when shipped. */

View file

@ -7,10 +7,12 @@
// (v6.0 = rename to Open Visualization Engine + version indicator).
//
// History:
// 6.1 — preset library quality pass: every embedded stand-in is now a UNIQUE
// generated visual (16 families × seeded parameters), approx badge
// 6.0 — renamed to "Open Visualization Engine" + footer version stamp
// 5.0 — folder-tree Presets page (Task 9–11 state, restored in Task 12)
// 4.0 — link audio source (yt-dlp resolve + stream proxy)
export const APP_NAME = 'Open Visualization Engine'
export const APP_SHORT = 'OVE'
export const APP_VERSION = '6.0'
export const APP_VERSION = '6.1'

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

File diff suppressed because it is too large Load diff

View file

@ -28,7 +28,7 @@
// empty string = length 0)
import { readFileSync, writeFileSync, mkdirSync, readdirSync, statSync, copyFileSync } from 'node:fs'
import { join, basename, dirname, relative } from 'node:path'
import { join, basename, dirname, relative, resolve } from 'node:path'
import { validateScript } from '../src/lib/ava/script'
import { AVA_HOOKS, resetEelBuffers } from '../src/lib/ava/expression'
@ -454,185 +454,241 @@ function describeEffect(e: Effect): string {
}
// ---------------------------------------------------------------------------
// fallback templates (for presets whose visuals are movement/APE driven)
// fallback stand-in generator (for presets whose visuals are movement/APE
// driven).
//
// The original converter squeezed every unportable preset into one of 6 fixed
// templates, so a third of the library looked identical. This generator
// instead builds a UNIQUE visual per preset:
// * 16 distinct geometric families (rings, tunnel, starfield, lattice,
// swirl, kaleido, lissajous, spectrum bars, moire, fountain, rose,
// orbits, ribbon, web, rain, helix)
// * 6 color palettes (rainbow / fire / ice / neon-band / mono / duotone)
// * every numeric parameter (counts, speeds, twists, couplings, widths,
// persistence) drawn from a deterministic PRNG seeded by the preset NAME
// — same name always regenerates the same visual, different names always
// differ
// * the family is chosen from the original's unportable components so the
// vibe roughly matches (BlitterFeedback → tunnels, Mirror → kaleido,
// Starfield → starfield, DotFountain → fountain, …)
// ---------------------------------------------------------------------------
function fallbackTemplate(seed: number, name: string): { content: string; style: string } {
const styles = [
{
style: 'pulse rings',
mode: 'lines',
content: `name: ${JSON.stringify(name)}
mode: lines
blend: additive
persist: 0.88
linewidth: 2
/** Deterministic PRNG (mulberry32) — stable across runs/machines. */
function mulberry32(seed: number): () => number {
let a = seed >>> 0
return () => {
a |= 0
a = (a + 0x6d2b79f5) | 0
let t = Math.imul(a ^ (a >>> 15), 1 | a)
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t
return ((t ^ (t >>> 14)) >>> 0) / 4294967296
}
}
/** float in [lo, hi], formatted for generated code */
const rr = (rng: () => number, lo: number, hi: number): string =>
String(Math.round((lo + rng() * (hi - lo)) * 1000) / 1000)
/** int in [lo, hi] */
const ri = (rng: () => number, lo: number, hi: number): number =>
Math.floor(lo + rng() * (hi - lo + 1))
const pick = <T,>(rng: () => number, arr: readonly T[]): T => arr[Math.floor(rng() * arr.length)]
// --- palettes ---------------------------------------------------------------
type PaletteName = 'rainbow' | 'fire' | 'ice' | 'neon' | 'mono' | 'duotone'
const PALETTE_NAMES: readonly PaletteName[] = ['rainbow', 'fire', 'ice', 'neon', 'mono', 'duotone']
/** red/green/blue lines for a luminance + phase expression pair. */
function colorLines(palette: PaletteName, lum: string, phase: string): string {
switch (palette) {
case 'fire':
return `red = min(1, ${lum} * 1.3)\ngreen = ${lum} * 0.5\nblue = ${lum} * 0.12`
case 'ice':
return `red = ${lum} * 0.3\ngreen = ${lum} * 0.65\nblue = min(1, ${lum} * 1.3)`
case 'neon':
return `red = ${lum} * (0.25 + bass * 0.95)\ngreen = ${lum} * (0.25 + mid * 0.95)\nblue = ${lum} * (0.25 + treb * 0.95)`
case 'mono':
return `red = ${lum} * 0.85\ngreen = ${lum} * 0.92\nblue = ${lum}`
case 'duotone':
return `red = ${lum} * abs(sin(${phase}))\ngreen = ${lum} * 0.22\nblue = ${lum} * abs(cos(${phase}))`
default:
return `red = ${lum} * (0.45 + 0.55 * sin(hue * 6.28318 + ${phase}))\ngreen = ${lum} * (0.45 + 0.55 * sin(hue * 6.28318 + ${phase} + 2.09))\nblue = ${lum} * (0.45 + 0.55 * sin(hue * 6.28318 + ${phase} + 4.19))`
}
}
function scriptHeader(name: string, mode: string, persist: string, linewidth: string): string {
return `name: ${JSON.stringify(name)}\nmode: ${mode}\nblend: additive\npersist: ${persist}\nlinewidth: ${linewidth}`
}
interface FamilyCtx {
rng: () => number
name: string
palette: PaletteName
hueSpeed: string
}
type FamilyFn = (ctx: FamilyCtx) => { style: string; content: string }
// --- the 16 families --------------------------------------------------------
function famPulseRings({ rng, name, palette, hueSpeed }: FamilyCtx) {
const rings = ri(rng, 5, 13)
const mode = pick(rng, ['lines', 'dots'] as const)
const speed = rr(rng, 0.18, 0.5)
const radBase = rr(rng, 0.16, 0.34)
const radBass = rr(rng, 0.35, 0.85)
const content = `${scriptHeader(name, mode, rr(rng, 0.78, 0.9), rr(rng, 1.4, 2.6))}
[init]
n = 720
n = ${rings * ri(rng, 40, 72)}
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
hue = hue + dt * ${hueSpeed} + beat * 0.01
travel = travel + dt * (${speed} + bass_att * 1.4)
flash = flash * 0.86
[beat]
flash = 1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
g = floor(i * ${rings})
gi = frac(i * ${rings})
ph = frac(rand(g * 5.1 + 1) + travel * (0.55 + rand(g + 17) * 0.85))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
rad = ph * (${radBase} + bass * ${radBass} + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
`,
},
{
style: 'tunnel',
mode: 'lines',
content: `name: ${JSON.stringify(name)}
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
${colorLines(palette, 'fade * (0.35 + flash * 0.4)', 'g * 0.7')}
skip = if(above(ph, 0.96), 1, 0)
`
return { style: 'pulse rings', content }
}
function famTunnel({ rng, name, palette, hueSpeed }: FamilyCtx) {
const rings = ri(rng, 16, 30)
const twist = rr(rng, 0.1, 0.6)
const speed = rr(rng, 0.15, 0.4)
const svC = rr(rng, 0.5, 1.3)
const mode = pick(rng, ['lines', 'dots'] as const)
const content = `${scriptHeader(name, mode, rr(rng, 0.84, 0.92), rr(rng, 1.3, 2.2))}
[init]
n = 900
n = ${rings * ri(rng, 28, 48)}
[frame]
t = t + dt * (0.25 + bass_att * 1.5)
hue = hue + dt * 0.1
t = t + dt * (${speed} + bass_att * 1.5)
hue = hue + dt * ${hueSpeed}
[point]
ring = floor(i * 24)
ri = frac(i * 24)
z = frac(ring / 24 + t)
rad = 0.06 + z * 0.9
a = ri * 6.28318 + ring * 0.35 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.9) / aspect
y = cos(a) * rad * (0.55 + sv * 0.9)
f = (1 - z) * (0.35 + bass * 0.65)
red = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4))
green = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 2.09))
blue = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 4.19))
`,
},
{
style: 'starfield',
mode: 'dots',
content: `name: ${JSON.stringify(name)}
mode: dots
blend: additive
persist: 0.82
linewidth: 2.5
ring = floor(i * ${rings})
ri2 = frac(i * ${rings})
z = frac(ring / ${rings} + t)
rad = 0.05 + z * ${rr(rng, 0.75, 1.05)}
a = ri2 * 6.28318 + ring * ${twist} + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * ${svC}) / aspect
y = cos(a) * rad * (0.55 + sv * ${svC})
${colorLines(palette, '(1 - z) * (0.3 + bass * 0.7)', `z * ${rr(rng, 2, 6)}`)}
`
return { style: 'tunnel', content }
}
function famStarfield({ rng, name, palette, hueSpeed }: FamilyCtx) {
const content = `${scriptHeader(name, 'dots', rr(rng, 0.76, 0.86), rr(rng, 2, 3))}
[init]
n = 850
n = ${ri(rng, 650, 1100)}
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
travel = travel + dt * (${rr(rng, 0.15, 0.35)} + vol_att * ${rr(rng, 1.2, 2)})
hue = hue + dt * ${hueSpeed}
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
rad = z * z * ${rr(rng, 0.95, 1.25)}
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
${colorLines(palette, 'tw', `i * ${rr(rng, 2, 8)}`)}
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
`,
},
{
style: 'lattice',
mode: 'dots',
content: `name: ${JSON.stringify(name)}
mode: dots
blend: additive
persist: 0.78
linewidth: 2.5
`
return { style: 'starfield', content }
}
function famLattice({ rng, name, palette, hueSpeed }: FamilyCtx) {
const cols = ri(rng, 22, 44)
const rotSpeed = rr(rng, 0.03, 0.12)
const hCoup = rr(rng, 0.2, 0.55)
const span = rr(rng, 1.4, 1.9)
const content = `${scriptHeader(name, 'dots', rr(rng, 0.74, 0.84), rr(rng, 2, 3))}
[init]
cols = 36
cols = ${cols}
n = cols * cols
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
rot = rot + dt * (${rotSpeed} + mid * 0.4)
hue = hue + dt * ${hueSpeed}
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
h = sv * ${hCoup}
ux = (cx - 0.5) * ${span}
uy = (cy - 0.5) * ${span}
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
${colorLines(palette, '0.22 + h * 2.2', `cx * ${rr(rng, 2, 5)}`)}
size = 1.2 + h * 5
`,
},
{
style: 'swirl',
mode: 'lines',
content: `name: ${JSON.stringify(name)}
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
`
return { style: 'lattice', content }
}
function famSwirl({ rng, name, palette, hueSpeed }: FamilyCtx) {
const arms = ri(rng, 3, 9)
const twist = rr(rng, 0.8, 2.2)
const dExp = rr(rng, 1.6, 2.6)
const speed = rr(rng, 0.2, 0.45)
const content = `${scriptHeader(name, 'lines', rr(rng, 0.86, 0.92), rr(rng, 1.3, 2))}
[init]
n = 1100
n = ${ri(rng, 900, 1300)}
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * (${speed} + bass_att * 1.8)
hue = hue + dt * ${hueSpeed} + beat * 0.012
[point]
arm = floor(i * 5)
fa = frac(i * 5)
arm = floor(i * ${arms})
fa = frac(i * ${arms})
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
ang = arm * ${rr(rng, 1.2, 1.6)} + d * ${twist} * 3.14159 + t
rad = (0.04 + pow(d, ${dExp}) * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
${colorLines(palette, '(0.3 + 0.7 * d) * (0.3 + mid)', `d * ${rr(rng, 2, 5)}`)}
skip = if(below(fa, 0.04), 1, 0)
`,
},
{
style: 'kaleido',
mode: 'lines',
content: `name: ${JSON.stringify(name)}
mode: lines
blend: additive
persist: 0.86
linewidth: 1.8
`
return { style: 'swirl', content }
}
function famKaleido({ rng, name, palette, hueSpeed }: FamilyCtx) {
const segs = ri(rng, 6, 14)
const lFreq = ri(rng, 4, 9)
const content = `${scriptHeader(name, 'lines', rr(rng, 0.82, 0.9), rr(rng, 1.5, 2.4))}
[init]
n = 560
segs = 8
segs = ${segs}
n = ${ri(rng, 460, 660)}
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
rot = rot + dt * (${rr(rng, 0.05, 0.15)} + mid_att * 0.5)
hue = hue + dt * ${hueSpeed}
flash = flash * 0.85
[beat]
flash = 1
@ -641,22 +697,405 @@ flash = 1
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * ${lFreq} + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
${colorLines(palette, '0.3 + amp * 1.3', 'seg * 0.8')}
skip = if(above(si, 0.96), 1, 0)
`,
},
]
return styles[seed % styles.length]
`
return { style: 'kaleido', content }
}
function famLissajous({ rng, name, palette, hueSpeed }: FamilyCtx) {
const fa0 = ri(rng, 2, 6)
const fb0 = ri(rng, 2, 7)
const phase = rr(rng, 0.5, 3)
const content = `${scriptHeader(name, 'lines', rr(rng, 0.86, 0.93), rr(rng, 1.4, 2.4))}
[init]
n = ${ri(rng, 600, 950)}
[frame]
t = t + dt * ${rr(rng, 0.2, 0.6)}
hue = hue + dt * ${hueSpeed}
[point]
ph = i * 6.28318 * ${rr(rng, 1, 3)}
fa = ${fa0} + mid * 0.35
fb = ${fb0} + bass * 0.45
x = sin(ph * fa + t) * (0.5 + bass * 0.3) / aspect
y = sin(ph * fb + t * 1.3 + ${phase}) * (0.5 + treb * 0.35)
${colorLines(palette, '0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6', 'ph * 0.5')}
`
return { style: 'lissajous', content }
}
function famSpectrum({ rng, name, palette, hueSpeed }: FamilyCtx) {
const bars = ri(rng, 28, 64)
const inner = rr(rng, 0.1, 0.28)
const height = rr(rng, 0.5, 0.9)
const content = `${scriptHeader(name, pick(rng, ['lines', 'dots'] as const), rr(rng, 0.8, 0.9), rr(rng, 1.4, 2.6))}
[init]
bars = ${bars}
n = bars * ${ri(rng, 8, 14)}
[frame]
rot = rot + dt * (${rr(rng, 0.04, 0.12)} + mid * 0.3)
hue = hue + dt * ${hueSpeed}
[point]
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * ${height}
a = bar * 6.28318 / bars + rot
rad = ${inner} + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
${colorLines(palette, '0.25 + bi * 0.75', 'bar * 6.28318 / bars')}
skip = if(above(bi, 0.97), 1, 0)
`
return { style: 'spectrum bars', content }
}
function famMoire({ rng, name, palette, hueSpeed }: FamilyCtx) {
const f = (): string => rr(rng, 2, 7)
const content = `${scriptHeader(name, 'dots', rr(rng, 0.72, 0.84), rr(rng, 1.8, 2.8))}
[init]
n = ${ri(rng, 1100, 1600)}
[frame]
t = t + dt * ${rr(rng, 0.3, 0.8)}
hue = hue + dt * ${hueSpeed}
[point]
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * ${f()} + w * ${f()} + t) * 3.14159) * sin((u * ${f()} - w * ${f()} - t * 0.7) * 3.14159)
x = u * ${rr(rng, 0.85, 1.0)} / aspect
y = w * ${rr(rng, 0.85, 1.0)}
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
${colorLines(palette, 'lum', `u * ${rr(rng, 2, 6)}`)}
size = 1 + abs(m) * ${rr(rng, 2, 4)}
`
return { style: 'moire', content }
}
function famFountain({ rng, name, palette, hueSpeed }: FamilyCtx) {
const jets = ri(rng, 2, 5)
const grav = rr(rng, 0.7, 1.4)
const spread = rr(rng, 0.5, 1.2)
const content = `${scriptHeader(name, 'dots', rr(rng, 0.74, 0.86), rr(rng, 1.8, 2.8))}
[init]
n = ${ri(rng, 750, 1200)}
[frame]
tt = tt + dt * (0.5 + bass_att * 1.1)
hue = hue + dt * ${hueSpeed}
burst = burst * 0.9
[beat]
burst = 1
[point]
jet = floor(i * ${jets})
life = frac(rand(i * 7.7 + jet) + tt * (0.35 + rand(i + 3) * 0.65))
a = jet * 6.28318 / ${jets} + rand(i * 5.1 + jet) * ${spread}
spd = 0.4 + rand(i * 9.2 + jet) * 0.8
px = cos(a) * spd * life
py = sin(a) * spd * life - ${grav} * life * life
x = px * (0.85 + bass * 0.35) / aspect
y = py
${colorLines(palette, 'max(0, 1 - life) * (0.35 + burst * 0.55)', 'life * 4')}
skip = if(above(life, 0.94), 1, 0)
`
return { style: 'fountain', content }
}
function famRose({ rng, name, palette, hueSpeed }: FamilyCtx) {
const k = ri(rng, 2, 7)
const loops = ri(rng, 1, 2)
const content = `${scriptHeader(name, 'lines', rr(rng, 0.84, 0.92), rr(rng, 1.5, 2.6))}
[init]
n = ${ri(rng, 700, 1000)}
[frame]
t = t + dt * (${rr(rng, 0.1, 0.3)} + mid * 0.5)
hue = hue + dt * ${hueSpeed}
flash = flash * 0.87
[beat]
flash = 1
[point]
th = i * 6.28318 * ${loops} + t
r = abs(cos(${k} * th + bass * ${rr(rng, 0.3, 0.9)}))
rad = r * (0.5 + bass * 0.3 + sv * 0.2 + flash * 0.08)
x = sin(th) * rad / aspect
y = cos(th) * rad
${colorLines(palette, '0.25 + 0.65 * r + v * 0.25', 'th * 0.5')}
`
return { style: 'rose', content }
}
function famOrbits({ rng, name, palette, hueSpeed }: FamilyCtx) {
const rings = ri(rng, 3, 7)
const sats = ri(rng, 2, 5)
const squashBase = rr(rng, 0.3, 0.6)
const content = `${scriptHeader(name, 'dots', rr(rng, 0.78, 0.88), rr(rng, 1.8, 3))}
[init]
rings = ${rings}
n = rings * ${ri(rng, 70, 110)}
[frame]
t = t + dt * (${rr(rng, 0.15, 0.4)} + bass_att * 0.6)
hue = hue + dt * ${hueSpeed}
squash = ${squashBase} + 0.25 * sin(t * ${rr(rng, 0.2, 0.5)})
[point]
ring = floor(i * rings)
ri3 = frac(i * rings)
r0 = 0.16 + ring * ${rr(rng, 0.1, 0.16)}
a = ri3 * 6.28318 + t * (1.2 - ring * 0.18) + ring * 2.4
x = sin(a) * r0 * (1 + bass * 0.18) / aspect
y = cos(a) * r0 * squash
sat = frac(ri3 * ${sats})
size = if(below(sat, 0.14), 3 + bass * 3, 1)
${colorLines(palette, '0.25 + bass * 0.5 + ring * 0.07', 'ring * 1.3')}
`
return { style: 'orbits', content }
}
function famRibbon({ rng, name, palette, hueSpeed }: FamilyCtx) {
const loops = ri(rng, 1, 3)
const wFreq = ri(rng, 2, 6)
const content = `${scriptHeader(name, 'lines', rr(rng, 0.88, 0.94), rr(rng, 1.4, 2.4))}
[init]
n = ${ri(rng, 800, 1200)}
[frame]
t = t + dt * (${rr(rng, 0.3, 0.7)} + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * ${hueSpeed}
[point]
a = i * 6.28318 * ${loops}
wob = sin(a * ${wFreq} + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * ${rr(rng, 0.15, 0.45)} - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
${colorLines(palette, '0.3 + abs(v) * 1.2', 'a * 0.5')}
`
return { style: 'ribbon', content }
}
function famWeb({ rng, name, palette, hueSpeed }: FamilyCtx) {
const spokes = ri(rng, 14, 32)
const wFreq = ri(rng, 2, 5)
const content = `${scriptHeader(name, pick(rng, ['lines', 'dots'] as const), rr(rng, 0.8, 0.9), rr(rng, 1.3, 2.2))}
[init]
spokes = ${spokes}
n = spokes * ${ri(rng, 22, 40)}
[frame]
rot = rot + dt * (${rr(rng, 0.06, 0.16)} + mid * 0.4)
t = t + dt * ${rr(rng, 1.5, 3)}
hue = hue + dt * ${hueSpeed}
[point]
sp = floor(i * spokes)
si = frac(i * spokes)
a = sp * 6.28318 / spokes + rot
wave = sin(si * ${wFreq} * 3.14159 - t) * (0.03 + bass * 0.28)
rad = 0.12 + si * ${rr(rng, 0.75, 0.95)} + wave
x = sin(a) * rad / aspect
y = cos(a) * rad
${colorLines(palette, '(1 - si) * 0.45 + 0.15 + sv * 0.55', 'sp * 0.4')}
skip = if(above(si, 0.985), 1, 0)
`
return { style: 'web', content }
}
function famRain({ rng, name, palette, hueSpeed }: FamilyCtx) {
const cols = ri(rng, 40, 70)
const content = `${scriptHeader(name, 'dots', rr(rng, 0.7, 0.82), rr(rng, 1.6, 2.6))}
[init]
cols = ${cols}
n = ${ri(rng, 900, 1400)}
[frame]
fall = fall + dt * (${rr(rng, 0.4, 0.9)} + vol_att * ${rr(rng, 0.8, 1.5)})
hue = hue + dt * ${hueSpeed}
[point]
col = floor(i * cols)
ci = frac(i * cols)
xx = (col / cols - 0.5) * 1.9
yf = frac(rand(col * 3.7 + 1) + fall * (0.55 + rand(col + 5) * 0.5))
tail = rand(col * 1.3 + 9) * ${rr(rng, 0.25, 0.5)} + 0.04
yy = (yf * 2 - 1) * 1.05 + ci * tail
x = xx / aspect
y = yy
${colorLines(palette, '(1 - ci) * (0.2 + treb * 0.85) + 0.04', 'col * 0.3')}
skip = if(above(abs(yy), 1.02), 1, 0)
`
return { style: 'rain', content }
}
function famHelix({ rng, name, palette, hueSpeed }: FamilyCtx) {
const turns = ri(rng, 2, 6)
const content = `${scriptHeader(name, 'lines', rr(rng, 0.84, 0.92), rr(rng, 1.4, 2.4))}
[init]
n = ${ri(rng, 900, 1300)}
[frame]
t = t + dt * (${rr(rng, 0.15, 0.45)} + bass_att * 0.9)
hue = hue + dt * ${hueSpeed}
flash = flash * 0.86
[beat]
flash = 1
[point]
st = floor(i * 2)
si = frac(i * 2)
s = si * ${turns} * 6.28318 + t
ph = st * 3.14159
rad = (0.28 + bass * 0.32 + flash * 0.06) * (0.55 + 0.45 * (cos(s + ph) * 0.5 + 0.5))
x = sin(s + ph) * rad / aspect
y = (si - 0.5) * 1.8
${colorLines(palette, '0.25 + 0.55 * (cos(s + ph) * 0.5 + 0.5) + treb * 0.25', 's * 0.3')}
`
return { style: 'helix', content }
}
const FAMILIES: Record<string, FamilyFn> = {
'pulse rings': famPulseRings,
tunnel: famTunnel,
starfield: famStarfield,
lattice: famLattice,
swirl: famSwirl,
kaleido: famKaleido,
lissajous: famLissajous,
'spectrum bars': famSpectrum,
moire: famMoire,
fountain: famFountain,
rose: famRose,
orbits: famOrbits,
ribbon: famRibbon,
web: famWeb,
rain: famRain,
helix: famHelix,
}
const FAMILY_NAMES = Object.keys(FAMILIES)
/**
* Component → family affinity. The family is picked among the families hinted
* by the original's unportable components (union of all matches), so the
* stand-in's vibe roughly matches the original while same-component presets
* still spread across different families via the name-seeded RNG.
*/
const COMPONENT_FAMILY_HINTS: Array<[RegExp, string[]]> = [
[/blitterfeedback|rotoblitter|buffersave/i, ['tunnel', 'kaleido', 'moire']],
[/dynamicmovement|movement|dynamicshift/i, ['swirl', 'ribbon', 'web', 'moire']],
[/colormap|uniquetone|colorfade|colorclip|fastbright|colormodifier/i, ['spectrum bars', 'moire', 'orbits', 'lissajous']],
[/starfield/i, ['starfield', 'rain', 'helix']],
[/movingparticle|dotfountain/i, ['fountain', 'rain', 'starfield']],
[/water|bump|mosaic/i, ['pulse rings', 'web', 'moire', 'lattice']],
[/dotgrid|grain|scatter/i, ['lattice', 'rain', 'starfield', 'moire']],
[/mirror/i, ['kaleido', 'lissajous', 'rose']],
[/ring|rotstar/i, ['pulse rings', 'orbits', 'rose', 'tunnel']],
[/interference/i, ['moire', 'lissajous']],
[/bassspin/i, ['orbits', 'rose', 'swirl']],
[/oscilloscope|simple|svp/i, ['ribbon', 'lissajous', 'spectrum bars']],
]
function chooseFamilies(components: string[]): string[] {
const hits: string[] = []
for (const [re, fams] of COMPONENT_FAMILY_HINTS) {
if (components.some((c) => re.test(c))) {
for (const f of fams) if (!hits.includes(f)) hits.push(f)
}
}
return hits.length ? hits : FAMILY_NAMES
}
/** Known-good template used if a generated family somehow fails the smoke test. */
function safeFallback(name: string): string {
return `name: ${JSON.stringify(name)}
mode: lines
blend: additive
persist: 0.86
linewidth: 2
[init]
n = 640
[frame]
hue = hue + dt * 0.06 + beat * 0.01
travel = travel + dt * (0.3 + bass_att * 1.4)
flash = flash * 0.86
[beat]
flash = 1
[point]
g = floor(i * 8)
gi = frac(i * 8)
ph = frac(rand(g * 5.1 + 1) + travel * (0.55 + rand(g + 17) * 0.85))
a = gi * 6.28318
rad = ph * (0.24 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.45 + 0.55 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.45 + 0.55 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.45 + 0.55 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.96), 1, 0)
`
}
/**
* Build the stand-in for one preset. Every parameter is drawn from a PRNG
* seeded by the preset name — the same name always regenerates the same
* visual; different names (even in the same family) look clearly different.
*/
/** Families already used by a stand-in in this converter run (full-coverage rotation). */
const usedStyles = new Set<string>()
function fallbackTemplate(
seed: number,
name: string,
components: string[] = [],
): { content: string; style: string } {
const rng = mulberry32(seed)
// 1) guarantee every family gets used at least once across a run (first
// fallbacks cycle through the unused ones — deterministic, files sorted)
// 2) otherwise mostly honor the component hints (vibe matches the original)
// 3) ~25% wild card so the archetype mix keeps rotating in large libraries
const hinted = chooseFamilies(components)
const unused = FAMILY_NAMES.filter((f) => !usedStyles.has(f))
const pool = unused.length ? unused : rng() < 0.25 ? FAMILY_NAMES : hinted
const style = pick(rng, pool)
usedStyles.add(style)
const palette = pick(rng, PALETTE_NAMES)
const hueSpeed = rr(rng, 0.03, 0.14)
const out = FAMILIES[style]({ rng, name, palette, hueSpeed })
return { content: out.content, style: out.style }
}
// ---------------------------------------------------------------------------
// smoke test — runs the generated script headlessly through the real engine env
// ---------------------------------------------------------------------------
@ -754,6 +1193,8 @@ interface OutputPreset {
description: string
originalFile: string
content: string
/** true = generated stand-in (original relies on unportable effects). */
approx?: boolean
}
function convertOne(file: string, relDir: string, absPath: string): { preset: OutputPreset; status: 'ported' | 'fallback'; note: string } {
@ -762,7 +1203,9 @@ function convertOne(file: string, relDir: string, absPath: string): { preset: Ou
const cands: Candidates = { scopes: [], eeltrans: [], gv: [], comment: null, otherKinds: new Set() }
collect(effects, cands)
const folder = 'root/embedded/' + relDir
// relDir already carries the clean tree ("root/embedded/Amp Picks") when the
// input mirrors the drive layout — only prefix when it does not.
const folder = relDir.startsWith('root/') ? relDir : 'root/embedded/' + relDir
const originalFile = `/avs-originals/embedded/${relDir}/${file}`
const desc = (extra: string): string => {
const by = author ? ` by ${author}` : ''
@ -771,15 +1214,34 @@ function convertOne(file: string, relDir: string, absPath: string): { preset: Ou
}
const makeFallback = (reason: string) => {
const tpl = fallbackTemplate(hashStr(name), name)
const tpl = fallbackTemplate(hashStr(name), name, Array.from(cands.otherKinds))
const smoke = smokeTest(tpl.content)
if (!smoke.ok) {
// should never happen — every family is smoke-tested code; still, never
// emit a broken script.
return {
preset: {
folder,
name,
author,
description: desc(`The original's visuals are driven by ${reason}, which the AVA script engine does not support — this is a generated stand-in that keeps the beat & band reactivity.`),
description: desc(`The original is driven by ${reason}, which the script engine cannot run — replaced with a generated stand-in (beat & band reactive).`),
originalFile,
content: safeFallback(name),
approx: true,
},
status: 'fallback' as const,
note: `${reason} → safe stand-in (family "${tpl.style}" failed smoke: ${smoke.error})`,
}
}
return {
preset: {
folder,
name,
author,
description: desc(`The original is driven by ${reason}, which the script engine cannot run — replaced with a generated "${tpl.style}"-style visual, uniquely parameterized for this preset (beat & band reactive).`),
originalFile,
content: tpl.content,
approx: true,
},
status: 'fallback' as const,
note: `${reason} → ${tpl.style} stand-in`,
@ -913,6 +1375,11 @@ ${[point.trim(), colorPoint].filter(Boolean).join('\n')}
if (!smoke.ok) {
return makeFallback(`unportable scope code (${smoke.error})`)
}
// a "ported" scope that renders a handful of points is not the real visual
// (the meat is in movements/APEs) — those presets get stand-ins too.
if (smoke.n < 16) {
return makeFallback(`a trivial scope (n=${smoke.n}; the real work is movement/APE driven)`)
}
const perf = smoke.ms > 900 ? ' (heavy script — point count clamped)' : ''
if (smoke.ms > 900) {
// clamp n for heavy scripts so the browser keeps 60fps
@ -920,14 +1387,14 @@ ${[point.trim(), colorPoint].filter(Boolean).join('\n')}
const recheck = smokeTest(patched)
if (recheck.ok) {
return {
preset: { folder, name, author, description: desc(`Original ${scope.kind} code, machine-translated to the AVA script dialect.${perf}`), originalFile, content: patched },
preset: { folder, name, author, description: desc(`Original ${scope.kind} code, machine-translated to the AVA script dialect.${perf}`), originalFile, content: patched, approx: false },
status: 'ported',
note: `ok (n clamped, ${smoke.ms}ms → ${recheck.ms}ms)`,
}
}
}
return {
preset: { folder, name, author, description: desc(`Original ${scope.kind} code, machine-translated to the AVA script dialect.`), originalFile, content },
preset: { folder, name, author, description: desc(`Original ${scope.kind} code, machine-translated to the AVA script dialect.`), originalFile, content, approx: false },
status: 'ported',
note: `ok (${smoke.ms}ms, n=${smoke.n})`,
}
@ -940,6 +1407,8 @@ ${[point.trim(), colorPoint].filter(Boolean).join('\n')}
const inputRoot = process.argv[2] ?? '/tmp/avsdrive/raw'
const outDir = 'tools/converted'
const originalsDir = 'public/avs-originals/embedded'
/** Bump when regenerating — written into embedded-presets.ts for the seed check. */
const SEED_VERSION = '6.1'
const SKIP_FOLDERS = new Set(['Synth-C']) // hand-adapted versions ship in BUILTIN_PRESETS
@ -986,10 +1455,10 @@ for (const abs of files) {
const destAva = join(outDir, relDir, file.replace(/\.avs$/i, '.ava'))
mkdirSync(dirname(destAva), { recursive: true })
writeFileSync(destAva, r.preset.content)
// copy the original binary
// copy the original binary (skip when re-running in-place — src IS the dest)
const destOrig = join(originalsDir, relDir, file)
mkdirSync(dirname(destOrig), { recursive: true })
copyFileSync(abs, destOrig)
if (resolve(abs) !== resolve(destOrig)) copyFileSync(abs, destOrig)
} catch (err) {
report.push({ file: rel, status: 'error', note: String(err) })
fallback++
@ -1009,9 +1478,14 @@ const tsHeader = `// AVA — embedded preset library (AUTO-GENERATED by tools/co
//
// ${results.length} Winamp AVS presets from the user's Google Drive collection,
// auto-ported to the AVA script dialect by the converter. Ported presets run
// the original SuperScope / Texer II code (machine-translated); stand-in
// presets are generated visuals for originals that rely on effects the script
// engine does not support (movements, APEs).
// the original SuperScope / Texer II code (machine-translated); approx
// presets are UNIQUE generated stand-ins (16 families × seeded parameters)
// for originals that rely on effects the script engine cannot run.
//
// EMBEDDED_SEED_VERSION: bump whenever this library is regenerated — the
// GET /api/presets route re-seeds the root/embedded subtree when it changes.
export const EMBEDDED_SEED_VERSION = '${SEED_VERSION}'
export interface EmbeddedPreset {
folder: string
@ -1020,13 +1494,15 @@ export interface EmbeddedPreset {
description: string
originalFile?: string
content: string
/** true = generated stand-in (original relies on unportable effects). */
approx?: boolean
}
`
const lines: string[] = []
for (const p of results) {
lines.push(` {\n folder: ${JSON.stringify(p.folder)},\n name: ${JSON.stringify(p.name)},\n author: ${JSON.stringify(p.author)},\n description: ${JSON.stringify(p.description)},\n originalFile: ${JSON.stringify(p.originalFile)},\n content: ${JSON.stringify(p.content)},\n },`)
lines.push(` {\n folder: ${JSON.stringify(p.folder)},\n name: ${JSON.stringify(p.name)},\n author: ${JSON.stringify(p.author)},\n description: ${JSON.stringify(p.description)},\n originalFile: ${JSON.stringify(p.originalFile)},\n approx: ${p.approx === true},\n content: ${JSON.stringify(p.content)},\n },`)
}
const ts = tsHeader + `export const EMBEDDED_LIBRARY: EmbeddedPreset[] = [\n${lines.join('\n')}\n]\n`
writeFileSync('src/lib/ava/embedded-presets.ts', ts)

View file

@ -2,97 +2,87 @@
{
"file": "root/embedded/Amp Picks/D&L - Life Is Violated.avs",
"status": "ported",
"note": "ok (25ms, n=512)"
"note": "ok (21ms, n=512)"
},
{
"file": "root/embedded/Amp Picks/Degnic - Retrowall (Yathosho's Supermicrocosm).avs",
"status": "fallback",
"note": "DynamicMovement, Movement, Invert → swirl stand-in"
"note": "DynamicMovement, Movement, Invert → orbits stand-in"
},
{
"file": "root/embedded/Amp Picks/Degnic-Adrealine rush.avs",
"status": "fallback",
"note": "en03: Convolution Filter, Simple, Color Map → starfield stand-in"
"note": "en03: Convolution Filter, Simple, Color Map → moire stand-in"
},
{
"file": "root/embedded/Amp Picks/Duo - Alien Heart.avs",
"status": "fallback",
"note": "Fadeout, ClearScreen, MovingParticle → pulse rings stand-in"
"note": "Fadeout, ClearScreen, MovingParticle → tunnel stand-in"
},
{
"file": "root/embedded/Amp Picks/Duo - Brainstorm.avs",
"status": "fallback",
"note": "Invert, UniqueTone, Brightness → swirl stand-in"
"note": "Invert, UniqueTone, Brightness → kaleido stand-in"
},
{
"file": "root/embedded/Amp Picks/EL-VIS - Molecules (S_KuPeRS Remix).avs",
"status": "fallback",
"note": "DynamicMovement, Color Map, Invert → starfield stand-in"
"note": "DynamicMovement, Color Map, Invert → swirl stand-in"
},
{
"file": "root/embedded/Amp Picks/L1quid - Take the Veil.avs",
"status": "fallback",
"note": "unportable scope code (frame line 15: Unexpected character '$') → lattice stand-in"
"note": "unportable scope code (frame line 15: Unexpected character '$') → lissajous stand-in"
},
{
"file": "root/embedded/Amp Picks/Nic01 - Rototronik.avs",
"status": "ported",
"note": "ok (54ms, n=512)"
"note": "ok (45ms, n=512)"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - ...hidden track....avs",
"status": "fallback",
"note": "DynamicMovement, Color Map → starfield stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - A Tribute To Degnic.avs",
"status": "error",
"note": "Error: out of bytes"
"note": "DynamicMovement, Color Map → pulse rings stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Arctic Rainbow.avs",
"status": "fallback",
"note": "BlitterFeedback, DynamicMovement, Movement → lattice stand-in"
"note": "BlitterFeedback, DynamicMovement, Movement → rain stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Chinook.avs",
"status": "fallback",
"note": "ColorClip, ClearScreen, DynamicMovement → pulse rings stand-in"
"note": "ColorClip, ClearScreen, DynamicMovement → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Hexual Healing.avs",
"status": "fallback",
"note": "Color Map → starfield stand-in"
"note": "Color Map → lattice stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Inverse Kinetics.avs",
"status": "fallback",
"note": "effect#2176, DynamicMovement → kaleido stand-in"
"note": "effect#2176, DynamicMovement → fountain stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Kingish.avs",
"status": "fallback",
"note": "BlitterFeedback → starfield stand-in"
"note": "BlitterFeedback → web stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Spirit Realm (Degnic's Plasmoid RMX).avs",
"status": "fallback",
"note": "BlitterFeedback, \u0005, DotPlane → swirl stand-in"
"note": "BlitterFeedback, \u0005, DotPlane → ribbon stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Texering 002.avs",
"status": "ported",
"note": "ok (45ms, n=100)"
"note": "ok (10ms, n=100)"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - Upward Current.avs",
"status": "fallback",
"note": "CustomBPM, DynamicMovement, Water → tunnel stand-in"
},
{
"file": "root/embedded/Amp Picks/S_KuPeRS - female demands.avs",
"status": "error",
"note": "Error: out of bytes"
"note": "CustomBPM, DynamicMovement, Water → rose stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Aqua-fumes.avs",
@ -102,82 +92,72 @@
{
"file": "root/embedded/Amp Picks/Tuggummi - Club Seizure (color enhanced mix).avs",
"status": "fallback",
"note": "Movement, DynamicMovement, Multiplier → swirl stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Different Load.avs",
"status": "error",
"note": "Error: out of bytes"
"note": "Movement, DynamicMovement, Multiplier → helix stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Electro blobs.avs",
"status": "fallback",
"note": "MovingParticle, Color Map, BlitterFeedback → lattice stand-in"
"note": "MovingParticle, Color Map, BlitterFeedback → kaleido stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Kaleidofied.avs",
"status": "fallback",
"note": "Invert, Movement, Bump → pulse rings stand-in"
"note": "Invert, Movement, Bump → ribbon stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Magma Flow II.avs",
"status": "fallback",
"note": "Color Map, BufferSave, ClearScreen → swirl stand-in"
"note": "Color Map, BufferSave, ClearScreen → orbits stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Multiple Orgasms.avs",
"status": "fallback",
"note": "Movement, Color Map, BufferSave → kaleido stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Odour Control.avs",
"status": "error",
"note": "Error: out of bytes"
"note": "Movement, Color Map, BufferSave → web stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Pina Colada.avs",
"status": "fallback",
"note": "Color Map → kaleido stand-in"
"note": "Color Map → swirl stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Scope in Spotlight II.avs",
"status": "fallback",
"note": "effect#117, Color Map, Invert → pulse rings stand-in"
"note": "effect#117, Color Map, Invert → kaleido stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Solero Shots.avs",
"status": "fallback",
"note": "effect#28, FastBright, Movement → starfield stand-in"
"note": "effect#28, FastBright, Movement → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Square Minded.avs",
"status": "fallback",
"note": "FastBright → kaleido stand-in"
"note": "FastBright → moire stand-in"
},
{
"file": "root/embedded/Amp Picks/Tuggummi - Worm-O-Rama (Raz Remix).avs",
"status": "fallback",
"note": "MovingParticle, Filter, Simple → tunnel stand-in"
"note": "MovingParticle, Filter, Simple → ribbon stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Zero-G Maze.avs",
"status": "ported",
"note": "ok (9ms, n=50)"
"note": "ok (2ms, n=50)"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Cartoon Trip.avs",
"status": "fallback",
"note": "DynamicMovement, FastBright, Color Reduction → starfield stand-in"
"note": "DynamicMovement, FastBright, Color Reduction → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Containment.avs",
"status": "fallback",
"note": "unportable scope code (init line 12: Unexpected character '£') → lattice stand-in"
"note": "unportable scope code (init line 12: Unexpected character '£') → ribbon stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Cubic Flower.avs",
"status": "ported",
"note": "ok (8ms, n=40)"
"note": "ok (6ms, n=40)"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Jello Cube.avs",
@ -187,311 +167,286 @@
{
"file": "root/embedded/Amp Picks/UnConeD - Mercury.avs",
"status": "fallback",
"note": "Blur, DynamicMovement, FastBright → pulse rings stand-in"
"note": "Blur, DynamicMovement, FastBright → ribbon stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Neon Coaster.avs",
"status": "fallback",
"note": "unportable scope code (beat line 18: Unexpected character '¤') → swirl stand-in"
"note": "unportable scope code (beat line 18: Unexpected character '¤') → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Plankton.avs",
"status": "fallback",
"note": "DynamicMovement, FastBright → swirl stand-in"
"note": "DynamicMovement, FastBright → pulse rings stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Reflectocube.avs",
"status": "fallback",
"note": "Movement, DynamicMovement → starfield stand-in"
"note": "Movement, DynamicMovement → swirl stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Speeder 3K.avs",
"status": "fallback",
"note": "unportable scope code (init line 12: Unexpected character '¤') → tunnel stand-in"
"note": "unportable scope code (init line 12: Unexpected character '¤') → starfield stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - TC Plasma.avs",
"status": "fallback",
"note": "CustomBPM, DynamicMovement, FastBright → starfield stand-in"
"note": "CustomBPM, DynamicMovement, FastBright → ribbon stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Tie Tunnel SSC.avs",
"status": "fallback",
"note": "unportable scope code (init line 12: Unexpected character '¤') → pulse rings stand-in"
"note": "unportable scope code (init line 12: Unexpected character '¤') → helix stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD - Zero-G Maze II.avs",
"status": "fallback",
"note": "DynamicMovement → pulse rings stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD -Retrosquares.avs",
"status": "error",
"note": "Error: out of bytes"
"note": "DynamicMovement → swirl stand-in"
},
{
"file": "root/embedded/Amp Picks/UnConeD -Zero-G Maze III.avs",
"status": "fallback",
"note": "BlitterFeedback, Movement, DynamicMovement → starfield stand-in"
},
{
"file": "root/embedded/Amp Picks/Yathosho - microcosm 02.avs",
"status": "error",
"note": "Error: out of bytes"
"note": "BlitterFeedback, Movement, DynamicMovement → tunnel stand-in"
},
{
"file": "root/embedded/Amp Picks/amphirion - nebulous (skupers remix).avs",
"status": "fallback",
"note": "Water, UniqueTone, Interleave → kaleido stand-in"
"note": "Water, UniqueTone, Interleave → lattice stand-in"
},
{
"file": "root/embedded/Amp Picks/el-vis - soundscape III (skupers remix).avs",
"status": "fallback",
"note": "a trivial scope (the real work is movement/APE driven) → starfield stand-in"
"note": "a trivial scope (the real work is movement/APE driven) → kaleido stand-in"
},
{
"file": "root/embedded/Amp Picks/fck - checkers with metaballs (skupers remix).avs",
"status": "ported",
"note": "ok (59ms, n=500)"
"note": "ok (16ms, n=500)"
},
{
"file": "root/embedded/Amp Picks/horse-fly - jinx (skupers remix).avs",
"status": "fallback",
"note": "ColorClip, Simple, Mosaic → tunnel stand-in"
"note": "ColorClip, Simple, Mosaic → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/jheriko - not quite a bendy tunnel (skupers remix).avs",
"status": "fallback",
"note": "Interleave, DynamicMovement, effect#737 → pulse rings stand-in"
"note": "Interleave, DynamicMovement, effect#737 → lissajous stand-in"
},
{
"file": "root/embedded/Amp Picks/justin - newpoop (for wa5).avs",
"status": "fallback",
"note": "ColorModifier → swirl stand-in"
"note": "ColorModifier → orbits stand-in"
},
{
"file": "root/embedded/Amp Picks/justin - the landscape is killing me (wa5remix).avs",
"status": "fallback",
"note": "DynamicDistanceModifier, ColorModifier → swirl stand-in"
"note": "DynamicDistanceModifier, ColorModifier → rain stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Dragonscales.avs",
"status": "fallback",
"note": "CustomBPM, BufferSave, MovingParticle → lattice stand-in"
"note": "CustomBPM, BufferSave, MovingParticle → lissajous stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Encapsulade.avs",
"status": "fallback",
"note": "BufferSave, SetRenderMode, CustomBPM → pulse rings stand-in"
"note": "BufferSave, SetRenderMode, CustomBPM → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Freekwyrms.avs",
"status": "fallback",
"note": "BufferSave, SetRenderMode, MovingParticle → swirl stand-in"
"note": "BufferSave, SetRenderMode, MovingParticle → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Lilypod.avs",
"status": "fallback",
"note": "BufferSave, MovingParticle, 2.8+ Effect List Config → pulse rings stand-in"
"note": "BufferSave, MovingParticle, 2.8+ Effect List Config → fountain stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Mist Wisps.avs",
"status": "fallback",
"note": "CustomBPM, BufferSave, MovingParticle → pulse rings stand-in"
"note": "CustomBPM, BufferSave, MovingParticle → moire stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Nebulating - Hypercolorspace.avs",
"status": "fallback",
"note": "CustomBPM, BufferSave, Fadeout → swirl stand-in"
"note": "CustomBPM, BufferSave, Fadeout → moire stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Reverb - Deep Net.avs",
"status": "fallback",
"note": "CustomBPM, BufferSave, Fadeout → kaleido stand-in"
"note": "CustomBPM, BufferSave, Fadeout → lattice stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Slyde - Tri.avs",
"status": "fallback",
"note": "BufferSave, SetRenderMode, MovingParticle → swirl stand-in"
"note": "BufferSave, SetRenderMode, MovingParticle → lissajous stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Solar Flaire.avs",
"status": "fallback",
"note": "BufferSave, Fadeout, SetRenderMode → lattice stand-in"
"note": "BufferSave, Fadeout, SetRenderMode → spectrum bars stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Spintronics - Backspin.avs",
"status": "fallback",
"note": "2.8+ Effect List Config, Simple, SetRenderMode → kaleido stand-in"
"note": "2.8+ Effect List Config, Simple, SetRenderMode → fountain stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Starslappin.avs",
"status": "fallback",
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → swirl stand-in"
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → kaleido stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Street Art - Fire Inside.avs",
"status": "fallback",
"note": "BufferSave, Colorfade, Movement → swirl stand-in"
"note": "BufferSave, Colorfade, Movement → fountain stand-in"
},
{
"file": "root/embedded/Amp Picks/mig - Swoo - Slow.avs",
"status": "fallback",
"note": "CustomBPM, BufferSave, Movement → kaleido stand-in"
"note": "CustomBPM, BufferSave, Movement → ribbon stand-in"
},
{
"file": "root/embedded/Amp Picks/nixa - smell of music (skupers remix).avs",
"status": "fallback",
"note": "Mirror, DynamicMovement, Movement → lattice stand-in"
"note": "Mirror, DynamicMovement, Movement → web stand-in"
},
{
"file": "root/embedded/Amp Picks/p-k - bumpy.avs",
"status": "fallback",
"note": "CustomBPM, Color Map → pulse rings stand-in"
},
{
"file": "root/embedded/Amp Picks/skupers - chinook (exclusive version).avs",
"status": "error",
"note": "Error: out of bytes"
},
{
"file": "root/embedded/Amp Picks/splendora.avs",
"status": "fallback",
"note": "Grain, Simple, Movement → lattice stand-in"
},
{
"file": "root/embedded/Amp Picks/yathosho - fabric (skupers remix).avs",
"status": "error",
"note": "Error: out of bytes"
"note": "Grain, Simple, Movement → swirl stand-in"
},
{
"file": "root/embedded/Amp Picks/zxe-Urantia.avs",
"status": "fallback",
"note": "effect#326, \u0001, UniqueTone → kaleido stand-in"
"note": "effect#326, \u0001, UniqueTone → orbits stand-in"
},
{
"file": "root/embedded/Dynamics/01 dynamic duo - tentaclism (fake hboy rmx).avs",
"status": "fallback",
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → swirl stand-in"
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → starfield stand-in"
},
{
"file": "root/embedded/Dynamics/02 dynamic duo - tentaclism (sky of contempt mix by drew).avs",
"status": "fallback",
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → tunnel stand-in"
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → orbits stand-in"
},
{
"file": "root/embedded/Dynamics/03 dynamic duo - tentaclism (microdee's grandpa was a tentaclist).avs",
"status": "ported",
"note": "ok (16ms, n=40)"
"note": "ok (4ms, n=40)"
},
{
"file": "root/embedded/Dynamics/04 dynamic duo - tentaclism (cathode ray mix by onionring of doom).avs",
"status": "fallback",
"note": "unportable scope code (frame line 19: Expected ')' but found ';') → swirl stand-in"
"note": "unportable scope code (frame line 19: Expected ')' but found ';') → web stand-in"
},
{
"file": "root/embedded/Dynamics/05 dynamic duo - chromatics (glowy mix by meaningless-existance).avs",
"status": "ported",
"note": "ok (2ms, n=4)"
"status": "fallback",
"note": "a trivial scope (n=4; the real work is movement/APE driven) → tunnel stand-in"
},
{
"file": "root/embedded/Dynamics/06 dynamic duo - tentaclism (midas remix).avs",
"status": "fallback",
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → kaleido stand-in"
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → fountain stand-in"
},
{
"file": "root/embedded/Dynamics/07 dynamic duo - tentaclism (raz remix - ugly edit).avs",
"status": "fallback",
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → swirl stand-in"
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → spectrum bars stand-in"
},
{
"file": "root/embedded/Dynamics/08 dynamic duo - tentaclism (the y.m.o. rework #1).avs",
"status": "fallback",
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → pulse rings stand-in"
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → web stand-in"
},
{
"file": "root/embedded/Dynamics/09 dynamic duo - tentaclism (kans of kansis mix by drew - edit).avs",
"status": "fallback",
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → lattice stand-in"
"note": "unportable scope code (frame line 20: Expected ')' but found ';') → moire stand-in"
},
{
"file": "root/embedded/Envision/01 amphirion - the pacifist (duo's underworld mix).avs",
"status": "ported",
"note": "ok (32ms, n=4)"
"status": "fallback",
"note": "a trivial scope (n=4; the real work is movement/APE driven) → kaleido stand-in"
},
{
"file": "root/embedded/Envision/02 duo - biofeedback (hboy's organic mix).avs",
"status": "ported",
"note": "ok (4ms, n=50)"
},
{
"file": "root/embedded/Envision/03 zamuz - waterburn (duo's icy hot mix).avs",
"status": "error",
"note": "Error: out of bytes"
"note": "ok (2ms, n=50)"
},
{
"file": "root/embedded/Envision/04 zamuz - roll-on mojo (duo remix).avs",
"status": "fallback",
"note": "a trivial scope (the real work is movement/APE driven) → lattice stand-in"
"note": "a trivial scope (the real work is movement/APE driven) → swirl stand-in"
},
{
"file": "root/embedded/Envision/05 duo - cafe de duo (vanish's wicked jungle massive remix).avs",
"status": "fallback",
"note": "unportable scope code (frame line 19: Expected ')' but found ';') → starfield stand-in"
"note": "unportable scope code (frame line 19: Expected ')' but found ';') → kaleido stand-in"
},
{
"file": "root/embedded/Envision/06 skupers - incantation (duo remix - edit).avs",
"status": "ported",
"note": "ok (8ms, n=4)"
"status": "fallback",
"note": "a trivial scope (n=4; the real work is movement/APE driven) → kaleido stand-in"
},
{
"file": "root/embedded/Envision/07 duo - miraculous flow (nemo remix).avs",
"status": "fallback",
"note": "UniqueTone, DynamicMovement, FastBright → swirl stand-in"
"note": "UniqueTone, DynamicMovement, FastBright → ribbon stand-in"
},
{
"file": "root/embedded/Envision/08 duo - warm freeform (mykal remix).avs",
"status": "fallback",
"note": "a trivial scope (the real work is movement/APE driven) → starfield stand-in"
"note": "a trivial scope (the real work is movement/APE driven) → web stand-in"
},
{
"file": "root/embedded/Envision/09 zxe - pleasure point (duo remix).avs",
"status": "fallback",
"note": "a trivial scope (the real work is movement/APE driven) → pulse rings stand-in"
"note": "a trivial scope (the real work is movement/APE driven) → lissajous stand-in"
},
{
"file": "root/embedded/Envision/10 zamuz - heart dynamics (duo's high dose mix).avs",
"status": "fallback",
"note": "a trivial scope (the real work is movement/APE driven) → lattice stand-in"
"note": "a trivial scope (the real work is movement/APE driven) → ribbon stand-in"
},
{
"file": "root/embedded/Envision/11 nemo - we build here (duo's building blocks remix).avs",
"status": "fallback",
"note": "DynamicMovement, BufferSave, 2.8+ Effect List Config → lattice stand-in"
"note": "DynamicMovement, BufferSave, 2.8+ Effect List Config → moire stand-in"
},
{
"file": "root/embedded/Envision/12 duo & vanish - wickedjunglesmassive (yathosho's cartographic re-rub).avs",
"status": "fallback",
"note": "unportable scope code (frame line 19: Expected ')' but found ';') → pulse rings stand-in"
"note": "unportable scope code (frame line 19: Expected ')' but found ';') → moire stand-in"
},
{
"file": "root/embedded/Envision/13 skupers - why i love you (duo's pulsedriver remix).avs",
"status": "ported",
"note": "ok (1ms, n=10)"
"status": "fallback",
"note": "a trivial scope (n=10; the real work is movement/APE driven) → kaleido stand-in"
},
{
"file": "root/embedded/Envision/14 duo - conjuring sands (skupers remix - edit).avs",
"status": "ported",
"note": "ok (4ms, n=15)"
"status": "fallback",
"note": "a trivial scope (n=15; the real work is movement/APE driven) → lissajous stand-in"
},
{
"file": "root/embedded/Envision/15 tuggummi - multiple overdose (duo remix).avs",
"status": "ported",
"note": "ok (49ms, n=400)"
"note": "ok (28ms, n=400)"
},
{
"file": "root/embedded/Envision/16 duo - warm freeform (ya-tho-sho treatment).avs",
"status": "fallback",
"note": "a trivial scope (the real work is movement/APE driven) → swirl stand-in"
"note": "a trivial scope (the real work is movement/APE driven) → pulse rings stand-in"
}
]

View file

@ -1,25 +1,27 @@
name: "Retrowall (Yathosho's Supermicrocosm)"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.843
linewidth: 2.178
[init]
n = 1100
rings = 7
n = rings * 103
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * (0.344 + bass_att * 0.6)
hue = hue + dt * 0.112
squash = 0.315 + 0.25 * sin(t * 0.205)
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
ring = floor(i * rings)
ri3 = frac(i * rings)
r0 = 0.16 + ring * 0.142
a = ri3 * 6.28318 + t * (1.2 - ring * 0.18) + ring * 2.4
x = sin(a) * r0 * (1 + bass * 0.18) / aspect
y = cos(a) * r0 * squash
sat = frac(ri3 * 5)
size = if(below(sat, 0.14), 3 + bass * 3, 1)
red = 0.25 + bass * 0.5 + ring * 0.07 * (0.45 + 0.55 * sin(hue * 6.28318 + ring * 1.3))
green = 0.25 + bass * 0.5 + ring * 0.07 * (0.45 + 0.55 * sin(hue * 6.28318 + ring * 1.3 + 2.09))
blue = 0.25 + bass * 0.5 + ring * 0.07 * (0.45 + 0.55 * sin(hue * 6.28318 + ring * 1.3 + 4.19))

View file

@ -1,25 +1,24 @@
name: "Adrealine rush"
mode: dots
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.826
linewidth: 1.803
[init]
n = 850
n = 1287
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
t = t + dt * 0.304
hue = hue + dt * 0.11
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * 2.681 + w * 5.047 + t) * 3.14159) * sin((u * 6.682 - w * 2.465 - t * 0.7) * 3.14159)
x = u * 0.907 / aspect
y = w * 0.875
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
red = lum * 0.3
green = lum * 0.65
blue = min(1, lum * 1.3)
size = 1 + abs(m) * 3.025

View file

@ -1,29 +1,24 @@
name: "Alien Heart"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.897
linewidth: 1.95
[init]
n = 720
n = 1015
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * (0.377 + bass_att * 1.5)
hue = hue + dt * 0.038
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
ring = floor(i * 29)
ri2 = frac(i * 29)
z = frac(ring / 29 + t)
rad = 0.05 + z * 0.917
a = ri2 * 6.28318 + ring * 0.423 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.656) / aspect
y = cos(a) * rad * (0.55 + sv * 0.656)
red = (1 - z) * (0.3 + bass * 0.7) * abs(sin(z * 4.256))
green = (1 - z) * (0.3 + bass * 0.7) * 0.22
blue = (1 - z) * (0.3 + bass * 0.7) * abs(cos(z * 4.256))

View file

@ -1,25 +1,31 @@
name: "Brainstorm"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.859
linewidth: 2.309
[init]
n = 1100
segs = 6
n = 584
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
rot = rot + dt * (0.093 + mid_att * 0.5)
hue = hue + dt * 0.084
flash = flash * 0.85
[beat]
flash = 1
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 9 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + amp * 1.3 * 0.85
green = 0.3 + amp * 1.3 * 0.92
blue = 0.3 + amp * 1.3
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,25 +1,25 @@
name: "Molecules (S_KuPeRS Remix)"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.88
linewidth: 1.388
[init]
n = 850
n = 1119
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
t = t + dt * (0.211 + bass_att * 1.8)
hue = hue + dt * 0.042 + beat * 0.012
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
arm = floor(i * 3)
fa = frac(i * 3)
d = fa
ang = arm * 1.551 + d * 1.047 * 3.14159 + t
rad = (0.04 + pow(d, 1.714) * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + mid) * abs(sin(d * 2.325))
green = (0.3 + 0.7 * d) * (0.3 + mid) * 0.22
blue = (0.3 + 0.7 * d) * (0.3 + mid) * abs(cos(d * 2.325))
skip = if(below(fa, 0.04), 1, 0)

View file

@ -1,29 +1,22 @@
name: "Take the Veil"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.895
linewidth: 1.78
[init]
cols = 36
n = cols * cols
n = 674
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * 0.275
hue = hue + dt * 0.052
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
ph = i * 6.28318 * 1.521
fa = 3 + mid * 0.35
fb = 6 + bass * 0.45
x = sin(ph * fa + t) * (0.5 + bass * 0.3) / aspect
y = sin(ph * fb + t * 1.3 + 0.957) * (0.5 + treb * 0.35)
red = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * (0.25 + bass * 0.95)
green = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * (0.25 + mid * 0.95)
blue = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * (0.25 + treb * 0.95)

View file

@ -1,25 +1,30 @@
name: "...hidden track..."
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.805
linewidth: 2.555
[init]
n = 850
n = 205
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
hue = hue + dt * 0.045 + beat * 0.01
travel = travel + dt * (0.253 + bass_att * 1.4)
flash = flash * 0.86
[beat]
flash = 1
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
g = floor(i * 5)
gi = frac(i * 5)
ph = frac(rand(g * 5.1 + 1) + travel * (0.55 + rand(g + 17) * 0.85))
a = gi * 6.28318
rad = ph * (0.232 + bass * 0.659 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
fade = sin(ph * 3.14159)
red = min(1, fade * (0.35 + flash * 0.4) * 1.3)
green = fade * (0.35 + flash * 0.4) * 0.5
blue = fade * (0.35 + flash * 0.4) * 0.12
skip = if(above(ph, 0.96), 1, 0)

View file

@ -1,29 +1,27 @@
name: "Arctic Rainbow"
mode: dots
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.789
linewidth: 1.877
[init]
cols = 36
n = cols * cols
cols = 48
n = 918
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
fall = fall + dt * (0.855 + vol_att * 1.119)
hue = hue + dt * 0.034
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
col = floor(i * cols)
ci = frac(i * cols)
xx = (col / cols - 0.5) * 1.9
yf = frac(rand(col * 3.7 + 1) + fall * (0.55 + rand(col + 5) * 0.5))
tail = rand(col * 1.3 + 9) * 0.297 + 0.04
yy = (yf * 2 - 1) * 1.05 + ci * tail
x = xx / aspect
y = yy
red = (1 - ci) * (0.2 + treb * 0.85) + 0.04 * 0.85
green = (1 - ci) * (0.2 + treb * 0.85) + 0.04 * 0.92
blue = (1 - ci) * (0.2 + treb * 0.85) + 0.04
skip = if(above(abs(yy), 1.02), 1, 0)

View file

@ -1,29 +1,27 @@
name: "Chinook"
mode: lines
mode: dots
blend: additive
persist: 0.88
linewidth: 2
persist: 0.831
linewidth: 2.299
[init]
n = 720
bars = 30
n = bars * 9
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
rot = rot + dt * (0.07 + mid * 0.3)
hue = hue + dt * 0.106
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.893
a = bar * 6.28318 / bars + rot
rad = 0.142 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = 0.25 + bi * 0.75 * 0.3
green = 0.25 + bi * 0.75 * 0.65
blue = min(1, 0.25 + bi * 0.75 * 1.3)
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,25 +1,28 @@
name: "Hexual Healing"
mode: dots
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.785
linewidth: 2.432
[init]
n = 850
cols = 34
n = cols * cols
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
rot = rot + dt * (0.072 + mid * 0.4)
hue = hue + dt * 0.062
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.506
ux = (cx - 0.5) * 1.674
uy = (cy - 0.5) * 1.674
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
red = min(1, 0.22 + h * 2.2 * 1.3)
green = 0.22 + h * 2.2 * 0.5
blue = 0.22 + h * 2.2 * 0.12
size = 1.2 + h * 5

View file

@ -1,31 +1,30 @@
name: "Inverse Kinetics"
mode: lines
mode: dots
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.805
linewidth: 2.613
[init]
n = 560
segs = 8
n = 817
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
tt = tt + dt * (0.5 + bass_att * 1.1)
hue = hue + dt * 0.103
burst = burst * 0.9
[beat]
flash = 1
burst = 1
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
jet = floor(i * 2)
life = frac(rand(i * 7.7 + jet) + tt * (0.35 + rand(i + 3) * 0.65))
a = jet * 6.28318 / 2 + rand(i * 5.1 + jet) * 0.736
spd = 0.4 + rand(i * 9.2 + jet) * 0.8
px = cos(a) * spd * life
py = sin(a) * spd * life - 1.2 * life * life
x = px * (0.85 + bass * 0.35) / aspect
y = py
red = max(0, 1 - life) * (0.35 + burst * 0.55) * abs(sin(life * 4))
green = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.22
blue = max(0, 1 - life) * (0.35 + burst * 0.55) * abs(cos(life * 4))
skip = if(above(life, 0.94), 1, 0)

View file

@ -1,25 +1,27 @@
name: "Kingish"
mode: dots
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.813
linewidth: 2.025
[init]
n = 850
spokes = 27
n = spokes * 22
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
rot = rot + dt * (0.102 + mid * 0.4)
t = t + dt * 2.987
hue = hue + dt * 0.075
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
sp = floor(i * spokes)
si = frac(i * spokes)
a = sp * 6.28318 / spokes + rot
wave = sin(si * 2 * 3.14159 - t) * (0.03 + bass * 0.28)
rad = 0.12 + si * 0.92 + wave
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
red = (1 - si) * 0.45 + 0.15 + sv * 0.55 * abs(sin(sp * 0.4))
green = (1 - si) * 0.45 + 0.15 + sv * 0.55 * 0.22
blue = (1 - si) * 0.45 + 0.15 + sv * 0.55 * abs(cos(sp * 0.4))
skip = if(above(si, 0.985), 1, 0)

View file

@ -1,25 +1,23 @@
name: "Spirit Realm (Degnic's Plasmoid RMX)"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.885
linewidth: 2.389
[init]
n = 1100
n = 1199
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * (0.344 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.085
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
a = i * 6.28318 * 2
wob = sin(a * 3 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.422 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5))
green = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5 + 2.09))
blue = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5 + 4.19))

View file

@ -1,25 +1,26 @@
name: "Upward Current"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.914
linewidth: 1.629
[init]
n = 900
n = 869
[frame]
t = t + dt * (0.25 + bass_att * 1.5)
hue = hue + dt * 0.1
t = t + dt * (0.134 + mid * 0.5)
hue = hue + dt * 0.122
flash = flash * 0.87
[beat]
flash = 1
[point]
ring = floor(i * 24)
ri = frac(i * 24)
z = frac(ring / 24 + t)
rad = 0.06 + z * 0.9
a = ri * 6.28318 + ring * 0.35 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.9) / aspect
y = cos(a) * rad * (0.55 + sv * 0.9)
f = (1 - z) * (0.35 + bass * 0.65)
red = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4))
green = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 2.09))
blue = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 4.19))
th = i * 6.28318 * 2 + t
r = abs(cos(2 * th + bass * 0.656))
rad = r * (0.5 + bass * 0.3 + sv * 0.2 + flash * 0.08)
x = sin(th) * rad / aspect
y = cos(th) * rad
red = 0.25 + 0.65 * r + v * 0.25 * abs(sin(th * 0.5))
green = 0.25 + 0.65 * r + v * 0.25 * 0.22
blue = 0.25 + 0.65 * r + v * 0.25 * abs(cos(th * 0.5))

View file

@ -1,25 +1,25 @@
name: "Aqua-fumes"
mode: dots
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.787
linewidth: 2.043
[init]
n = 850
n = 966
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
travel = travel + dt * (0.347 + vol_att * 1.816)
hue = hue + dt * 0.076
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
rad = z * z * 1.075
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
red = tw * abs(sin(i * 3.959))
green = tw * 0.22
blue = tw * abs(cos(i * 3.959))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)

View file

@ -1,25 +1,28 @@
name: "Club Seizure (color enhanced mix)"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.864
linewidth: 2.379
[init]
n = 1100
n = 946
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * (0.322 + bass_att * 0.9)
hue = hue + dt * 0.089
flash = flash * 0.86
[beat]
flash = 1
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
st = floor(i * 2)
si = frac(i * 2)
s = si * 6 * 6.28318 + t
ph = st * 3.14159
rad = (0.28 + bass * 0.32 + flash * 0.06) * (0.55 + 0.45 * (cos(s + ph) * 0.5 + 0.5))
x = sin(s + ph) * rad / aspect
y = (si - 0.5) * 1.8
red = 0.25 + 0.55 * (cos(s + ph) * 0.5 + 0.5) + treb * 0.25 * (0.45 + 0.55 * sin(hue * 6.28318 + s * 0.3))
green = 0.25 + 0.55 * (cos(s + ph) * 0.5 + 0.5) + treb * 0.25 * (0.45 + 0.55 * sin(hue * 6.28318 + s * 0.3 + 2.09))
blue = 0.25 + 0.55 * (cos(s + ph) * 0.5 + 0.5) + treb * 0.25 * (0.45 + 0.55 * sin(hue * 6.28318 + s * 0.3 + 4.19))

View file

@ -1,29 +1,31 @@
name: "Electro blobs"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.866
linewidth: 1.536
[init]
cols = 36
n = cols * cols
segs = 12
n = 616
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
rot = rot + dt * (0.085 + mid_att * 0.5)
hue = hue + dt * 0.131
flash = flash * 0.85
[beat]
flash = 1
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 5 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + amp * 1.3 * 0.85
green = 0.3 + amp * 1.3 * 0.92
blue = 0.3 + amp * 1.3
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,29 +1,23 @@
name: "Kaleidofied"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.885
linewidth: 1.542
[init]
n = 720
n = 1126
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * (0.589 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
a = i * 6.28318 * 1
wob = sin(a * 3 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.232 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5))
green = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5 + 2.09))
blue = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5 + 4.19))

View file

@ -1,25 +1,27 @@
name: "Magma Flow II"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.804
linewidth: 2.633
[init]
n = 1100
rings = 3
n = rings * 104
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * (0.258 + bass_att * 0.6)
hue = hue + dt * 0.036
squash = 0.387 + 0.25 * sin(t * 0.203)
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
ring = floor(i * rings)
ri3 = frac(i * rings)
r0 = 0.16 + ring * 0.148
a = ri3 * 6.28318 + t * (1.2 - ring * 0.18) + ring * 2.4
x = sin(a) * r0 * (1 + bass * 0.18) / aspect
y = cos(a) * r0 * squash
sat = frac(ri3 * 5)
size = if(below(sat, 0.14), 3 + bass * 3, 1)
red = 0.25 + bass * 0.5 + ring * 0.07 * abs(sin(ring * 1.3))
green = 0.25 + bass * 0.5 + ring * 0.07 * 0.22
blue = 0.25 + bass * 0.5 + ring * 0.07 * abs(cos(ring * 1.3))

View file

@ -1,31 +1,27 @@
name: "Multiple Orgasms"
mode: lines
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.873
linewidth: 1.6
[init]
n = 560
segs = 8
spokes = 30
n = spokes * 33
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
[beat]
flash = 1
rot = rot + dt * (0.106 + mid * 0.4)
t = t + dt * 2.164
hue = hue + dt * 0.106
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
sp = floor(i * spokes)
si = frac(i * spokes)
a = sp * 6.28318 / spokes + rot
wave = sin(si * 4 * 3.14159 - t) * (0.03 + bass * 0.28)
rad = 0.12 + si * 0.919 + wave
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
red = (1 - si) * 0.45 + 0.15 + sv * 0.55 * (0.45 + 0.55 * sin(hue * 6.28318 + sp * 0.4))
green = (1 - si) * 0.45 + 0.15 + sv * 0.55 * (0.45 + 0.55 * sin(hue * 6.28318 + sp * 0.4 + 2.09))
blue = (1 - si) * 0.45 + 0.15 + sv * 0.55 * (0.45 + 0.55 * sin(hue * 6.28318 + sp * 0.4 + 4.19))
skip = if(above(si, 0.985), 1, 0)

View file

@ -1,31 +1,25 @@
name: "Pina Colada"
mode: lines
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.887
linewidth: 1.779
[init]
n = 560
segs = 8
n = 943
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
[beat]
flash = 1
t = t + dt * (0.219 + bass_att * 1.8)
hue = hue + dt * 0.098 + beat * 0.012
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
arm = floor(i * 8)
fa = frac(i * 8)
d = fa
ang = arm * 1.519 + d * 1.263 * 3.14159 + t
rad = (0.04 + pow(d, 2.354) * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + mid) * (0.25 + bass * 0.95)
green = (0.3 + 0.7 * d) * (0.3 + mid) * (0.25 + mid * 0.95)
blue = (0.3 + 0.7 * d) * (0.3 + mid) * (0.25 + treb * 0.95)
skip = if(below(fa, 0.04), 1, 0)

View file

@ -1,29 +1,31 @@
name: "Scope in Spotlight II"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.854
linewidth: 2.056
[init]
n = 720
segs = 7
n = 462
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
rot = rot + dt * (0.107 + mid_att * 0.5)
hue = hue + dt * 0.035
flash = flash * 0.85
[beat]
flash = 1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 4 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = min(1, 0.3 + amp * 1.3 * 1.3)
green = 0.3 + amp * 1.3 * 0.5
blue = 0.3 + amp * 1.3 * 0.12
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,25 +1,27 @@
name: "Solero Shots"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.878
linewidth: 2.226
[init]
n = 850
bars = 40
n = bars * 12
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
rot = rot + dt * (0.078 + mid * 0.3)
hue = hue + dt * 0.032
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.813
a = bar * 6.28318 / bars + rot
rad = 0.218 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
red = 0.25 + bi * 0.75 * 0.3
green = 0.25 + bi * 0.75 * 0.65
blue = min(1, 0.25 + bi * 0.75 * 1.3)
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,31 +1,24 @@
name: "Square Minded"
mode: lines
mode: dots
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.783
linewidth: 2.696
[init]
n = 560
segs = 8
n = 1492
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
[beat]
flash = 1
t = t + dt * 0.656
hue = hue + dt * 0.13
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * 3.356 + w * 3.959 + t) * 3.14159) * sin((u * 3.01 - w * 6.626 - t * 0.7) * 3.14159)
x = u * 0.994 / aspect
y = w * 0.856
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
red = lum * 0.85
green = lum * 0.92
blue = lum
size = 1 + abs(m) * 3.211

View file

@ -1,25 +1,23 @@
name: "Worm-O-Rama (Raz Remix)"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.894
linewidth: 1.933
[init]
n = 900
n = 1189
[frame]
t = t + dt * (0.25 + bass_att * 1.5)
hue = hue + dt * 0.1
t = t + dt * (0.418 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.102
[point]
ring = floor(i * 24)
ri = frac(i * 24)
z = frac(ring / 24 + t)
rad = 0.06 + z * 0.9
a = ri * 6.28318 + ring * 0.35 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.9) / aspect
y = cos(a) * rad * (0.55 + sv * 0.9)
f = (1 - z) * (0.35 + bass * 0.65)
red = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4))
green = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 2.09))
blue = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 4.19))
a = i * 6.28318 * 3
wob = sin(a * 3 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.282 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + abs(v) * 1.2 * (0.25 + bass * 0.95)
green = 0.3 + abs(v) * 1.2 * (0.25 + mid * 0.95)
blue = 0.3 + abs(v) * 1.2 * (0.25 + treb * 0.95)

View file

@ -1,25 +1,27 @@
name: "Cartoon Trip"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.831
linewidth: 2.55
[init]
n = 850
bars = 39
n = bars * 9
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
rot = rot + dt * (0.116 + mid * 0.3)
hue = hue + dt * 0.112
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.83
a = bar * 6.28318 / bars + rot
rad = 0.189 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
red = 0.25 + bi * 0.75 * 0.85
green = 0.25 + bi * 0.75 * 0.92
blue = 0.25 + bi * 0.75
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,29 +1,23 @@
name: "Containment"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.935
linewidth: 1.8
[init]
cols = 36
n = cols * cols
n = 847
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * (0.436 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.071
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
a = i * 6.28318 * 2
wob = sin(a * 2 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.25 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
red = min(1, 0.3 + abs(v) * 1.2 * 1.3)
green = 0.3 + abs(v) * 1.2 * 0.5
blue = 0.3 + abs(v) * 1.2 * 0.12

View file

@ -1,29 +1,30 @@
name: "Jello Cube"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.813
linewidth: 2.201
[init]
n = 720
n = 620
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
hue = hue + dt * 0.073 + beat * 0.01
travel = travel + dt * (0.196 + bass_att * 1.4)
flash = flash * 0.86
[beat]
flash = 1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
g = floor(i * 10)
gi = frac(i * 10)
ph = frac(rand(g * 5.1 + 1) + travel * (0.55 + rand(g + 17) * 0.85))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
rad = ph * (0.226 + bass * 0.743 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = fade * (0.35 + flash * 0.4) * abs(sin(g * 0.7))
green = fade * (0.35 + flash * 0.4) * 0.22
blue = fade * (0.35 + flash * 0.4) * abs(cos(g * 0.7))
skip = if(above(ph, 0.96), 1, 0)

View file

@ -1,29 +1,23 @@
name: "Mercury"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.888
linewidth: 1.97
[init]
n = 720
n = 1109
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * (0.329 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.097
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
a = i * 6.28318 * 3
wob = sin(a * 6 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.31 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = 0.3 + abs(v) * 1.2 * 0.3
green = 0.3 + abs(v) * 1.2 * 0.65
blue = min(1, 0.3 + abs(v) * 1.2 * 1.3)

View file

@ -1,25 +1,27 @@
name: "Neon Coaster"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.897
linewidth: 2.488
[init]
n = 1100
bars = 33
n = bars * 12
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
rot = rot + dt * (0.092 + mid * 0.3)
hue = hue + dt * 0.066
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.765
a = bar * 6.28318 / bars + rot
rad = 0.193 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
red = min(1, 0.25 + bi * 0.75 * 1.3)
green = 0.25 + bi * 0.75 * 0.5
blue = 0.25 + bi * 0.75 * 0.12
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,25 +1,30 @@
name: "Plankton"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.83
linewidth: 2.37
[init]
n = 1100
n = 627
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
hue = hue + dt * 0.033 + beat * 0.01
travel = travel + dt * (0.435 + bass_att * 1.4)
flash = flash * 0.86
[beat]
flash = 1
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
g = floor(i * 11)
gi = frac(i * 11)
ph = frac(rand(g * 5.1 + 1) + travel * (0.55 + rand(g + 17) * 0.85))
a = gi * 6.28318
rad = ph * (0.194 + bass * 0.352 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = min(1, fade * (0.35 + flash * 0.4) * 1.3)
green = fade * (0.35 + flash * 0.4) * 0.5
blue = fade * (0.35 + flash * 0.4) * 0.12
skip = if(above(ph, 0.96), 1, 0)

View file

@ -1,25 +1,25 @@
name: "Reflectocube"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.91
linewidth: 1.419
[init]
n = 850
n = 1235
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
t = t + dt * (0.31 + bass_att * 1.8)
hue = hue + dt * 0.065 + beat * 0.012
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
arm = floor(i * 4)
fa = frac(i * 4)
d = fa
ang = arm * 1.405 + d * 0.906 * 3.14159 + t
rad = (0.04 + pow(d, 1.825) * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + mid) * (0.45 + 0.55 * sin(hue * 6.28318 + d * 4.537))
green = (0.3 + 0.7 * d) * (0.3 + mid) * (0.45 + 0.55 * sin(hue * 6.28318 + d * 4.537 + 2.09))
blue = (0.3 + 0.7 * d) * (0.3 + mid) * (0.45 + 0.55 * sin(hue * 6.28318 + d * 4.537 + 4.19))
skip = if(below(fa, 0.04), 1, 0)

View file

@ -1,25 +1,25 @@
name: "Speeder 3K"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.831
linewidth: 2.272
[init]
n = 900
n = 949
[frame]
t = t + dt * (0.25 + bass_att * 1.5)
hue = hue + dt * 0.1
travel = travel + dt * (0.156 + vol_att * 1.231)
hue = hue + dt * 0.04
[point]
ring = floor(i * 24)
ri = frac(i * 24)
z = frac(ring / 24 + t)
rad = 0.06 + z * 0.9
a = ri * 6.28318 + ring * 0.35 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.9) / aspect
y = cos(a) * rad * (0.55 + sv * 0.9)
f = (1 - z) * (0.35 + bass * 0.65)
red = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4))
green = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 2.09))
blue = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 4.19))
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.206
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = min(1, tw * 1.3)
green = tw * 0.5
blue = tw * 0.12
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)

View file

@ -1,25 +1,23 @@
name: "TC Plasma"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.932
linewidth: 1.976
[init]
n = 850
n = 1072
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
t = t + dt * (0.432 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.076
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
a = i * 6.28318 * 3
wob = sin(a * 4 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.223 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
red = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5))
green = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5 + 2.09))
blue = 0.3 + abs(v) * 1.2 * (0.45 + 0.55 * sin(hue * 6.28318 + a * 0.5 + 4.19))

View file

@ -1,29 +1,28 @@
name: "Tie Tunnel SSC"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.851
linewidth: 2.021
[init]
n = 720
n = 1179
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
t = t + dt * (0.17 + bass_att * 0.9)
hue = hue + dt * 0.129
flash = flash * 0.86
[beat]
flash = 1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
st = floor(i * 2)
si = frac(i * 2)
s = si * 6 * 6.28318 + t
ph = st * 3.14159
rad = (0.28 + bass * 0.32 + flash * 0.06) * (0.55 + 0.45 * (cos(s + ph) * 0.5 + 0.5))
x = sin(s + ph) * rad / aspect
y = (si - 0.5) * 1.8
red = min(1, 0.25 + 0.55 * (cos(s + ph) * 0.5 + 0.5) + treb * 0.25 * 1.3)
green = 0.25 + 0.55 * (cos(s + ph) * 0.5 + 0.5) + treb * 0.25 * 0.5
blue = 0.25 + 0.55 * (cos(s + ph) * 0.5 + 0.5) + treb * 0.25 * 0.12

View file

@ -1,29 +1,25 @@
name: "Zero-G Maze II"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.916
linewidth: 1.457
[init]
n = 720
n = 1049
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * (0.267 + bass_att * 1.8)
hue = hue + dt * 0.038 + beat * 0.012
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
arm = floor(i * 7)
fa = frac(i * 7)
d = fa
ang = arm * 1.253 + d * 0.88 * 3.14159 + t
rad = (0.04 + pow(d, 2.401) * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + mid) * (0.45 + 0.55 * sin(hue * 6.28318 + d * 2.064))
green = (0.3 + 0.7 * d) * (0.3 + mid) * (0.45 + 0.55 * sin(hue * 6.28318 + d * 2.064 + 2.09))
blue = (0.3 + 0.7 * d) * (0.3 + mid) * (0.45 + 0.55 * sin(hue * 6.28318 + d * 2.064 + 4.19))
skip = if(below(fa, 0.04), 1, 0)

View file

@ -1,25 +1,24 @@
name: "UnConeD -Zero-G Maze III"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.853
linewidth: 1.507
[init]
n = 850
n = 722
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
t = t + dt * (0.243 + bass_att * 1.5)
hue = hue + dt * 0.093
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
ring = floor(i * 19)
ri2 = frac(i * 19)
z = frac(ring / 19 + t)
rad = 0.05 + z * 0.881
a = ri2 * 6.28318 + ring * 0.16 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.901) / aspect
y = cos(a) * rad * (0.55 + sv * 0.901)
red = (1 - z) * (0.3 + bass * 0.7) * 0.3
green = (1 - z) * (0.3 + bass * 0.7) * 0.65
blue = min(1, (1 - z) * (0.3 + bass * 0.7) * 1.3)

View file

@ -1,31 +1,28 @@
name: "nebulous (skupers remix)"
mode: lines
mode: dots
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.833
linewidth: 2.862
[init]
n = 560
segs = 8
cols = 28
n = cols * cols
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
[beat]
flash = 1
rot = rot + dt * (0.104 + mid * 0.4)
hue = hue + dt * 0.08
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.235
ux = (cx - 0.5) * 1.448
uy = (cy - 0.5) * 1.448
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
red = 0.22 + h * 2.2 * (0.45 + 0.55 * sin(hue * 6.28318 + cx * 3.774))
green = 0.22 + h * 2.2 * (0.45 + 0.55 * sin(hue * 6.28318 + cx * 3.774 + 2.09))
blue = 0.22 + h * 2.2 * (0.45 + 0.55 * sin(hue * 6.28318 + cx * 3.774 + 4.19))
size = 1.2 + h * 5

View file

@ -1,25 +1,31 @@
name: "soundscape III (skupers remix)"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.851
linewidth: 1.939
[init]
n = 850
segs = 14
n = 582
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
rot = rot + dt * (0.13 + mid_att * 0.5)
hue = hue + dt * 0.073
flash = flash * 0.85
[beat]
flash = 1
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 4 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
red = 0.3 + amp * 1.3 * abs(sin(seg * 0.8))
green = 0.3 + amp * 1.3 * 0.22
blue = 0.3 + amp * 1.3 * abs(cos(seg * 0.8))
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,25 +1,27 @@
name: "jinx (skupers remix)"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.814
linewidth: 1.769
[init]
n = 900
bars = 46
n = bars * 12
[frame]
t = t + dt * (0.25 + bass_att * 1.5)
hue = hue + dt * 0.1
rot = rot + dt * (0.046 + mid * 0.3)
hue = hue + dt * 0.043
[point]
ring = floor(i * 24)
ri = frac(i * 24)
z = frac(ring / 24 + t)
rad = 0.06 + z * 0.9
a = ri * 6.28318 + ring * 0.35 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.9) / aspect
y = cos(a) * rad * (0.55 + sv * 0.9)
f = (1 - z) * (0.35 + bass * 0.65)
red = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4))
green = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 2.09))
blue = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 4.19))
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.65
a = bar * 6.28318 / bars + rot
rad = 0.246 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.25 + bi * 0.75 * abs(sin(bar * 6.28318 / bars))
green = 0.25 + bi * 0.75 * 0.22
blue = 0.25 + bi * 0.75 * abs(cos(bar * 6.28318 / bars))
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,29 +1,22 @@
name: "not quite a bendy tunnel (skupers remix)"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.862
linewidth: 1.443
[init]
n = 720
n = 806
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * 0.276
hue = hue + dt * 0.055
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
ph = i * 6.28318 * 1.699
fa = 2 + mid * 0.35
fb = 3 + bass * 0.45
x = sin(ph * fa + t) * (0.5 + bass * 0.3) / aspect
y = sin(ph * fb + t * 1.3 + 2.216) * (0.5 + treb * 0.35)
red = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 0.3
green = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 0.65
blue = min(1, 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 1.3)

View file

@ -1,25 +1,27 @@
name: "newpoop (for wa5)"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.796
linewidth: 2.44
[init]
n = 1100
rings = 4
n = rings * 98
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * (0.176 + bass_att * 0.6)
hue = hue + dt * 0.135
squash = 0.549 + 0.25 * sin(t * 0.439)
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
ring = floor(i * rings)
ri3 = frac(i * rings)
r0 = 0.16 + ring * 0.12
a = ri3 * 6.28318 + t * (1.2 - ring * 0.18) + ring * 2.4
x = sin(a) * r0 * (1 + bass * 0.18) / aspect
y = cos(a) * r0 * squash
sat = frac(ri3 * 5)
size = if(below(sat, 0.14), 3 + bass * 3, 1)
red = min(1, 0.25 + bass * 0.5 + ring * 0.07 * 1.3)
green = 0.25 + bass * 0.5 + ring * 0.07 * 0.5
blue = 0.25 + bass * 0.5 + ring * 0.07 * 0.12

View file

@ -1,25 +1,27 @@
name: "the landscape is killing me (wa5remix)"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.704
linewidth: 2.586
[init]
n = 1100
cols = 54
n = 1193
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
fall = fall + dt * (0.514 + vol_att * 0.841)
hue = hue + dt * 0.071
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
col = floor(i * cols)
ci = frac(i * cols)
xx = (col / cols - 0.5) * 1.9
yf = frac(rand(col * 3.7 + 1) + fall * (0.55 + rand(col + 5) * 0.5))
tail = rand(col * 1.3 + 9) * 0.31 + 0.04
yy = (yf * 2 - 1) * 1.05 + ci * tail
x = xx / aspect
y = yy
red = (1 - ci) * (0.2 + treb * 0.85) + 0.04 * (0.45 + 0.55 * sin(hue * 6.28318 + col * 0.3))
green = (1 - ci) * (0.2 + treb * 0.85) + 0.04 * (0.45 + 0.55 * sin(hue * 6.28318 + col * 0.3 + 2.09))
blue = (1 - ci) * (0.2 + treb * 0.85) + 0.04 * (0.45 + 0.55 * sin(hue * 6.28318 + col * 0.3 + 4.19))
skip = if(above(abs(yy), 1.02), 1, 0)

View file

@ -1,29 +1,22 @@
name: "Dragonscales"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.885
linewidth: 2.375
[init]
cols = 36
n = cols * cols
n = 938
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * 0.353
hue = hue + dt * 0.094
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
ph = i * 6.28318 * 2.096
fa = 2 + mid * 0.35
fb = 3 + bass * 0.45
x = sin(ph * fa + t) * (0.5 + bass * 0.3) / aspect
y = sin(ph * fb + t * 1.3 + 2.866) * (0.5 + treb * 0.35)
red = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * (0.25 + bass * 0.95)
green = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * (0.25 + mid * 0.95)
blue = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * (0.25 + treb * 0.95)

View file

@ -1,29 +1,27 @@
name: "Encapsulade"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.814
linewidth: 2.058
[init]
n = 720
bars = 64
n = bars * 9
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
rot = rot + dt * (0.103 + mid * 0.3)
hue = hue + dt * 0.072
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.85
a = bar * 6.28318 / bars + rot
rad = 0.262 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars))
green = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars + 2.09))
blue = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars + 4.19))
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,25 +1,27 @@
name: "Freekwyrms"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.864
linewidth: 1.436
[init]
n = 1100
bars = 46
n = bars * 12
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
rot = rot + dt * (0.09 + mid * 0.3)
hue = hue + dt * 0.063
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.722
a = bar * 6.28318 / bars + rot
rad = 0.216 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
red = min(1, 0.25 + bi * 0.75 * 1.3)
green = 0.25 + bi * 0.75 * 0.5
blue = 0.25 + bi * 0.75 * 0.12
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,29 +1,30 @@
name: "Lilypod"
mode: lines
mode: dots
blend: additive
persist: 0.88
linewidth: 2
persist: 0.787
linewidth: 1.928
[init]
n = 720
n = 885
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
tt = tt + dt * (0.5 + bass_att * 1.1)
hue = hue + dt * 0.04
burst = burst * 0.9
[beat]
flash = 1
burst = 1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
jet = floor(i * 4)
life = frac(rand(i * 7.7 + jet) + tt * (0.35 + rand(i + 3) * 0.65))
a = jet * 6.28318 / 4 + rand(i * 5.1 + jet) * 0.722
spd = 0.4 + rand(i * 9.2 + jet) * 0.8
px = cos(a) * spd * life
py = sin(a) * spd * life - 0.744 * life * life
x = px * (0.85 + bass * 0.35) / aspect
y = py
red = max(0, 1 - life) * (0.35 + burst * 0.55) * abs(sin(life * 4))
green = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.22
blue = max(0, 1 - life) * (0.35 + burst * 0.55) * abs(cos(life * 4))
skip = if(above(life, 0.94), 1, 0)

View file

@ -1,29 +1,24 @@
name: "Mist Wisps"
mode: lines
mode: dots
blend: additive
persist: 0.88
linewidth: 2
persist: 0.758
linewidth: 2.24
[init]
n = 720
n = 1297
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * 0.323
hue = hue + dt * 0.1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * 2.207 + w * 6.547 + t) * 3.14159) * sin((u * 5.739 - w * 2.319 - t * 0.7) * 3.14159)
x = u * 0.85 / aspect
y = w * 0.957
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
red = lum * (0.25 + bass * 0.95)
green = lum * (0.25 + mid * 0.95)
blue = lum * (0.25 + treb * 0.95)
size = 1 + abs(m) * 3.505

View file

@ -1,25 +1,24 @@
name: "Nebulating - Hypercolorspace"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.792
linewidth: 2.678
[init]
n = 1100
n = 1374
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * 0.423
hue = hue + dt * 0.123
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * 3.51 + w * 2.666 + t) * 3.14159) * sin((u * 6.323 - w * 6.393 - t * 0.7) * 3.14159)
x = u * 0.959 / aspect
y = w * 0.871
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
red = min(1, lum * 1.3)
green = lum * 0.5
blue = lum * 0.12
size = 1 + abs(m) * 3.799

View file

@ -1,31 +1,28 @@
name: "Reverb - Deep Net"
mode: lines
mode: dots
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.818
linewidth: 2.394
[init]
n = 560
segs = 8
cols = 29
n = cols * cols
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
[beat]
flash = 1
rot = rot + dt * (0.041 + mid * 0.4)
hue = hue + dt * 0.089
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.525
ux = (cx - 0.5) * 1.845
uy = (cy - 0.5) * 1.845
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
red = 0.22 + h * 2.2 * abs(sin(cx * 2.712))
green = 0.22 + h * 2.2 * 0.22
blue = 0.22 + h * 2.2 * abs(cos(cx * 2.712))
size = 1.2 + h * 5

View file

@ -1,25 +1,22 @@
name: "Slyde - Tri"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.863
linewidth: 1.626
[init]
n = 1100
n = 938
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * 0.483
hue = hue + dt * 0.076
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
ph = i * 6.28318 * 2.841
fa = 6 + mid * 0.35
fb = 2 + bass * 0.45
x = sin(ph * fa + t) * (0.5 + bass * 0.3) / aspect
y = sin(ph * fb + t * 1.3 + 1.909) * (0.5 + treb * 0.35)
red = min(1, 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 1.3)
green = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 0.5
blue = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 0.12

View file

@ -1,29 +1,27 @@
name: "Solar Flaire"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.866
linewidth: 1.678
[init]
cols = 36
n = cols * cols
bars = 59
n = bars * 11
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
rot = rot + dt * (0.076 + mid * 0.3)
hue = hue + dt * 0.107
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.607
a = bar * 6.28318 / bars + rot
rad = 0.241 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars))
green = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars + 2.09))
blue = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars + 4.19))
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,31 +1,30 @@
name: "Spintronics - Backspin"
mode: lines
mode: dots
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.804
linewidth: 2.037
[init]
n = 560
segs = 8
n = 1157
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
tt = tt + dt * (0.5 + bass_att * 1.1)
hue = hue + dt * 0.12
burst = burst * 0.9
[beat]
flash = 1
burst = 1
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
jet = floor(i * 4)
life = frac(rand(i * 7.7 + jet) + tt * (0.35 + rand(i + 3) * 0.65))
a = jet * 6.28318 / 4 + rand(i * 5.1 + jet) * 0.547
spd = 0.4 + rand(i * 9.2 + jet) * 0.8
px = cos(a) * spd * life
py = sin(a) * spd * life - 0.712 * life * life
x = px * (0.85 + bass * 0.35) / aspect
y = py
red = min(1, max(0, 1 - life) * (0.35 + burst * 0.55) * 1.3)
green = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.5
blue = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.12
skip = if(above(life, 0.94), 1, 0)

View file

@ -1,25 +1,31 @@
name: "Starslappin"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.842
linewidth: 2.148
[init]
n = 1100
segs = 7
n = 545
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
rot = rot + dt * (0.087 + mid_att * 0.5)
hue = hue + dt * 0.125
flash = flash * 0.85
[beat]
flash = 1
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + amp * 1.3 * (0.25 + bass * 0.95)
green = 0.3 + amp * 1.3 * (0.25 + mid * 0.95)
blue = 0.3 + amp * 1.3 * (0.25 + treb * 0.95)
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,25 +1,30 @@
name: "Street Art - Fire Inside"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.757
linewidth: 2.052
[init]
n = 1100
n = 1065
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
tt = tt + dt * (0.5 + bass_att * 1.1)
hue = hue + dt * 0.108
burst = burst * 0.9
[beat]
burst = 1
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
jet = floor(i * 4)
life = frac(rand(i * 7.7 + jet) + tt * (0.35 + rand(i + 3) * 0.65))
a = jet * 6.28318 / 4 + rand(i * 5.1 + jet) * 1.184
spd = 0.4 + rand(i * 9.2 + jet) * 0.8
px = cos(a) * spd * life
py = sin(a) * spd * life - 1.383 * life * life
x = px * (0.85 + bass * 0.35) / aspect
y = py
red = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.3
green = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.65
blue = min(1, max(0, 1 - life) * (0.35 + burst * 0.55) * 1.3)
skip = if(above(life, 0.94), 1, 0)

View file

@ -1,31 +1,23 @@
name: "Swoo - Slow"
mode: lines
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.919
linewidth: 1.852
[init]
n = 560
segs = 8
n = 1159
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
[beat]
flash = 1
t = t + dt * (0.461 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.046
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
a = i * 6.28318 * 3
wob = sin(a * 3 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.199 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
red = 0.3 + abs(v) * 1.2 * 0.3
green = 0.3 + abs(v) * 1.2 * 0.65
blue = min(1, 0.3 + abs(v) * 1.2 * 1.3)

View file

@ -1,29 +1,27 @@
name: "smell of music (skupers remix)"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.805
linewidth: 1.342
[init]
cols = 36
n = cols * cols
spokes = 31
n = spokes * 34
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
rot = rot + dt * (0.118 + mid * 0.4)
t = t + dt * 2.453
hue = hue + dt * 0.113
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
sp = floor(i * spokes)
si = frac(i * spokes)
a = sp * 6.28318 / spokes + rot
wave = sin(si * 3 * 3.14159 - t) * (0.03 + bass * 0.28)
rad = 0.12 + si * 0.868 + wave
x = sin(a) * rad / aspect
y = cos(a) * rad
red = (1 - si) * 0.45 + 0.15 + sv * 0.55 * 0.3
green = (1 - si) * 0.45 + 0.15 + sv * 0.55 * 0.65
blue = min(1, (1 - si) * 0.45 + 0.15 + sv * 0.55 * 1.3)
skip = if(above(si, 0.985), 1, 0)

View file

@ -1,29 +1,30 @@
name: "bumpy"
mode: lines
mode: dots
blend: additive
persist: 0.88
linewidth: 2
persist: 0.798
linewidth: 1.642
[init]
n = 720
n = 640
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
hue = hue + dt * 0.119 + beat * 0.01
travel = travel + dt * (0.394 + bass_att * 1.4)
flash = flash * 0.86
[beat]
flash = 1
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
g = floor(i * 10)
gi = frac(i * 10)
ph = frac(rand(g * 5.1 + 1) + travel * (0.55 + rand(g + 17) * 0.85))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
rad = ph * (0.28 + bass * 0.544 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = fade * (0.35 + flash * 0.4) * 0.3
green = fade * (0.35 + flash * 0.4) * 0.65
blue = min(1, fade * (0.35 + flash * 0.4) * 1.3)
skip = if(above(ph, 0.96), 1, 0)

View file

@ -1,29 +1,25 @@
name: "splendora"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.867
linewidth: 1.513
[init]
cols = 36
n = cols * cols
n = 974
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * (0.211 + bass_att * 1.8)
hue = hue + dt * 0.068 + beat * 0.012
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
arm = floor(i * 9)
fa = frac(i * 9)
d = fa
ang = arm * 1.515 + d * 1.922 * 3.14159 + t
rad = (0.04 + pow(d, 1.746) * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + mid) * abs(sin(d * 2.585))
green = (0.3 + 0.7 * d) * (0.3 + mid) * 0.22
blue = (0.3 + 0.7 * d) * (0.3 + mid) * abs(cos(d * 2.585))
skip = if(below(fa, 0.04), 1, 0)

View file

@ -1,31 +1,27 @@
name: "Urantia"
mode: lines
mode: dots
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.862
linewidth: 2.9
[init]
n = 560
segs = 8
rings = 4
n = rings * 101
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
[beat]
flash = 1
t = t + dt * (0.393 + bass_att * 0.6)
hue = hue + dt * 0.094
squash = 0.387 + 0.25 * sin(t * 0.454)
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
ring = floor(i * rings)
ri3 = frac(i * rings)
r0 = 0.16 + ring * 0.141
a = ri3 * 6.28318 + t * (1.2 - ring * 0.18) + ring * 2.4
x = sin(a) * r0 * (1 + bass * 0.18) / aspect
y = cos(a) * r0 * squash
sat = frac(ri3 * 2)
size = if(below(sat, 0.14), 3 + bass * 3, 1)
red = 0.25 + bass * 0.5 + ring * 0.07 * (0.25 + bass * 0.95)
green = 0.25 + bass * 0.5 + ring * 0.07 * (0.25 + mid * 0.95)
blue = 0.25 + bass * 0.5 + ring * 0.07 * (0.25 + treb * 0.95)

View file

@ -1,25 +1,25 @@
name: "tentaclism (fake hboy rmx)"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.833
linewidth: 2.485
[init]
n = 1100
n = 952
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
travel = travel + dt * (0.231 + vol_att * 1.898)
hue = hue + dt * 0.056
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 0.992
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = min(1, tw * 1.3)
green = tw * 0.5
blue = tw * 0.12
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)

View file

@ -1,25 +1,27 @@
name: "tentaclism (sky of contempt mix by drew)"
mode: lines
mode: dots
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.83
linewidth: 2.652
[init]
n = 900
rings = 3
n = rings * 87
[frame]
t = t + dt * (0.25 + bass_att * 1.5)
hue = hue + dt * 0.1
t = t + dt * (0.201 + bass_att * 0.6)
hue = hue + dt * 0.06
squash = 0.564 + 0.25 * sin(t * 0.401)
[point]
ring = floor(i * 24)
ri = frac(i * 24)
z = frac(ring / 24 + t)
rad = 0.06 + z * 0.9
a = ri * 6.28318 + ring * 0.35 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 0.9) / aspect
y = cos(a) * rad * (0.55 + sv * 0.9)
f = (1 - z) * (0.35 + bass * 0.65)
red = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4))
green = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 2.09))
blue = f * (0.45 + 0.55 * sin(hue * 6.28318 + z * 4 + 4.19))
ring = floor(i * rings)
ri3 = frac(i * rings)
r0 = 0.16 + ring * 0.108
a = ri3 * 6.28318 + t * (1.2 - ring * 0.18) + ring * 2.4
x = sin(a) * r0 * (1 + bass * 0.18) / aspect
y = cos(a) * r0 * squash
sat = frac(ri3 * 4)
size = if(below(sat, 0.14), 3 + bass * 3, 1)
red = 0.25 + bass * 0.5 + ring * 0.07 * abs(sin(ring * 1.3))
green = 0.25 + bass * 0.5 + ring * 0.07 * 0.22
blue = 0.25 + bass * 0.5 + ring * 0.07 * abs(cos(ring * 1.3))

View file

@ -1,25 +1,27 @@
name: "tentaclism (cathode ray mix by onionring of doom)"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.873
linewidth: 1.987
[init]
n = 1100
spokes = 26
n = spokes * 38
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
rot = rot + dt * (0.076 + mid * 0.4)
t = t + dt * 1.652
hue = hue + dt * 0.062
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
sp = floor(i * spokes)
si = frac(i * spokes)
a = sp * 6.28318 / spokes + rot
wave = sin(si * 5 * 3.14159 - t) * (0.03 + bass * 0.28)
rad = 0.12 + si * 0.882 + wave
x = sin(a) * rad / aspect
y = cos(a) * rad
red = (1 - si) * 0.45 + 0.15 + sv * 0.55 * 0.3
green = (1 - si) * 0.45 + 0.15 + sv * 0.55 * 0.65
blue = min(1, (1 - si) * 0.45 + 0.15 + sv * 0.55 * 1.3)
skip = if(above(si, 0.985), 1, 0)

View file

@ -1,24 +1,24 @@
# Auto-ported from "05 dynamic duo - chromatics (glowy mix by meaningless-existance).avs" (Winamp AVS / dynamic duo)
# SuperScope point program, 4 AVSTrans macros expanded.
name: "chromatics (glowy mix by meaningless-existance)"
author: "dynamic duo"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
ysign: -1
persist: 0.857
linewidth: 1.543
[init]
n=w;pi=acos(-1);
n = 731
[frame]
t=t-0.045;t2=t2-t2r;tm2=tm2*0.9+tm2c*0.1;tm=tm*0.9+tm2c*0.1;
[beat]
tm2c=rnd(315)*0.04+1;tmc=rnd(315)*0.04+1;t2r=rnd(10)*0.01-0.05;
t = t + dt * (0.338 + bass_att * 1.5)
hue = hue + dt * 0.042
[point]
x=i*2-1;y=-0.99;
red=sin(i*2*pi+t)*0.5+0.5;;
blue=sin(i*tm*2+t2)*0.5+0.5;
green=sin(i*tm2*2-t*0.33)*0.5+0.5;
ring = floor(i * 17)
ri2 = frac(i * 17)
z = frac(ring / 17 + t)
rad = 0.05 + z * 0.805
a = ri2 * 6.28318 + ring * 0.411 + sin(t * 0.7) * 2
x = sin(a) * rad * (0.55 + sv * 1.073) / aspect
y = cos(a) * rad * (0.55 + sv * 1.073)
red = (1 - z) * (0.3 + bass * 0.7) * abs(sin(z * 2.074))
green = (1 - z) * (0.3 + bass * 0.7) * 0.22
blue = (1 - z) * (0.3 + bass * 0.7) * abs(cos(z * 2.074))

View file

@ -1,31 +1,30 @@
name: "tentaclism (midas remix)"
mode: lines
mode: dots
blend: additive
persist: 0.86
linewidth: 1.8
persist: 0.848
linewidth: 2.168
[init]
n = 560
segs = 8
n = 757
[frame]
rot = rot + dt * (0.08 + mid_att * 0.5)
hue = hue + dt * (0.07 + treb * 0.08)
tt = tt + dt * (0.5 + bass_att * 1.1)
hue = hue + dt * 0.053
burst = burst * 0.9
[beat]
flash = 1
burst = 1
[point]
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.12 + sv * 0.55 + bass * 0.25 + flash * 0.05
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
lum = 0.35 + amp * 1.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + seg + 4.19))
skip = if(above(si, 0.96), 1, 0)
jet = floor(i * 2)
life = frac(rand(i * 7.7 + jet) + tt * (0.35 + rand(i + 3) * 0.65))
a = jet * 6.28318 / 2 + rand(i * 5.1 + jet) * 1.14
spd = 0.4 + rand(i * 9.2 + jet) * 0.8
px = cos(a) * spd * life
py = sin(a) * spd * life - 1.009 * life * life
x = px * (0.85 + bass * 0.35) / aspect
y = py
red = min(1, max(0, 1 - life) * (0.35 + burst * 0.55) * 1.3)
green = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.5
blue = max(0, 1 - life) * (0.35 + burst * 0.55) * 0.12
skip = if(above(life, 0.94), 1, 0)

View file

@ -1,25 +1,27 @@
name: "tentaclism (raz remix - ugly edit)"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.873
linewidth: 1.756
[init]
n = 1100
bars = 44
n = bars * 11
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
rot = rot + dt * (0.118 + mid * 0.3)
hue = hue + dt * 0.119
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
bar = floor(i * bars)
bi = frac(i * bars)
lvl = getspec(bar / bars, 0, 0)
h = lvl * 0.767
a = bar * 6.28318 / bars + rot
rad = 0.145 + bi * h
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars))
green = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars + 2.09))
blue = 0.25 + bi * 0.75 * (0.45 + 0.55 * sin(hue * 6.28318 + bar * 6.28318 / bars + 4.19))
skip = if(above(bi, 0.97), 1, 0)

View file

@ -1,29 +1,27 @@
name: "tentaclism (the y.m.o. rework #1)"
mode: lines
mode: dots
blend: additive
persist: 0.88
linewidth: 2
persist: 0.831
linewidth: 1.694
[init]
n = 720
spokes = 32
n = spokes * 27
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
rot = rot + dt * (0.073 + mid * 0.4)
t = t + dt * 1.807
hue = hue + dt * 0.131
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
sp = floor(i * spokes)
si = frac(i * spokes)
a = sp * 6.28318 / spokes + rot
wave = sin(si * 2 * 3.14159 - t) * (0.03 + bass * 0.28)
rad = 0.12 + si * 0.758 + wave
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
red = (1 - si) * 0.45 + 0.15 + sv * 0.55 * abs(sin(sp * 0.4))
green = (1 - si) * 0.45 + 0.15 + sv * 0.55 * 0.22
blue = (1 - si) * 0.45 + 0.15 + sv * 0.55 * abs(cos(sp * 0.4))
skip = if(above(si, 0.985), 1, 0)

View file

@ -1,29 +1,24 @@
name: "tentaclism (kans of kansis mix by drew - edit)"
mode: dots
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.827
linewidth: 2.039
[init]
cols = 36
n = cols * cols
n = 1449
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * 0.447
hue = hue + dt * 0.034
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * 6.164 + w * 5.725 + t) * 3.14159) * sin((u * 2.761 - w * 2.167 - t * 0.7) * 3.14159)
x = u * 0.936 / aspect
y = w * 0.903
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
red = min(1, lum * 1.3)
green = lum * 0.5
blue = lum * 0.12
size = 1 + abs(m) * 3.26

View file

@ -1,31 +1,31 @@
# Auto-ported from "01 amphirion - the pacifist (duo's underworld mix).avs" (Winamp AVS / amphirion)
# SuperScope point program, 4 AVSTrans macros expanded.
name: "the pacifist (duo's underworld mix)"
author: "amphirion"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
ysign: -1
persist: 0.856
linewidth: 1.75
[init]
n=2
segs = 14
n = 483
[frame]
xt=1-xtd;
yt=1-ytd;
rot = rot + dt * (0.149 + mid_att * 0.5)
hue = hue + dt * 0.117
flash = flash * 0.85
[beat]
xtd=rnd(20)*.1;
ytd=rnd(20)*.1;
rd=rnd(20)*.1;
gd=rnd(20)*.1;
bd=rnd(20)*.1;
flash = 1
[point]
x=i*.3+xt*.5-getosc(0,0.4,0)*.25;
y=yt*.5-getosc(0,0.2,0)*.25;
size=10*(w/h)*(1+getosc(0,0.2,0));
red=.2+rd;
green=.5+gd;
blue=.2+bd;
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 4 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + amp * 1.3 * (0.45 + 0.55 * sin(hue * 6.28318 + seg * 0.8))
green = 0.3 + amp * 1.3 * (0.45 + 0.55 * sin(hue * 6.28318 + seg * 0.8 + 2.09))
blue = 0.3 + amp * 1.3 * (0.45 + 0.55 * sin(hue * 6.28318 + seg * 0.8 + 4.19))
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,29 +1,25 @@
name: "roll-on mojo (duo remix)"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.889
linewidth: 1.751
[init]
cols = 36
n = cols * cols
n = 950
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * (0.251 + bass_att * 1.8)
hue = hue + dt * 0.089 + beat * 0.012
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
arm = floor(i * 3)
fa = frac(i * 3)
d = fa
ang = arm * 1.538 + d * 1.277 * 3.14159 + t
rad = (0.04 + pow(d, 1.775) * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + mid) * abs(sin(d * 3.995))
green = (0.3 + 0.7 * d) * (0.3 + mid) * 0.22
blue = (0.3 + 0.7 * d) * (0.3 + mid) * abs(cos(d * 3.995))
skip = if(below(fa, 0.04), 1, 0)

View file

@ -1,25 +1,31 @@
name: "cafe de duo (vanish's wicked jungle massive remix)"
mode: dots
mode: lines
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.873
linewidth: 1.915
[init]
n = 850
segs = 10
n = 623
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
rot = rot + dt * (0.112 + mid_att * 0.5)
hue = hue + dt * 0.038
flash = flash * 0.85
[beat]
flash = 1
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 9 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
red = 0.3 + amp * 1.3 * (0.25 + bass * 0.95)
green = 0.3 + amp * 1.3 * (0.25 + mid * 0.95)
blue = 0.3 + amp * 1.3 * (0.25 + treb * 0.95)
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,40 +1,31 @@
# Auto-ported from "06 skupers - incantation (duo remix - edit).avs" (Winamp AVS / skupers)
# Texer II point program, 4 AVSTrans macros expanded.
name: "incantation (duo remix - edit)"
author: "skupers"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 3
ysign: -1
persist: 0.892
linewidth: 1.682
[init]
n=h;pi=acos(-1);xasp=min(h/w,1);yasp=min(w/h,1);
segs = 14
n = 476
[frame]
xm1=xm1+xm1r;ym1=ym1+ym1r;xm=sin(xm1)*0.4;ym=sin(ym1)*0.4;redf=redf+redr;greenf=greenf+greenr;bluef=bluef+bluer;rx=rx+rxo;ry=ry+ryo;rz=rz+rzo;rzo=rzo*0.97;cx=cos(sin(rx));sx=sin(sin(rx));cy=cos(sin(ry));sy=sin(sin(ry));cz=cos(rz);sz=sin(rz);
rot = rot + dt * (0.088 + mid_att * 0.5)
hue = hue + dt * 0.074
flash = flash * 0.85
[beat]
xm1r=getosc(0.2,0,0)/5;ym1r=getosc(0.3,0,0)/8;redr=rnd(10)/100-0.05;greenr=rnd(10)/100-0.05;bluer=rnd(10)/100-0.05;rxo=getosc(0.5,0.02,0)/15;ryo=getosc(0.3,0.02,0)/15;rzo=-abs(getosc(0.7,0.02,0)/4)-0.05;
flash = 1
[point]
k=getspec(i*80*n%n/n,1/n,0);
r=i*pi*2;d=getspec(.3,0,1)+.25+k;
x1=cos(r*4)*d;
y1=sin(r)*d*cos(i*99);
z1=cos(r)*d*sin(i*99);
x1d=x1*cz-y1*sz;
y1d=x1*sz+y1*cz;
y2d=y1d*cx-z1*sx;
z2d=y1d*sx+z1*cx;
x3d=x1d*cy-z2d*sy;
z3d=x1d*sy+z2d*cy;
zi=1/(z3d+3);
x=if(above(z3d+3,0.1),x3d*zi,x)*xasp-xm;
y=if(above(z3d+3,0.1),y2d*zi,y)*yasp-ym;
alpha=if(below(z3d+2.4,0),0,1);
red=alpha*(1+k)/(3+sin(redf))*(1-z3d);
blue=alpha*k/(4+sin(bluef))*(1-z3d);
green=alpha*k/(3+sin(greenf))*(1-z3d);
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + amp * 1.3 * abs(sin(seg * 0.8))
green = 0.3 + amp * 1.3 * 0.22
blue = 0.3 + amp * 1.3 * abs(cos(seg * 0.8))
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,25 +1,23 @@
name: "miraculous flow (nemo remix)"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.91
linewidth: 1.628
[init]
n = 1100
n = 981
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
t = t + dt * (0.579 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.122
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
a = i * 6.28318 * 3
wob = sin(a * 6 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.202 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
red = min(1, 0.3 + abs(v) * 1.2 * 1.3)
green = 0.3 + abs(v) * 1.2 * 0.5
blue = 0.3 + abs(v) * 1.2 * 0.12

View file

@ -1,25 +1,27 @@
name: "warm freeform (mykal remix)"
mode: dots
blend: additive
persist: 0.82
linewidth: 2.5
persist: 0.898
linewidth: 1.303
[init]
n = 850
spokes = 32
n = spokes * 37
[frame]
travel = travel + dt * (0.2 + vol_att * 1.6)
hue = hue + dt * 0.05
rot = rot + dt * (0.135 + mid * 0.4)
t = t + dt * 2.906
hue = hue + dt * 0.077
[point]
a = rand(i * 7.3) * 6.28318
z = frac(rand(i * 3.1 + 5) + travel * (0.5 + rand(i + 9) * 0.7))
rad = z * z * 1.1
sp = floor(i * spokes)
si = frac(i * spokes)
a = sp * 6.28318 / spokes + rot
wave = sin(si * 3 * 3.14159 - t) * (0.03 + bass * 0.28)
rad = 0.12 + si * 0.868 + wave
x = sin(a) * rad / aspect
y = cos(a) * rad
tw = 0.4 + 0.6 * sin(z * 40 + time * 3) * (0.5 + treb)
red = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3))
green = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 2.09))
blue = tw * (0.5 + 0.5 * sin(hue * 6.28318 + i * 3 + 4.19))
size = 1 + z * 3 * (0.5 + bass)
skip = if(above(z, 0.97), 1, 0)
red = (1 - si) * 0.45 + 0.15 + sv * 0.55 * abs(sin(sp * 0.4))
green = (1 - si) * 0.45 + 0.15 + sv * 0.55 * 0.22
blue = (1 - si) * 0.45 + 0.15 + sv * 0.55 * abs(cos(sp * 0.4))
skip = if(above(si, 0.985), 1, 0)

View file

@ -1,29 +1,22 @@
name: "pleasure point (duo remix)"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
persist: 0.87
linewidth: 1.808
[init]
n = 720
n = 856
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * 0.572
hue = hue + dt * 0.036
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
ph = i * 6.28318 * 2.087
fa = 2 + mid * 0.35
fb = 7 + bass * 0.45
x = sin(ph * fa + t) * (0.5 + bass * 0.3) / aspect
y = sin(ph * fb + t * 1.3 + 1.499) * (0.5 + treb * 0.35)
red = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 0.3
green = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 0.65
blue = min(1, 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 1.3)

View file

@ -1,29 +1,23 @@
name: "heart dynamics (duo's high dose mix)"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.909
linewidth: 1.819
[init]
cols = 36
n = cols * cols
n = 1105
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * (0.35 + bass_att * 0.8)
sway = sway + dt * (0.5 + treb)
hue = hue + dt * 0.091
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
a = i * 6.28318 * 3
wob = sin(a * 5 + t * 2) * (0.08 + treb * 0.3)
rad = (0.42 + mid * 0.25) * (0.85 + 0.15 * sin(a * 3 + sway)) + v * 0.184 - wob
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + abs(v) * 1.2 * abs(sin(a * 0.5))
green = 0.3 + abs(v) * 1.2 * 0.22
blue = 0.3 + abs(v) * 1.2 * abs(cos(a * 0.5))

View file

@ -1,29 +1,24 @@
name: "we build here (duo's building blocks remix)"
mode: dots
blend: additive
persist: 0.78
linewidth: 2.5
persist: 0.739
linewidth: 2.311
[init]
cols = 36
n = cols * cols
n = 1183
[frame]
rot = rot + dt * (0.05 + mid * 0.4)
hue = hue + dt * (0.04 + treb * 0.1)
t = t + dt * 0.515
hue = hue + dt * 0.134
[point]
cx = floor(i * cols) / (cols - 1)
cy = frac(i * cols)
h = sv * 0.35
ux = (cx - 0.5) * 1.6
uy = (cy - 0.5) * 1.6
rx = ux * cos(rot) - uy * sin(rot)
ry = ux * sin(rot) + uy * cos(rot)
x = (rx / aspect) * (1 - h * 0.7)
y = ry * (1 - h * 0.7)
lum = 0.25 + h * 2.2
red = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3))
green = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 2.09))
blue = lum * (0.6 + 0.4 * sin(hue * 6.28318 + cx * 3 + 4.19))
size = 1.2 + h * 5
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * 6.135 + w * 2.876 + t) * 3.14159) * sin((u * 3.312 - w * 5.365 - t * 0.7) * 3.14159)
x = u * 0.99 / aspect
y = w * 0.98
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
red = min(1, lum * 1.3)
green = lum * 0.5
blue = lum * 0.12
size = 1 + abs(m) * 3.466

View file

@ -1,29 +1,24 @@
name: "wickedjunglesmassive (yathosho's cartographic re-rub)"
mode: lines
mode: dots
blend: additive
persist: 0.88
linewidth: 2
persist: 0.805
linewidth: 1.835
[init]
n = 720
n = 1292
[frame]
hue = hue + dt * (0.06 + mid * 0.2)
travel = travel + dt * (0.3 + bass_att * 1.4)
[beat]
flash = 1
t = t + dt * 0.675
hue = hue + dt * 0.035
[point]
g = floor(i * 9)
gi = frac(i * 9)
ph = frac(rand(g * 5.1 + 1) + travel * (0.6 + rand(g + 17) * 0.8))
a = gi * 6.28318
rad = ph * (0.25 + bass * 0.6 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7))
green = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 2.09))
blue = fade * (0.3 + 0.7 * sin(hue * 6.28318 + g * 0.7 + 4.19))
skip = if(above(ph, 0.95), 1, 0)
u = rand(i * 1.7) * 2 - 1
w = rand(i * 3.3 + 11) * 2 - 1
m = sin((u * 3.6 + w * 6.394 + t) * 3.14159) * sin((u * 5.053 - w * 4.781 - t * 0.7) * 3.14159)
x = u * 0.897 / aspect
y = w * 0.959
lum = max(0, m) * (0.3 + bass * 0.9) + 0.06
red = lum * (0.45 + 0.55 * sin(hue * 6.28318 + u * 4.308))
green = lum * (0.45 + 0.55 * sin(hue * 6.28318 + u * 4.308 + 2.09))
blue = lum * (0.45 + 0.55 * sin(hue * 6.28318 + u * 4.308 + 4.19))
size = 1 + abs(m) * 2.706

View file

@ -1,25 +1,31 @@
# Auto-ported from "13 skupers - why i love you (duo's pulsedriver remix).avs" (Winamp AVS / skupers)
# SuperScope point program, 4 AVSTrans macros expanded.
name: "why i love you (duo's pulsedriver remix)"
author: "skupers"
mode: lines
blend: additive
persist: 0.88
linewidth: 2
ysign: -1
persist: 0.843
linewidth: 1.547
[init]
n=10;pi=acos(-1);
segs = 8
n = 528
[frame]
t=t-t1;t1=t1*0.9+getspec(0.05,0,0)*0.1
rot = rot + dt * (0.074 + mid_att * 0.5)
hue = hue + dt * 0.052
flash = flash * 0.85
[beat]
flash = 1
[point]
y=i*2.1-1.05;x=0;
col=i;
red=col;
green=col*.6;
blue=0;
seg = floor(i * segs)
si = frac(i * segs)
a0 = si * 6.28318 / segs + rot
amp = 0.1 + sv * 0.55 + bass * 0.25 + flash * 0.06
rad = 0.15 + amp * (0.4 + 0.6 * sin(a0 * 6 + time * 2))
a = seg * 6.28318 / segs + a0 * if(below(seg % 2, 1), 1, -1)
x = sin(a) * rad / aspect
y = cos(a) * rad
red = 0.3 + amp * 1.3 * 0.85
green = 0.3 + amp * 1.3 * 0.92
blue = 0.3 + amp * 1.3
skip = if(above(si, 0.96), 1, 0)

View file

@ -1,33 +1,22 @@
# Auto-ported from "14 duo - conjuring sands (skupers remix - edit).avs" (Winamp AVS / duo)
# Texer II point program, 4 AVSTrans macros expanded.
name: "conjuring sands (skupers remix - edit)"
author: "duo"
mode: dots
mode: lines
blend: additive
persist: 0.78
linewidth: 3
ysign: -1
persist: 0.922
linewidth: 2.216
[init]
n=15;
n = 874
[frame]
pfx=pfx+pbx; pfy=pfy+pby; pfz=pfz+pbz; xs=sin(pfx); xc=cos(pfx); ys=sin(pfy); yc=cos(pfy); zs=sin(pfz); zc=cos(pfz);
[beat]
pbx=rnd(10)/70; pby=rnd(10)/70; pbz=rnd(10)/70;
t = t + dt * 0.211
hue = hue + dt * 0.039
[point]
c=i*(3.14159265358979)*15;
x1=cos(c);
y1=i*2-1;
z1=sin(c);
x2=x1*xs-y1*xc;
y2=y1*xs+x1*xc;
z2=z1*ys-y2*yc;
x3=y2*ys+z1*yc;
y3=x2*zs-z2*zc;
z3=z2*zs+x2*zc+3.5;
x=x3/z3;
y=y3/z3;
red=v*3; green=v*3; blue=v*3;
ph = i * 6.28318 * 2.729
fa = 6 + mid * 0.35
fb = 5 + bass * 0.45
x = sin(ph * fa + t) * (0.5 + bass * 0.3) / aspect
y = sin(ph * fb + t * 1.3 + 1.092) * (0.5 + treb * 0.35)
red = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * abs(sin(ph * 0.5))
green = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * 0.22
blue = 0.3 + 0.45 * sin(ph * 2 + t) + abs(v) * 0.6 * abs(cos(ph * 0.5))

View file

@ -1,25 +1,30 @@
name: "warm freeform (ya-tho-sho treatment)"
mode: lines
blend: additive
persist: 0.9
linewidth: 1.6
persist: 0.855
linewidth: 1.459
[init]
n = 1100
n = 572
[frame]
t = t + dt * (0.3 + bass_att * 1.8)
hue = hue + dt * 0.08 + beat * 0.01
hue = hue + dt * 0.129 + beat * 0.01
travel = travel + dt * (0.44 + bass_att * 1.4)
flash = flash * 0.86
[beat]
flash = 1
[point]
arm = floor(i * 5)
fa = frac(i * 5)
d = fa
ang = arm * 1.2566 + d * (1.4 + mid * 3) * 3.14159 + t
rad = (0.05 + d * d * 1.15) * (0.7 + bass * 0.5)
x = sin(ang) * rad / aspect
y = cos(ang) * rad
red = (0.3 + 0.7 * d) * (0.3 + bass)
green = (0.3 + 0.7 * d) * (0.25 + mid)
blue = (0.3 + 0.7 * d) * (0.2 + treb + hue * 0.2)
skip = if(below(fa, 0.04), 1, 0)
g = floor(i * 13)
gi = frac(i * 13)
ph = frac(rand(g * 5.1 + 1) + travel * (0.55 + rand(g + 17) * 0.85))
a = gi * 6.28318
rad = ph * (0.305 + bass * 0.472 + flash * 0.08)
x = sin(a) * rad / aspect
y = cos(a) * rad
fade = sin(ph * 3.14159)
red = fade * (0.35 + flash * 0.4) * 0.85
green = fade * (0.35 + flash * 0.4) * 0.92
blue = fade * (0.35 + flash * 0.4)
skip = if(above(ph, 0.96), 1, 0)

View file

@ -764,3 +764,70 @@ Stage Summary:
on every large change; the stamp renders bottom-right of the footer and the
document title carries it too. Users can name local backups by the stamp
(e.g. "OVE v6.0") and cross-check against z.ai Version History.
---
Task ID: 14
Agent: main (Z.ai Code)
Task: v6.1 — preset library quality pass: every embedded stand-in is now a
UNIQUE visual (user reported "Containment" and "Dragonscales" look identical)
Root cause:
- The old converter had only 6 fixed fallback templates chosen by
seed % 6, so 76 of 90 embedded presets collapsed into 6 identical visuals
(19×swirl, 16×pulse-rings, 14×starfield, 12×lattice, 10×kaleido, 5×tunnel);
library-wide only 25 of 95 distinct script bodies.
Work Log:
- tools/convert-avs.ts — REPLACED the fallback generator:
* 16 geometric families (pulse rings, tunnel, starfield, lattice, swirl,
kaleido, lissajous, spectrum bars, moire, fountain, rose, orbits, ribbon,
web, rain, helix), each parameterized.
* 6 palettes (rainbow / fire / ice / neon-band / mono / duotone).
* Every numeric parameter drawn from mulberry32 seeded by hashStr(preset
name) — same name regenerates the same visual forever; different names
always differ (counts, speeds, twists, couplings, widths, persistence).
* Family chosen from the original's unportable components (BlitterFeedback
→ tunnel/kaleido/moire, Movement → swirl/ribbon/web, Mirror → kaleido,
DotFountain → fountain, …) + guaranteed full 16-family rotation per run
(unused-families first) + 25% wild card.
* Every generated fallback is smoke-tested; a known-good safeFallback is
the last resort (never emits a broken script).
* Fixed during regen: getspec() needs 3 args (spectrum family); tiny-n
guard (ported scopes rendering <16 points now also become stand-ins —
5 more presets rescued); folder path no longer double-prefixed
("root/embedded/root/embedded/…" → clean at the source); same-path
copyFileSync guard so the converter can re-run in place.
- Regenerated src/lib/ava/embedded-presets.ts from public/avs-originals/
embedded/ (90 presets: 9 ported original-code + 81 unique stand-ins; all
16 families used, max 9 presets per family, 90/90 distinct bodies).
- prisma/schema.prisma — Preset.approx Boolean (marks stand-ins), Settings.
embeddedSeed String? (seed-version marker). db push + client regenerated;
dev server restarted once to pick up the new client.
- GET /api/presets — ensureSeeded is now VERSION-GATED: when Settings.
embeddedSeed !== EMBEDDED_SEED_VERSION ('6.1', exported from
embedded-presets.ts), the root/embedded subtree + stray built-ins are
deleted and re-seeded from BUILTIN + EMBEDDED (user presets untouched).
Future library regenerations propagate automatically on next request.
Response now includes approx per preset.
- src/lib/store.ts — PresetItem.approx?: boolean.
- src/components/ava/presets-tab.tsx — amber "≈" badge on tree rows for
approx presets (tooltip explains: original relies on effects the script
engine can't run; uniquely generated stand-in).
- src/lib/version.ts — APP_VERSION '6.1'.
- VERIFIED: API re-seed → 95 presets / 7 folders, 81 approx + 14 original
code, 95/95 distinct bodies, Containment ≠ Dragonscales (different
families + parameters); VLM image comparison of live screenshots confirms
clearly different visuals (organic single loop vs woven orbital knot);
Kingish (594 pts) renders; ≈ badges (60 of 66 Amp Picks rows); Randomize
over root scope switches presets at 3 s (Kingish → Plankton); export zip
66 entries with clean paths; zero console/page errors; lint clean.
Stage Summary:
- Every embedded preset is now visually unique (95/95 distinct bodies).
- Honesty layer: approx stand-ins are badged "≈" in the tree; descriptions
name the generated family; the original .avs download remains one click.
- Regeneration pipeline: bun tools/convert-avs.ts public/avs-originals/
embedded → bump SEED_VERSION in the converter → DB refreshes itself via
the embeddedSeed marker on the next GET /api/presets.
- 9 error files (parser "out of bytes") remain excluded — parser hardening
is future work if those originals matter.