Skip to content

Releases: Eight4aWish/tiliqua

Silver and Gold — 48×48

Choose a tag to compare

@Eight4aWish Eight4aWish released this 09 Sep 13:22

Two instruments on one 2304-node finite-difference membrane, for the
apf.audio Tiliqua. Not affiliated with, or endorsed by,
apf.audio.

Silver is a struck drum head: the mesh runs at 48 kHz and two pickups 45°
apart are the stereo output. Gold updates the same mesh at 750 Hz and reads
a circular path through it as a wavetable — Verplank/Mathews/Shaw scanned
synthesis. Both draw the membrane live on the screen, with no framebuffer and
no CPU.

Previously released as LACUNA and ORBITA. Same instruments, renamed to join the
rest of the range: five for silver, six for gold.

Which file

1280×720p60 720×720p60r2
Silver silver-48x48-1280x720p60.tar.gz silver-48x48-720x720p60r2.tar.gz
Gold gold-48x48-1280x720p60.tar.gz gold-48x48-720x720p60r2.tar.gz

Take 1280×720p60 for a capture card or a monitor. Take 720×720p60r2
only for the round Waveshare panel — a cheap HDMI dongle will not lock to
720×720, because it is not a standard timing. The 720×720 builds announce
themselves as Silver7 and Gold7, so you can tell them apart in the bootloader.

pdm flash archive silver-48x48-1280x720p60.tar.gz --slot 3

Any free slot; pdm flash status shows what is there already.

Jacks

Silver Gold
in0 strike drive / drone
in1 tension, 1 V/oct, 27.5–440 Hz pitch, 1 V/oct, 27.5–7040 Hz
in2 strike position, hub to rim scan radius
in3 geometry — the hole, at audio rate damping — how long the shape lasts
out0 / out1 mesh L / R scan L / R

Gold's in3 is mapped for a unipolar 0–5 V slider: nothing patched rings for
ever, about 4.4 V is a thud, 0.68 V a step.

Source

gateware/src/top/mesh/
is the shared membrane, silver/
and gold/
are the two instruments.

Building these yourself

Use gateware/scripts/build_bitstreams_fork.sh, which pins the size and the seeds.

The placer seed is not optional. These designs sit close enough to the ECP5's
routing limit that identical RTL places very differently run to run. Gold at
1280×720 is the worst of it: one seed in eight closes. The binding constraint
is dvi_clk at 74.25 MHz, and the same source lands anywhere from 72.25 to
76.38 MHz across builds. The 720×720 modeline asks only 39.07 MHz of that clock,
which is why it closes on almost anything.

Re-check the seeds after any change, not just a change of size — the bitstream
name is rendered into the video path, so even renaming the design invalidates them.

LACUNA + ORBITA — mesh-0.3: both instruments stereo

Choose a tag to compare

@Eight4aWish Eight4aWish released this 05 Sep 14:20

This is not an apfaudio release. It is a personal fork of
apfaudio/tiliqua adding two bitstreams
of my own. Upstream's own releases (v1.0.2v1.2.1) are the ones to use
for stock Tiliqua firmware. Everything upstream here is unchanged.

Two instruments built on the same 32×32 finite-difference membrane, differing
entirely in how it is driven. Both are stereo as of this release.

LACUNA — a struck membrane whose hole is the instrument. The boundary is a
comparator rather than an array, so the geometry can change every sample and
becomes a modulation destination rather than a setting. Eight geometries, exact
1 V/oct, the membrane drawn live.

ORBITA — the same mesh run a thousand times slower, with circular paths
through it read at audio rate as wavetables. Scanned synthesis in the
Verplank/Mathews/Shaw sense: pitch is the scan rate, so a held note morphs while
staying in tune. A concentric circle never crosses a concentric hole, so the
asymmetric geometries are the interesting ones — the slit gives one notch per
revolution and a full harmonic series, the square hole four notches.

What is new since mesh-0.2

ORBITA is stereo. Two scan circles, the right a quarter of the annulus
further out. Two radii rather than two points on one circle — points on a
single circle differ only by phase, which gives width but combs in mono, while
two radii are genuinely different wavetables. Measured L/R correlation runs 0.48
to −0.19 across the radius sweep and −0.03 on the drone.

