Skip to content

Commit de3cb70

Browse files
author
Goran Mekić
committed
Add download page
1 parent 40ba3ab commit de3cb70

6 files changed

Lines changed: 143 additions & 2 deletions

File tree

bin/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ PROJECT_DIR="${SCRIPT_DIR}/.."
55

66
cd "${PROJECT_DIR}"
77
rm -rf public
8-
hugo
8+
hugo --minify

content/download.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
+++
2+
title = "Download"
3+
description = "Download Maolan for Linux, FreeBSD, macOS, and Windows."
4+
layout = "download"
5+
+++

hugo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ paginate = 8
6767
url = "/mixosc/"
6868
weight = 8
6969

70+
[[menu.main]]
71+
identifier = "download"
72+
name = "Download"
73+
url = "/download/"
74+
weight = 9
75+
7076
[params]
7177
author = "Maolan"
7278
avatar = "/img/logo.svg"

layouts/_default/download.html

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
{{ define "main" }}
2+
3+
<section class="gradient-dark relative overflow-hidden px-6 pb-16 pt-32">
4+
<div
5+
class="absolute right-0 top-0 h-96 w-96 rounded-full bg-blue-500/10 blur-3xl"
6+
></div>
7+
<div
8+
class="absolute bottom-0 left-0 h-96 w-96 rounded-full bg-cyan-500/10 blur-3xl"
9+
></div>
10+
<div class="relative z-10 mx-auto max-w-5xl">
11+
<div class="mb-8 flex flex-wrap gap-3">
12+
<span
13+
class="rounded-full border border-cyan-400/20 bg-cyan-400/10 px-4 py-2 text-sm font-medium text-cyan-300"
14+
>Release 0.1.1</span
15+
>
16+
<span
17+
class="rounded-full border border-slate-700 bg-slate-900/50 px-4 py-2 text-sm text-slate-300"
18+
>FreeBSD &middot; Linux &middot; Windows</span
19+
>
20+
</div>
21+
<h1 class="section-title mb-6 text-white">
22+
Download <span class="text-cyan-400">Maolan</span>
23+
</h1>
24+
<p class="max-w-3xl text-xl leading-relaxed text-slate-300">
25+
Get the latest pre-release build for your platform. Maolan is
26+
currently available for FreeBSD, Linux, and Windows.
27+
</p>
28+
<div class="mt-10 grid gap-4 sm:grid-cols-3">
29+
<div class="glass-card rounded-2xl p-6">
30+
<div class="flex items-center gap-4 mb-4">
31+
<div class="w-12 h-12 bg-cyan-400/10 rounded-lg flex items-center justify-center">
32+
<svg class="w-6 h-6 text-cyan-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
33+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 10l-2 1m0 0l-2-1m2 1v2.5M20 7l-2 1m2-1l-2-1m2 1v2.5M14 4l-2-1-2 1M4 7l2-1M4 7l2 1M4 7v2.5M12 21l-2-1m2 1l2-1m-2 1v-2.5M6 18l-2-1v-2.5M18 18l2-1v-2.5"/>
34+
</svg>
35+
</div>
36+
<div>
37+
<h3 class="text-xl font-semibold text-white">FreeBSD</h3>
38+
<p class="text-sm text-slate-400">Install from packages</p>
39+
</div>
40+
</div>
41+
<code class="block rounded-lg bg-slate-950 border border-slate-800 px-4 py-3 text-sm font-mono text-cyan-300">pkg install maolan</code>
42+
</div>
43+
<div class="glass-card rounded-2xl p-6">
44+
<div class="flex items-center gap-4 mb-4">
45+
<div class="w-12 h-12 bg-cyan-400/10 rounded-lg flex items-center justify-center">
46+
<svg class="w-6 h-6 text-cyan-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
47+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 75h6v-6H9v6zm-6 6h6v-6H3v6zm12-6h6v-6h-6v6zm-6 6h6v-6H9v6zm-6 6h6v-6H3v6zm12-6h6v-6h-6v6zm-6 6h6v-6H9v6zM3 21h6v-6H3v6zm6-6h6v-6H9v6z"/>
48+
</svg>
49+
</div>
50+
<div>
51+
<h3 class="text-xl font-semibold text-white">Linux</h3>
52+
<p class="text-sm text-slate-400">x86_64 Fedora, Debian &amp; Ubuntu</p>
53+
</div>
54+
</div>
55+
<a
56+
href="https://github.com/maolan/maolan/releases/tag/0.1.1"
57+
class="inline-flex items-center rounded-lg bg-cyan-400 px-5 py-2.5 font-semibold text-slate-950 transition hover:bg-cyan-300"
58+
>Download</a
59+
>
60+
</div>
61+
<div class="glass-card rounded-2xl p-6">
62+
<div class="flex items-center gap-4 mb-4">
63+
<div class="w-12 h-12 bg-cyan-400/10 rounded-lg flex items-center justify-center">
64+
<svg class="w-6 h-6 text-cyan-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
65+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"/>
66+
</svg>
67+
</div>
68+
<div>
69+
<h3 class="text-xl font-semibold text-white">Windows</h3>
70+
<p class="text-sm text-slate-400">x86_64 installer (EXE) for Windows 10 &amp; 11</p>
71+
</div>
72+
</div>
73+
<a
74+
href="https://github.com/maolan/maolan/releases/tag/0.1.1"
75+
class="inline-flex items-center rounded-lg bg-cyan-400 px-5 py-2.5 font-semibold text-slate-950 transition hover:bg-cyan-300"
76+
>Download</a
77+
>
78+
</div>
79+
</div>
80+
<div class="mt-8 glass-card rounded-2xl p-6">
81+
<h3 class="mb-2 text-lg font-semibold text-white">Build from Source</h3>
82+
<p class="text-slate-300 text-sm mb-4">
83+
Maolan is open source. If you prefer to build manually or run on
84+
macOS, follow the instructions in the repository.
85+
</p>
86+
<a
87+
href="https://github.com/maolan/maolan"
88+
class="text-cyan-400 hover:underline text-sm font-medium"
89+
>View source on GitHub &rarr;</a
90+
>
91+
</div>
92+
</div>
93+
</section>
94+
95+
{{ end }}

