@nodetool-ai/base-nodes 0.7.0-rc.22 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/index.d.ts +61 -67
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +179 -173
- package/dist/index.js.map +1 -1
- package/dist/platforms/browser.d.ts +19 -0
- package/dist/platforms/browser.d.ts.map +1 -0
- package/dist/platforms/browser.js +29 -0
- package/dist/platforms/browser.js.map +1 -0
- package/package.json +53 -65
- package/dist/lib/audio-wav.d.ts +0 -66
- package/dist/lib/audio-wav.d.ts.map +0 -1
- package/dist/lib/audio-wav.js +0 -215
- package/dist/lib/audio-wav.js.map +0 -1
- package/dist/nodes/agent-tool-hydration.d.ts +0 -10
- package/dist/nodes/agent-tool-hydration.d.ts.map +0 -1
- package/dist/nodes/agent-tool-hydration.js +0 -43
- package/dist/nodes/agent-tool-hydration.js.map +0 -1
- package/dist/nodes/agents.d.ts +0 -262
- package/dist/nodes/agents.d.ts.map +0 -1
- package/dist/nodes/agents.js +0 -2856
- package/dist/nodes/agents.js.map +0 -1
- package/dist/nodes/anthropic.d.ts +0 -26
- package/dist/nodes/anthropic.d.ts.map +0 -1
- package/dist/nodes/anthropic.js +0 -133
- package/dist/nodes/anthropic.js.map +0 -1
- package/dist/nodes/apify.d.ts +0 -120
- package/dist/nodes/apify.d.ts.map +0 -1
- package/dist/nodes/apify.js +0 -618
- package/dist/nodes/apify.js.map +0 -1
- package/dist/nodes/audio.d.ts +0 -301
- package/dist/nodes/audio.d.ts.map +0 -1
- package/dist/nodes/audio.js +0 -1274
- package/dist/nodes/audio.js.map +0 -1
- package/dist/nodes/code-node.d.ts +0 -34
- package/dist/nodes/code-node.d.ts.map +0 -1
- package/dist/nodes/code-node.js +0 -343
- package/dist/nodes/code-node.js.map +0 -1
- package/dist/nodes/code.d.ts +0 -301
- package/dist/nodes/code.d.ts.map +0 -1
- package/dist/nodes/code.js +0 -850
- package/dist/nodes/code.js.map +0 -1
- package/dist/nodes/compare.d.ts +0 -18
- package/dist/nodes/compare.d.ts.map +0 -1
- package/dist/nodes/compare.js +0 -122
- package/dist/nodes/compare.js.map +0 -1
- package/dist/nodes/constant.d.ts +0 -315
- package/dist/nodes/constant.d.ts.map +0 -1
- package/dist/nodes/constant.js +0 -715
- package/dist/nodes/constant.js.map +0 -1
- package/dist/nodes/control.d.ts +0 -83
- package/dist/nodes/control.d.ts.map +0 -1
- package/dist/nodes/control.js +0 -212
- package/dist/nodes/control.js.map +0 -1
- package/dist/nodes/data.d.ts +0 -369
- package/dist/nodes/data.d.ts.map +0 -1
- package/dist/nodes/data.js +0 -1590
- package/dist/nodes/data.js.map +0 -1
- package/dist/nodes/document.d.ts +0 -134
- package/dist/nodes/document.d.ts.map +0 -1
- package/dist/nodes/document.js +0 -984
- package/dist/nodes/document.js.map +0 -1
- package/dist/nodes/extended-placeholders.d.ts +0 -6
- package/dist/nodes/extended-placeholders.d.ts.map +0 -1
- package/dist/nodes/extended-placeholders.js +0 -19
- package/dist/nodes/extended-placeholders.js.map +0 -1
- package/dist/nodes/gemini.d.ts +0 -110
- package/dist/nodes/gemini.d.ts.map +0 -1
- package/dist/nodes/gemini.js +0 -871
- package/dist/nodes/gemini.js.map +0 -1
- package/dist/nodes/generators.d.ts +0 -84
- package/dist/nodes/generators.d.ts.map +0 -1
- package/dist/nodes/generators.js +0 -968
- package/dist/nodes/generators.js.map +0 -1
- package/dist/nodes/image.d.ts +0 -232
- package/dist/nodes/image.d.ts.map +0 -1
- package/dist/nodes/image.js +0 -1395
- package/dist/nodes/image.js.map +0 -1
- package/dist/nodes/input.d.ts +0 -445
- package/dist/nodes/input.d.ts.map +0 -1
- package/dist/nodes/input.js +0 -1459
- package/dist/nodes/input.js.map +0 -1
- package/dist/nodes/kie-dynamic.d.ts +0 -31
- package/dist/nodes/kie-dynamic.d.ts.map +0 -1
- package/dist/nodes/kie-dynamic.js +0 -270
- package/dist/nodes/kie-dynamic.js.map +0 -1
- package/dist/nodes/lib-audio-dsp.d.ts +0 -85
- package/dist/nodes/lib-audio-dsp.d.ts.map +0 -1
- package/dist/nodes/lib-audio-dsp.js +0 -450
- package/dist/nodes/lib-audio-dsp.js.map +0 -1
- package/dist/nodes/lib-audio-effects.d.ts +0 -116
- package/dist/nodes/lib-audio-effects.d.ts.map +0 -1
- package/dist/nodes/lib-audio-effects.js +0 -905
- package/dist/nodes/lib-audio-effects.js.map +0 -1
- package/dist/nodes/lib-browser.d.ts +0 -99
- package/dist/nodes/lib-browser.d.ts.map +0 -1
- package/dist/nodes/lib-browser.js +0 -692
- package/dist/nodes/lib-browser.js.map +0 -1
- package/dist/nodes/lib-charts.d.ts +0 -20
- package/dist/nodes/lib-charts.d.ts.map +0 -1
- package/dist/nodes/lib-charts.js +0 -245
- package/dist/nodes/lib-charts.js.map +0 -1
- package/dist/nodes/lib-datetime.d.ts +0 -108
- package/dist/nodes/lib-datetime.d.ts.map +0 -1
- package/dist/nodes/lib-datetime.js +0 -421
- package/dist/nodes/lib-datetime.js.map +0 -1
- package/dist/nodes/lib-doc-convert.d.ts +0 -19
- package/dist/nodes/lib-doc-convert.d.ts.map +0 -1
- package/dist/nodes/lib-doc-convert.js +0 -257
- package/dist/nodes/lib-doc-convert.js.map +0 -1
- package/dist/nodes/lib-doc-transform.d.ts +0 -39
- package/dist/nodes/lib-doc-transform.d.ts.map +0 -1
- package/dist/nodes/lib-doc-transform.js +0 -335
- package/dist/nodes/lib-doc-transform.js.map +0 -1
- package/dist/nodes/lib-docx.d.ts +0 -106
- package/dist/nodes/lib-docx.d.ts.map +0 -1
- package/dist/nodes/lib-docx.js +0 -595
- package/dist/nodes/lib-docx.js.map +0 -1
- package/dist/nodes/lib-epub.d.ts +0 -55
- package/dist/nodes/lib-epub.d.ts.map +0 -1
- package/dist/nodes/lib-epub.js +0 -220
- package/dist/nodes/lib-epub.js.map +0 -1
- package/dist/nodes/lib-excel.d.ts +0 -74
- package/dist/nodes/lib-excel.d.ts.map +0 -1
- package/dist/nodes/lib-excel.js +0 -448
- package/dist/nodes/lib-excel.js.map +0 -1
- package/dist/nodes/lib-graphql.d.ts +0 -66
- package/dist/nodes/lib-graphql.d.ts.map +0 -1
- package/dist/nodes/lib-graphql.js +0 -333
- package/dist/nodes/lib-graphql.js.map +0 -1
- package/dist/nodes/lib-grid.d.ts +0 -27
- package/dist/nodes/lib-grid.d.ts.map +0 -1
- package/dist/nodes/lib-grid.js +0 -172
- package/dist/nodes/lib-grid.js.map +0 -1
- package/dist/nodes/lib-html-parse.d.ts +0 -108
- package/dist/nodes/lib-html-parse.d.ts.map +0 -1
- package/dist/nodes/lib-html-parse.js +0 -365
- package/dist/nodes/lib-html-parse.js.map +0 -1
- package/dist/nodes/lib-http.d.ts +0 -98
- package/dist/nodes/lib-http.d.ts.map +0 -1
- package/dist/nodes/lib-http.js +0 -267
- package/dist/nodes/lib-http.js.map +0 -1
- package/dist/nodes/lib-image-color-grading.d.ts +0 -3
- package/dist/nodes/lib-image-color-grading.d.ts.map +0 -1
- package/dist/nodes/lib-image-color-grading.js +0 -1386
- package/dist/nodes/lib-image-color-grading.js.map +0 -1
- package/dist/nodes/lib-image-draw.d.ts +0 -3
- package/dist/nodes/lib-image-draw.d.ts.map +0 -1
- package/dist/nodes/lib-image-draw.js +0 -470
- package/dist/nodes/lib-image-draw.js.map +0 -1
- package/dist/nodes/lib-image-enhance.d.ts +0 -3
- package/dist/nodes/lib-image-enhance.d.ts.map +0 -1
- package/dist/nodes/lib-image-enhance.js +0 -731
- package/dist/nodes/lib-image-enhance.js.map +0 -1
- package/dist/nodes/lib-image-filter.d.ts +0 -3
- package/dist/nodes/lib-image-filter.d.ts.map +0 -1
- package/dist/nodes/lib-image-filter.js +0 -684
- package/dist/nodes/lib-image-filter.js.map +0 -1
- package/dist/nodes/lib-image-utils.d.ts +0 -24
- package/dist/nodes/lib-image-utils.d.ts.map +0 -1
- package/dist/nodes/lib-image-utils.js +0 -150
- package/dist/nodes/lib-image-utils.js.map +0 -1
- package/dist/nodes/lib-mail.d.ts +0 -74
- package/dist/nodes/lib-mail.d.ts.map +0 -1
- package/dist/nodes/lib-mail.js +0 -452
- package/dist/nodes/lib-mail.js.map +0 -1
- package/dist/nodes/lib-markdown.d.ts +0 -70
- package/dist/nodes/lib-markdown.d.ts.map +0 -1
- package/dist/nodes/lib-markdown.js +0 -236
- package/dist/nodes/lib-markdown.js.map +0 -1
- package/dist/nodes/lib-nlp.d.ts +0 -98
- package/dist/nodes/lib-nlp.d.ts.map +0 -1
- package/dist/nodes/lib-nlp.js +0 -374
- package/dist/nodes/lib-nlp.js.map +0 -1
- package/dist/nodes/lib-notion.d.ts +0 -99
- package/dist/nodes/lib-notion.d.ts.map +0 -1
- package/dist/nodes/lib-notion.js +0 -601
- package/dist/nodes/lib-notion.js.map +0 -1
- package/dist/nodes/lib-ocr.d.ts +0 -31
- package/dist/nodes/lib-ocr.d.ts.map +0 -1
- package/dist/nodes/lib-ocr.js +0 -143
- package/dist/nodes/lib-ocr.js.map +0 -1
- package/dist/nodes/lib-os.d.ts +0 -312
- package/dist/nodes/lib-os.d.ts.map +0 -1
- package/dist/nodes/lib-os.js +0 -909
- package/dist/nodes/lib-os.js.map +0 -1
- package/dist/nodes/lib-pdf.d.ts +0 -142
- package/dist/nodes/lib-pdf.d.ts.map +0 -1
- package/dist/nodes/lib-pdf.js +0 -871
- package/dist/nodes/lib-pdf.js.map +0 -1
- package/dist/nodes/lib-pptx.d.ts +0 -29
- package/dist/nodes/lib-pptx.d.ts.map +0 -1
- package/dist/nodes/lib-pptx.js +0 -122
- package/dist/nodes/lib-pptx.js.map +0 -1
- package/dist/nodes/lib-rss.d.ts +0 -31
- package/dist/nodes/lib-rss.d.ts.map +0 -1
- package/dist/nodes/lib-rss.js +0 -163
- package/dist/nodes/lib-rss.js.map +0 -1
- package/dist/nodes/lib-s3.d.ts +0 -112
- package/dist/nodes/lib-s3.d.ts.map +0 -1
- package/dist/nodes/lib-s3.js +0 -521
- package/dist/nodes/lib-s3.js.map +0 -1
- package/dist/nodes/lib-secret.d.ts +0 -15
- package/dist/nodes/lib-secret.d.ts.map +0 -1
- package/dist/nodes/lib-secret.js +0 -42
- package/dist/nodes/lib-secret.js.map +0 -1
- package/dist/nodes/lib-sqlite.d.ts +0 -102
- package/dist/nodes/lib-sqlite.d.ts.map +0 -1
- package/dist/nodes/lib-sqlite.js +0 -532
- package/dist/nodes/lib-sqlite.js.map +0 -1
- package/dist/nodes/lib-supabase.d.ts +0 -86
- package/dist/nodes/lib-supabase.d.ts.map +0 -1
- package/dist/nodes/lib-supabase.js +0 -425
- package/dist/nodes/lib-supabase.js.map +0 -1
- package/dist/nodes/lib-svg.d.ts +0 -199
- package/dist/nodes/lib-svg.d.ts.map +0 -1
- package/dist/nodes/lib-svg.js +0 -1027
- package/dist/nodes/lib-svg.js.map +0 -1
- package/dist/nodes/lib-tensorflow.d.ts +0 -71
- package/dist/nodes/lib-tensorflow.d.ts.map +0 -1
- package/dist/nodes/lib-tensorflow.js +0 -351
- package/dist/nodes/lib-tensorflow.js.map +0 -1
- package/dist/nodes/lib-twilio.d.ts +0 -71
- package/dist/nodes/lib-twilio.d.ts.map +0 -1
- package/dist/nodes/lib-twilio.js +0 -469
- package/dist/nodes/lib-twilio.js.map +0 -1
- package/dist/nodes/lib-validate.d.ts +0 -84
- package/dist/nodes/lib-validate.d.ts.map +0 -1
- package/dist/nodes/lib-validate.js +0 -215
- package/dist/nodes/lib-validate.js.map +0 -1
- package/dist/nodes/lib-video-download.d.ts +0 -26
- package/dist/nodes/lib-video-download.d.ts.map +0 -1
- package/dist/nodes/lib-video-download.js +0 -299
- package/dist/nodes/lib-video-download.js.map +0 -1
- package/dist/nodes/messaging.d.ts +0 -88
- package/dist/nodes/messaging.d.ts.map +0 -1
- package/dist/nodes/messaging.js +0 -418
- package/dist/nodes/messaging.js.map +0 -1
- package/dist/nodes/mistral.d.ts +0 -83
- package/dist/nodes/mistral.d.ts.map +0 -1
- package/dist/nodes/mistral.js +0 -450
- package/dist/nodes/mistral.js.map +0 -1
- package/dist/nodes/model3d/analysis.d.ts +0 -13
- package/dist/nodes/model3d/analysis.d.ts.map +0 -1
- package/dist/nodes/model3d/analysis.js +0 -36
- package/dist/nodes/model3d/analysis.js.map +0 -1
- package/dist/nodes/model3d/base.d.ts +0 -11
- package/dist/nodes/model3d/base.d.ts.map +0 -1
- package/dist/nodes/model3d/base.js +0 -20
- package/dist/nodes/model3d/base.js.map +0 -1
- package/dist/nodes/model3d/boolean-ops.d.ts +0 -2
- package/dist/nodes/model3d/boolean-ops.d.ts.map +0 -1
- package/dist/nodes/model3d/boolean-ops.js +0 -172
- package/dist/nodes/model3d/boolean-ops.js.map +0 -1
- package/dist/nodes/model3d/cleanup.d.ts +0 -47
- package/dist/nodes/model3d/cleanup.d.ts.map +0 -1
- package/dist/nodes/model3d/cleanup.js +0 -136
- package/dist/nodes/model3d/cleanup.js.map +0 -1
- package/dist/nodes/model3d/convert.d.ts +0 -14
- package/dist/nodes/model3d/convert.d.ts.map +0 -1
- package/dist/nodes/model3d/convert.js +0 -64
- package/dist/nodes/model3d/convert.js.map +0 -1
- package/dist/nodes/model3d/defaults.d.ts +0 -34
- package/dist/nodes/model3d/defaults.d.ts.map +0 -1
- package/dist/nodes/model3d/defaults.js +0 -28
- package/dist/nodes/model3d/defaults.js.map +0 -1
- package/dist/nodes/model3d/document-ops.d.ts +0 -4
- package/dist/nodes/model3d/document-ops.d.ts.map +0 -1
- package/dist/nodes/model3d/document-ops.js +0 -40
- package/dist/nodes/model3d/document-ops.js.map +0 -1
- package/dist/nodes/model3d/generation.d.ts +0 -39
- package/dist/nodes/model3d/generation.d.ts.map +0 -1
- package/dist/nodes/model3d/generation.js +0 -179
- package/dist/nodes/model3d/generation.js.map +0 -1
- package/dist/nodes/model3d/glb.d.ts +0 -29
- package/dist/nodes/model3d/glb.d.ts.map +0 -1
- package/dist/nodes/model3d/glb.js +0 -255
- package/dist/nodes/model3d/glb.js.map +0 -1
- package/dist/nodes/model3d/index.d.ts +0 -20
- package/dist/nodes/model3d/index.d.ts.map +0 -1
- package/dist/nodes/model3d/index.js +0 -38
- package/dist/nodes/model3d/index.js.map +0 -1
- package/dist/nodes/model3d/io.d.ts +0 -38
- package/dist/nodes/model3d/io.d.ts.map +0 -1
- package/dist/nodes/model3d/io.js +0 -162
- package/dist/nodes/model3d/io.js.map +0 -1
- package/dist/nodes/model3d/mesh-ops.d.ts +0 -40
- package/dist/nodes/model3d/mesh-ops.d.ts.map +0 -1
- package/dist/nodes/model3d/mesh-ops.js +0 -775
- package/dist/nodes/model3d/mesh-ops.js.map +0 -1
- package/dist/nodes/model3d/nodes.d.ts +0 -2
- package/dist/nodes/model3d/nodes.d.ts.map +0 -1
- package/dist/nodes/model3d/nodes.js +0 -2
- package/dist/nodes/model3d/nodes.js.map +0 -1
- package/dist/nodes/model3d/ops.d.ts +0 -37
- package/dist/nodes/model3d/ops.d.ts.map +0 -1
- package/dist/nodes/model3d/ops.js +0 -137
- package/dist/nodes/model3d/ops.js.map +0 -1
- package/dist/nodes/model3d/transforms.d.ts +0 -49
- package/dist/nodes/model3d/transforms.d.ts.map +0 -1
- package/dist/nodes/model3d/transforms.js +0 -142
- package/dist/nodes/model3d/transforms.js.map +0 -1
- package/dist/nodes/model3d/types.d.ts +0 -81
- package/dist/nodes/model3d/types.d.ts.map +0 -1
- package/dist/nodes/model3d/types.js +0 -2
- package/dist/nodes/model3d/types.js.map +0 -1
- package/dist/nodes/model3d/utils.d.ts +0 -34
- package/dist/nodes/model3d/utils.d.ts.map +0 -1
- package/dist/nodes/model3d/utils.js +0 -185
- package/dist/nodes/model3d/utils.js.map +0 -1
- package/dist/nodes/model3d.d.ts +0 -2
- package/dist/nodes/model3d.d.ts.map +0 -1
- package/dist/nodes/model3d.js +0 -2
- package/dist/nodes/model3d.js.map +0 -1
- package/dist/nodes/openai.d.ts +0 -172
- package/dist/nodes/openai.d.ts.map +0 -1
- package/dist/nodes/openai.js +0 -1294
- package/dist/nodes/openai.js.map +0 -1
- package/dist/nodes/output.d.ts +0 -29
- package/dist/nodes/output.d.ts.map +0 -1
- package/dist/nodes/output.js +0 -87
- package/dist/nodes/output.js.map +0 -1
- package/dist/nodes/sandbox.d.ts +0 -63
- package/dist/nodes/sandbox.d.ts.map +0 -1
- package/dist/nodes/sandbox.js +0 -633
- package/dist/nodes/sandbox.js.map +0 -1
- package/dist/nodes/search.d.ts +0 -117
- package/dist/nodes/search.d.ts.map +0 -1
- package/dist/nodes/search.js +0 -607
- package/dist/nodes/search.js.map +0 -1
- package/dist/nodes/team.d.ts +0 -74
- package/dist/nodes/team.d.ts.map +0 -1
- package/dist/nodes/team.js +0 -309
- package/dist/nodes/team.js.map +0 -1
- package/dist/nodes/text-extra.d.ts +0 -633
- package/dist/nodes/text-extra.d.ts.map +0 -1
- package/dist/nodes/text-extra.js +0 -2226
- package/dist/nodes/text-extra.js.map +0 -1
- package/dist/nodes/tool-agents.d.ts +0 -334
- package/dist/nodes/tool-agents.d.ts.map +0 -1
- package/dist/nodes/tool-agents.js +0 -1861
- package/dist/nodes/tool-agents.js.map +0 -1
- package/dist/nodes/triggers.d.ts +0 -107
- package/dist/nodes/triggers.d.ts.map +0 -1
- package/dist/nodes/triggers.js +0 -706
- package/dist/nodes/triggers.js.map +0 -1
- package/dist/nodes/vector.d.ts +0 -168
- package/dist/nodes/vector.d.ts.map +0 -1
- package/dist/nodes/vector.js +0 -1121
- package/dist/nodes/vector.js.map +0 -1
- package/dist/nodes/video.d.ts +0 -387
- package/dist/nodes/video.d.ts.map +0 -1
- package/dist/nodes/video.js +0 -2383
- package/dist/nodes/video.js.map +0 -1
- package/dist/nodes/workflow.d.ts +0 -24
- package/dist/nodes/workflow.d.ts.map +0 -1
- package/dist/nodes/workflow.js +0 -146
- package/dist/nodes/workflow.js.map +0 -1
- package/dist/nodes/workspace.d.ts +0 -203
- package/dist/nodes/workspace.d.ts.map +0 -1
- package/dist/nodes/workspace.js +0 -795
- package/dist/nodes/workspace.js.map +0 -1
|
@@ -1,450 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { BaseNode, prop } from "@nodetool-ai/node-sdk";
|
|
8
|
-
import { audioRefFromWav, decodeWav, encodeWav } from "../lib/audio-wav.js";
|
|
9
|
-
// ── Part B: Audio filter/effect nodes (node-web-audio-api) ─────────
|
|
10
|
-
async function processAudioWithEffect(audio, setupEffect, extraLength = 0) {
|
|
11
|
-
const { OfflineAudioContext } = await import("node-web-audio-api");
|
|
12
|
-
const wav = decodeWav(audio);
|
|
13
|
-
const frameSamples = Math.floor(wav.samples.length / wav.numChannels);
|
|
14
|
-
const totalFrames = frameSamples + extraLength;
|
|
15
|
-
const ctx = new OfflineAudioContext(wav.numChannels, totalFrames, wav.sampleRate);
|
|
16
|
-
const buffer = ctx.createBuffer(wav.numChannels, frameSamples, wav.sampleRate);
|
|
17
|
-
// Fill buffer channels
|
|
18
|
-
for (let ch = 0; ch < wav.numChannels; ch++) {
|
|
19
|
-
const channelData = buffer.getChannelData(ch);
|
|
20
|
-
for (let i = 0; i < frameSamples; i++) {
|
|
21
|
-
channelData[i] = wav.samples[i * wav.numChannels + ch];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
const source = ctx.createBufferSource();
|
|
25
|
-
source.buffer = buffer;
|
|
26
|
-
setupEffect(ctx, source);
|
|
27
|
-
source.start();
|
|
28
|
-
const renderedBuffer = await ctx.startRendering();
|
|
29
|
-
// Interleave channels back
|
|
30
|
-
const outLength = renderedBuffer.length * wav.numChannels;
|
|
31
|
-
const outSamples = new Float32Array(outLength);
|
|
32
|
-
for (let ch = 0; ch < wav.numChannels; ch++) {
|
|
33
|
-
const channelData = renderedBuffer.getChannelData(ch);
|
|
34
|
-
for (let i = 0; i < renderedBuffer.length; i++) {
|
|
35
|
-
outSamples[i * wav.numChannels + ch] = channelData[i];
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return audioRefFromWav(encodeWav(outSamples, wav.sampleRate, wav.numChannels));
|
|
39
|
-
}
|
|
40
|
-
export class GainNode_ extends BaseNode {
|
|
41
|
-
static nodeType = "lib.audio.Gain";
|
|
42
|
-
static title = "Gain";
|
|
43
|
-
static description = "Applies a gain (volume adjustment) to an audio file.\n audio, effect, volume\n\n Use cases:\n - Increase or decrease overall volume of audio\n - Balance levels between different audio tracks\n - Prepare audio for further processing";
|
|
44
|
-
static metadataOutputTypes = {
|
|
45
|
-
output: "audio"
|
|
46
|
-
};
|
|
47
|
-
async process() {
|
|
48
|
-
const audio = (this.audio ?? {});
|
|
49
|
-
const gainDb = Number(this.gain_db ?? 0);
|
|
50
|
-
if (!audio.data)
|
|
51
|
-
return { output: audio };
|
|
52
|
-
const output = await processAudioWithEffect(audio, (ctx, source) => {
|
|
53
|
-
const gainNode = ctx.createGain();
|
|
54
|
-
gainNode.gain.value = Math.pow(10, gainDb / 20);
|
|
55
|
-
source.connect(gainNode);
|
|
56
|
-
gainNode.connect(ctx.destination);
|
|
57
|
-
});
|
|
58
|
-
return { output };
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
__decorate([
|
|
62
|
-
prop({
|
|
63
|
-
type: "audio",
|
|
64
|
-
default: {
|
|
65
|
-
type: "audio",
|
|
66
|
-
uri: "",
|
|
67
|
-
asset_id: null,
|
|
68
|
-
data: null,
|
|
69
|
-
metadata: null
|
|
70
|
-
},
|
|
71
|
-
title: "Audio",
|
|
72
|
-
description: "The audio file to process."
|
|
73
|
-
})
|
|
74
|
-
], GainNode_.prototype, "audio", void 0);
|
|
75
|
-
__decorate([
|
|
76
|
-
prop({
|
|
77
|
-
type: "float",
|
|
78
|
-
default: 0,
|
|
79
|
-
title: "Gain Db",
|
|
80
|
-
description: "Gain to apply in decibels. Positive values increase volume, negative values decrease it.",
|
|
81
|
-
min: -60,
|
|
82
|
-
max: 24
|
|
83
|
-
})
|
|
84
|
-
], GainNode_.prototype, "gain_db", void 0);
|
|
85
|
-
export class DelayNode_ extends BaseNode {
|
|
86
|
-
static nodeType = "lib.audio.Delay";
|
|
87
|
-
static title = "Delay";
|
|
88
|
-
static description = "Applies a delay effect to an audio file.\n audio, effect, time-based\n\n Use cases:\n - Create echo effects\n - Add spaciousness to sounds\n - Produce rhythmic patterns";
|
|
89
|
-
static metadataOutputTypes = {
|
|
90
|
-
output: "audio"
|
|
91
|
-
};
|
|
92
|
-
async process() {
|
|
93
|
-
const audio = (this.audio ?? {});
|
|
94
|
-
const delaySec = Number(this.delay_seconds ?? 0.5);
|
|
95
|
-
const feedback = Number(this.feedback ?? 0.3);
|
|
96
|
-
const mix = Number(this.mix ?? 0.5);
|
|
97
|
-
if (!audio.data)
|
|
98
|
-
return { output: audio };
|
|
99
|
-
const wav = decodeWav(audio);
|
|
100
|
-
const frameSamples = Math.floor(wav.samples.length / wav.numChannels);
|
|
101
|
-
const delaySamples = Math.floor(delaySec * wav.sampleRate);
|
|
102
|
-
// Process delay manually for better control over feedback
|
|
103
|
-
const outLength = frameSamples + delaySamples * 4; // extra space for echoes
|
|
104
|
-
const outSamples = new Float32Array(outLength * wav.numChannels);
|
|
105
|
-
for (let ch = 0; ch < wav.numChannels; ch++) {
|
|
106
|
-
const dry = new Float32Array(outLength);
|
|
107
|
-
const wet = new Float32Array(outLength);
|
|
108
|
-
// Copy dry signal
|
|
109
|
-
for (let i = 0; i < frameSamples; i++) {
|
|
110
|
-
dry[i] = wav.samples[i * wav.numChannels + ch];
|
|
111
|
-
}
|
|
112
|
-
// Apply delay with feedback
|
|
113
|
-
for (let i = 0; i < outLength; i++) {
|
|
114
|
-
const dryVal = i < frameSamples ? dry[i] : 0;
|
|
115
|
-
const delayedVal = i >= delaySamples ? wet[i - delaySamples] : 0;
|
|
116
|
-
wet[i] = dryVal + delayedVal * feedback;
|
|
117
|
-
}
|
|
118
|
-
// Mix dry and wet
|
|
119
|
-
for (let i = 0; i < outLength; i++) {
|
|
120
|
-
const dryVal = i < frameSamples ? dry[i] : 0;
|
|
121
|
-
outSamples[i * wav.numChannels + ch] =
|
|
122
|
-
dryVal * (1 - mix) + wet[i] * mix;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return {
|
|
126
|
-
output: audioRefFromWav(encodeWav(outSamples, wav.sampleRate, wav.numChannels))
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
__decorate([
|
|
131
|
-
prop({
|
|
132
|
-
type: "audio",
|
|
133
|
-
default: {
|
|
134
|
-
type: "audio",
|
|
135
|
-
uri: "",
|
|
136
|
-
asset_id: null,
|
|
137
|
-
data: null,
|
|
138
|
-
metadata: null
|
|
139
|
-
},
|
|
140
|
-
title: "Audio",
|
|
141
|
-
description: "The audio file to process."
|
|
142
|
-
})
|
|
143
|
-
], DelayNode_.prototype, "audio", void 0);
|
|
144
|
-
__decorate([
|
|
145
|
-
prop({
|
|
146
|
-
type: "float",
|
|
147
|
-
default: 0.5,
|
|
148
|
-
title: "Delay Seconds",
|
|
149
|
-
description: "Delay time in seconds.",
|
|
150
|
-
min: 0.01,
|
|
151
|
-
max: 5
|
|
152
|
-
})
|
|
153
|
-
], DelayNode_.prototype, "delay_seconds", void 0);
|
|
154
|
-
__decorate([
|
|
155
|
-
prop({
|
|
156
|
-
type: "float",
|
|
157
|
-
default: 0.3,
|
|
158
|
-
title: "Feedback",
|
|
159
|
-
description: "Amount of delayed signal fed back into the effect.",
|
|
160
|
-
min: 0,
|
|
161
|
-
max: 0.99
|
|
162
|
-
})
|
|
163
|
-
], DelayNode_.prototype, "feedback", void 0);
|
|
164
|
-
__decorate([
|
|
165
|
-
prop({
|
|
166
|
-
type: "float",
|
|
167
|
-
default: 0.5,
|
|
168
|
-
title: "Mix",
|
|
169
|
-
description: "Mix between the dry (original) and wet (delayed) signals.",
|
|
170
|
-
min: 0,
|
|
171
|
-
max: 1
|
|
172
|
-
})
|
|
173
|
-
], DelayNode_.prototype, "mix", void 0);
|
|
174
|
-
export class HighPassFilterNode extends BaseNode {
|
|
175
|
-
static nodeType = "lib.audio.HighPassFilter";
|
|
176
|
-
static title = "High Pass Filter";
|
|
177
|
-
static description = "Applies a high-pass filter to attenuate frequencies below a cutoff point.\n audio, effect, equalizer\n\n Use cases:\n - Remove low-frequency rumble or noise\n - Clean up the low end of a mix\n - Create filter sweep effects";
|
|
178
|
-
static metadataOutputTypes = {
|
|
179
|
-
output: "audio"
|
|
180
|
-
};
|
|
181
|
-
async process() {
|
|
182
|
-
const audio = (this.audio ?? {});
|
|
183
|
-
const cutoff = Number(this.cutoff_frequency_hz ?? 80);
|
|
184
|
-
if (!audio.data)
|
|
185
|
-
return { output: audio };
|
|
186
|
-
const output = await processAudioWithEffect(audio, (ctx, source) => {
|
|
187
|
-
const filter = ctx.createBiquadFilter();
|
|
188
|
-
filter.type = "highpass";
|
|
189
|
-
filter.frequency.value = cutoff;
|
|
190
|
-
source.connect(filter);
|
|
191
|
-
filter.connect(ctx.destination);
|
|
192
|
-
});
|
|
193
|
-
return { output };
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
__decorate([
|
|
197
|
-
prop({
|
|
198
|
-
type: "audio",
|
|
199
|
-
default: {
|
|
200
|
-
type: "audio",
|
|
201
|
-
uri: "",
|
|
202
|
-
asset_id: null,
|
|
203
|
-
data: null,
|
|
204
|
-
metadata: null
|
|
205
|
-
},
|
|
206
|
-
title: "Audio",
|
|
207
|
-
description: "The audio file to process."
|
|
208
|
-
})
|
|
209
|
-
], HighPassFilterNode.prototype, "audio", void 0);
|
|
210
|
-
__decorate([
|
|
211
|
-
prop({
|
|
212
|
-
type: "float",
|
|
213
|
-
default: 80,
|
|
214
|
-
title: "Cutoff Frequency Hz",
|
|
215
|
-
description: "The cutoff frequency of the high-pass filter in Hz.",
|
|
216
|
-
min: 20,
|
|
217
|
-
max: 5000
|
|
218
|
-
})
|
|
219
|
-
], HighPassFilterNode.prototype, "cutoff_frequency_hz", void 0);
|
|
220
|
-
export class LowPassFilterNode extends BaseNode {
|
|
221
|
-
static nodeType = "lib.audio.LowPassFilter";
|
|
222
|
-
static title = "Low Pass Filter";
|
|
223
|
-
static description = "Applies a low-pass filter to attenuate frequencies above a cutoff point.\n audio, effect, equalizer\n\n Use cases:\n - Reduce high-frequency harshness\n - Simulate muffled or distant sounds\n - Create dub-style effects";
|
|
224
|
-
static metadataOutputTypes = {
|
|
225
|
-
output: "audio"
|
|
226
|
-
};
|
|
227
|
-
async process() {
|
|
228
|
-
const audio = (this.audio ?? {});
|
|
229
|
-
const cutoff = Number(this.cutoff_frequency_hz ?? 5000);
|
|
230
|
-
if (!audio.data)
|
|
231
|
-
return { output: audio };
|
|
232
|
-
const output = await processAudioWithEffect(audio, (ctx, source) => {
|
|
233
|
-
const filter = ctx.createBiquadFilter();
|
|
234
|
-
filter.type = "lowpass";
|
|
235
|
-
filter.frequency.value = cutoff;
|
|
236
|
-
source.connect(filter);
|
|
237
|
-
filter.connect(ctx.destination);
|
|
238
|
-
});
|
|
239
|
-
return { output };
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
__decorate([
|
|
243
|
-
prop({
|
|
244
|
-
type: "audio",
|
|
245
|
-
default: {
|
|
246
|
-
type: "audio",
|
|
247
|
-
uri: "",
|
|
248
|
-
asset_id: null,
|
|
249
|
-
data: null,
|
|
250
|
-
metadata: null
|
|
251
|
-
},
|
|
252
|
-
title: "Audio",
|
|
253
|
-
description: "The audio file to process."
|
|
254
|
-
})
|
|
255
|
-
], LowPassFilterNode.prototype, "audio", void 0);
|
|
256
|
-
__decorate([
|
|
257
|
-
prop({
|
|
258
|
-
type: "float",
|
|
259
|
-
default: 5000,
|
|
260
|
-
title: "Cutoff Frequency Hz",
|
|
261
|
-
description: "The cutoff frequency of the low-pass filter in Hz.",
|
|
262
|
-
min: 500,
|
|
263
|
-
max: 20000
|
|
264
|
-
})
|
|
265
|
-
], LowPassFilterNode.prototype, "cutoff_frequency_hz", void 0);
|
|
266
|
-
export class HighShelfFilterNode extends BaseNode {
|
|
267
|
-
static nodeType = "lib.audio.HighShelfFilter";
|
|
268
|
-
static title = "High Shelf Filter";
|
|
269
|
-
static description = "Applies a high shelf filter to boost or cut high frequencies.\n audio, effect, equalizer\n\n Use cases:\n - Enhance or reduce treble frequencies\n - Add brightness or air to audio\n - Tame harsh high frequencies";
|
|
270
|
-
static metadataOutputTypes = {
|
|
271
|
-
output: "audio"
|
|
272
|
-
};
|
|
273
|
-
async process() {
|
|
274
|
-
const audio = (this.audio ?? {});
|
|
275
|
-
const cutoff = Number(this.cutoff_frequency_hz ?? 5000);
|
|
276
|
-
const gainDb = Number(this.gain_db ?? 0);
|
|
277
|
-
if (!audio.data)
|
|
278
|
-
return { output: audio };
|
|
279
|
-
const output = await processAudioWithEffect(audio, (ctx, source) => {
|
|
280
|
-
const filter = ctx.createBiquadFilter();
|
|
281
|
-
filter.type = "highshelf";
|
|
282
|
-
filter.frequency.value = cutoff;
|
|
283
|
-
filter.gain.value = gainDb;
|
|
284
|
-
source.connect(filter);
|
|
285
|
-
filter.connect(ctx.destination);
|
|
286
|
-
});
|
|
287
|
-
return { output };
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
__decorate([
|
|
291
|
-
prop({
|
|
292
|
-
type: "audio",
|
|
293
|
-
default: {
|
|
294
|
-
type: "audio",
|
|
295
|
-
uri: "",
|
|
296
|
-
asset_id: null,
|
|
297
|
-
data: null,
|
|
298
|
-
metadata: null
|
|
299
|
-
},
|
|
300
|
-
title: "Audio",
|
|
301
|
-
description: "The audio file to process."
|
|
302
|
-
})
|
|
303
|
-
], HighShelfFilterNode.prototype, "audio", void 0);
|
|
304
|
-
__decorate([
|
|
305
|
-
prop({
|
|
306
|
-
type: "float",
|
|
307
|
-
default: 5000,
|
|
308
|
-
title: "Cutoff Frequency Hz",
|
|
309
|
-
description: "The cutoff frequency of the shelf filter in Hz.",
|
|
310
|
-
min: 1000,
|
|
311
|
-
max: 20000
|
|
312
|
-
})
|
|
313
|
-
], HighShelfFilterNode.prototype, "cutoff_frequency_hz", void 0);
|
|
314
|
-
__decorate([
|
|
315
|
-
prop({
|
|
316
|
-
type: "float",
|
|
317
|
-
default: 0,
|
|
318
|
-
title: "Gain Db",
|
|
319
|
-
description: "The gain to apply to the frequencies above the cutoff, in dB.",
|
|
320
|
-
min: -24,
|
|
321
|
-
max: 24
|
|
322
|
-
})
|
|
323
|
-
], HighShelfFilterNode.prototype, "gain_db", void 0);
|
|
324
|
-
export class LowShelfFilterNode extends BaseNode {
|
|
325
|
-
static nodeType = "lib.audio.LowShelfFilter";
|
|
326
|
-
static title = "Low Shelf Filter";
|
|
327
|
-
static description = "Applies a low shelf filter to boost or cut low frequencies.\n audio, effect, equalizer\n\n Use cases:\n - Enhance or reduce bass frequencies\n - Shape the low-end response of audio\n - Compensate for speaker or room deficiencies";
|
|
328
|
-
static metadataOutputTypes = {
|
|
329
|
-
output: "audio"
|
|
330
|
-
};
|
|
331
|
-
async process() {
|
|
332
|
-
const audio = (this.audio ?? {});
|
|
333
|
-
const cutoff = Number(this.cutoff_frequency_hz ?? 200);
|
|
334
|
-
const gainDb = Number(this.gain_db ?? 0);
|
|
335
|
-
if (!audio.data)
|
|
336
|
-
return { output: audio };
|
|
337
|
-
const output = await processAudioWithEffect(audio, (ctx, source) => {
|
|
338
|
-
const filter = ctx.createBiquadFilter();
|
|
339
|
-
filter.type = "lowshelf";
|
|
340
|
-
filter.frequency.value = cutoff;
|
|
341
|
-
filter.gain.value = gainDb;
|
|
342
|
-
source.connect(filter);
|
|
343
|
-
filter.connect(ctx.destination);
|
|
344
|
-
});
|
|
345
|
-
return { output };
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
__decorate([
|
|
349
|
-
prop({
|
|
350
|
-
type: "audio",
|
|
351
|
-
default: {
|
|
352
|
-
type: "audio",
|
|
353
|
-
uri: "",
|
|
354
|
-
asset_id: null,
|
|
355
|
-
data: null,
|
|
356
|
-
metadata: null
|
|
357
|
-
},
|
|
358
|
-
title: "Audio",
|
|
359
|
-
description: "The audio file to process."
|
|
360
|
-
})
|
|
361
|
-
], LowShelfFilterNode.prototype, "audio", void 0);
|
|
362
|
-
__decorate([
|
|
363
|
-
prop({
|
|
364
|
-
type: "float",
|
|
365
|
-
default: 200,
|
|
366
|
-
title: "Cutoff Frequency Hz",
|
|
367
|
-
description: "The cutoff frequency of the shelf filter in Hz.",
|
|
368
|
-
min: 20,
|
|
369
|
-
max: 1000
|
|
370
|
-
})
|
|
371
|
-
], LowShelfFilterNode.prototype, "cutoff_frequency_hz", void 0);
|
|
372
|
-
__decorate([
|
|
373
|
-
prop({
|
|
374
|
-
type: "float",
|
|
375
|
-
default: 0,
|
|
376
|
-
title: "Gain Db",
|
|
377
|
-
description: "The gain to apply to the frequencies below the cutoff, in dB.",
|
|
378
|
-
min: -24,
|
|
379
|
-
max: 24
|
|
380
|
-
})
|
|
381
|
-
], LowShelfFilterNode.prototype, "gain_db", void 0);
|
|
382
|
-
export class PeakFilterNode extends BaseNode {
|
|
383
|
-
static nodeType = "lib.audio.PeakFilter";
|
|
384
|
-
static title = "Peak Filter";
|
|
385
|
-
static description = "Applies a peak filter to boost or cut a specific frequency range.\n audio, effect, equalizer\n\n Use cases:\n - Isolate specific frequency ranges\n - Create telephone or radio voice effects\n - Focus on particular instrument ranges in a mix";
|
|
386
|
-
static metadataOutputTypes = {
|
|
387
|
-
output: "audio"
|
|
388
|
-
};
|
|
389
|
-
async process() {
|
|
390
|
-
const audio = (this.audio ?? {});
|
|
391
|
-
const cutoff = Number(this.cutoff_frequency_hz ?? 1000);
|
|
392
|
-
const q = Number(this.q_factor ?? 1.0);
|
|
393
|
-
if (!audio.data)
|
|
394
|
-
return { output: audio };
|
|
395
|
-
const output = await processAudioWithEffect(audio, (ctx, source) => {
|
|
396
|
-
const filter = ctx.createBiquadFilter();
|
|
397
|
-
filter.type = "peaking";
|
|
398
|
-
filter.frequency.value = cutoff;
|
|
399
|
-
filter.Q.value = q;
|
|
400
|
-
filter.gain.value = 0;
|
|
401
|
-
source.connect(filter);
|
|
402
|
-
filter.connect(ctx.destination);
|
|
403
|
-
});
|
|
404
|
-
return { output };
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
__decorate([
|
|
408
|
-
prop({
|
|
409
|
-
type: "audio",
|
|
410
|
-
default: {
|
|
411
|
-
type: "audio",
|
|
412
|
-
uri: "",
|
|
413
|
-
asset_id: null,
|
|
414
|
-
data: null,
|
|
415
|
-
metadata: null
|
|
416
|
-
},
|
|
417
|
-
title: "Audio",
|
|
418
|
-
description: "The audio file to process."
|
|
419
|
-
})
|
|
420
|
-
], PeakFilterNode.prototype, "audio", void 0);
|
|
421
|
-
__decorate([
|
|
422
|
-
prop({
|
|
423
|
-
type: "float",
|
|
424
|
-
default: 1000,
|
|
425
|
-
title: "Cutoff Frequency Hz",
|
|
426
|
-
description: "The cutoff frequency of the band-pass filter in Hz.",
|
|
427
|
-
min: 20,
|
|
428
|
-
max: 20000
|
|
429
|
-
})
|
|
430
|
-
], PeakFilterNode.prototype, "cutoff_frequency_hz", void 0);
|
|
431
|
-
__decorate([
|
|
432
|
-
prop({
|
|
433
|
-
type: "float",
|
|
434
|
-
default: 1,
|
|
435
|
-
title: "Q Factor",
|
|
436
|
-
description: "The Q factor, determining the width of the band. Higher values create narrower bands.",
|
|
437
|
-
min: 0.1,
|
|
438
|
-
max: 10
|
|
439
|
-
})
|
|
440
|
-
], PeakFilterNode.prototype, "q_factor", void 0);
|
|
441
|
-
export const LIB_AUDIO_DSP_NODES = [
|
|
442
|
-
GainNode_,
|
|
443
|
-
DelayNode_,
|
|
444
|
-
HighPassFilterNode,
|
|
445
|
-
LowPassFilterNode,
|
|
446
|
-
HighShelfFilterNode,
|
|
447
|
-
LowShelfFilterNode,
|
|
448
|
-
PeakFilterNode
|
|
449
|
-
];
|
|
450
|
-
//# sourceMappingURL=lib-audio-dsp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib-audio-dsp.js","sourceRoot":"","sources":["../../src/nodes/lib-audio-dsp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { BaseNode } from "@nodetool-ai/node-sdk";
|
|
2
|
-
export declare class BitcrushNode extends BaseNode {
|
|
3
|
-
static readonly nodeType = "lib.audio.Bitcrush";
|
|
4
|
-
static readonly title = "Bitcrush";
|
|
5
|
-
static readonly description = "Applies a bitcrushing effect to an audio file, reducing bit depth and/or sample rate.\n audio, effect, distortion\n\n Use cases:\n - Create lo-fi or retro-style audio effects\n - Simulate vintage digital audio equipment\n - Add digital distortion and artifacts to sounds";
|
|
6
|
-
static readonly metadataOutputTypes: {
|
|
7
|
-
output: string;
|
|
8
|
-
};
|
|
9
|
-
audio: any;
|
|
10
|
-
bit_depth: any;
|
|
11
|
-
sample_rate_reduction: any;
|
|
12
|
-
process(): Promise<Record<string, unknown>>;
|
|
13
|
-
}
|
|
14
|
-
export declare class CompressNode extends BaseNode {
|
|
15
|
-
static readonly nodeType = "lib.audio.Compress";
|
|
16
|
-
static readonly title = "Compress";
|
|
17
|
-
static readonly description = "Applies dynamic range compression to an audio file.\n audio, effect, dynamics\n\n Use cases:\n - Even out volume levels in a recording\n - Increase perceived loudness of audio\n - Control peaks in audio signals";
|
|
18
|
-
static readonly metadataOutputTypes: {
|
|
19
|
-
output: string;
|
|
20
|
-
};
|
|
21
|
-
audio: any;
|
|
22
|
-
threshold: any;
|
|
23
|
-
ratio: any;
|
|
24
|
-
attack: any;
|
|
25
|
-
release: any;
|
|
26
|
-
process(): Promise<Record<string, unknown>>;
|
|
27
|
-
}
|
|
28
|
-
export declare class DistortionNode extends BaseNode {
|
|
29
|
-
static readonly nodeType = "lib.audio.Distortion";
|
|
30
|
-
static readonly title = "Distortion";
|
|
31
|
-
static readonly description = "Applies a distortion effect to an audio file.\n audio, effect, distortion\n\n Use cases:\n - Add grit and character to instruments\n - Create aggressive sound effects\n - Simulate overdriven amplifiers";
|
|
32
|
-
static readonly metadataOutputTypes: {
|
|
33
|
-
output: string;
|
|
34
|
-
};
|
|
35
|
-
audio: any;
|
|
36
|
-
drive_db: any;
|
|
37
|
-
process(): Promise<Record<string, unknown>>;
|
|
38
|
-
}
|
|
39
|
-
export declare class LimiterNode extends BaseNode {
|
|
40
|
-
static readonly nodeType = "lib.audio.Limiter";
|
|
41
|
-
static readonly title = "Limiter";
|
|
42
|
-
static readonly description = "Applies a limiter effect to an audio file.\n audio, effect, dynamics\n\n Use cases:\n - Prevent audio clipping\n - Increase perceived loudness without distortion\n - Control dynamic range of audio";
|
|
43
|
-
static readonly metadataOutputTypes: {
|
|
44
|
-
output: string;
|
|
45
|
-
};
|
|
46
|
-
audio: any;
|
|
47
|
-
threshold_db: any;
|
|
48
|
-
release_ms: any;
|
|
49
|
-
process(): Promise<Record<string, unknown>>;
|
|
50
|
-
}
|
|
51
|
-
export declare class ReverbNode extends BaseNode {
|
|
52
|
-
static readonly nodeType = "lib.audio.Reverb";
|
|
53
|
-
static readonly title = "Reverb";
|
|
54
|
-
static readonly description = "Applies a reverb effect to an audio file.\n audio, effect, reverb\n\n Use cases:\n - Add spatial depth to dry recordings\n - Simulate different room acoustics\n - Create atmospheric sound effects";
|
|
55
|
-
static readonly metadataOutputTypes: {
|
|
56
|
-
output: string;
|
|
57
|
-
};
|
|
58
|
-
audio: any;
|
|
59
|
-
room_scale: any;
|
|
60
|
-
damping: any;
|
|
61
|
-
wet_level: any;
|
|
62
|
-
dry_level: any;
|
|
63
|
-
process(): Promise<Record<string, unknown>>;
|
|
64
|
-
}
|
|
65
|
-
export declare class PitchShiftNode extends BaseNode {
|
|
66
|
-
static readonly nodeType = "lib.audio.PitchShift";
|
|
67
|
-
static readonly title = "Pitch Shift";
|
|
68
|
-
static readonly description = "Shifts the pitch of an audio file without changing its duration.\n audio, effect, pitch\n\n Use cases:\n - Transpose audio to a different key\n - Create harmonies or vocal effects\n - Adjust instrument tuning";
|
|
69
|
-
static readonly metadataOutputTypes: {
|
|
70
|
-
output: string;
|
|
71
|
-
};
|
|
72
|
-
audio: any;
|
|
73
|
-
semitones: any;
|
|
74
|
-
process(): Promise<Record<string, unknown>>;
|
|
75
|
-
}
|
|
76
|
-
export declare class TimeStretchNode extends BaseNode {
|
|
77
|
-
static readonly nodeType = "lib.audio.TimeStretch";
|
|
78
|
-
static readonly title = "Time Stretch";
|
|
79
|
-
static readonly description = "Changes the speed of an audio file without altering its pitch.\n audio, transform, time\n\n Use cases:\n - Adjust audio duration to fit video length\n - Create slow-motion or fast-motion audio effects\n - Synchronize audio tracks of different lengths";
|
|
80
|
-
static readonly metadataOutputTypes: {
|
|
81
|
-
output: string;
|
|
82
|
-
};
|
|
83
|
-
audio: any;
|
|
84
|
-
rate: any;
|
|
85
|
-
process(): Promise<Record<string, unknown>>;
|
|
86
|
-
}
|
|
87
|
-
export declare class NoiseGateNode extends BaseNode {
|
|
88
|
-
static readonly nodeType = "lib.audio.NoiseGate";
|
|
89
|
-
static readonly title = "Noise Gate";
|
|
90
|
-
static readonly description = "Applies a noise gate effect to an audio file.\n audio, effect, dynamics\n\n Use cases:\n - Reduce background noise in recordings\n - Clean up audio tracks with unwanted low-level sounds\n - Create rhythmic effects by gating sustained sounds";
|
|
91
|
-
static readonly metadataOutputTypes: {
|
|
92
|
-
output: string;
|
|
93
|
-
};
|
|
94
|
-
audio: any;
|
|
95
|
-
threshold_db: any;
|
|
96
|
-
attack_ms: any;
|
|
97
|
-
release_ms: any;
|
|
98
|
-
process(): Promise<Record<string, unknown>>;
|
|
99
|
-
}
|
|
100
|
-
export declare class PhaserNode extends BaseNode {
|
|
101
|
-
static readonly nodeType = "lib.audio.Phaser";
|
|
102
|
-
static readonly title = "Phaser";
|
|
103
|
-
static readonly description = "Applies a phaser effect to an audio file.\n audio, effect, modulation\n\n Use cases:\n - Create sweeping, swooshing sounds\n - Add movement to static sounds\n - Produce psychedelic or space-like effects";
|
|
104
|
-
static readonly metadataOutputTypes: {
|
|
105
|
-
output: string;
|
|
106
|
-
};
|
|
107
|
-
audio: any;
|
|
108
|
-
rate_hz: any;
|
|
109
|
-
depth: any;
|
|
110
|
-
centre_frequency_hz: any;
|
|
111
|
-
feedback: any;
|
|
112
|
-
mix: any;
|
|
113
|
-
process(): Promise<Record<string, unknown>>;
|
|
114
|
-
}
|
|
115
|
-
export declare const LIB_PEDALBOARD_EXTRA_NODES: readonly [typeof BitcrushNode, typeof CompressNode, typeof DistortionNode, typeof LimiterNode, typeof ReverbNode, typeof PitchShiftNode, typeof TimeStretchNode, typeof NoiseGateNode, typeof PhaserNode];
|
|
116
|
-
//# sourceMappingURL=lib-audio-effects.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lib-audio-effects.d.ts","sourceRoot":"","sources":["../../src/nodes/lib-audio-effects.ts"],"names":[],"mappings":"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"}
|