Where's the documentation?


Somewhat new to sonic-pi, but I wasn’t sure if there was an official documentation somewhere. I’ve been using the tutorial and different posts on the forum here so far. It would be useful to have an in depth docs.

Kind Regards,

Luke Leiter

1 Like

Just type Ctrl + I in Sonic-Pi. The window will show up with everything you need.

  • Tutorial
  • Examples
  • Synthesizers
  • Effects
  • Samples
  • Langage

EDIT : Ctrl + I will open the documentation for the word under your cursor.

1 Like

Press Alt+ I to toggle the menu that Bubo is talking about

1 Like

There’s also the documentation in web form: https://sonic-pi.net/tutorial

Idid not see ?? Idont understand the program pff

If you are on a Mac, it’s Command + i instead of Alt + i to toggle the help section on and off.

Firstly, the tutorial is glorious. However, I find myself jumping around to things I know I’ve seen ‘somewhere’ including in mehackit. It’s fun to dig around but also a bit frustrating. I do think this is one of the best and most concise set of tutorials I’ve ever seen, and embedded in the app! That does help. But the language reference is flat. If you want to know params for various things, you need to find first where they might be applied and then dig into that. Point is, for how many powerful features there are, when you start digging in it gets a bit difficult to find on the fly (or on the ground).

What do you think might help make things less “flat” for you?

I didn’t mean that as an offense by any means. I’m just giving my newbie opinion.

I think a search of some sort would help.

Grouping functions in some way, possibly by general area of use. Some of this is already implicitly done by function name (all midi functions start with midi_). But when you first come in you are presented with a giant list. That’s what I meant by ‘flat’. For instance “sound_out” and related are in 'fx’but it is hard to remember that. Trying to find them means more digging. I keep going back to the tutorials to find that as an option. Some of the parameters that are nearly as important as the main functions are difficult to find.

Possibly when clicking on a function in the lang section of the help, could drop down an indent of parameters associated. I know they are in the content, but just harder to dig up.

My number one wish would be my first point, the search that would cover at least what can be remembered if you have come across it.

Think of if you were looking for “sound_out_stereo”. Comes up in the auto-complete, no easy reference other than the tutorial (which again is the best ever).


@Hypostatic - I can’t promise anything just yet, but there are plans to overhaul the built in documentation system, which will hopefully include built in search. I’m in the early stages of investigating and testing various alternatives at the moment. The desire is that the new system will produce the online documentation at the same time too, with similar features, so that both copies are in sync.


Thanks for the note Ethan. I actually didn’t get on this forum to make critiques first thing off. I’m having a ton of fun learning this. It’s just a bit frustrating to start out when so many powerful things are somewhat hidden. At this point I’m constantly saying “I know I saw that somewhere, or did I imagine it?” :slight_smile: The search alone would help put a found function or parameter in context. I am just beginning with this but appreciate all of the team’s work and also the great info from brilliant people in this community!


No worries, I understood. Was just providing info about future plans since it was relevant anyway! :slight_smile:

1 Like

Absolutely no offence taken. I was just curious what you meant by flat. Thanks for your answer!

I agree with your points. Hopefully one day we can address them.

@Hypostatic yes we still don’t know what “flat” means ? as a man file :slight_smile: one page and then ctrl + F

@nlb, not to belabor this, but what I meant was the ‘Lang’ tab in the help, in the app, is difficult to find things, at least at first. After more use (like nearly obsessive use these last few days), I’ve come to find the autocomplete of great help as it does list all params after various functions. Forgive my newbie eyes! I think it just takes getting acquainted. Just hard to know what I may be missing, without some structure. The tutorial (and this forum) help immensely. Be Well!


Coming back after obsessing with and working with Sonic Pi for a bit. I’m already past the hurdle of finding what is needed. It really took just honestly reading through every single function and making notes in the Language panel of the app (or the site). Now that I’ve wrapped my head around it a bit more it isn’t that difficult to look things up. Typing the lang panel brings you to the item (but you have to know you want to look for it). Search the site is easy as @nlb mentioned. The intellisence/auto complete is a huge help when you are bit familiar.

In certain circumstances, the ability to detach the help window is of great value (especially while learning). I think, on retrospect what I was coming across was a somewhat indigestible list, with only functions in it. I also found myself finding the things I needed in the wonderful tutorial section but wished the functions mentioned were hyperlinked in some way back to the full details. I know this is larger than the app or the site though.

A search would help, but not even sure at this point if this is the entire solve. I imagine beyond the tutorials it would be a full reference manual (which I saw @samaaron has mentioned might be produced).

All-in-all I think it just takes a bit of time to learn, obviously, like anything else - going repeatedly through the docs and tutorials.

A full reference manual / documentation would be greatly appreciated! I started learning sonic pi yesterday and had a bit of confusion that I am guessing is mostly due to my lack of experience with the language and Ruby in general.

For example, when reading the ‘Samples’ section of the help menu, I cannot find any information on the beat_stretch and onset opts as shown in the code below.

sample :loop_amen, beat_stretch: 2, rate: r , amp: 2, onset: rrand_i(0,5)

Am I overlooking or missing something? I learned about these features through the autocomplete feature and watching other people code, but would love to find more info. Thanks in advance! :smiley:


@badsine - I’ll have to double check with @samaaron, but what you may in fact have discovered is a gap in the documentation for those two opts.

1 Like

Thank you for the fast reply! I was thinking that they may be inherited from some parent class but that is an easier answer lol :sweat_smile: