Module cocos.audio.pygame.music

Pygame module for controlling streamed audio

The music module is closely tied to pygame.mixer. Use the music module to control the playback of music in the sound mixer.

The difference between the music playback and regular Sound playback is that the music is streamed, and never actually loaded all at once. The mixer system only supports a single music stream at once.

Functions

  fadeout(time)
Stop music playback after fading out.
bool get_busy()
Check if the music stream is playing.
int get_endevent()
Get the event a channel sends when playback stops.
int get_pos()
Get the amount of time music has been playing.
float get_volume()
Get the music volume.
  load(filename)
Load a music file for playback.
  pause()
Temporarily stop music playback.
  play(loops=0, start=0.0)
Start the playback of the music stream.
  queue(filename)
Queue a music file to follow the current one.
  rewind()
Restart music.
  set_endevent(eventtype=None)
Have the music send an event when playback stops.
  set_volume(volume)
Set the music volume.
  stop()
Stop the music playback.
  unpause()
Resume paused music.

Constants

  AUDIO_S16 = 32784
  AUDIO_S16LSB = 32784
  AUDIO_S16MSB = 36880
  AUDIO_S16SYS = 32784
  AUDIO_S8 = 32776
  AUDIO_U16 = 16
  AUDIO_U16LSB = 16
  AUDIO_U16MSB = 4112
  AUDIO_U16SYS = 16
  AUDIO_U8 = 8
  CD_ERROR = -1
  CD_FPS = 75
  CD_PAUSED = 3
  CD_PLAYING = 2
  CD_STOPPED = 1
  CD_TRAYEMPTY = 0
  DEFAULT_MODE = 0
  KMOD_ALT = 768
  KMOD_CAPS = 8192
  KMOD_CTRL = 192
  KMOD_LALT = 256
  KMOD_LCTRL = 64
  KMOD_LMETA = 1024
  KMOD_LSHIFT = 1
  KMOD_META = 3072
  KMOD_MODE = 16384
  KMOD_NONE = 0
  KMOD_NUM = 4096
  KMOD_RALT = 512
  KMOD_RCTRL = 128
  KMOD_RESERVED = 32768
  KMOD_RMETA = 2048
  KMOD_RSHIFT = 2
  KMOD_SHIFT = 3
  MIX_CHANNELS = 8
  MIX_CHANNEL_POST = -2
  MIX_DEFAULT_CHANNELS = 2
  MIX_DEFAULT_FORMAT = 32784
  MIX_DEFAULT_FREQUENCY = 22050
  MIX_EFFECTSMAXSPEED = 'MIX_EFFECTSMAXSPEED'
  MIX_FADING_IN = 2
  MIX_FADING_OUT = 1
  MIX_MAX_VOLUME = 128
  MIX_NO_FADING = 0
  MUS_CMD = 1
  MUS_MID = 4
  MUS_MOD = 3
  MUS_MP3 = 6
  MUS_NONE = 0
  MUS_OGG = 5
  MUS_WAV = 2
  NULL = 0
  RTLD_GLOBAL = 0
  RTLD_LOCAL = 0
  RW_SEEK_CUR = 1
  RW_SEEK_END = 2
  RW_SEEK_SET = 0
  SDLK_0 = 48
  SDLK_1 = 49
  SDLK_2 = 50
  SDLK_3 = 51
  SDLK_4 = 52
  SDLK_5 = 53
  SDLK_6 = 54
  SDLK_7 = 55
  SDLK_8 = 56
  SDLK_9 = 57
  SDLK_AMPERSAND = 38
  SDLK_ASTERISK = 42
  SDLK_AT = 64
  SDLK_BACKQUOTE = 96
  SDLK_BACKSLASH = 92
  SDLK_BACKSPACE = 8
  SDLK_BREAK = 318
  SDLK_CAPSLOCK = 301
  SDLK_CARET = 94
  SDLK_CLEAR = 12
  SDLK_COLON = 58
  SDLK_COMMA = 44
  SDLK_COMPOSE = 314
  SDLK_DELETE = 127
  SDLK_DOLLAR = 36
  SDLK_DOWN = 274
  SDLK_END = 279
  SDLK_EQUALS = 61
  SDLK_ESCAPE = 27
  SDLK_EURO = 321
  SDLK_EXCLAIM = 33
  SDLK_F1 = 282
  SDLK_F10 = 291
  SDLK_F11 = 292
  SDLK_F12 = 293
  SDLK_F13 = 294
  SDLK_F14 = 295
  SDLK_F15 = 296
  SDLK_F2 = 283
  SDLK_F3 = 284
  SDLK_F4 = 285
  SDLK_F5 = 286
  SDLK_F6 = 287
  SDLK_F7 = 288
  SDLK_F8 = 289
  SDLK_F9 = 290
  SDLK_FIRST = 0
  SDLK_GREATER = 62
  SDLK_HASH = 35
  SDLK_HELP = 315
  SDLK_HOME = 278
  SDLK_INSERT = 277
  SDLK_KP0 = 256
  SDLK_KP1 = 257
  SDLK_KP2 = 258
  SDLK_KP3 = 259
  SDLK_KP4 = 260
  SDLK_KP5 = 261
  SDLK_KP6 = 262
  SDLK_KP7 = 263
  SDLK_KP8 = 264
  SDLK_KP9 = 265
  SDLK_KP_DIVIDE = 267
  SDLK_KP_ENTER = 271
  SDLK_KP_EQUALS = 272
  SDLK_KP_MINUS = 269
  SDLK_KP_MULTIPLY = 268
  SDLK_KP_PERIOD = 266
  SDLK_KP_PLUS = 270
  SDLK_LALT = 308
  SDLK_LAST = 323
  SDLK_LCTRL = 306
  SDLK_LEFT = 276
  SDLK_LEFTBRACKET = 91
  SDLK_LEFTPAREN = 40
  SDLK_LESS = 60
  SDLK_LMETA = 310
  SDLK_LSHIFT = 304
  SDLK_LSUPER = 311
  SDLK_MENU = 319
  SDLK_MINUS = 45
  SDLK_MODE = 313
  SDLK_NUMLOCK = 300
  SDLK_PAGEDOWN = 281
  SDLK_PAGEUP = 280
  SDLK_PAUSE = 19
  SDLK_PERIOD = 46
  SDLK_PLUS = 43
  SDLK_POWER = 320
  SDLK_PRINT = 316
  SDLK_QUESTION = 63
  SDLK_QUOTE = 39
  SDLK_QUOTEDBL = 34
  SDLK_RALT = 307
  SDLK_RCTRL = 305
  SDLK_RETURN = 13
  SDLK_RIGHT = 275
  SDLK_RIGHTBRACKET = 93
  SDLK_RIGHTPAREN = 41
  SDLK_RMETA = 309
  SDLK_RSHIFT = 303
  SDLK_RSUPER = 312
  SDLK_SCROLLOCK = 302
  SDLK_SEMICOLON = 59
  SDLK_SLASH = 47
  SDLK_SPACE = 32
  SDLK_SYSREQ = 317
  SDLK_TAB = 9
  SDLK_UNDERSCORE = 95
  SDLK_UNDO = 322
  SDLK_UNKNOWN = 0
  SDLK_UP = 273
  SDLK_WORLD_0 = 160
  SDLK_WORLD_1 = 161
  SDLK_WORLD_10 = 170
  SDLK_WORLD_11 = 171
  SDLK_WORLD_12 = 172
  SDLK_WORLD_13 = 173
  SDLK_WORLD_14 = 174
  SDLK_WORLD_15 = 175
  SDLK_WORLD_16 = 176
  SDLK_WORLD_17 = 177
  SDLK_WORLD_18 = 178
  SDLK_WORLD_19 = 179
  SDLK_WORLD_2 = 162
  SDLK_WORLD_20 = 180
  SDLK_WORLD_21 = 181
  SDLK_WORLD_22 = 182
  SDLK_WORLD_23 = 183
  SDLK_WORLD_24 = 184
  SDLK_WORLD_25 = 185
  SDLK_WORLD_26 = 186
  SDLK_WORLD_27 = 187
  SDLK_WORLD_28 = 188
  SDLK_WORLD_29 = 189
  SDLK_WORLD_3 = 163
  SDLK_WORLD_30 = 190
  SDLK_WORLD_31 = 191
  SDLK_WORLD_32 = 192
  SDLK_WORLD_33 = 193
  SDLK_WORLD_34 = 194
  SDLK_WORLD_35 = 195
  SDLK_WORLD_36 = 196
  SDLK_WORLD_37 = 197
  SDLK_WORLD_38 = 198
  SDLK_WORLD_39 = 199
  SDLK_WORLD_4 = 164
  SDLK_WORLD_40 = 200
  SDLK_WORLD_41 = 201
  SDLK_WORLD_42 = 202
  SDLK_WORLD_43 = 203
  SDLK_WORLD_44 = 204
  SDLK_WORLD_45 = 205
  SDLK_WORLD_46 = 206
  SDLK_WORLD_47 = 207
  SDLK_WORLD_48 = 208
  SDLK_WORLD_49 = 209
  SDLK_WORLD_5 = 165
  SDLK_WORLD_50 = 210
  SDLK_WORLD_51 = 211
  SDLK_WORLD_52 = 212
  SDLK_WORLD_53 = 213
  SDLK_WORLD_54 = 214
  SDLK_WORLD_55 = 215
  SDLK_WORLD_56 = 216
  SDLK_WORLD_57 = 217
  SDLK_WORLD_58 = 218
  SDLK_WORLD_59 = 219
  SDLK_WORLD_6 = 166
  SDLK_WORLD_60 = 220
  SDLK_WORLD_61 = 221
  SDLK_WORLD_62 = 222
  SDLK_WORLD_63 = 223
  SDLK_WORLD_64 = 224
  SDLK_WORLD_65 = 225
  SDLK_WORLD_66 = 226
  SDLK_WORLD_67 = 227
  SDLK_WORLD_68 = 228
  SDLK_WORLD_69 = 229
  SDLK_WORLD_7 = 167
  SDLK_WORLD_70 = 230
  SDLK_WORLD_71 = 231
  SDLK_WORLD_72 = 232
  SDLK_WORLD_73 = 233
  SDLK_WORLD_74 = 234
  SDLK_WORLD_75 = 235
  SDLK_WORLD_76 = 236
  SDLK_WORLD_77 = 237
  SDLK_WORLD_78 = 238
  SDLK_WORLD_79 = 239
  SDLK_WORLD_8 = 168
  SDLK_WORLD_80 = 240
  SDLK_WORLD_81 = 241
  SDLK_WORLD_82 = 242
  SDLK_WORLD_83 = 243
  SDLK_WORLD_84 = 244
  SDLK_WORLD_85 = 245
  SDLK_WORLD_86 = 246
  SDLK_WORLD_87 = 247
  SDLK_WORLD_88 = 248
  SDLK_WORLD_89 = 249
  SDLK_WORLD_9 = 169
  SDLK_WORLD_90 = 250
  SDLK_WORLD_91 = 251
  SDLK_WORLD_92 = 252
  SDLK_WORLD_93 = 253
  SDLK_WORLD_94 = 254
  SDLK_WORLD_95 = 255
  SDL_ACTIVEEVENT = 1
  SDL_ACTIVEEVENTMASK = 2
  SDL_ADDEVENT = 0
  SDL_ALLEVENTS = 4294967295
  SDL_ALL_HOTKEYS = 4294967295
  SDL_ALPHA_OPAQUE = 255
  SDL_ALPHA_TRANSPARENT = 0
  SDL_ANYFORMAT = 268435456
  SDL_APPACTIVE = 4
  SDL_APPINPUTFOCUS = 2
  SDL_APPMOUSEFOCUS = 1
  SDL_ASYNCBLIT = 4
  SDL_AUDIO_PAUSED = 2
  SDL_AUDIO_PLAYING = 1
  SDL_AUDIO_STOPPED = 0
  SDL_AUDIO_TRACK = 0
  SDL_BIG_ENDIAN = 4321
  SDL_BUTTON_LEFT = 1
  SDL_BUTTON_MIDDLE = 2
  SDL_BUTTON_RIGHT = 3
  SDL_BUTTON_WHEELDOWN = 5
  SDL_BUTTON_WHEELUP = 4
  SDL_BYTEORDER = 1234
  SDL_DATA_TRACK = 4
  SDL_DEFAULT_REPEAT_DELAY = 500
  SDL_DEFAULT_REPEAT_INTERVAL = 30
  SDL_DISABLE = 0
  SDL_DOUBLEBUF = 1073741824
  SDL_ENABLE = 1
  SDL_EVENT_RESERVED2 = 18
  SDL_EVENT_RESERVED3 = 19
  SDL_EVENT_RESERVED4 = 20
  SDL_EVENT_RESERVED5 = 21
  SDL_EVENT_RESERVED6 = 22
  SDL_EVENT_RESERVED7 = 23
  SDL_EVENT_RESERVEDA = 14
  SDL_EVENT_RESERVEDB = 15
  SDL_FULLSCREEN = 2147483648
  SDL_GETEVENT = 2
  SDL_GL_ACCELERATED_VISUAL = 15
  SDL_GL_ACCUM_ALPHA_SIZE = 11
  SDL_GL_ACCUM_BLUE_SIZE = 10
  SDL_GL_ACCUM_GREEN_SIZE = 9
  SDL_GL_ACCUM_RED_SIZE = 8
  SDL_GL_ALPHA_SIZE = 3
  SDL_GL_BLUE_SIZE = 2
  SDL_GL_BUFFER_SIZE = 4
  SDL_GL_DEPTH_SIZE = 6
  SDL_GL_DOUBLEBUFFER = 5
  SDL_GL_GREEN_SIZE = 1
  SDL_GL_MULTISAMPLEBUFFERS = 13
  SDL_GL_MULTISAMPLESAMPLES = 14
  SDL_GL_RED_SIZE = 0
  SDL_GL_STENCIL_SIZE = 7
  SDL_GL_STEREO = 12
  SDL_GL_SWAP_CONTROL = 16
  SDL_GRAB_OFF = 0
  SDL_GRAB_ON = 1
  SDL_GRAB_QUERY = -1
  SDL_HAT_CENTERED = 0
  SDL_HAT_DOWN = 4
  SDL_HAT_LEFT = 8
  SDL_HAT_LEFTDOWN = 12
  SDL_HAT_LEFTUP = 9
  SDL_HAT_RIGHT = 2
  SDL_HAT_RIGHTDOWN = 6
  SDL_HAT_RIGHTUP = 3
  SDL_HAT_UP = 1
  SDL_HWACCEL = 256
  SDL_HWPALETTE = 536870912
  SDL_HWSURFACE = 1
  SDL_IGNORE = 0
  SDL_INIT_AUDIO = 16
  SDL_INIT_CDROM = 256
  SDL_INIT_EVENTTHREAD = 16777216
  SDL_INIT_EVERYTHING = 65535
  SDL_INIT_JOYSTICK = 512
  SDL_INIT_NOPARACHUTE = 1048576
  SDL_INIT_TIMER = 1
  SDL_INIT_VIDEO = 32
  SDL_IYUV_OVERLAY = 1448433993
  SDL_JOYAXISMOTION = 7
  SDL_JOYAXISMOTIONMASK = 128
  SDL_JOYBALLMOTION = 8
  SDL_JOYBALLMOTIONMASK = 256
  SDL_JOYBUTTONDOWN = 10
  SDL_JOYBUTTONDOWNMASK = 1024
  SDL_JOYBUTTONUP = 11
  SDL_JOYBUTTONUPMASK = 2048
  SDL_JOYEVENTMASK = 3968
  SDL_JOYHATMOTION = 9
  SDL_JOYHATMOTIONMASK = 512
  SDL_KEYDOWN = 2
  SDL_KEYDOWNMASK = 4
  SDL_KEYEVENTMASK = 12
  SDL_KEYUP = 3
  SDL_KEYUPMASK = 8
  SDL_LIL_ENDIAN = 1234
  SDL_LOGPAL = 1
  SDL_MAJOR_VERSION = 1
  SDL_MAX_TRACKS = 99
  SDL_MINOR_VERSION = 2
  SDL_MIX_MAXVOLUME = 128
  SDL_MOUSEBUTTONDOWN = 5
  SDL_MOUSEBUTTONDOWNMASK = 32
  SDL_MOUSEBUTTONUP = 6
  SDL_MOUSEBUTTONUPMASK = 64
  SDL_MOUSEEVENTMASK = 112
  SDL_MOUSEMOTION = 4
  SDL_MOUSEMOTIONMASK = 16
  SDL_MUTEX_TIMEDOUT = 1
  SDL_NOEVENT = 0
  SDL_NOFRAME = 32
  SDL_NUMEVENTS = 32
  SDL_OPENGL = 2
  SDL_OPENGLBLIT = 10
  SDL_PATCHLEVEL = 10
  SDL_PEEKEVENT = 1
  SDL_PHYSPAL = 2
  SDL_PREALLOC = 16777216
  SDL_PRESSED = 1
  SDL_QUIT = 12
  SDL_QUITMASK = 4096
  SDL_RELEASED = 0
  SDL_RESIZABLE = 16
  SDL_RLEACCEL = 16384
  SDL_RLEACCELOK = 8192
  SDL_SRCALPHA = 65536
  SDL_SRCCOLORKEY = 4096
  SDL_SWSURFACE = 0
  SDL_SYSWMEVENT = 13
  SDL_SYSWMEVENTMASK = 8192
  SDL_TIMESLICE = 10
  SDL_USEREVENT = 24
  SDL_UYVY_OVERLAY = 1498831189
  SDL_VIDEOEXPOSE = 17
  SDL_VIDEOEXPOSEMASK = 131072
  SDL_VIDEORESIZE = 16
  SDL_VIDEORESIZEMASK = 65536
  SDL_YUY2_OVERLAY = 844715353
  SDL_YV12_OVERLAY = 842094169
  SDL_YVYU_OVERLAY = 1431918169
  SOUND_SAMPLEFLAG_CANSEEK = 1
  SOUND_SAMPLEFLAG_EGAIN = 2147483648
  SOUND_SAMPLEFLAG_EOF = 536870912
  SOUND_SAMPLEFLAG_ERROR = 1073741824
  SOUND_SAMPLEFLAG_NONE = 0
  TIMER_RESOLUTION = 10
  TTF_STYLE_BOLD = 1
  TTF_STYLE_ITALIC = 2
  TTF_STYLE_NORMAL = 0
  TTF_STYLE_UNDERLINE = 4

