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

RemixDeckremix_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)
RemixTrackremix_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)
RemixDeckremix_track_get_deck (RemixEnv *env, RemixTrack *track)
RemixLayerremix_layer_new_ontop (RemixEnv *env, RemixTrack *track, RemixTimeType timetype)
RemixLayerremix_layer_new_above (RemixEnv *env, RemixLayer *above, RemixTimeType timetype)
RemixLayerremix_layer_move_ontop (RemixEnv *env, RemixLayer *layer, RemixTrack *track)
RemixLayerremix_layer_move_above (RemixEnv *env, RemixLayer *layer, RemixLayer *above)
RemixLayerremix_layer_raise (RemixEnv *env, RemixLayer *layer)
RemixLayerremix_layer_lower (RemixEnv *env, RemixLayer *layer)
RemixTrackremix_layer_get_track (RemixEnv *env, RemixLayer *layer)
RemixDeckremix_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)
RemixSoundremix_layer_get_sound_before (RemixEnv *env, RemixLayer *layer, RemixTime time)
RemixSoundremix_layer_get_sound_at (RemixEnv *env, RemixLayer *layer, RemixTime time)
RemixSoundremix_layer_get_sound_after (RemixEnv *env, RemixLayer *layer, RemixTime time)
RemixLayerremix_layer_below (RemixEnv *env, RemixLayer *layer)
RemixLayerremix_layer_above (RemixEnv *env, RemixLayer *layer)
RemixSoundremix_sound_new (RemixEnv *env, RemixBase *source, RemixLayer *layer, RemixTime start_time, RemixTime duration)
RemixBaseremix_sound_set_source (RemixEnv *env, RemixSound *sound, RemixBase *source)
RemixBaseremix_sound_get_source (RemixEnv *env, RemixSound *sound)
RemixLayerremix_sound_get_layer (RemixEnv *env, RemixSound *sound)
RemixTrackremix_sound_get_track (RemixEnv *env, RemixSound *sound)
RemixDeckremix_sound_get_deck (RemixEnv *env, RemixSound *sound)
RemixTime remix_sound_move (RemixEnv *env, RemixSound *sound, RemixTime time)
RemixSoundremix_sound_get_prev (RemixEnv *env, RemixSound *sound)
RemixSoundremix_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)
RemixBaseremix_sound_set_rate_envelope (RemixEnv *env, RemixSound *sound, RemixBase *rate_envelope)
RemixBaseremix_sound_get_rate_envelope (RemixEnv *env, RemixSound *sound)
RemixBaseremix_sound_set_gain_envelope (RemixEnv *env, RemixSound *sound, RemixBase *gain_envelope)
RemixBaseremix_sound_get_gain_envelope (RemixEnv *env, RemixSound *sound)
RemixBaseremix_sound_set_blend_envelope (RemixEnv *env, RemixSound *sound, RemixBase *blend_envelope)
RemixBaseremix_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 
)