An Emacs major mode for the Glicol audio programming language.
- Syntax highlighting for Glicol code
- Smart code completion with documentation
- Integration with glicol-cli
- Built-in commands for controlling the Glicol server
- Doom Emacs integration
- Real-time documentation lookup
- Intelligent context-aware suggestions
- Dedicated Glicol-CLI buffer shows status and errors
- Emacs 26.1 or later
- glicol-cli installed and available in your PATH
- Sample audio files from the Glicol repository
After downloading the samples, you need to set the GLICOL_CLI_SAMPLES_PATH environment variable to point to your samples directory:
# Add to your shell configuration file (.bashrc, .zshrc, config.fish, etc):
export GLICOL_CLI_SAMPLES_PATH="/path/to/your/samples"Clone this repository:
git clone https://github.com/khtdr/glicol-mode.gitAdd to your init.el:
(add-to-list 'load-path "/path/to/glicol-mode")
(require 'glicol-mode)(straight-use-package
'(glicol-mode :type git :host github :repo "khtdr/glicol-mode"))(use-package glicol-mode
:load-path "/path/to/glicol-mode"
:mode "\\.glicol\\'")Add to your packages.el:
(package! glicol-mode
:recipe (:host github :repo "khtdr/glicol-mode"))Files with the .glicol extension will automatically open in Glicol mode.
C-c C-s- Start the Glicol serverC-c C-q- Quit the Glicol serverC-c C-c- Check server statusC-c C-r- Restart the serverC-c C-b- Set BPM (beats per minute)
For Doom Emacs users, the modeline will show the Glicol server status with clickable buttons to start/stop the server.
You can customize the path to the glicol-cli executable:
;; Set the path to glicol-cli:
(setq glicol-cli-command "/path/to/glicol-cli")
;; Set the default BPM (beats per minute):
(setq glicol-bpm 120)Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.




