aboutsummaryrefslogtreecommitdiff

Introduction

csound-sdl provides a simple interface for (currently quite) low level SDL calls. At current only basic shapes are available in order to investigate the possibilities and efficiency of using SDL from within Csound. An example is provided in the examples directory which utilises all current opcodes.

Requirements

  • Csound libraries
  • Cmake
  • LibSDL2

Building

Create a build directory at the top of the source tree, execute cmake .., make and optionally make install as root. If the latter is not used/possible then the resulting libsdl.so can be used with the --opcode-lib flag in Csound. eg:

cd csound-sdl
mkdir build && cd build
cmake ..
make && sudo make install

Opcode overview

sdlinit

ihandle, kmousetrigger, kmousex, kmousey sdlinit Swindowname, iwidth, iheight, ifps Initialise the SDL window. - ihandle: the handle to be used by further SDL opcodes to write to that window - kmousetrigger: fires when mouse button is clicked in the window - kmousex: reports mouse X position in window, normalised from 0 to 1 - kmousey: reports mouse Y position in window, normalised from 0 to 1

  • Swindowname: the title given to the window
  • iwidth: width of window in pixels
  • iheight: height of window in pixels
  • ifps: frames per second of rendering

sdlcolour

ihandle sdlcolour kred, kgreen, kblue, kalpha Set a colour to be used in later drawing. - ihandle: the handle for the colour to be used by further SDL opcodes

  • kred: red amount with range 0 to 255
  • kgreen: green amount with range 0 to 255
  • kblue: blue amount with range 0 to 255
  • kalpha: alpha amount with range 0 to 255

sdlrect

sdlrect iwindow, icolour, kx, ky, kwidth, kheight Create a rectangle. - iwindow: the window handle from sdlinit - icolour: the colour handle from sdlcolour - kx: X position - ky: Y position - kwidth: width - kheight: height

sdlline

sdlline iwindow, icolour, kx1, ky1, kx2, ky2 Create a line. - iwindow: the window handle from sdlinit - icolour: the colour handle from sdlcolour - kx1: X position of start point - ky1: Y position of start point - kx2: X position of end point - ky2: Y position of end point