Variables

  GetLastError = <_FuncPtr object at 0x00AFF300>
  NeedFunctionPrototypes = 1
  SDLK_a = 97
  SDLK_b = 98
  SDLK_c = 99
  SDLK_d = 100
  SDLK_e = 101
  SDLK_f = 102
  SDLK_g = 103
  SDLK_h = 104
  SDLK_i = 105
  SDLK_j = 106
  SDLK_k = 107
  SDLK_l = 108
  SDLK_m = 109
  SDLK_n = 110
  SDLK_o = 111
  SDLK_p = 112
  SDLK_q = 113
  SDLK_r = 114
  SDLK_s = 115
  SDLK_t = 116
  SDLK_u = 117
  SDLK_v = 118
  SDLK_w = 119
  SDLK_x = 120
  SDLK_y = 121
  SDLK_z = 122
  __package__ = 'cocos.audio.pygame'
  cdll = <ctypes.LibraryLoader object at 0x00B0F410>
  memmove = <CFunctionType object at 0x00AFF210>
  memset = <CFunctionType object at 0x00AFF378>
  oledll = <ctypes.LibraryLoader object at 0x00B0F470>
  pydll = <ctypes.LibraryLoader object at 0x00B0F430>
  pythonapi = <PyDLL 'python dll', handle 1e000000 at b0f450>
  windll = <ctypes.LibraryLoader object at 0x00B0F490>

