# How to handle multiple project files

**URL:** <https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013>\
**Category:** \[P\] Patreon Support\
**Created:** [July 4, 2026, 10:22am UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013 "2026-07-04T10:22:33Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![rebelcello](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/rebelcello/32/2602_2.png) [@rebelcello](https://in-thread.sonic-pi.net/u/rebelcello)\
**Post date:** [July 4, 2026, 10:22am UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013/1 "2026-07-04T10:22:33Z")

</div>

Can any one help with a good workflow for managing .rb files and buffers, please? I’m losing track between experiments, and also want to save out sections.

Eg do you start with cleared buffers each time? Mine are always full with experiments, so I’m juggling between versions. How do you handle open/close files and keep on top of things?

And what is the underlying nature of the .rb file. When you ‘save’, does it save just that buffer?

I’ve tried editing .rb files in VS Code or text editor. Sometimes it’s then greyed out and I can’t reload.

I want to set up a good workflow and filing system, realised I need more info on how it works.

Any suggestions appreciated! Thanks.

---

<div class="post-metadata">

**Author:** ![In\_SPi\_AR](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/in_spi_ar/32/3056_2.png) [@In\_SPi\_AR](https://in-thread.sonic-pi.net/u/In_SPi_AR)\
**Post date:** [July 9, 2026, 12:14pm UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013/2 "2026-07-09T12:14:44Z")

</div>

Hi,

Like you, I also have multiple experimental code blocks (trying different params for example) in separate buffers. Pretty soon, the 10 buffers get used up. So, I tend to comment out the experimental code (in a buffer), run my normal code then comment out the normal code in order to continue with the experimental code. This is a bit of a clumsy routine so here’s what I do…

On an external drive I have set up a folder (directory) for all Sonic Pi files. Then, I create a bunch of sub-directories. They are as follows:

SonicPi\_Samples: (containing my own .flack, .mp3 and .wav files. Naming each file meaningfully is important. This directory also provides consistent path/addressing for Sonic Pi to access the samples. I even keep a note file stating the tempo of each sample. I identify the tempo using Audacity and use Audacity to trim samples for looping contexts.

SonicPi\_Completed: This directory contains all completed .rb files saved from individual buffers. These files are ready to play/run with no further editing require. They have intro, verses, chorus and tags/outros. Typically, each of these files has a bunch of live\_loops, threads and def call. Whiles running them, I can live code for effect but essentially, they a complete. I often record them and keep the recorded .wav files in a sub-directory within the Completed directory called 'sonicPi\_wav\_Files.

SonicPi\_template\_Files: The contain my experimental file/templates which I can load when needed. I often use them for teaching also.

SonicPi\_working: This is where I store incomplete works.

So, essentially I set up directories specifically for Sonic Pi files on an external drive for storage and recovery. I use separate folder/directory categories depending on requirements. I also set sub-directories for storing .wav files recorded from completed works.

I have tried using a github also but prefer the above. BTW, the files that are saved as .rb files are in note pad/simple text without format but I can open them in other editors ie Sublime.

Not sure if this is helpful or more confusing but it’s how I keep my craziness a bit more organised (or not 🙂 ). GL from Altan.

---

<div class="post-metadata">

**Author:** ![rebelcello](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/rebelcello/32/2602_2.png) [@rebelcello](https://in-thread.sonic-pi.net/u/rebelcello)\
**Post date:** [July 9, 2026, 1:33pm UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013/3 "2026-07-09T13:33:25Z")

</div>

Hi Altan,

Thanks so much! This is superhelpful and exactly what I needed. I’ve been using ‘comment out’ liberally 😃 but got confused between versions, need something more granular and organised.

I particularly like your ‘template’ section which could also be used for listeners/interactive. This is the main experiment corner where I lose track of where I got to, between sessions. I did keep notes/diary but this has also become unwieldy!

Also, external drive will be a gamechanger, as I have Sonic Pi on three computers, have been using it locally until now.🎉 🙏

Think I’ll introduce a ‘start with clean buffers’ rule once everything is defragged 🙂

Massive thanks for your help!

---

<div class="post-metadata">

**Author:** ![In\_SPi\_AR](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/in_spi_ar/32/3056_2.png) [@In\_SPi\_AR](https://in-thread.sonic-pi.net/u/In_SPi_AR)\
**Post date:** [July 11, 2026, 7:27am UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013/4 "2026-07-11T07:27:31Z")

</div>

No worries and thank you also. I like the new rule… start with clean buffers… :). I occasionally run code from two or three buffers consecutively… eg, a live looped sound effects in one buffer, then run a second buffer to compliment the sfx buffer. Then, switch between buffers to implement variations. Seems to work really well. So, I then pop a comment at the top of the code to remind me of which sets work well together. That way, I can clean out buffers without forgetting the pervious works. Good to chat :).

---

<div class="post-metadata">

**Author:** ![rebelcello](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/rebelcello/32/2602_2.png) [@rebelcello](https://in-thread.sonic-pi.net/u/rebelcello)\
**Post date:** [July 11, 2026, 7:43pm UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013/5 "2026-07-11T19:43:02Z")

</div>

Thanks Altan! Just had a play with this idea, not sure if it’s exactly what you do, but great for changing fx! Haven’t tried this before. Cleared out buffers onto external drive meanwhile 😅

---

<div class="post-metadata">

**Author:** ![samaaron](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/samaaron/32/7_2.png) [@samaaron](https://in-thread.sonic-pi.net/u/samaaron)\
**Post date:** [July 17, 2026, 8:38pm UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013/6 "2026-07-17T20:38:42Z")

</div>

v5 RC1 has the ability to load and save entire sets of buffer as a single file 🙂

> **[Sonic Pi v5 Release Candidate 1 | Sam Aaron](https://www.patreon.com/samaaron/posts/sonic-pi-v5-1-164093369?utm_medium=clipboard_copy&utm_source=copyLink&utm_campaign=postshare_creator&utm_content=join_link)**
>
> Hey there, happy Friday and huge love to you wherever you are in the world. Today, it's time to open the vaults and let loose something that

---

<div class="post-metadata">

**Author:** ![rebelcello](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/rebelcello/32/2602_2.png) [@rebelcello](https://in-thread.sonic-pi.net/u/rebelcello)\
**Post date:** [July 17, 2026, 8:54pm UTC](https://in-thread.sonic-pi.net/t/how-to-handle-multiple-project-files/10013/7 "2026-07-17T20:54:53Z")

</div>

Thank you, Sam - just spotted this addition - is fantastic! Also the new cards are something else. V beginner friendly and fun to play with. The hotswap too! Sliders 🙏 Awesome how much work you’ve done on this.
