Functions

remix_deck.h File Reference

The top level structured mixing abstraction in libremix is known as a deck. More...

#include <remix/remix_types.h>

Go to the source code of this file.

Functions

RemixDeck * remix_deck_new (RemixEnv *env)
RemixCount remix_deck_set_mixlength (RemixEnv *env, RemixDeck *deck, RemixCount mixlength)
RemixCount remix_deck_get_mixlength (RemixEnv *env, RemixDeck *deck)
CDList * remix_deck_get_tracks (RemixEnv *env, RemixDeck *deck)
RemixTrack * remix_track_new (RemixEnv *env, RemixDeck *deck)
RemixPCM remix_track_set_gain (RemixEnv *env, RemixTrack *track, RemixPCM gain)
RemixPCM remix_track_get_gain (RemixEnv *env, RemixTrack *track)
RemixCount remix_track_set_mixlength (RemixEnv *env, RemixTrack *track, RemixCount mixlength)
RemixCount remix_track_get_mixlength (RemixEnv *env, RemixTrack *track)
void remix_remove_track (RemixEnv *env, RemixTrack *track)
RemixDeck * remix_track_get_deck (RemixEnv *env, RemixTrack *track)
RemixLayer * remix_layer_new_ontop (RemixEnv *env, RemixTrack *track, RemixTimeType timetype)
RemixLayer * remix_layer_new_above (RemixEnv *env, RemixLayer *above, RemixTimeType timetype)
RemixLayer * remix_layer_move_ontop (RemixEnv *env, RemixLayer *layer, RemixTrack *track)
RemixLayer * remix_layer_move_above (RemixEnv *env, RemixLayer *layer, RemixLayer *above)
RemixLayer * remix_layer_raise (RemixEnv *env, RemixLayer *layer)
RemixLayer * remix_layer_lower (RemixEnv *env, RemixLayer *layer)
RemixTrack * remix_layer_get_track (RemixEnv *env, RemixLayer *layer)
RemixDeck * remix_layer_get_deck (RemixEnv *env, RemixLayer *layer)
RemixTimeType remix_layer_set_timetype (RemixEnv *env, RemixLayer *layer, RemixTimeType new_type)
RemixTimeType remix_layer_get_timetype (RemixEnv *env, RemixLayer *layer)
RemixSound * remix_layer_get_sound_before (RemixEnv *env, RemixLayer *layer, RemixTime time)
RemixSound * remix_layer_get_sound_at (RemixEnv *env, RemixLayer *layer, RemixTime time)
RemixSound * remix_layer_get_sound_after (RemixEnv *env, RemixLayer *layer, RemixTime time)
RemixLayer * remix_layer_below (RemixEnv *env, RemixLayer *layer)
RemixLayer * remix_layer_above (RemixEnv *env, RemixLayer *layer)
RemixSound * remix_sound_new (RemixEnv *env, RemixBase *source, RemixLayer *layer, RemixTime start_time, RemixTime duration)
RemixBase * remix_sound_set_source (RemixEnv *env, RemixSound *sound, RemixBase *source)
RemixBase * remix_sound_get_source (RemixEnv *env, RemixSound *sound)
RemixLayer * remix_sound_get_layer (RemixEnv *env, RemixSound *sound)
RemixTrack * remix_sound_get_track (RemixEnv *env, RemixSound *sound)
RemixDeck * remix_sound_get_deck (RemixEnv *env, RemixSound *sound)
RemixTime remix_sound_move (RemixEnv *env, RemixSound *sound, RemixTime time)
RemixSound * remix_sound_get_prev (RemixEnv *env, RemixSound *sound)
RemixSound * remix_sound_get_next (RemixEnv *env, RemixSound *sound)
RemixTime remix_sound_set_start_time (RemixEnv *env, RemixSound *sound, RemixTime time)
RemixTime remix_sound_get_start_time (RemixEnv *env, RemixSound *sound)
RemixTime remix_sound_set_duration (RemixEnv *env, RemixSound *sound, RemixTime time)
RemixTime remix_sound_get_duration (RemixEnv *env, RemixSound *sound)
RemixBase * remix_sound_set_rate_envelope (RemixEnv *env, RemixSound *sound, RemixBase *rate_envelope)
RemixBase * remix_sound_get_rate_envelope (RemixEnv *env, RemixSound *sound)
RemixBase * remix_sound_set_gain_envelope (RemixEnv *env, RemixSound *sound, RemixBase *gain_envelope)
RemixBase * remix_sound_get_gain_envelope (RemixEnv *env, RemixSound *sound)
RemixBase * remix_sound_set_blend_envelope (RemixEnv *env, RemixSound *sound, RemixBase *blend_envelope)
RemixBase * remix_sound_get_blend_envelope (RemixEnv *env, RemixSound *sound)

Detailed Description

The top level structured mixing abstraction in libremix is known as a deck.

A deck contains a number of tracks which are mixed in parallel. Each track may contain a number of layers which are mixed from bottom to top in series. Finally, these layers each contain a sequence of sounds with transparency.

decks.png

The sequence of sounds in a layer can be indexed by samples, seconds or tempo. Sounds provide audio data from any instrument or effect source, and these sources can each be reused multiple times. A sound can even source its audio data from another entire deck, thus decks can be used to sequence other decks. In this manner effects can be applied to sequences of decks, and sequences of decks can be stored as higher level units such as verses and choruses in a music application.


