# Is there an introduction to the codebase?

**URL:** <https://in-thread.sonic-pi.net/t/is-there-an-introduction-to-the-codebase/5512>\
**Category:** Development \[obsolete\]\
**Created:** [May 9, 2021, 7:36am UTC](https://in-thread.sonic-pi.net/t/is-there-an-introduction-to-the-codebase/5512 "2021-05-09T07:36:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![gregeporter](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/gregeporter/32/1277_2.png) [@gregeporter](https://in-thread.sonic-pi.net/u/gregeporter)\
**Post date:** [May 9, 2021, 7:36am UTC](https://in-thread.sonic-pi.net/t/is-there-an-introduction-to-the-codebase/5512/1 "2021-05-09T07:36:38Z")

</div>

Hello!

Are there any resources related to getting one familiar with the codebase?

Like which files go where and how to build/run tests?

I do see [this page](https://github.com/sonic-pi-net/sonic-pi/wiki/Sonic-Pi-Internals) but is that still up to date?

Thanks!

---

<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:** [May 9, 2021, 9:06am UTC](https://in-thread.sonic-pi.net/t/is-there-an-introduction-to-the-codebase/5512/2 "2021-05-09T09:06:06Z")

</div>

Hi @gregeporter,

apologies but there isn’t much in the way of documentation for the internals. All our documentation effort has gone into making Sonic Pi easy to learn and use as our primary audience is those learning to code.

One exception to this is that the documentation for building Sonic Pi is pretty decent. Check out the `BUILD-*` files in the source code. For example here’s the Windows instructions: [sonic-pi/BUILD-WINDOWS.md at main · sonic-pi-net/sonic-pi · GitHub](https://github.com/sonic-pi-net/sonic-pi/blob/main/BUILD-WINDOWS.md)

Improving the docs for developers would definitely be nice, but as always there’s a fine balance to be struck on where we apply our significantly limited resources.

---

<div class="post-metadata">

**Author:** ![ethancrawford](https://avatars.discourse-cdn.com/v4/letter/e/a88e4f/32.png) [@ethancrawford](https://in-thread.sonic-pi.net/u/ethancrawford)\
**Post date:** [May 9, 2021, 11:05am UTC](https://in-thread.sonic-pi.net/t/is-there-an-introduction-to-the-codebase/5512/3 "2021-05-09T11:05:55Z")

</div>

@gregeporter - as Sam has mentioned, there is not a great amount of developer documentation at the moment that describes the structure of the internal components.  
Back in 2017 this same question was posed elsewhere on the forum, and Xav Riley shared a diagram giving a rough breakdown of the major components. (It is still fairly accurate, except for the bit which enabled MIDI communication (osmid) - this was replaced not too long ago):

> [@Sonic Pi Architecture](https://in-thread.sonic-pi.net/t/sonic-pi-architecture/329):
>
> Hello Sonic Pi creators, thanks for creating this wonderful software. Imo sonic-pi is the marriage of two ultimate forms of expressions for human beings - coding and music and now there is no limit. I want to start contributing to this repo and get into internals of it. I am a software engineer and a student of music as well. Can you give me starting point ,or may be a diagram of how different components are glued together , so that i have a high level understanding of the source code. Please …

I see you also found the developer documentation on the wiki.  
Those pages and the above diagram are not totally up to date, so there may be some slightly inaccurate information here and there. I too am interested in trying to update the developer documentation, and have started this process, though it is not always easy to find the time to complete it 😅

If you have more specific questions, I’m sure someone would be able to help 🙂

---

<div class="post-metadata">

**Author:** ![gregeporter](https://dub1.discourse-cdn.com/flex017/user_avatar/in-thread.sonic-pi.net/gregeporter/32/1277_2.png) [@gregeporter](https://in-thread.sonic-pi.net/u/gregeporter)\
**Post date:** [May 9, 2021, 12:54pm UTC](https://in-thread.sonic-pi.net/t/is-there-an-introduction-to-the-codebase/5512/4 "2021-05-09T12:54:09Z")

</div>

@ethancrawford and @samaaron, thanks for the info and the quick response!

I’ll definitely check out the build files and that Architecture post 🙂

I work as a Software Engineer during the day and documentation (especially for someone new to the system) is tough to 1 find time for and 2, well, make time for cause there tend to be bigger fish to fry 😛

Thanks again!
