PageSourceSearch

https://cmajor.dev/docs/Examples

html cmajor.dev collected 2026-10-04 00:24:46 UTC 50,039 bytes, 199 lines download raw bytes

1
2
3<!DOCTYPE html>
4
5<html lang="en-US">
6<head>
7  <meta charset="UTF-8">
8  <meta http-equiv="X-UA-Compatible" content="IE=Edge">
9
10  
11
12  <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
13
14
15  <link rel="stylesheet" href="/assets/css/just-the-docs-default.css">
16  <link rel="preconnect" href="https://rsms.me/">
17  <link rel="stylesheet" href="https://rsms.me/inter/inter.css">
vendor: 72 bytes, lines 17-20
17
18
19  
20    <script async src="https://www.googletagmanager.com/gtag/js?id=
20UA-2709176-10
vendor: 16 bytes, lines 20-21
20"></script>
21    
21<script>
22      
vendor: 146 bytes, lines 22-26
22window.dataLayer = window.dataLayer || [];
23      function gtag(){dataLayer.push(arguments);}
24      gtag('js', new Date());
25
26      gtag('config', '
26UA-2709176-10
vendor: 34 bytes, lines 26-27
26', { 'anonymize_ip': true });
27    
27</script>
27
28
29  
30
31  
32    
32<script src="/assets/js/vendor/lunr.min.js"></script>
32
33  
34
35  
36    
36<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/mermaid.min.js"></script>
36
37  
38
39  
39<script src="/assets/js/just-the-docs.js"></script>
39
40
41  <meta name="viewport" content="width=device-width, initial-scale=1">
42
43  <!-- Begin Jekyll SEO tag v2.8.0 -->
44<title>Examples | Cmajor Documentation</title>
45<meta name="generator" content="Jekyll v3.10.0" />
46<meta property="og:title" content="Examples" />
47<meta property="og:locale" content="en_US" />
48<meta name="description" content="Documentation for the Cmajor language" />
49<meta property="og:description" content="Documentation for the Cmajor language" />
50<link rel="canonical" href="https://cmajor.dev/docs/Examples" />
51<meta property="og:url" content="https://cmajor.dev/docs/Examples" />
52<meta property="og:site_name" content="Cmajor Documentation" />
53<meta property="og:type" content="website" />
54<meta name="twitter:card" content="summary" />
55<meta property="twitter:title" content="Examples" />
56<script type="application/ld+json">
57{"@context":"https://schema.org","@type":"WebPage","description":"Documentation for the Cmajor language","headline":"Examples","url":"https://cmajor.dev/docs/Examples"}</script>
57
58<!-- End Jekyll SEO tag -->
59
60
61  <link rel="shortcut icon" type="image/png" href="https://cmajor-lang.github.io/docs-dev/favicon.png"  style="margin-top:20px" style="margin-bottom: 30px;">
62
63
64</head>
65
66<body>
67  <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
68    <symbol id="svg-link" viewBox="0 0 24 24">
69      <title>Link</title>
70      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
71        <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
72      </svg>
73    </symbol>
74    <symbol id="svg-search" viewBox="0 0 24 24">
75      <title>Search</title>
76      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
77        <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
78      </svg>
79    </symbol>
80    <symbol id="svg-menu" viewBox="0 0 24 24">
81      <title>Menu</title>
82      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
83        <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
84      </svg>
85    </symbol>
86    <symbol id="svg-arrow-right" viewBox="0 0 24 24">
87      <title>Expand</title>
88      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
89        <polyline points="9 18 15 12 9 6"></polyline>
90      </svg>
91    </symbol>
92    <symbol id="svg-doc" viewBox="0 0 24 24">
93      <title>Document</title>
94      <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
95        <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
96      </svg>
97    </symbol>
98  </svg>
99
100  <div class="side-bar">
101    <div class="site-header">
102      <a href="https://cmajor.dev/" class="site-title lh-tight">
103<img src="/assets/images/Cmajor-Word-Logo.png" style="margin-top:20px;max-width: 150pt;max-height: 50pt;"></a>
104      <a href="#" id="menu-button" class="site-button">
105        <svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
106      </a>
107    </div>
108    <nav role="navigation" aria-label="Main" id="site-nav" class="site-nav">
109      <ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/" class="nav-list-link">Home</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/about-us" class="nav-list-link">About Us</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Licence" class="nav-list-link">Licence</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Licence#different-cmajor-licensing-options" class="nav-list-link">Different Cmajor licensing options</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#commercial-license-terms" class="nav-list-link">Commercial License terms</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Licence#faqs" class="nav-list-link">FAQs</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#it-is-possible-to-reassign-licences-amongst-members-of-an-organisation" class="nav-list-link">It is possible to reassign licences amongst members of an organisation?</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#is-the-total-annual-revenue-or-funding-limit-determined-solely-by-sales-of-software-containing-cmajor" class="nav-list-link">Is the total annual revenue or funding limit determined solely by sales of software containing Cmajor?</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#do-i-need-a-cmajor-licence-if-i-am-not-releasing-products-containing-cmajor" class="nav-list-link">Do I need a Cmajor licence if I am not releasing products containing Cmajor?</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#how-many-licenced-developer-seats-do-i-need" class="nav-list-link">How many licenced developer seats do I need?</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#do-i-need-a-cmajor-licence-to-sell-cmajor-based-software-created-by-another-entity" class="nav-list-link">Do I need a Cmajor licence to sell Cmajor-based software created by another entity?</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#i-want-to-hire-a-contractor-to-contribute-to-software-containing-cmajor-do-i-need-a-licence-or-does-the-contractor-need-a-licence" class="nav-list-link">I want to hire a contractor to contribute to software containing cmajor. Do I need a licence or does the contractor need a licence?</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Licence#can-a-cmajor-educational-licence-be-used-by-students" class="nav-list-link">Can a Cmajor Educational licence be used by students?</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/GettingStarted" class="nav-list-link">Getting Started</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/GettingStarted#using-cmajor-in-vscode" class="nav-list-link">Using Cmajor in VScode</a></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/GettingStarted#installing-the-cmajor-command-line-tools" class="nav-list-link">Installing the Cmajor command-line tools</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/GettingStarted#the-cmaj-command-line-tool" class="nav-list-link">The `cmaj` command-line tool</a></li></ul></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/GettingStarted#playing-a-patch-with-the-console-app" class="nav-list-link">Playing a patch with the console app</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/GettingStarted#loading-patches-in-your-daw-with-the-cmajor-vstau-plugin" class="nav-list-link">Loading patches in your DAW with the Cmajor VST/AU plugin</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/GettingStarted#creating-a-new-empty-patch" class="nav-list-link">Creating a new empty patch</a></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/GettingStarted#creating-your-first-patch---hello-world" class="nav-list-link">Creating your first patch - Hello, World!</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/GettingStarted#step-1---create-a-new-patch" class="nav-list-link">Step 1 - Create a New Patch</a></li></ul></li></ul></li><li class="nav-list-item active"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Examples" class="nav-list-link active">Examples</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/HelloWorld/" class="nav-list-link">Hello World</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/ElectricPiano/" class="nav-list-link">Electric Piano</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/808/" class="nav-list-link">808</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/Piano/" class="nav-list-link">Piano</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/Tremolo/" class="nav-list-link">Tremolo</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/RingMod/" class="nav-list-link">Ring Modulator</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/ZitaReverb/" class="nav-list-link">Zita Reverb</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/Pro54/" class="nav-list-link">Pro-54</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/GuitarLSTM/" class="nav-list-link">GuitarLSTM</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/FilterEQ/" class="nav-list-link">FilterEQ</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/PirkleFilters/" class="nav-list-link">Pirkle Filters</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/Replicant/" class="nav-list-link">Replicant</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/STunedBar6/" class="nav-list-link">Tuned Bar</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Examples/CompuFart/" class="nav-list-link">CompuFart</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/CmajorLicenceTerms" class="nav-list-link">Cmajor Licence Terms</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/CmajorLicenceTerms#cmajor-commercial-license-agreement" class="nav-list-link">Cmajor Commercial License Agreement</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#1-grant-and-scope-of-licence" class="nav-list-link">1. Grant and scope of Licence</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#2-restrictions" class="nav-list-link">2. Restrictions</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#3-fees-and-minimum-commitments" class="nav-list-link">3. Fees and Minimum Commitments.</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#4-support" class="nav-list-link">4. Support</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#5-intellectual-property-rights" class="nav-list-link">5. Intellectual Property Rights</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#6-disclaimer-of-warranty" class="nav-list-link">6. Disclaimer of Warranty</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#7-limitation-of-liability-and-indemnification" class="nav-list-link">7. Limitation of Liability and Indemnification</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#8-term-and-termination" class="nav-list-link">8. Term and Termination</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#9-communications-between-us" class="nav-list-link">9. Communications Between Us</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#10-data-privacy-and-publicity" class="nav-list-link">10. Data, Privacy and Publicity</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#11-other-important-terms" class="nav-list-link">11. Other Important Terms</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/CmajorLicenceTerms#12-definitions" class="nav-list-link">12. Definitions</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference" class="nav-list-link">Language Reference</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#lexical-rules" class="nav-list-link">Lexical Rules</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#whitespace" class="nav-list-link">Whitespace</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#comments" class="nav-list-link">Comments</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#identifiers" class="nav-list-link">Identifiers</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#reserved-keywords" class="nav-list-link">Reserved keywords</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#literals" class="nav-list-link">Literals</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#integer-literal
109s" class="nav-list-link">Integer Literals</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#boolean-literals" class="nav-list-link">Boolean Literals</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#floating-point-literals" class="nav-list-link">Floating-point Literals</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#string-literals" class="nav-list-link">String Literals</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#aggregate-literals" class="nav-list-link">Aggregate Literals</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#null-literals" class="nav-list-link">Null Literals</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#types" class="nav-list-link">Types</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#primitive-types" class="nav-list-link">Primitive Types</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#limited-range-integer-types" class="nav-list-link">Limited-range Integer Types</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#complex-numbers" class="nav-list-link">Complex Numbers</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#arrays" class="nav-list-link">Arrays</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#multi-dimensional-arrays" class="nav-list-link">Multi-Dimensional Arrays</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#arrays-vs-slices" class="nav-list-link">Arrays vs Slices</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#scope-of-slice-data" class="nav-list-link">Scope of slice data</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#constant-vs-mutable-slices" class="nav-list-link">constant vs mutable slices</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#vectors" class="nav-list-link">Vectors</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#structures" class="nav-list-link">Structures</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#string-type" class="nav-list-link">String Type</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#enums" class="nav-list-link">Enums</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#constant-types" class="nav-list-link">Constant Types</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#reference-types" class="nav-list-link">Reference Types</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#type-aliases" class="nav-list-link">Type Aliases</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#type-metafunctions" class="nav-list-link">Type Metafunctions</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#functions" class="nav-list-link">Functions</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#member-functions" class="nav-list-link">Member Functions</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#special-functions" class="nav-list-link">Special Functions</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#recursion" class="nav-list-link">Recursion</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#generic-functions" class="nav-list-link">Generic functions</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#variables-and-constants" class="nav-list-link">Variables and Constants</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#local-variables-and-parameters" class="nav-list-link">Local Variables and Parameters</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#processor-state-variables" class="nav-list-link">Processor State Variables</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#global-constants" class="nav-list-link">Global Constants</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#control-flow-and-loops" class="nav-list-link">Control-flow and Loops</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#conditions" class="nav-list-link">Conditions</a></li></ul></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#arithmetic-operators" class="nav-list-link">Arithmetic Operators</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#casts" class="nav-list-link">Casts</a></li><li class="nav-list-item">
109<a href="https://cmajor.dev/docs/LanguageReference#namespaces-processors-and-graphs" class="nav-list-link">Namespaces, Processors and Graphs</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#namespaces" class="nav-list-link">Namespaces</a></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#processors" class="nav-list-link">Processors</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#processor-aliases" class="nav-list-link">Processor Aliases</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#inputoutput-endpoint-declarations" class="nav-list-link">Input/Output Endpoint Declarations</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#stream-endpoints" class="nav-list-link">Stream Endpoints</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#value-endpoints" class="nav-list-link">Value Endpoints</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#event-endpoints" class="nav-list-link">Event Endpoints</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#renaming-hoisted-endpoints" class="nav-list-link">Renaming hoisted endpoints</a></li></ul></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#writing-to-outputs" class="nav-list-link">Writing to Outputs</a></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#graphs" class="nav-list-link">Graphs</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#graph-nodes" class="nav-list-link">Graph Nodes</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#connections" class="nav-list-link">Connections</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#connection-functions" class="nav-list-link">Connection Functions</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#conditional-connections" class="nav-list-link">Conditional connections</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#processor-composition" class="nav-list-link">Processor composition</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#processor-composition-caveats" class="nav-list-link">Processor composition caveats</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#when-to-use-a-processor-vs-a-graph" class="nav-list-link">When to use a processor vs a graph</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#delays-and-feedback-loops" class="nav-list-link">Delays and Feedback Loops</a></li></ul></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#processor-and-namespace-specialisation-parameters" class="nav-list-link">Processor and Namespace Specialisation Parameters</a></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/LanguageReference#annotations" class="nav-list-link">Annotations</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#using-the--main--annotation" class="nav-list-link">Using the `[[ main ]]` Annotation</a></li></ul></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#built-in-constants" class="nav-list-link">Built-in Constants</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#intrinsic-functions" class="nav-list-link">Intrinsic Functions</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/LanguageReference#calling-native-functions-from-cmajor" class="nav-list-link">Calling native functions from Cmajor</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/PatchFormat" class="nav-list-link">Patch Format</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#the-cmajorpatch-manifest-file" class="nav-list-link">The `.cmajorpatch` manifest file</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#cmajor-source-files" class="nav-list-link">Cmajor source files</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#selection-of-the-patchs-main-processor" class="nav-list-link">Selection of the patch's main processor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#patchparameters" class="nav-list-link">Patch Parameters</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#external-variable-data" class="nav-list-link">External variable data</a></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/PatchFormat#patch-guis" class="nav-list-link">Patch GUIs</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#specifying-a-custom-gui-for-a-patch" class="nav-list-link">Specifying a custom GUI for a patch</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#the-patchconnection-object" class="nav-list-link">The `PatchConnection` object</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#built-in-javascript-utility-classe
109s" class="nav-list-link">Built-in javascript utility classes</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#patch-workers" class="nav-list-link">Patch Workers</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#building-a-native-clap-from-a-patch" class="nav-list-link">Building a native CLAP from a patch</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#building-a-native-juce-vst-or-audiounit-from-a-patch" class="nav-list-link">Building a native JUCE VST or AudioUnit from a patch</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/PatchFormat#exporting-a-patch-as-javascriptwebassemblyweb-audio" class="nav-list-link">Exporting a patch as Javascript/WebAssembly/Web Audio</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/TestFileFormat" class="nav-list-link">Test File Format</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/TestFileFormat#running-tests" class="nav-list-link">Running Tests</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/TestFileFormat#file-format" class="nav-list-link">File Format</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/TestFileFormat#special-section-delimiters" class="nav-list-link">Special Section Delimiters</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/TestFileFormat#built-in-test-functions" class="nav-list-link">Built-in Test Functions</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/TestFileFormat#auto-updating-expected-results" class="nav-list-link">Auto-updating Expected Results</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/TestFileFormat#creating-custom-test-functions" class="nav-list-link">Creating Custom Test Functions</a></li></ul></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/ScriptFileFormat" class="nav-list-link">Script File Format</a></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Tools" class="nav-list-link">Tools</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Tools/C++API" class="nav-list-link">C++ API</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/Tools/C++API#main-api-classes" class="nav-list-link">Main API classes</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Tools/C++API#helper-classes" class="nav-list-link">Helper classes</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Tools/MachineLearning" class="nav-list-link">Machine Learning</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Tools/MachineLearning#onnx" class="nav-list-link">ONNX</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/Tools/MachineLearning#onnx-operators" class="nav-list-link">ONNX Operators</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/Tools/MachineLearning#using-the-onnx-to-cmajor-python-script" class="nav-list-link">Using the ONNX to Cmajor Python script</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/Tools/MachineLearning#rtneural" class="nav-list-link">RTNeural</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/Tools/MachineLearning#supported-operators" class="nav-list-link">Supported Operators</a></li></ul></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary" class="nav-list-link">Standard Library</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_audio_data" class="nav-list-link">std.audio_data</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#audio_data" class="nav-list-link">audio_data</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#SamplePlayer" class="nav-list-link">SamplePlayer</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_convolution" class="nav-list-link">std.convolution</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#convolution" class="nav-list-link">convolution</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#ZeroLatencyProcessor" class="nav-list-link">ZeroLatencyProcessor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#BlockProcessor" class="nav-list-link">BlockProcessor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#TimeDomainProcessor" class="nav-list-link">TimeDomainProcessor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#FFT" class="nav-list-link">FFT</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#iFFT" class="nav-list-link">iFFT</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Convolve" class="nav-list-link">Convolve</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_envelopes" class="nav-list-link">std.envelopes</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#envelopes" class="nav-list-link">envelopes</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#FixedASR" class="nav-list-link">FixedASR</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_filters" class="nav-list-link">std.filters</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#filters" class="nav-list-link">filters</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#tpt" class="nav-list-link">tpt</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#onepole" class="nav-list-link">onepole</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Processor" class="nav-list-link">Processor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Mode" class="nav-list-link">Mode</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#svf" class="nav-list-link">svf</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Processor2" class="nav-list-link">Processor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#MultimodeProcessor" class="nav-list-link">MultimodeProcessor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Mode2" class="nav-list-link">Mode</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#dcblocker" class="nav-list-link">dcblocker</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Processor3" class="nav-list-link">Processor</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#butterworth" class="nav-list-link">butterworth</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Processor4" class="nav-list-link">Processor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Mode3" class="nav-list-link">Mode</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#crossover" class="nav-list-link">crossover</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Processor5" class="nav-list-link">Processor</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#simper" class="nav-list-link">simper</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Processor6" class="nav-list-link">Processor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Mode4" class="nav-list-link">Mode</a></li></ul></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_frequency" class="nav-list-link">std.frequency</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#frequency7" class="nav-list-link">frequency</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_intrinsics" class="nav-list-link">std.intrinsics</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#intrinsics" class="nav-list-link">intrinsics</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_levels" class="nav-list-link">std.levels</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#smoothing" class="nav-list-link">smoothing</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#SmoothedValueStream" class="nav-list-link">SmoothedValueStream</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#levels" class="nav-list-link">levels</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#ConstantGain" class="nav-list-link">ConstantGain</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#DynamicGain" class="nav-list-link">DynamicGain</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#SmoothedGain" class="nav-list-link">SmoothedGain</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#SmoothedGainParameter" class="nav-list-link">SmoothedGainParameter</a></li></ul></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#pan_law" class="nav-list-link">pan_law</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_matrix" class="nav-list-link">std.matrix</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#matrix" class="nav-list-link">matrix</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_midi" class="nav-list-link">std.midi</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#midi" class="nav-list-link">midi</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#MPEConverter" class="nav-list-link">MPEConverter</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#NoteToMIDI" class="nav-list-link">NoteToMIDI</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_mixers" class="nav-list-link">std.mixers</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#mixers" class="nav-list-link">mixers</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#StereoToMono" class="nav-list-link">StereoToMono</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#MonoToStereo" class="nav-list-link">MonoToStereo</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#DynamicSum" class="nav-list-link">DynamicSum</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#ConstantSum" class="nav-list-link">ConstantSum</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Interpolator" class="nav-list-link">Interpolator</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_noise" class="nav-list-link">std.noise</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#noise" class="nav-list-link">noise</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#White" class="nav-list-link">White</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Brown" class="nav-list-link">Brown</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLi
109brary#Pink" class="nav-list-link">Pink</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_notes" class="nav-list-link">std.notes</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#notes" class="nav-list-link">notes</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_oscillators" class="nav-list-link">std.oscillators</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#oscillators" class="nav-list-link">oscillators</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Phasor" class="nav-list-link">Phasor</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#Sine" class="nav-list-link">Sine</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#PolyblepOscillator" class="nav-list-link">PolyblepOscillator</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#LFO" class="nav-list-link">LFO</a></li><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#waveshape" class="nav-list-link">waveshape</a></li></ul></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_random" class="nav-list-link">std.random</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#random" class="nav-list-link">random</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_timeline" class="nav-list-link">std.timeline</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#timeline" class="nav-list-link">timeline</a></li></ul></li><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#std_voices" class="nav-list-link">std.voices</a><ul class="nav-list"><li class="nav-list-item"><a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a><a href="https://cmajor.dev/docs/StandardLibrary#voices" class="nav-list-link">voices</a><ul class="nav-list"><li class="nav-list-item"><a href="https://cmajor.dev/docs/StandardLibrary#VoiceAllocator" class="nav-list-link">VoiceAllocator</a></li></ul></li></ul></li></ul></li></ul>
110    </nav>
111    <footer class="site-footer">
112      &copy; 2025 <a href="https://cmajor.dev">Cmajor Software Ltd.</a>
113    </footer>
114  </div>
115  <div class="main" id="top">
116    <div id="main-header" class="main-header">
117      
118        <div class="search">
119          <div class="search-input-wrap">
120            <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search Cmajor Documentation" aria-label="Search Cmajor Documentation" autocomplete="off">
121            <label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
122          </div>
123          <div id="search-results" class="search-results"></div>
124        </div>
125      
126      
127    </div>
128    <div id="main-content-wrap" class="main-content-wrap">
129      
130
131      <div id="main-content" class="main-content" role="main">
132        
133          <h1 id="examples">
134        
135        
136          <a href="#examples" class="anchor-heading" aria-labelledby="examples"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Examples
137        
138        
139      </h1>
140    
141
142<p>This section contains web-based versions of a few of the Cmajor example patches, to give you a quick feel for some of the things that Cmajor c
142an do.</p>
143
144<p>These are all exported using the command:</p>
145
146<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmaj generate --target=webaudio-html &lt;patch file&gt; --output=&lt;target folder&gt;
147</code></pre></div></div>
148
149<p>..which emits a folder containing HTML/Javascript/WebAssembly that uses Web Audio and Web MIDI to run the patches.</p>
150
151<p>(The Cmajor VScode extension also has a command to easily do this).</p>
152
153<p>Our exporter uses the latest LLVM WebAssembly optimiser, so the DSP should be as efficient as is possible for WebAssembly. It achieves roughly half the performance of running the same patch in our native JIT engine.</p>
154
155<p>Exporting to Javascript is just one of the ways you can deploy a patch. See our other documentation to learn about other export targets.</p>
156
157        
158
159        
160
161        
162          <hr>
163          <footer>
164            
165              <p><a href="#top" id="back-to-top">Back to top</a></p>
166            
167            
168
169            
170              <div class="d-flex mt-2">
171                
172                
173              </div>
174            
175          </footer>
176        
177
178      </div>
179    </div>
180
181    
182      
183
184      <div class="search-overlay"></div>
185    
186  </div>
187
188  
189  
189<script>
190    var config = {
191    theme: "neutral"
192};
193    mermaid.initialize(config);
194    window.mermaid.init(undefined, document.querySelectorAll('.language-mermaid'));
195  </script>
195
196  
197</body>
198</html>
199

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.