It cost no multipliers: the scan is sequential and uses about thirty of the
1250 cycles in a sample, so the state machine walks the sample-and-blend
sequence twice with a channel bit selecting which radius enters the shared
multipliers. Both circles are drawn on the display — the left lifts green, the
right green and blue.

Expect ORBITA's right channel 3–5 dB below the left: it sits further out, where
the membrane moves less. That is physical rather than a scaling error.

Downloads

file for
lacuna-mesh-0.3-r5.tar.gz LACUNA, 1280×720p60 — capture cards, most monitors
orbita-mesh-0.3-r5.tar.gz ORBITA, 1280×720p60
lacuna7-mesh-0.3-r5.tar.gz LACUNA, 720×720p60 — Waveshare square panel
orbita7-mesh-0.3-r5.tar.gz ORBITA, 720×720p60

Hardware R5 only. A cheap HDMI capture dongle will not lock to 720×720 — it is
not a standard timing, so use the 1280×720 builds with one.

pdm flash status                     # see what is in the eight slots
pdm flash archive lacuna-mesh-0.3-r5.tar.gz --slot 3

Limitations

  • ORBITA has no tension control. All four jacks are spoken for; λ² is a
    per-preset constant. The strike position exists in the mesh and ORBITA does
    not drive it, for the same reason.
  • 19 of 28 multipliers used on ORBITA. Anything needing a genuinely
    parallel datapath, rather than another pass of the existing one, has nine.
  • LACUNA's geometry FM uses a hard mask, so a fast sweep of in3 is broadband
    noise at the boundary. An energy-conserving moving boundary is an open problem
    in the literature, not a coding task.
  • Four days old and played by one person on one module.

Documentation: LACUNA ·
ORBITA ·
design note ·
provenance

Licence CERN-OHL-S-2.0, following upstream.

LACUNA + ORBITA — mesh-0.2: stereo, and a smooth scan

Choose a tag to compare

@Eight4aWish Eight4aWish released this 05 Sep 06:03

This is not an apfaudio release. It is a personal fork of
apfaudio/tiliqua adding two bitstreams
of my own. Upstream's own releases (v1.0.2v1.2.1) are the ones to use
for stock Tiliqua firmware. Everything upstream here is unchanged.

Two instruments built on the same 32×32 finite-difference membrane, differing
entirely in how it is driven.

LACUNA — a struck membrane whose hole is the instrument. The boundary is a
comparator rather than an array, so the geometry can change every sample and
becomes a modulation destination rather than a setting. Eight geometries, exact
1 V/oct, and the membrane drawn live.

ORBITA — the same mesh run a thousand times slower, with a circular path
through it read at audio rate as a wavetable. Scanned synthesis in the
Verplank/Mathews/Shaw sense: pitch is the scan rate, so a held note morphs while
staying in tune. A concentric circle never crosses a concentric hole, so the
asymmetric geometries are the interesting ones — the slit gives one notch per
revolution and a full harmonic series, the square hole four notches.

What is new since mesh-0.1

LACUNA is stereo. Two pickups a quarter turn apart at the same radius. Real
decorrelation rather than a widener: measured L/R correlation is 0.50–0.60 on
the solid heads and −0.15 to 0.05 on the ring geometries, because angular modes
differ between the two positions while radially symmetric ones stay common — as
a struck drum does. A mirrored second pickup measures 1.00, which is mono with
extra steps, and +x would have been silent on the slit preset.

ORBITA samples between cells, not on them. The scan carries its position to
a sixteenth of a cell and blends the four cells around it. Waveform roughness
went from 0.579 to 0.029–0.094, and the radius control from 16 steps to 256.
This was the defect that made the previous release want reverb over it.

LACUNA's output saturates instead of wrapping. Accumulated strikes could
push past what a 16-bit output holds; it truncated, turning a loud moment into a
full-scale flip. An occasional click that only happened when playing hard.

Also: the strike and both pickups are drawn on the membrane, ORBITA's pitch
range covers eight octaves from 27.5 Hz, and its display shows the scan circle
unrolled as a waveform strip.

Downloads

