int main (int argc, char **argv) { if (argc < 3) { fprintf(stderr, "Usage: %s FILE_1 FILE_2\n", argv[0]); return EXIT_FAILURE; } char const * const filename1 = argv[1]; char const * const filename2 = argv[2]; struct bl_song song1; struct bl_song song2; bl_initialize_song(&song1); bl_initialize_song(&song2); float distance = bl_distance_file(filename1, filename2, &song1, &song2); float similarity = bl_cosine_similarity(song1.force_vector, song2.force_vector); bl_free_song(&song1); bl_free_song(&song2); printf("Distance between %s and %s is: %f\n", filename1, filename2, distance); printf("Similarity between %s and %s is: %f\n", filename1, filename2, similarity); return EXIT_SUCCESS; }
int main (int argc, char **argv) { if (argc < 2) { fprintf(stderr, "Usage: %s FILE\n", argv[0]); return EXIT_FAILURE; } char const * const filename = argv[1]; struct bl_song song; bl_initialize_song(&song); if(bl_analyze(filename, &song) != BL_UNEXPECTED) { char calm_or_loud[10] = ""; if (BL_CALM == song.calm_or_loud) { strcpy(calm_or_loud, "Calm"); } else if(BL_LOUD == song.calm_or_loud) { strcpy(calm_or_loud, "Loud"); } else { strcpy(calm_or_loud, "Unknown"); } // Debug output printf("Analysis for music %s:\n", filename); printf("Force: %f\n", song.force); printf("Force vector: (%f, %f, %f, %f, %f, %f)\n", song.force_vector.tempo1, song.force_vector.tempo2, song.force_vector.tempo3, song.force_vector.amplitude, song.force_vector.frequency, song.force_vector.attack); printf("Channels: %d\n", song.channels); printf("Number of samples: %d\n", song.nSamples); printf("Sample rate: %d\n", song.sample_rate); printf("Bitrate: %d\n", song.bitrate); printf("Number of bytes per sample: %d\n", song.nb_bytes_per_sample); printf("Calm or loud: %s\n", calm_or_loud); printf("Duration: %" PRId64 "\n", song.duration); printf("Artist: %s\n", song.artist); printf("Title: %s\n", song.title); printf("Album: %s\n", song.album); printf("Track number: %s\n", song.tracknumber); printf("genre: %s\n", song.genre); bl_free_song(&song); return EXIT_SUCCESS; } else { fprintf(stderr, "Couldn't analyze song\n"); bl_free_song(&song); return EXIT_FAILURE; } }