static BtValueGroup * get_mono_value_group (void) { machine = BT_MACHINE (bt_source_machine_new (song, "id", "buzztrax-test-mono-source", 0, NULL)); pattern = bt_pattern_new (song, "pattern-name", 4L, machine); return bt_pattern_get_global_group (pattern); }
/* * change voices and verify that voices in machine and patetrn are in sync */ static void test_bt_machine_change_voices (BT_TEST_ARGS) { BT_TEST_START; GST_INFO ("-- arrange --"); BtMachine *machine = BT_MACHINE (bt_source_machine_new (song, "gen", "buzztrax-test-poly-source", 1L, NULL)); BtPattern *p1 = bt_pattern_new (song, "pattern-name1", 8L, machine); BtPattern *p2 = bt_pattern_new (song, "pattern-name2", 8L, machine); GST_INFO ("-- act --"); g_object_set (machine, "voices", 2, NULL); GST_INFO ("-- assert --"); ck_assert_gobject_gulong_eq (p1, "voices", 2); ck_assert_gobject_gulong_eq (p2, "voices", 2); GST_INFO ("-- cleanup --"); g_object_unref (p1); g_object_unref (p2); BT_TEST_END; }
/* add pattern */ static void test_bt_machine_add_pattern (BT_TEST_ARGS) { BT_TEST_START; GST_INFO ("-- arrange --"); BtMachine *machine = BT_MACHINE (bt_source_machine_new (song, "gen", "buzztrax-test-poly-source", 1L, NULL)); GST_INFO ("-- act --"); BtPattern *pattern = bt_pattern_new (song, "pattern-name", 8L, machine); GST_INFO ("-- assert --"); fail_unless (bt_machine_has_patterns (machine), NULL); GST_INFO ("-- cleanup --"); g_object_unref (pattern); BT_TEST_END; }
static void test_bt_machine_next_pattern_name (BT_TEST_ARGS) { BT_TEST_START; GST_INFO ("-- arrange --"); BtMachine *machine = BT_MACHINE (bt_source_machine_new (song, "gen", "buzztrax-test-poly-source", 1L, NULL)); BtPattern *pattern = bt_pattern_new (song, "00", 8L, machine); GST_INFO ("-- act --"); gchar *pattern_name = bt_machine_get_unique_pattern_name (machine); GST_INFO ("-- assert --"); ck_assert_str_eq (pattern_name, "01"); GST_INFO ("-- cleanup --"); g_free (pattern_name); g_object_unref (pattern); BT_TEST_END; }
static void make_new_song (gint wave) { BtSequence *sequence = (BtSequence *) check_gobject_get_object_property (song, "sequence"); BtMachine *sink = BT_MACHINE (bt_sink_machine_new (song, "master", NULL)); BtMachine *gen = BT_MACHINE (bt_source_machine_new (song, "gen", "audiotestsrc", 0L, NULL)); BtParameterGroup *pg = bt_machine_get_global_param_group (gen); bt_wire_new (song, gen, sink, NULL); BtPattern *pattern = bt_pattern_new (song, "pattern-name", 8L, gen); GstElement *element = (GstElement *) check_gobject_get_object_property (gen, "machine"); BtSongInfo *song_info = (BtSongInfo *) check_gobject_get_object_property (song, "song-info"); gulong bpm = check_gobject_get_ulong_property (song_info, "bpm"); gulong tpb = check_gobject_get_ulong_property (song_info, "tpb"); // figure a good block size for the current tempo gint samples_per_buffer = (44100.0 * 60.0) / (bpm * tpb); g_object_set (sequence, "length", 4L, "loop", FALSE, NULL); bt_sequence_add_track (sequence, gen, -1); bt_sequence_set_pattern (sequence, 0, 0, (BtCmdPattern *) pattern); g_object_set (element, "wave", wave, "volume", 1.0, "samplesperbuffer", samples_per_buffer, NULL); bt_parameter_group_set_param_default (pg, bt_parameter_group_get_param_index (pg, "wave")); bt_parameter_group_set_param_default (pg, bt_parameter_group_get_param_index (pg, "volume")); gst_object_unref (element); g_object_unref (song_info); g_object_unref (pattern); g_object_unref (sequence); GST_INFO (" song created"); }