-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
647cf86
commit bc44aea
Showing
22 changed files
with
367 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,3 +6,5 @@ | |
|
||
/.env | ||
/web/**/installer_resources/license.txt | ||
|
||
_site |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,8 @@ | ||
# A collection of open-source audio plug-ins! | ||
|
||
This repo contains a collection of open-source audio plug-ins written in Rust and TypeScript. This is currently alpha software with plenty of limitations and limited documentation! | ||
This repo contains a collection of open-source audio plug-ins written in Rust and TypeScript using the [Conformal framework](https://github.com/russellmcc/conformal) | ||
|
||
Right now, the plug-ins are only available in VST3 format for macOS. | ||
For information on how to use the plug-ins, see our [documentation website](https://russellmcc.github.io/bilinear-audio). | ||
|
||
The working title of this collection is "Bilinear Audio". | ||
|
||
## Plug-ins | ||
|
||
Currently we've implemented two plugins: | ||
|
||
- Poly-81: an analog-modeled synthesizer loosely based on a budget-conscious synthesizer from 1980s Japan. | ||
- Chorus-R: an analog-modeled chorus effect loosely based on the chorus circuit from a different budget-conscious synthesizer from 1980s Japan. | ||
This project welcomes technical and documentation contributions, but internal documentation is somewhat limited, sorry about that! If you'd | ||
like to contribute something specific, feel free to open a [discussion](https://github.com/russellmcc/bilinear-audio/discussions). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
module.exports = { | ||
root: true, | ||
extends: ["eslint-config-custom"], | ||
parserOptions: { | ||
project: ["./tsconfig.json"], | ||
tsconfigRootDir: __dirname, | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
.next | ||
out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
/// <reference types="next" /> | ||
/// <reference types="next/image-types/global" /> | ||
|
||
// NOTE: This file should not be edited | ||
// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import nextra from "nextra"; | ||
|
||
const withNextra = nextra({ | ||
theme: "nextra-theme-docs", | ||
themeConfig: "./theme.config.tsx", | ||
latex: true, | ||
}); | ||
|
||
export default withNextra({ | ||
output: "export", | ||
trailingSlash: true, | ||
basePath: "/bilinear-audio", | ||
images: { | ||
unoptimized: true, | ||
}, | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"name": "docs", | ||
"description": "Documentation site", | ||
"private": true, | ||
"homepage": "https://github.com/russellmcc/bilinear-audio", | ||
"bugs": "https://github.com/russellmcc/bilinear-audio/issues", | ||
"license": "ISC", | ||
"scripts": { | ||
"lint": "tsc && eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", | ||
"check-format": "prettier -c .", | ||
"format": "prettier --write .", | ||
"dev": "bun x next dev", | ||
"build": "bun x --bun next build" | ||
}, | ||
"type": "module" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
export default { | ||
index: { | ||
title: "Home", | ||
type: "page", | ||
display: "hidden", | ||
theme: { | ||
layout: "full", | ||
}, | ||
}, | ||
docs: { | ||
title: "Documentation", | ||
type: "page", | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
export default { | ||
p61: "Poly 81", | ||
rchorus: "Chorus-R", | ||
about: "About", | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
title: About | ||
--- | ||
|
||
# About | ||
|
||
Bilinear Audio is a collection of open-source audio plug-ins, currently available on macOS in the VST3 format. | ||
|
||
Built with the [Conformal framework](http://russellmcc.github.io/conformal). | ||
|
||
# Getting Support | ||
|
||
Bilinear Audio is a volunteer-run collection, and support is provided on a best-effort basis only. | ||
|
||
For general discussion, questions, feature ideas, or to show off something you've made with Bilinear Audio, | ||
please use the [discussions](https://github.com/russellmcc/bilinear-audio/discussions) area on GitHub. | ||
|
||
# Reporting Bugs | ||
|
||
For specific bug reports, please use the [issue tracker](https://github.com/russellmcc/bilinear-audio/issues) on GitHub. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
title: Poly 81 | ||
--- | ||
|
||
import { Cards } from "nextra/components"; | ||
|
||
# Download | ||
|
||
<Cards.Card | ||
title="Download now" | ||
href="https://github.com/russellmcc/bilinear-audio/releases/latest/download/Poly.81.dmg" | ||
arrow | ||
/> | ||
|
||
# Overview | ||
|
||
Poly 81 is a polyphonic synthesizer inspired by a certain budget-conscious Japanese analog synthesizer from the early 1980s. While not meant to be a | ||
faithful recreation, it does attempt to capture some of the specialness of the awkward era of transition between analog to digital synthesizers. | ||
|
||
The plug-in is currently available only in the VST3 format for macOS. | ||
|
||
In addition to all the features of the synth it is based on, Poly 81 includes **note expression** support which allows it to be controlled | ||
by **MPE**-compatible controllers. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
title: Chorus-R | ||
--- | ||
|
||
import { Cards } from "nextra/components"; | ||
|
||
# Download | ||
|
||
<Cards.Card | ||
title="Download now" | ||
href="https://github.com/russellmcc/bilinear-audio/releases/latest/download/Chorus-R.dmg" | ||
arrow | ||
/> | ||
|
||
# Overview | ||
|
||
Chorus-R is a stereo chorus effect based on a chorus included in a certain Japanese analog synthesizer from the early 1980s. | ||
It uses delay modulation synchronized between the stereo channels to provide a deep chorus effect without a sense of pitch modulation. | ||
|
||
The plug-in is currently available only in the VST3 format for macOS. | ||
|
||
Just like the original, the only control is whether to enable or disable the effect. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
title: Bilinear Audio | ||
--- | ||
|
||
import PlugCard from "../src/plug-card"; | ||
|
||
# Bilinear Audio | ||
|
||
A collection of open-source audio plug-ins to transform your sound. | ||
|
||
# Plug-ins | ||
|
||
<PlugCard | ||
title="Poly 81" | ||
logLine="Vintage-inspired synthesizer" | ||
href="/docs/p61" | ||
gradientColors="linear-gradient(45deg, #ff6b6b, #feca57, #ff9ff3)" | ||
/> | ||
<PlugCard | ||
title="Chorus-R" | ||
logLine="Stereo chorus effect" | ||
href="/docs/rchorus" | ||
gradientColors="linear-gradient(45deg, #54a0ff, #5f27cd, #48dbfb)" | ||
/> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import { $ } from "bun"; | ||
import { describe, test } from "bun:test"; | ||
|
||
const MINUTE = 60_000; | ||
|
||
describe("bilinear-audio documentation", () => { | ||
test( | ||
"can build", | ||
async () => { | ||
await $`bun run web-build docs`; | ||
}, | ||
2 * MINUTE, | ||
); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import path from "node:path"; | ||
import { $ } from "bun"; | ||
|
||
const outDir = "_site"; | ||
|
||
const workspacePath = path.join(import.meta.path, "..", "..", "..", ".."); | ||
|
||
// Build the documentation | ||
await $`bun run web-build docs`.cwd(workspacePath); | ||
|
||
// Clear the output directory | ||
await $`rm -rf ${outDir}`.cwd(workspacePath); | ||
|
||
// Copy the documentation into the temporary directory | ||
await $`mkdir -p ${outDir}`.cwd(workspacePath); | ||
await $`cp -r web/docs/out/* ${outDir}/`.cwd(workspacePath); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
/* Add a new class for the container of the cards */ | ||
.cardContainer { | ||
display: flex; | ||
flex-wrap: wrap; | ||
gap: 1rem; | ||
justify-content: flex-start; | ||
} | ||
|
||
.card { | ||
position: relative; | ||
display: inline-block; | ||
vertical-align: top; | ||
padding: 1.5rem; | ||
border-radius: 0.5rem; | ||
background-color: var(--background-color); | ||
color: var(--text-color); | ||
text-decoration: none; | ||
overflow: hidden; | ||
transition: box-shadow 0.3s ease; | ||
max-width: 400px; | ||
width: calc(50% - 1rem); | ||
margin-top: 0.5rem; | ||
margin-right: 0.5rem; | ||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); | ||
transform: translateY(0); | ||
} | ||
|
||
.card:hover { | ||
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); | ||
} | ||
|
||
.content { | ||
position: relative; | ||
z-index: 1; | ||
} | ||
|
||
.title { | ||
font-size: 1.25rem; | ||
font-weight: bold; | ||
margin-bottom: 0.5rem; | ||
} | ||
|
||
.logLine { | ||
font-size: 1rem; | ||
opacity: 0.8; | ||
} | ||
|
||
.gradient { | ||
position: absolute; | ||
top: 0; | ||
left: 0; | ||
right: 0; | ||
bottom: 0; | ||
opacity: 0.1; | ||
background-size: 200% 200%; | ||
|
||
transition: opacity 0.3s ease; | ||
} | ||
|
||
.card:hover .gradient { | ||
opacity: 0.2; | ||
animation: gradientShift 10s ease infinite; | ||
} | ||
|
||
@keyframes gradientShift { | ||
0% { | ||
background-position: 0% 50%; | ||
} | ||
50% { | ||
background-position: 100% 50%; | ||
} | ||
100% { | ||
background-position: 0% 50%; | ||
} | ||
} | ||
|
||
:global(.dark) .card { | ||
--background-color: #2a2a2a; | ||
--text-color: #ffffff; | ||
} | ||
|
||
:global(.light) .card { | ||
--background-color: #ffffff; | ||
--text-color: #000000; | ||
} | ||
|
||
/* Media query for smaller screens */ | ||
@media (max-width: 768px) { | ||
.card { | ||
width: calc(100% - 1rem); /* Full width minus margin on smaller screens */ | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import React from "react"; | ||
import Link from "next/link"; | ||
import styles from "./index.module.css"; | ||
|
||
type PlugCardProps = { | ||
title: string; | ||
logLine: string; | ||
href: string; | ||
gradientColors?: string; // New prop for gradient colors | ||
}; | ||
|
||
const PlugCard: React.FC<PlugCardProps> = ({ | ||
title, | ||
logLine, | ||
href, | ||
gradientColors, | ||
}) => { | ||
const gradientStyle = { | ||
backgroundImage: | ||
gradientColors ?? "linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1)", | ||
}; | ||
|
||
return ( | ||
<Link href={href} className={styles.card}> | ||
<div className={styles.content}> | ||
<h3 className={styles.title}>{title}</h3> | ||
<p className={styles.logLine}>{logLine}</p> | ||
</div> | ||
<div className={styles.gradient} style={gradientStyle}></div> | ||
</Link> | ||
); | ||
}; | ||
|
||
export default PlugCard; |
Oops, something went wrong.