Function Documentation

RemixCount remix_deck_get_mixlength ( RemixEnv *  env,
RemixDeck *  deck 
)
CDList* remix_deck_get_tracks ( RemixEnv *  env,
RemixDeck *  deck 
)
RemixDeck* remix_deck_new ( RemixEnv *  env  ) 
RemixCount remix_deck_set_mixlength ( RemixEnv *  env,
RemixDeck *  deck,
RemixCount  mixlength 
)
RemixLayer* remix_layer_above ( RemixEnv *  env,
RemixLayer *  layer 
)
RemixLayer* remix_layer_below ( RemixEnv *  env,
RemixLayer *  layer 
)
RemixDeck* remix_layer_get_deck ( RemixEnv *  env,
RemixLayer *  layer 
)
RemixSound* remix_layer_get_sound_after ( RemixEnv *  env,
RemixLayer *  layer,
RemixTime  time 
)
RemixSound* remix_layer_get_sound_at ( RemixEnv *  env,
RemixLayer *  layer,
RemixTime  time 
)
RemixSound* remix_layer_get_sound_before ( RemixEnv *  env,
RemixLayer *  layer,
RemixTime  time 
)
RemixTimeType remix_layer_get_timetype ( RemixEnv *  env,
RemixLayer *  layer 
)
RemixTrack* remix_layer_get_track ( RemixEnv *  env,
RemixLayer *  layer 
)
RemixLayer* remix_layer_lower ( RemixEnv *  env,
RemixLayer *  layer 
)
RemixLayer* remix_layer_move_above ( RemixEnv *  env,
RemixLayer *  layer,
RemixLayer *  above 
)
RemixLayer* remix_layer_move_ontop ( RemixEnv *  env,
RemixLayer *  layer,
RemixTrack *  track 
)
RemixLayer* remix_layer_new_above ( RemixEnv *  env,
RemixLayer *  above,
RemixTimeType  timetype 
)
RemixLayer* remix_layer_new_ontop ( RemixEnv *  env,
RemixTrack *  track,
RemixTimeType  timetype 
)
RemixLayer* remix_layer_raise ( RemixEnv *  env,
RemixLayer *  layer 
)
RemixTimeType remix_layer_set_timetype ( RemixEnv *  env,
RemixLayer *  layer,
RemixTimeType  new_type 
)
void remix_remove_track ( RemixEnv *  env,
RemixTrack *  track 
)
RemixBase* remix_sound_get_blend_envelope ( RemixEnv *  env,
RemixSound *  sound 
)
RemixDeck* remix_sound_get_deck ( RemixEnv *  env,
RemixSound *  sound 
)
RemixTime remix_sound_get_duration ( RemixEnv *  env,
RemixSound *  sound 
)
RemixBase* remix_sound_get_gain_envelope ( RemixEnv *  env,
RemixSound *  sound 
)
RemixLayer* remix_sound_get_layer ( RemixEnv *  env,
RemixSound *  sound 
)
RemixSound* remix_sound_get_next ( RemixEnv *  env,
RemixSound *  sound 
)
RemixSound* remix_sound_get_prev ( RemixEnv *  env,
RemixSound *  sound 
)
RemixBase* remix_sound_get_rate_envelope ( RemixEnv *  env,
RemixSound *  sound 
)
RemixBase* remix_sound_get_source ( RemixEnv *  env,
RemixSound *  sound 
)
RemixTime remix_sound_get_start_time ( RemixEnv *  env,
RemixSound *  sound 
)
RemixTrack* remix_sound_get_track ( RemixEnv *  env,
RemixSound *  sound 
)
RemixTime remix_sound_move ( RemixEnv *  env,
RemixSound *  sound,
RemixTime  time 
)
RemixSound* remix_sound_new ( RemixEnv *  env,
RemixBase *  source,
RemixLayer *  layer,
RemixTime  start_time,
RemixTime  duration 
)
RemixBase* remix_sound_set_blend_envelope ( RemixEnv *  env,
RemixSound *  sound,
RemixBase *  blend_envelope 
)
RemixTime remix_sound_set_duration ( RemixEnv *  env,
RemixSound *  sound,
RemixTime  time 
)
RemixBase* remix_sound_set_gain_envelope ( RemixEnv *  env,
RemixSound *  sound,
RemixBase *  gain_envelope 
)
RemixBase* remix_sound_set_rate_envelope ( RemixEnv *  env,
RemixSound *  sound,
RemixBase *  rate_envelope 
)
RemixBase* remix_sound_set_source ( RemixEnv *  env,
RemixSound *  sound,
RemixBase *  source 
)
RemixTime remix_sound_set_start_time ( RemixEnv *  env,
RemixSound *  sound,
RemixTime  time 
)
RemixDeck* remix_track_get_deck ( RemixEnv *  env,
RemixTrack *  track 
)
RemixPCM remix_track_get_gain ( RemixEnv *  env,
RemixTrack *  track 
)
RemixCount remix_track_get_mixlength ( RemixEnv *  env,
RemixTrack *  track 
)
RemixTrack* remix_track_new ( RemixEnv *  env,
RemixDeck *  deck 
)
RemixPCM remix_track_set_gain ( RemixEnv *  env,
RemixTrack *  track,
RemixPCM  gain 
)
RemixCount remix_track_set_mixlength ( RemixEnv *  env,
RemixTrack *  track,
RemixCount  mixlength 
)