Link
Search
Menu
Expand
Document
Home
About Us
Licence
Different Cmajor licensing options
License Terms
1. Grant and scope of Licence
2. Restrictions
3. Fees and Minimum Commitments.
4. Support
5. Intellectual Property Rights
6. Disclaimer of Warranty
7. Limitation of Liability and Indemnification
8. Term and Termination
9. Communications Between Us
10. Data, Privacy and Publicity
11. Other Important Terms
12. Definitions
FAQs
Can a Cmajor licence be shared by multiple developers?
It is possible to reassign licences amongst members of an organisation?
Is the total annual revenue or funding limit determined solely by sales of software containing Cmajor?
Do I need a Cmajor licence if I am not releasing products containing Cmajor?
Can a Cmajor Educational licence be used by students?
How many licenced developer seats do I need?
Do I need a Cmajor licence to sell Cmajor-based software created by another entity?
I want to hire a contractor to contribute to software containing cmajor. Do I need a licence or does the contractor need a licence?
Getting Started
Using Cmajor in VScode
Installing the Cmajor command-line tools
The `cmaj` command-line tool
Playing a patch with the console app
Loading patches in your DAW with the Cmajor VST/AU plugin
Creating a new empty patch
Creating your first patch - Hello, World!
Step 1 - Create a New Patch
Examples
Hello World
Electric Piano
808
Piano
Tremolo
Ring Modulator
Zita Reverb
Pro-54
GuitarLSTM
SubtractOne
Pirkle Filters
Replicant
Tuned Bar
CompuFart
Language Reference
Lexical Rules
Whitespace
Comments
Identifiers
Reserved keywords
Literals
Integer Literals
Boolean Literals
Floating-point Literals
String Literals
Aggregate Literals
Null Literals
Types
Primitive Types
Limited-range Integer Types
Complex Numbers
Arrays
Multi-Dimensional Arrays
Arrays vs Slices
Scope of slice data
Vectors
Structures
String Type
Enums
Constant Types
Reference Types
Type Aliases
Type Metafunctions
Functions
Member Functions
Special Functions
Recursion
Generic functions
Variables and Constants
Local Variables and Parameters
Processor State Variables
Global Constants
Control-flow and Loops
Conditions
Arithmetic Operators
Casts
Namespaces, Processors and Graphs
Namespaces
Processors
Processor Aliases
Input/Output Endpoint Declarations
Stream Endpoints
Value Endpoints
Event Endpoints
Renaming hoisted endpoints
Writing to Outputs
Graphs
Graph Nodes
Connections
Connection Functions
Conditional connections
Processor composition
Processor composition caveats
When to use a processor vs a graph
Delays and Feedback Loops
Processor and Namespace Specialisation Parameters
Annotations
Using the `[[ main ]]` Annotation
Built-in Constants
Intrinsic Functions
Calling native functions from Cmajor
Patch Format
The `.cmajorpatch` manifest file
Cmajor source files
Selection of the patch's main processor
Patch Parameters
External variable data
Patch GUIs
Specifying a custom GUI for a patch
The `PatchConnection` object
Built-in javascript utility classes
Patch Workers
Building a native CLAP from a patch
Building a native JUCE VST or AudioUnit from a patch
Exporting a patch as Javascript/WebAssembly/Web Audio
Test File Format
Running Tests
File Format
Special Section Delimiters
Built-in Test Functions
Auto-updating Expected Results
Creating Custom Test Functions
Script File Format
Tools
C++ API
Main API classes
Helper classes
Machine Learning
ONNX
ONNX Operators
Using the ONNX to Cmajor Python script
RTNeural
Supported Operators
Standard Library
std.audio_data
audio_data
SamplePlayer
std.envelopes
envelopes
FixedASR
std.filters
filters
tpt
onepole
Processor
Mode
svf
Processor
MultimodeProcessor
Mode
dcblocker
Processor
butterworth
Processor
Mode
crossover
Processor
simper
Processor
Mode
std.frequency
frequency
std.intrinsics
intrinsics
std.levels
smoothing
SmoothedValueStream
levels
ConstantGain
DynamicGain
SmoothedGain
SmoothedGainParameter
pan_law
std.matrix
matrix
std.midi
midi
MPEConverter
NoteToMIDI
std.mixers
mixers
StereoToMono
MonoToStereo
DynamicSum
ConstantSum
Interpolator
std.noise
noise
White
Brown
Pink
std.notes
notes
std.oscillators
oscillators
Phasor
Sine
PolyblepOscillator
LFO
waveshape
std.random
random
std.timeline
timeline
std.voices
voices
VoiceAllocator
Table of contents
C++ API
Machine Learning