Function Details

fadeout

fadeout(time)

Stop music playback after fading out.

This will stop the music playback after it has been faded out over the specified time (measured in milliseconds). Any queued music will be unqueued.

Note, that this function blocks until the music has faded out.

Parameters:
time : int
Time to fade out over, in milliseconds.

get_busy

get_busy()

Check if the music stream is playing.

Returns True when the music stream is actively playing. When the music is idle this returns False.

Returns: bool

get_endevent

get_endevent()

Get the event a channel sends when playback stops.

Returns the event type to be sent every time the music finishes playback. If there is no endevent the function returns pygame.NOEVENT.

Returns: int

get_pos

get_pos()

Get the amount of time music has been playing.

This gets the number of milliseconds that the music has been playing for. The returned time only represents how long the music has been playing; it does not take into account any starting position offsets.

Returns -1 if the position is unknown.

Returns: int

get_volume

get_volume()

Get the music volume.

Returns the current volume for the mixer. The value will be between 0.0 and 1.0.

Returns: float

load

load(filename)

Load a music file for playback.

This will load a music file and prepare it for playback. If a music stream is already playing it will be stopped. This does not start the music playing.

Music can only be loaded from filenames, not python file objects like the other pygame loading functions.

Parameters:
filename : str
Filename of music to load.

