All Projects → Gwion → Gwion

Gwion / Gwion

Licence: gpl-3.0
🎵 strongly-timed musical programming language

Programming Languages

c
50402 projects - #5 most used programming language
language
365 projects

Projects that are alternatives of or similar to Gwion

Dx7 Supercollider
My accurate Yamaha DX-7 clone. Programmed in Supercollider.
Stars: ✭ 395 (+68.09%)
Mutual labels:  audio, music, sound, synthesis, synth
Supercollider
An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Stars: ✭ 4,036 (+1617.45%)
Mutual labels:  audio, music, sound, synthesis
Romplayer
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player
Stars: ✭ 445 (+89.36%)
Mutual labels:  audio, music, sound, synth
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+435.32%)
Mutual labels:  audio, music, sound, synth
Pyo
Python DSP module
Stars: ✭ 904 (+284.68%)
Mutual labels:  audio, music, sound, synthesis
Supriya
A Python API for SuperCollider
Stars: ✭ 167 (-28.94%)
Mutual labels:  audio, music, synthesis, composition
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (+155.32%)
Mutual labels:  audio, music, sound, synth
Mimium
mimium (MInimal Musical medIUM) a programming language as an infrastructure for sound and music.
Stars: ✭ 212 (-9.79%)
Mutual labels:  compiler, audio, music, sound
Simpletones.js
The goal of simpleTones.js is to provide every JavaScript developer with a lightweight solution for creating custom sounds in their web applications. This documentation has been written in hopes that the least experienced developer can read, understand and go on to do great things. You can check out several examples at this link:
Stars: ✭ 45 (-80.85%)
Mutual labels:  hacktoberfest, audio, sound
Pandoraplayer
🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.
Stars: ✭ 1,037 (+341.28%)
Mutual labels:  audio, music, sound
Ableton Live Tools
A collection of useful additions to @Ableton Live, including better @Git integration.
Stars: ✭ 198 (-15.74%)
Mutual labels:  audio, music, sound
Otto
Sampler, Sequencer, Multi-engine synth and effects - in a box! [WIP]
Stars: ✭ 2,390 (+917.02%)
Mutual labels:  audio, music, synth
Jssynth
Make music in your browser with this synthesizer and sequencer
Stars: ✭ 25 (-89.36%)
Mutual labels:  audio, music, synth
Sonic Pi
Code. Music. Live.
Stars: ✭ 8,736 (+3617.45%)
Mutual labels:  audio, music, synthesis
Blipkit
C library for creating the beautiful sound of old sound chips
Stars: ✭ 23 (-90.21%)
Mutual labels:  audio, music, sound
Webmidikit
Simplest MIDI Swift library
Stars: ✭ 100 (-57.45%)
Mutual labels:  audio, music, sound
Soundpipe
A lightweight music DSP library.
Stars: ✭ 921 (+291.91%)
Mutual labels:  music, sound, synthesis
Minibae
The platform-neutral Beatnik Audio Engine, Mini Edition (miniBAE) is an exceptionally mature, well-rounded, and reliable computer music and sound system specially customized for small-footprint and embedded applications.
Stars: ✭ 82 (-65.11%)
Mutual labels:  audio, music, sound
Simple Sdl2 Audio
A simple SDL2 audio library without SDL_Mixer for playing music and multiple sounds natively in SDL2
Stars: ✭ 111 (-52.77%)
Mutual labels:  audio, music, sound
Ni Media
NI Media is a C++ library for reading and writing audio streams.
Stars: ✭ 158 (-32.77%)
Mutual labels:  audio, music, sound

Gwion

Language grade: C/C++ CII Best Practices Coverage Line Count

All Contributors

Linux MacOs Windows

Gwion is a programming language, aimed at making music

strongly inspired by ChucK, but adding a bunch high-level features:
templating, first-class functions and more.

It aims to be simple, small, fast, extendable and embeddable.

Build

Download the source

git clone https://github.com/Gwion/Gwion
cd Gwion
git submodule update --init --recursive util ast
make

Configuring (optional)

You can get a list of config files to tweak with

find . -name "config.mk"

Please rebuild to take your change into account.

make -C util clean
make -C ast  clean
make clean
make

Besides developer options, you migth want to check USE_DOUBLE, in util/config.mk, which set the floating point size (float or double). Note that the option you choose must match how you built your soundpipe library (more on soundpipe later).

Executing your first code (hello_world.gw):

This assumes you have successfully compiled gwion. To build follow these steps . To check, if the build was successfully run

./gwion

if this gives out some error, there were problems with your compilation. Try building again, and open a issue if the problem persists. We would love to help you out.
If you see no errors, Congratulations!! You have successfully compiled gwion, and can move ahead.

Create a new file "hello_world.gw" in the same directory.(You are free to use any command)

touch hello_world.gw

Open this file using your favourite text editor

vim hello_world.gw

Add the following lines to print "Hello World" (Note the semicolon at the end)

<<< "Hello World" >>>;

Save and exit the file(:wq in vim). Use the following command to run your first gwion program

./gwion hello_world.gw

Congratulations!! You ran your first gwion program.

Making Sound

This section is currently very Linux-centric. We are working to improve that. Pull requests welcome!

Gwion relies on plugins for most of its language features, including all those that make sound. Plugins are located in the subdirectories of plug. To get some sounds going under linux using jack sound server, you can build the plugins Jack, Soundpipe, and Modules.

Start by downloading the sources

git submodule update plug
cd plug

Starting from the Gwion base directory, to build Jack:

cd plug/Jack
make

This will give you a shared object file, Jack.so. The default place Gwion will look for plugins is in a subdir of your home directory named .gwplug. So create that directory and move Jack.so there:

mkdir ~/.gwplug
mv Jack.so ~/.gwplug

Repeat for the other plugins mentioned. The Soundpipe plugin requires the soundpipe library, which we hope to have build seamlessly for you when you build the Soundpipe module, but we're not quite there yet. Please ask for help if this isn't working.

When all those plugin .so files are in your ~/.gwplug directory, you should be able to run a Gwion program that makes sound! In plug/Modules there's a test.gw program which plays a sine wave for 5 seconds. If the gwion you built is still in the base dir of your cloned repo, from the plug/Modules subdirectory you should be able to run ../../gwion -d Jack test.gw and hear some sound!

Installation

It's a good idea to install Gwion now that you have tried it out. Use the following command to install it

sudo make install

You want to know more? 😄 Look here Both outdated and WIP 👷 but a nice place to learn and contribute

Reporting bugs / Contributing

👍 Every helping hand is welcome!!! 👍

If there's anything you see that can make Gwion better, please let us know!

📖 Please see the contributing page for more information.

Acknowledgements.

The whole Chuck team, for inspiration.
Paul Batchelor and the awesome soundpipe library, that got me started.

Contributors

Thanks goes to these wonderful people (emoji key):


Paul Batchelor

💬 🐛 💻 🤔

Benny

💬 🐛 💻

Andrew Prentice

💬 🐛 💻 🤔

aleserche

💻

Pranav Joglekar

📓 📖

Amber

💬 📖 🤔

Chase

💻

Nithin Pankaj

💻

Enrico Gruner

💻

Muhammad Umer Farooq

💻

Harsh Jain

📖

ry-v1

📖

deekts

💻

Forrest Cahoon

🤔

Connor Hewett

💻

Ethan Uppal

🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

NOTE: if you should be on the list of contributors but we forgot you, don't be shy and let us know!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].