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.
Download the source
You might just want the minimum to start with, try
git clone https://github.com/Gwion/Gwion cd Gwion git submodule update --init make
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
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)
Open this file using your favourite text editor
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
Congratulations!! You ran your first gwion program.
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
Starting from the Gwion base directory, to build
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
.gwplug. So create that directory and move
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!
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
Reporting bugs / Contributing
If there's anything you see that can make Gwion better, please let us know!
Thanks goes to these wonderful people (emoji key):
Muhammad Umer Farooq
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!