pause

pause()

Temporarily stop music playback.

Temporarily stop playback of the music stream. It can be resumed with the unpause function.

play

play(loops=0, start=0.0)

Start the playback of the music stream.

This will play the loaded music stream. If the music is already playing it will be restarted.

The loops argument controls the number of repeats a music will play. play(5) will cause the music to played once, then repeated five times, for a total of six. If loops is -1 then the music will repeat until stopped.

The start argument controls where in the music the song starts playing. The starting position is dependent on the format of music playing. MP3 and OGG use the position as time (in seconds). MOD music it is the pattern order number. Passing a value to start will raise a NotImplementedError if it cannot set the start position

Parameters:
loops : int
Number of times to repeat music after initial play through.
start : float
Starting time within music track to play from, in seconds.

queue

queue(filename)

Queue a music file to follow the current one.

This will load a music file and queue it. A queued music file will begin as soon as the current music naturally ends. If the current music is ever stopped or changed, the queued song will be lost.

The following example will play music by Bach six times, then play music by Mozart once:

pygame.mixer.music.load('bach.ogg')
pygame.mixer.music.play(5)        # Plays six times, not five
pygame.mixer.music.queue('mozart.ogg')
Parameters:
filename : str
Filename of music file to queue.

rewind

rewind()

Restart music.

Resets playback of the current music to the beginning.

set_endevent

set_endevent(eventtype=None)

Have the music send an event when playback stops.

This causes Pygame to signal (by means of the event queue) when the music is done playing. The argument determines the type of event that will be queued.

The event will be queued every time the music finishes, not just the first time. To stop the event from being queued, call this method with no argument.

Parameters:
eventtype : int
Type of event to post. For example, SDL_USEREVENT + n

set_volume

set_volume(volume)

Set the music volume.

Set the volume of the music playback. The value argument is between 0.0 and 1.0. When new music is loaded the volume is reset.

Parameters:
volume : float
Volume of music playback, in range [0.0, 1.0].

stop

stop()

Stop the music playback.

Stops the current music if it is playing. Any queued music will be unqueued.

unpause

unpause()

Resume paused music.

This will resume the playback of a music stream after it has been paused.