file for
lacuna-mesh-0.2-r5.tar.gz LACUNA, 1280×720p60 — capture cards, most monitors
orbita-mesh-0.2-r5.tar.gz ORBITA, 1280×720p60
lacuna7-mesh-0.2-r5.tar.gz LACUNA, 720×720p60 — Waveshare square panel
orbita7-mesh-0.2-r5.tar.gz ORBITA, 720×720p60

Hardware R5 only. A cheap HDMI capture dongle will not lock to 720×720 — it is
not a standard timing, so use the 1280×720 builds with one.

pdm flash status                     # see what is in the eight slots
pdm flash archive lacuna-mesh-0.2-r5.tar.gz --slot 3

Limitations

  • ORBITA has no tension control. All four jacks are spoken for; λ² is a
    per-preset constant. The strike position exists in the mesh and ORBITA does
    not drive it, for the same reason.
  • ORBITA uses 19 of 28 multipliers, which is the resource that runs out
    first and what makes a stereo pair of scan circles a real cost.
  • LACUNA's geometry FM uses a hard mask, so a fast sweep of in3 is broadband
    noise at the boundary. An energy-conserving moving boundary is an open problem
    in the literature, not a coding task.
  • Three days old and played by one person on one module.

Documentation: LACUNA ·
ORBITA ·
design notes ·
provenance

Licence CERN-OHL-S-2.0, following upstream.

LACUNA + ORBITA — two instruments on a membrane

Choose a tag to compare

@Eight4aWish Eight4aWish released this 04 Sep 16:58

This is not an apfaudio release. It is a personal fork of
apfaudio/tiliqua adding two bitstreams
of my own. Upstream's own releases (v1.0.2v1.2.1) are the ones to use
for stock Tiliqua firmware. Everything upstream here is unchanged.

Two instruments built on the same 32×32 finite-difference membrane, differing
entirely in how it is driven.

LACUNA — a struck membrane whose hole is the instrument. The boundary is a
comparator rather than an array, so the geometry can change every sample and
becomes a modulation destination rather than a setting. Eight geometries, exact
1 V/oct, and the membrane drawn live.

ORBITA — the same mesh run a thousand times slower, with a circular path
through it read at audio rate as a wavetable. Scanned synthesis in the
Verplank/Mathews/Shaw sense. Pitch is the scan rate, so a held note morphs while
staying in tune. A concentric circle never crosses a concentric hole, so the
asymmetric geometries are the interesting ones: the slit gives one notch per
revolution and a full harmonic series, the square hole four notches.

Both draw the membrane live with no framebuffer, no PSRAM and no CPU — the
audio scan already carries every node past one point once per sample, so the
snapshot is free and each pixel is coloured microseconds before transmission.
Blue and red are the two signs of displacement, so what you see is the mode
pattern, and mode beating reads as it precessing — which a waveform display
cannot show at all.

Downloads

file for
lacuna-mesh-0.1-r5.tar.gz LACUNA, 1280×720p60 — capture cards, most monitors
orbita-mesh-0.1-r5.tar.gz ORBITA, 1280×720p60
lacuna7-mesh-0.1-r5.tar.gz LACUNA, 720×720p60 — Waveshare square panel
orbita7-mesh-0.1-r5.tar.gz ORBITA, 720×720p60

Hardware R5 only. A cheap HDMI capture dongle will not lock to 720×720 — it is
not a standard timing, so use the 1280×720 builds with one.

pdm flash status                     # see what is in the eight slots
pdm flash archive lacuna-mesh-0.1-r5.tar.gz --slot 3

Known issues

  • ORBITA's scan snaps to whole cells. On a perfectly smooth field this
    measures 0.14 roughness against 0.039 for bilinear interpolation, and it is
    why the radius control is sixteen steps rather than continuous. Audible as
    roughness on the tone. Bilinear interpolation is the fix and is not done.
  • ORBITA has no tension control. All four jacks are spoken for; λ² is a
    per-preset constant.
  • LACUNA's strike is a single cell, so the attack is bright and slightly
    harsh. mesh.py supports a mallet radius; LACUNA leaves it at zero.
  • Two days old and tested by one person on one module. Marked a pre-release
    accordingly.

Documentation: LACUNA ·
ORBITA ·
design notes

Licence CERN-OHL-S-2.0, following upstream.