layouts/_default/features.html

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,40 @@ <h3 class="text-lg font-semibold text-white mb-3">Watchdog &amp; Recovery</h3>
703703
</div>
704704
</section>
705705
<section class="py-16 bg-slate-950">
706+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
707+
<div class="text-center mb-12">
708+
<h2 class="text-3xl font-bold text-white mb-4">Hybrid Buffers</h2>
709+
<p class="text-lg text-slate-300 max-w-3xl mx-auto">Anticipative double-buffered rendering that pre-fills audio ahead of the playhead, keeping playback smooth even when heavy processing would otherwise stall the real-time thread.</p>
710+
</div>
711+
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
712+
<div class="bg-slate-900 border border-slate-800 rounded-xl p-6">
713+
<h3 class="text-lg font-semibold text-white mb-3">Double-Buffered Architecture</h3>
714+
<p class="text-slate-300 text-sm">Each track maintains an <em>active</em> buffer for playback consumption and a <em>refill</em> buffer that background rendering continuously writes into. When the active buffer drains below a configurable low-watermark threshold, the two buffers are atomically swapped so playback never waits on DSP.</p>
715+
</div>
716+
<div class="bg-slate-900 border border-slate-800 rounded-xl p-6">
717+
<h3 class="text-lg font-semibold text-white mb-3">Anticipative Pre-Rendering</h3>
718+
<p class="text-slate-300 text-sm">Non-realtime tracks pre-render their plugin graphs ahead of the transport playhead into the refill buffer. The real-time audio thread simply copies pre-computed samples instead of running FX chains, drastically reducing CPU spikes and dropouts.</p>
719+
</div>
720+
<div class="bg-slate-900 border border-slate-800 rounded-xl p-6">
721+
<h3 class="text-lg font-semibold text-white mb-3">Seamless Seek &amp; Loop Handling</h3>
722+
<p class="text-slate-300 text-sm">Large seeks, loop wraps, and transport discontinuities instantly invalidate the cached buffers and reset the prefetch position. Playback falls back to live rendering for the first block, then resumes anticipative filling — all without audible glitches.</p>
723+
</div>
724+
<div class="bg-slate-900 border border-slate-800 rounded-xl p-6">
725+
<h3 class="text-lg font-semibold text-white mb-3">Realtime Domain Bypass</h3>
726+
<p class="text-slate-300 text-sm">Tracks running in the realtime domain bypass hybrid buffering entirely and use direct process-render blocks. This ensures live input monitoring and real-time MIDI instrument tracks maintain the lowest possible latency path.</p>
727+
</div>
728+
<div class="bg-slate-900 border border-slate-800 rounded-xl p-6">
729+
<h3 class="text-lg font-semibold text-white mb-3">Adaptive Watermark Refill</h3>
730+
<p class="text-slate-300 text-sm">A low-watermark frame counter triggers refill requests automatically. The engine renders in chunks equal to the preferred process block size, appending output into the refill buffer until the target pre-fill level is restored.</p>
731+
</div>
732+
<div class="bg-slate-900 border border-slate-800 rounded-xl p-6">
733+
<h3 class="text-lg font-semibold text-white mb-3">Underflow Safety</h3>
734+
<p class="text-slate-300 text-sm">If consumption ever outruns production — for example during extreme CPU contention — the track outputs silence for that cycle, increments an underflow counter, and resumes normal hybrid scheduling on the next block. No crashes, no feedback loops.</p>
735+
</div>
736+
</div>
737+
</div>
738+
</section>
739+
<section class="py-16 bg-slate-900">
706740
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
707741
<div class="grid lg:grid-cols-2 gap-12 items-start">
708742
<div>

themes/maolan/layouts/partials/footer.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<footer class="site-footer">
22
<div class="site-footer-inner">
33
<div class="site-footer-copy">
4-
{{ .Site.Title }} is open source under the BSD-2-Clause license.
4+
{{ .Site.Title }} is open source under the BSD-2-Clause license powered by <a href="https://sys.it.com">SysIT</a>
55
</div>
66
<div class="site-footer-links">
77
<a href="https://github.com/maolan" target="_blank" rel="noreferrer noopener">GitHub</a>
@@ -12,6 +12,7 @@
1212
<a href="/repos/">Repos</a>
1313
<a href="/plugins/">Plugins</a>
1414
<a href="/mixosc/">MixOSC</a>
15+
<a href="/download/">Download</a>
1516
</div>
1617
</div>
1718
</footer>

0 commit comments

Comments
 (0)