{"id":13861663,"url":"https://github.com/e-lie/renardo","last_synced_at":"2026-04-03T23:02:46.009Z","repository":{"id":184216456,"uuid":"671132714","full_name":"e-lie/renardo","owner":"e-lie","description":"Livecoding music with simple Python code (Modernized FoxDot Fork)","archived":false,"fork":false,"pushed_at":"2026-03-28T17:00:22.000Z","size":55128,"stargazers_count":85,"open_issues_count":24,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-03-28T17:19:20.014Z","etag":null,"topics":["foxdot","livecoding","supercollider"],"latest_commit_sha":null,"homepage":"https://renardo.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/e-lie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-07-26T15:58:13.000Z","updated_at":"2026-03-28T15:17:14.000Z","dependencies_parsed_at":"2024-01-04T01:29:30.944Z","dependency_job_id":"5d5952df-5364-48ca-b88f-b7e8a7bed514","html_url":"https://github.com/e-lie/renardo","commit_stats":null,"previous_names":["e-lie/renardo"],"tags_count":79,"template":false,"template_full_name":null,"purl":"pkg:github/e-lie/renardo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-lie%2Frenardo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-lie%2Frenardo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-lie%2Frenardo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-lie%2Frenardo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e-lie","download_url":"https://codeload.github.com/e-lie/renardo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-lie%2Frenardo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31381009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T21:40:47.592Z","status":"ssl_error","status_checked_at":"2026-04-03T21:40:05.436Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["foxdot","livecoding","supercollider"],"created_at":"2024-08-05T06:01:27.487Z","updated_at":"2026-04-03T23:02:46.003Z","avatar_url":"https://github.com/e-lie.png","language":"Python","funding_links":[],"categories":["Python","Synthesis \u0026 Sound Design"],"sub_categories":["Text-to-Speech"],"readme":"# Renardo\n\n**Live coding environment for Python** - A modern fork of FoxDot for algorithmic music composition and live performance.\n\nRenardo is currently going through a wide and deep refactoring toward version 1.0.\n\n## Features\n\n- **Live Coding**: Write and execute Python code in real-time to create music\n- **Pattern-based Composition**: Powerful pattern system for rhythmic and melodic structures\n- **Multiple Backends**:\n  - SuperCollider integration for synthesis and audio processing\n  - REAPER backend for advanced DAW integration\n  - MIDI output support\n- **Web-based Interface**: Modern, responsive web client built with Svelte\n- **Desktop Application**: Optional Electron-based desktop app\n- **Interactive Tutorials**: Built-in tutorials in multiple languages (English, Spanish)\n- **Extensible**: Plugin system for custom instruments and effects\n- **Resource Management**: Library system for managing samples, FX chains, and instruments\n\n## Quick Start\n\n### Prerequisites\n\n- **Python** 3.9 or higher\n- **SuperCollider** (for audio synthesis)\n- **uv** (Python package manager) - recommended\n- **REAPER** (optional, for DAW integration)\n\n### Installation\n\n#### Using uv (recommended)\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/renardo.git\ncd renardo\n\n# Install with uv\nuv pip install -e .\n\n# Or run directly with uv\nuv run renardo\n```\n\n#### Using pip\n\n```bash\npip install renardo\n```\n\n### First Run\n\n```bash\n# Launch Renardo with default settings\nrenardo\n\n# Or use the CLI interface\nuv run cli\n\n# Interactive pipe mode\nuv run cli --pipe\n```\n\nThe web interface will automatically open at `http://localhost:5000`\n\n## Usage\n\n### Basic Live Coding Example\n\n```python\n# Create a simple drum pattern\nd1 \u003e\u003e play(\"x-o-\")\n\n# Add a bassline\nb1 \u003e\u003e bass([0, 3, 5, 7], dur=1/2)\n\n# Modify in real-time\nd1 \u003e\u003e play(\"x-o-\", amp=1.2)\n\n# Stop everything\nClock.clear()\n```\n\n### CLI Options\n\n```bash\n# Show all available commands\nrenardo --help\ncli --help\n\n# Start in pipe mode (for integration with other tools)\ncli --pipe\n\n# Launch with specific backend\nrenardo --backend supercollider\nrenardo --backend reaper\n\n# Configure REAPER integration\nrenardo --configure-reaper\n```\n\n## Architecture\n\nRenardo is organized into several key modules:\n\n```\nrenardo/\n├── lib/              # Core library (patterns, players, effects)\n├── sc_backend/       # SuperCollider integration\n├── reaper_backend/   # REAPER DAW integration\n├── midi_backend/     # MIDI output support\n├── webserver/        # Flask-based web server\n├── runtime/          # Runtime environment and state management\n├── settings_manager/ # Configuration management\n├── gatherer/         # Resource library system\n├── tutorial/         # Interactive tutorials (en, es)\n└── cli_entrypoint/   # Command-line interface\n\nwebclient/\n├── src/              # Svelte web interface\n├── electron/         # Electron desktop app wrapper\n└── dist/             # Built web assets\n```\n\n## Documentation\n\n### Tutorials\n\nRenardo includes interactive tutorials accessible from the web interface:\n\n- **English**: `/tutorial/en/`\n- **Spanish**: `/tutorial/es/`\n\nTopics covered:\n1. Introduction to live coding\n2. Playing notes and samples\n3. Algorithmic manipulation\n4. Using patterns\n5. Player attributes\n6. Clock management\n7. Advanced features (scales, groups, vars)\n8. SuperCollider instruments\n9. REAPER backend integration\n\n# Contributing\n\nContributions are welcome! Please follow these guidelines:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feat/amazing-feature`)\n3. **Commit** your changes using [Conventional Commits](https://www.conventionalcommits.org/)\n   ```\n   feat: add new pattern generator\n   fix: resolve timing issue in Clock\n   docs: update tutorial content\n   ```\n4. **Push** to your branch (`git push origin feat/amazing-feature`)\n5. **Open** a Pull Request\n\nWe use Conventional Commits format\n\n\n### Reference\n\nKey components:\n\n- **Players**: Objects that play patterns (`p1`, `d1`, `b1`, etc.)\n- **Patterns**: Sequence generators (`P`, `PSum`, `PRand`, etc.)\n- **Clock**: Global timing system\n- **SynthDefs**: SuperCollider instrument definitions\n- **TimeVars**: Variables that change over time\n\n## Configuration\n\nRenardo uses TOML files for configuration:\n\n```bash\n# Default config location\n~/.renardo/settings.toml\n\n# REAPER backend settings\n~/.renardo/reaper_backend.toml\n```\n\n### Example Configuration\n\n```toml\n[general]\nbackend = \"supercollider\"\nauto_start = true\n\n[supercollider]\nport = 57120\naudio_device = \"default\"\n\n[reaper]\nenabled = true\nproject_path = \"~/Music/renardo_sessions\"\n```\n\n## Backends\n\n### SuperCollider Backend\n\nThe default audio backend using SuperCollider for synthesis:\n\n```python\n# Start SuperCollider\nfrom renardo.sc_backend import SuperColliderInstance\n\nsc = SuperColliderInstance()\nsc.start()\n\n# Use SuperCollider instruments\np1 \u003e\u003e pluck([0, 2, 4, 7])\n```\n\n### REAPER Backend\n\nAdvanced DAW integration for professional production:\n\n```python\n# Initialize REAPER backend\nfrom renardo.reaper_backend import ReaperBackend\n\nreaper = ReaperBackend()\nreaper.configure()\n\n# Create REAPER instruments\nr1 \u003e\u003e ReaperInstrument(\"my_synth.RfxChain\", notes=[0, 4, 7])\n```\n\n### MIDI Backend\n\nOutput to external MIDI devices:\n\n```python\n# Configure MIDI output\nfrom renardo.midi_backend import MIDIOut\n\nmidi = MIDIOut(\"My MIDI Device\")\nm1 \u003e\u003e midi([60, 64, 67])  # C major chord\n```\n\n## Web Client\n\nThe web interface provides:\n\n- **Code Editor**: Syntax highlighting, auto-completion\n- **Console Output**: Real-time feedback\n- **Session Management**: Save and load sessions\n- **Settings Panel**: Configure backends and preferences\n- **Tutorial Browser**: Access interactive tutorials\n- **Resource Explorer**: Browse samples and instruments\n\n### Development\n\n```bash\ncd webclient\n\n# Install dependencies\nnpm install\n\n# Run development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Build Electron app\nnpm run build:electron\n```\n\n## License\n\nThis project is licensed under the **GNU General Public License v3.0** (GPL-3.0).\n\nSee the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- **FoxDot**: Original live coding environment by Ryan Kirkbride\n- **SuperCollider**: Synthesis engine\n- **REAPER**: Digital Audio Workstation\n- All contributors to the Renardo project\n\n\n## Contact \u0026 Community\n\n- **Website**: [renardo.org](http://renardo.org/)\n- **Issues**: [GitHub Issues](https://github.com/yourusername/renardo/issues)\n- **Discussions**: FoxDot / Renardo telegram channel\n\n\n*Happy live coding! 🎵*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-lie%2Frenardo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe-lie%2Frenardo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-lie%2Frenardo/lists"}