Scheme playground.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
Muto 32edac9d41 Remove ambiguous comment 7 months ago
.gitignore add some mouse input functions; add gitignore 7 months ago Add note about the tutorial 7 months ago
Test.wav audio (#3) 7 months ago
audio-test.scm audio (#3) 7 months ago audio (#3) 7 months ago
init.scm audio (#3) 7 months ago
interscheme.c Remove ambiguous comment 7 months ago
tone.c audio (#3) 7 months ago
tone.h audio (#3) 7 months ago


A pixel graphics and sound playground using SDL2 and chibi-scheme.


See also:



  • Chibi Scheme
  • SDL2
  • SDL2 Mixer
  • SDL2 GFX

First, build and install chibi-scheme:

git clone
cd chibi-scheme
make -j$(nproc)
sudo make install

This will yield in /usr/local/lib and /usr/local/include/chibi header files. You might need to do ldconfig /usr/local/lib once.

It will also make a scheme REPL called chibi-scheme.

Then, in this here repo:



Edit init.scm to your liking.



Interscheme comes with several Scheme functions that are high-level wrappers to SDL functions. This is a complete list of readily-available functions (tagged with “no” or “yes” depending on whether or not the functionality is complete & working or not)

  • Graphical Functions
    • (pixel-put x y #xffffff) ; yes
    • (stroke-line x1 y1 x2 y2 #xffffffff) ; yes
    • (pixel-rect-fill x1 y1 x2 y2 #xffffff) ; yes
    • (pixel-ellipse-fill x1 y1 x2 y2 #xffffff) ; no
    • (get-pixel-value x y) ; no
    • (set-fps n) ; no
  • Audio Functions
    • (play-wav-file "some_file.wav") ; yes
    • (generate-tone frequency duration) ; wip
  • Input Functions
    • (mouse-x) ; yes
    • (mouse-y) ; yes
    • (keyboard) ; yes
    • (mouse-buttons) ; yes
    • (joystick) ; no

Interscheme is documented in more detail in the Reform Handbook.