⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 app.c

📁 Genetic Programing of music
💻 C
📖 第 1 页 / 共 2 页
字号:
/*  lil-gp Genetic Programming System, version 1.0, 11 July 1995 *  Copyright (C) 1995  Michigan State University *  *  This program is free software; you can redistribute it and/or modify *  it under the terms of version 2 of the GNU General Public License as *  published by the Free Software Foundation. *  *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. *  *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *   *  Douglas Zongker       (zongker@isl.cps.msu.edu) *  Dr. Bill Punch        (punch@isl.cps.msu.edu) * *  Computer Science Department *  A-714 Wells Hall *  Michigan State University *  East Lansing, Michigan  48824 *  USA *   */#include <stdio.h>#include <math.h>#include "xm_lib.h"#include "forms.h"#include "gp-form.h"#include <lilgp.h>function sets[4][30] ={  /*** RPB ***/  {     /*** Functions ***/    { f_play_two, NULL, NULL, 2, "play-two", FUNC_DATA, -1, 0 },    { f_add_space, NULL, NULL, 1, "add-space", FUNC_DATA, -1, 0 },    { f_play_twice, NULL, NULL, 1, "play-twice", FUNC_DATA, -1, 0 },    { f_shift_up, NULL, NULL, 1, "shift-up", FUNC_DATA, -1, 0 },    { f_shift_down, NULL, NULL, 1, "shift-down", FUNC_DATA, -1, 0 },    { f_mirror, NULL, NULL, 1, "mirror", FUNC_DATA, -1, 0 },    { f_play_and_mirror, NULL, NULL, 1, "play-and-mirror", FUNC_DATA, -1, 0 },/*  { NULL, NULL, NULL, -1, "ADF0", EVAL_DATA, 1, 0 },    { NULL, NULL, NULL, -1, "ADF1", EVAL_DATA, 2, 0 },    { NULL, NULL, NULL, -1, "ADF2", EVAL_DATA, 3, 0 },*/    /*** Terminals ***/    { f_C_4, NULL, NULL, 0, "C-4", TERM_NORM, -1, 0 },    { f_D_4, NULL, NULL, 0, "D-4", TERM_NORM, -1, 0 },    { f_E_4, NULL, NULL, 0, "E-4", TERM_NORM, -1, 0 },    { f_F_4, NULL, NULL, 0, "F-4", TERM_NORM, -1, 0 },    { f_G_4, NULL, NULL, 0, "G-4", TERM_NORM, -1, 0 },    { f_A_5, NULL, NULL, 0, "A-5", TERM_NORM, -1, 0 },    { f_B_5, NULL, NULL, 0, "B-5", TERM_NORM, -1, 0 },    { f_RST, NULL, NULL, 0, "RST", TERM_NORM, -1, 0 }#ifndef C_MAJOR    ,{ f_CS4, NULL, NULL, 0, "C#4", TERM_NORM, -1, 0 },    { f_DS4, NULL, NULL, 0, "D#4", TERM_NORM, -1, 0 },    { f_FS4, NULL, NULL, 0, "F#4", TERM_NORM, -1, 0 },    { f_GS4, NULL, NULL, 0, "G#4", TERM_NORM, -1, 0 },    { f_AS5, NULL, NULL, 0, "A#5", TERM_NORM, -1, 0 }#endif #ifdef CHORDS    , { f_C_Chord, NULL, NULL, 0, "C-Chord", TERM_NORM, -1, 0 },    { f_D_Chord, NULL, NULL, 0, "D-Chord", TERM_NORM, -1, 0 },    { f_E_Chord, NULL, NULL, 0, "E-Chord", TERM_NORM, -1, 0 },    { f_F_Chord, NULL, NULL, 0, "F-Chord", TERM_NORM, -1, 0 },    { f_G_Chord, NULL, NULL, 0, "G-Chord", TERM_NORM, -1, 0 },    { f_A_Chord, NULL, NULL, 0, "A-Chord", TERM_NORM, -1, 0 },    { f_B_Chord, NULL, NULL, 0, "B-Chord", TERM_NORM, -1, 0 }#endif  },  /*** ADF0 ***/  {     /*** Functions ***/    { f_play_two, NULL, NULL, 2, "play-two", FUNC_DATA, -1, 0 },    { f_add_space, NULL, NULL, 1, "add-space", FUNC_DATA, -1, 0 },    { f_play_twice, NULL, NULL, 1, "play-twice", FUNC_DATA, -1, 0 },    { f_shift_up, NULL, NULL, 1, "shift-up", FUNC_DATA, -1, 0 },    { f_shift_down, NULL, NULL, 1, "shift-down", FUNC_DATA, -1, 0 },    { f_mirror, NULL, NULL, 1, "mirror", FUNC_DATA, -1, 0 },    { f_play_and_mirror, NULL, NULL, 1, "play-and-mirror", FUNC_DATA, -1, 0 },        /*** Terminals ***/    { f_C_4, NULL, NULL, 0, "C-4", TERM_NORM, -1, 0 },    { f_D_4, NULL, NULL, 0, "D-4", TERM_NORM, -1, 0 },    { f_E_4, NULL, NULL, 0, "E-4", TERM_NORM, -1, 0 },    { f_F_4, NULL, NULL, 0, "F-4", TERM_NORM, -1, 0 },    { f_G_4, NULL, NULL, 0, "G-4", TERM_NORM, -1, 0 },    { f_A_5, NULL, NULL, 0, "A-5", TERM_NORM, -1, 0 },    { f_B_5, NULL, NULL, 0, "B-5", TERM_NORM, -1, 0 },    { f_RST, NULL, NULL, 0, "RST", TERM_NORM, -1, 0 }#ifndef C_MAJOR    ,{ f_CS4, NULL, NULL, 0, "C#4", TERM_NORM, -1, 0 },    { f_DS4, NULL, NULL, 0, "D#4", TERM_NORM, -1, 0 },    { f_FS4, NULL, NULL, 0, "F#4", TERM_NORM, -1, 0 },    { f_GS4, NULL, NULL, 0, "G#4", TERM_NORM, -1, 0 },    { f_AS5, NULL, NULL, 0, "A#5", TERM_NORM, -1, 0 }#endif#ifdef CHORDS    , { f_C_Chord, NULL, NULL, 0, "C-Chord", TERM_NORM, -1, 0 },    { f_D_Chord, NULL, NULL, 0, "D-Chord", TERM_NORM, -1, 0 },    { f_E_Chord, NULL, NULL, 0, "E-Chord", TERM_NORM, -1, 0 },    { f_F_Chord, NULL, NULL, 0, "F-Chord", TERM_NORM, -1, 0 },    { f_G_Chord, NULL, NULL, 0, "G-Chord", TERM_NORM, -1, 0 },    { f_A_Chord, NULL, NULL, 0, "A-Chord", TERM_NORM, -1, 0 },    { f_B_Chord, NULL, NULL, 0, "B-Chord", TERM_NORM, -1, 0 }#endif  },  /*** ADF1 ***/  {    /*** Functions ***/    { f_play_two, NULL, NULL, 2, "play-two", FUNC_DATA, -1, 0 },    { f_add_space, NULL, NULL, 1, "add-space", FUNC_DATA, -1, 0 },    { f_play_twice, NULL, NULL, 1, "play-twice", FUNC_DATA, -1, 0 },    { f_shift_up, NULL, NULL, 1, "shift-up", FUNC_DATA, -1, 0 },    { f_shift_down, NULL, NULL, 1, "shift-down", FUNC_DATA, -1, 0 },    { f_mirror, NULL, NULL, 1, "mirror", FUNC_DATA, -1, 0 },    { f_play_and_mirror, NULL, NULL, 1, "play-and-mirror", FUNC_DATA, -1, 0 },    /*** Terminals ***/      { f_C_4, NULL, NULL, 0, "C-4", TERM_NORM, -1, 0 },    { f_D_4, NULL, NULL, 0, "D-4", TERM_NORM, -1, 0 },    { f_E_4, NULL, NULL, 0, "E-4", TERM_NORM, -1, 0 },    { f_F_4, NULL, NULL, 0, "F-4", TERM_NORM, -1, 0 },    { f_G_4, NULL, NULL, 0, "G-4", TERM_NORM, -1, 0 },    { f_A_5, NULL, NULL, 0, "A-5", TERM_NORM, -1, 0 },    { f_B_5, NULL, NULL, 0, "B-5", TERM_NORM, -1, 0 },    { f_RST, NULL, NULL, 0, "RST", TERM_NORM, -1, 0 }#ifndef C_MAJOR    ,{ f_CS4, NULL, NULL, 0, "C#4", TERM_NORM, -1, 0 },    { f_DS4, NULL, NULL, 0, "D#4", TERM_NORM, -1, 0 },    { f_FS4, NULL, NULL, 0, "F#4", TERM_NORM, -1, 0 },    { f_GS4, NULL, NULL, 0, "G#4", TERM_NORM, -1, 0 },    { f_AS5, NULL, NULL, 0, "A#5", TERM_NORM, -1, 0 }#endif #ifdef CHORDS    , { f_C_Chord, NULL, NULL, 0, "C-Chord", TERM_NORM, -1, 0 },    { f_D_Chord, NULL, NULL, 0, "D-Chord", TERM_NORM, -1, 0 },    { f_E_Chord, NULL, NULL, 0, "E-Chord", TERM_NORM, -1, 0 },    { f_F_Chord, NULL, NULL, 0, "F-Chord", TERM_NORM, -1, 0 },    { f_G_Chord, NULL, NULL, 0, "G-Chord", TERM_NORM, -1, 0 },    { f_A_Chord, NULL, NULL, 0, "A-Chord", TERM_NORM, -1, 0 },    { f_B_Chord, NULL, NULL, 0, "B-Chord", TERM_NORM, -1, 0 }#endif      },  /*** ADF2 ***/  {    /*** Functions ***/    { f_play_two, NULL, NULL, 2, "play-two", FUNC_DATA, -1, 0 },    { f_add_space, NULL, NULL, 1, "add-space", FUNC_DATA, -1, 0 },    { f_play_twice, NULL, NULL, 1, "play-twice", FUNC_DATA, -1, 0 },    { f_shift_up, NULL, NULL, 1, "shift-up", FUNC_DATA, -1, 0 },    { f_shift_down, NULL, NULL, 1, "shift-down", FUNC_DATA, -1, 0 },    { f_mirror, NULL, NULL, 1, "mirror", FUNC_DATA, -1, 0 },    { f_play_and_mirror, NULL, NULL, 1, "play-and-mirror", FUNC_DATA, -1, 0 },    { NULL, NULL, NULL, -1, "ADF0", EVAL_DATA, 1, 0 },    { NULL, NULL, NULL, -1, "ADF1", EVAL_DATA, 2, 0 },        /*** Terminals ***/    { f_C_4, NULL, NULL, 0, "C-4", TERM_NORM, -1, 0 },    { f_D_4, NULL, NULL, 0, "D-4", TERM_NORM, -1, 0 },    { f_E_4, NULL, NULL, 0, "E-4", TERM_NORM, -1, 0 },    { f_F_4, NULL, NULL, 0, "F-4", TERM_NORM, -1, 0 },    { f_G_4, NULL, NULL, 0, "G-4", TERM_NORM, -1, 0 },    { f_A_5, NULL, NULL, 0, "A-5", TERM_NORM, -1, 0 },    { f_B_5, NULL, NULL, 0, "B-5", TERM_NORM, -1, 0 },    { f_RST, NULL, NULL, 0, "RST", TERM_NORM, -1, 0 }#ifndef C_MAJOR    ,{ f_CS4, NULL, NULL, 0, "C#4", TERM_NORM, -1, 0 },    { f_DS4, NULL, NULL, 0, "D#4", TERM_NORM, -1, 0 },    { f_FS4, NULL, NULL, 0, "F#4", TERM_NORM, -1, 0 },    { f_GS4, NULL, NULL, 0, "G#4", TERM_NORM, -1, 0 },    { f_AS5, NULL, NULL, 0, "A#5", TERM_NORM, -1, 0 }#endif #ifdef CHORDS    , { f_C_Chord, NULL, NULL, 0, "C-Chord", TERM_NORM, -1, 0 },    { f_D_Chord, NULL, NULL, 0, "D-Chord", TERM_NORM, -1, 0 },    { f_E_Chord, NULL, NULL, 0, "E-Chord", TERM_NORM, -1, 0 },    { f_F_Chord, NULL, NULL, 0, "F-Chord", TERM_NORM, -1, 0 },    { f_G_Chord, NULL, NULL, 0, "G-Chord", TERM_NORM, -1, 0 },    { f_A_Chord, NULL, NULL, 0, "A-Chord", TERM_NORM, -1, 0 },    { f_B_Chord, NULL, NULL, 0, "B-Chord", TERM_NORM, -1, 0 }#endif      }    };/* app_build_function_sets() * * this function should build data structures describing the function * set(s) and the trees of the individual.  it should then pass these * structures to function_sets_init(), destroy its data structures, * and return the (integer) return value from function_sets_init(). * * see the manual for more information on constructing this function. */int app_build_function_sets ( void ){     function_set *fset;     int *tree_map;     char **tree_name;     int ret;     int num_function_sets = 1;     int num_trees = 1;     fset = (function_set *)MALLOC ( num_function_sets *                                    sizeof ( function_set ) );     fset[0].size = 20; #ifdef C_MAJOR     fset[0].size -= 5;#endif#ifdef CHORDS     fset[0].size += 7;#endif          fset[0].cset = sets[0];     /*     fset[1].size = 20;      fset[1].cset = sets[1];     fset[2].size = 21;      fset[2].cset = sets[2];     fset[3].size = 22;      fset[3].cset = sets[3];*/          tree_map = (int *)MALLOC ( num_trees * sizeof ( int ) );     /* specify, for each tree, what function set to use. */     tree_map[0] = 0;  /*   tree_map[1] = 1;     tree_map[2] = 2;     tree_map[3] = 3;*/     tree_name = (char **)MALLOC ( num_trees * sizeof ( char * ) );     /* give each tree a name. */     tree_name[0] = "MAIN";/*     tree_name[1] = "ADF0";     tree_name[2] = "ADF1";     tree_name[3] = "ADF2";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -