- gave the Timidity error functions better names and hooked up the WildMidi version.

This commit is contained in:
Christoph Oelckers 2019-09-26 17:22:54 +02:00
parent 021e548db7
commit 159b98ea88
21 changed files with 506 additions and 494 deletions

View file

@ -186,30 +186,30 @@ Instrument *Renderer::load_instrument(const char *name, int percussion,
if (noluck)
{
cmsg(CMSG_ERROR, VERB_DEBUG, "Instrument `%s' can't be found.\n", name);
printMessage(CMSG_ERROR, VERB_DEBUG, "Instrument `%s' can't be found.\n", name);
return 0;
}
cmsg(CMSG_INFO, VERB_NOISY, "Loading instrument %s\n", name);
printMessage(CMSG_INFO, VERB_NOISY, "Loading instrument %s\n", name);
/* Read some headers and do cursory sanity checks. */
if (sizeof(header) != fp->read(&header, sizeof(header)))
{
failread:
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: Error reading instrument.\n", name);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: Error reading instrument.\n", name);
fp->close();
return 0;
}
if (strncmp(header.Header, GF1_HEADER_TEXT, HEADER_SIZE - 4) != 0)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: Not an instrument.\n", name);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: Not an instrument.\n", name);
fp->close();
return 0;
}
if (strcmp(header.Header + 8, "110") < 0)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: Is an old and unsupported patch version.\n", name);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: Is an old and unsupported patch version.\n", name);
fp->close();
return 0;
}
@ -225,14 +225,14 @@ failread:
if (header.Instruments != 1 && header.Instruments != 0) /* instruments. To some patch makers, 0 means 1 */
{
cmsg(CMSG_ERROR, VERB_NORMAL, "Can't handle patches with %d instruments.\n", header.Instruments);
printMessage(CMSG_ERROR, VERB_NORMAL, "Can't handle patches with %d instruments.\n", header.Instruments);
fp->close();
return 0;
}
if (idata.Layers != 1 && idata.Layers != 0) /* layers. What's a layer? */
{
cmsg(CMSG_ERROR, VERB_NORMAL, "Can't handle instruments with %d layers.\n", idata.Layers);
printMessage(CMSG_ERROR, VERB_NORMAL, "Can't handle instruments with %d layers.\n", idata.Layers);
fp->close();
return 0;
}
@ -244,7 +244,7 @@ failread:
if (layer_data.Samples == 0)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "Instrument has 0 samples.\n");
printMessage(CMSG_ERROR, VERB_NORMAL, "Instrument has 0 samples.\n");
fp->close();
return 0;
}
@ -258,7 +258,7 @@ failread:
if (sizeof(patch_data) != fp->read(&patch_data, sizeof(patch_data)))
{
fail:
cmsg(CMSG_ERROR, VERB_NORMAL, "Error reading sample %d.\n", i);
printMessage(CMSG_ERROR, VERB_NORMAL, "Error reading sample %d.\n", i);
delete ip;
fp->close();
return 0;
@ -294,14 +294,14 @@ fail:
sp->tremolo_sweep_increment = 0;
sp->tremolo_phase_increment = 0;
sp->tremolo_depth = 0;
cmsg(CMSG_INFO, VERB_DEBUG, " * no tremolo\n");
printMessage(CMSG_INFO, VERB_DEBUG, " * no tremolo\n");
}
else
{
sp->tremolo_sweep_increment = convert_tremolo_sweep(patch_data.TremoloSweep);
sp->tremolo_phase_increment = convert_tremolo_rate(patch_data.TremoloRate);
sp->tremolo_depth = patch_data.TremoloDepth;
cmsg(CMSG_INFO, VERB_DEBUG, " * tremolo: sweep %d, phase %d, depth %d\n",
printMessage(CMSG_INFO, VERB_DEBUG, " * tremolo: sweep %d, phase %d, depth %d\n",
sp->tremolo_sweep_increment, sp->tremolo_phase_increment, sp->tremolo_depth);
}
@ -311,14 +311,14 @@ fail:
sp->vibrato_sweep_increment = 0;
sp->vibrato_control_ratio = 0;
sp->vibrato_depth = 0;
cmsg(CMSG_INFO, VERB_DEBUG, " * no vibrato\n");
printMessage(CMSG_INFO, VERB_DEBUG, " * no vibrato\n");
}
else
{
sp->vibrato_control_ratio = convert_vibrato_rate(patch_data.VibratoRate);
sp->vibrato_sweep_increment = convert_vibrato_sweep(patch_data.VibratoSweep, sp->vibrato_control_ratio);
sp->vibrato_depth = patch_data.VibratoDepth;
cmsg(CMSG_INFO, VERB_DEBUG, " * vibrato: sweep %d, ctl %d, depth %d\n",
printMessage(CMSG_INFO, VERB_DEBUG, " * vibrato: sweep %d, ctl %d, depth %d\n",
sp->vibrato_sweep_increment, sp->vibrato_control_ratio, sp->vibrato_depth);
}
@ -344,7 +344,7 @@ fail:
}
if (sp->scale_factor != 1024)
{
cmsg(CMSG_INFO, VERB_DEBUG, " * Scale: note %d, factor %d\n",
printMessage(CMSG_INFO, VERB_DEBUG, " * Scale: note %d, factor %d\n",
sp->scale_note, sp->scale_factor);
}
}
@ -375,7 +375,7 @@ fail:
if ((strip_loop == 1) &&
(sp->modes & (PATCH_SUSTAIN | PATCH_LOOPEN | PATCH_BIDIR | PATCH_BACKWARD)))
{
cmsg(CMSG_INFO, VERB_DEBUG, " - Removing loop and/or sustain\n");
printMessage(CMSG_INFO, VERB_DEBUG, " - Removing loop and/or sustain\n");
if (j == DESC_SIZE)
{
sp->modes &= ~(PATCH_SUSTAIN | PATCH_LOOPEN | PATCH_BIDIR | PATCH_BACKWARD);
@ -384,7 +384,7 @@ fail:
if (strip_envelope == 1)
{
cmsg(CMSG_INFO, VERB_DEBUG, " - Removing envelope\n");
printMessage(CMSG_INFO, VERB_DEBUG, " - Removing envelope\n");
/* [RH] The envelope isn't really removed, but this is the way the standard
* Gravis patches get that effect: All rates at maximum, and all offsets at
* a constant level.
@ -434,7 +434,7 @@ fail:
/* The GUS apparently plays reverse loops by reversing the
whole sample. We do the same because the GUS does not SUCK. */
cmsg(CMSG_WARNING, VERB_NORMAL, "Reverse loop in %s\n", name);
printMessage(CMSG_WARNING, VERB_NORMAL, "Reverse loop in %s\n", name);
reverse_data((sample_t *)sp->data, 0, sp->data_length);
sp->data[sp->data_length] = sp->data[sp->data_length - 1];
@ -465,7 +465,7 @@ fail:
if (strip_tail == 1)
{
/* Let's not really, just say we did. */
cmsg(CMSG_INFO, VERB_DEBUG, " - Stripping tail\n");
printMessage(CMSG_INFO, VERB_DEBUG, " - Stripping tail\n");
sp->data_length = sp->loop_end;
}
}
@ -578,7 +578,7 @@ int Renderer::fill_bank(int dr, int b)
ToneBank *bank = ((dr) ? instruments->drumset[b] : instruments->tonebank[b]);
if (bank == NULL)
{
cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"Tried to load instruments in non-existent %s %d\n",
(dr) ? "drumset" : "tone bank", b);
return 0;
@ -621,14 +621,14 @@ int Renderer::fill_bank(int dr, int b)
{
if (bank->tone[i].name.length() == 0)
{
cmsg(CMSG_WARNING, (b != 0) ? VERB_VERBOSE : VERB_DEBUG,
printMessage(CMSG_WARNING, (b != 0) ? VERB_VERBOSE : VERB_DEBUG,
"No instrument mapped to %s %d, program %d%s\n",
(dr) ? "drum set" : "tone bank", b, i,
(b != 0) ? "" : " - this instrument will not be heard");
}
else
{
cmsg(CMSG_ERROR, VERB_DEBUG,
printMessage(CMSG_ERROR, VERB_DEBUG,
"Couldn't load instrument %s (%s %d, program %d)\n",
bank->tone[i].name.c_str(),
(dr) ? "drum set" : "tone bank", b, i);

View file

@ -745,15 +745,15 @@ SFFile *ReadSF2(const char *filename, timidity_file *f)
}
catch (CIOErr)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "Error reading %s: %s\n", filename, strerror(errno));
printMessage(CMSG_ERROR, VERB_NORMAL, "Error reading %s: %s\n", filename, strerror(errno));
}
catch (CBadForm)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s is corrupted.\n", filename);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s is corrupted.\n", filename);
}
catch (CBadVer)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s is not a SoundFont version 2 file.\n", filename);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s is not a SoundFont version 2 file.\n", filename);
}
if (sf2 != NULL)
{

View file

@ -378,7 +378,7 @@ void Renderer::start_note(int chan, int note, int vel)
}
if (ip->samples != 1 && ip->sample->type == INST_GUS)
{
cmsg(CMSG_WARNING, VERB_VERBOSE,
printMessage(CMSG_WARNING, VERB_VERBOSE,
"Strange: percussion instrument with %d samples!", ip->samples);
}
}

View file

@ -187,13 +187,13 @@ int Instruments::read_config_file(const char *name)
if (rcf_count > 50)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "Timidity: Probable source loop in configuration files\n");
printMessage(CMSG_ERROR, VERB_NORMAL, "Timidity: Probable source loop in configuration files\n");
return (-1);
}
auto fp = sfreader->open_timidity_file(name);
if (!fp)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "Timidity: Unable to open config file\n");
printMessage(CMSG_ERROR, VERB_NORMAL, "Timidity: Unable to open config file\n");
return -1;
}
@ -258,7 +258,7 @@ int Instruments::read_config_file(const char *name)
* before TiMidity kills the note. This may be useful to implement
* later, but I don't see any urgent need for it.
*/
//cmsg(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"timeout\" in TiMidity config.\n");
//printMessage(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"timeout\" in TiMidity config.\n");
}
else if (!strcmp(w[0], "copydrumset") /* "copydrumset" drumset */
|| !strcmp(w[0], "copybank")) /* "copybank" bank */
@ -268,7 +268,7 @@ int Instruments::read_config_file(const char *name)
* the current drumset or bank. May be useful later, but not a
* high priority.
*/
//cmsg(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"%s\" in TiMidity config.\n", w[0]);
//printMessage(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"%s\" in TiMidity config.\n", w[0]);
}
else if (!strcmp(w[0], "undef")) /* "undef" progno */
{
@ -276,7 +276,7 @@ int Instruments::read_config_file(const char *name)
* Undefines the tone "progno" of the current tone bank (or
* drum set?). Not a high priority.
*/
//cmsg(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"undef\" in TiMidity config.\n");
//printMessage(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"undef\" in TiMidity config.\n");
}
else if (!strcmp(w[0], "altassign")) /* "altassign" prog1 prog2 ... */
{
@ -284,7 +284,7 @@ int Instruments::read_config_file(const char *name)
* Sets the alternate assign for drum set. Whatever that's
* supposed to mean.
*/
//cmsg(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"altassign\" in TiMidity config.\n");
//printMessage(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"altassign\" in TiMidity config.\n");
}
else if (!strcmp(w[0], "soundfont"))
{
@ -295,7 +295,7 @@ int Instruments::read_config_file(const char *name)
*/
if (words < 2)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No soundfont given\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No soundfont given\n", name, line);
return -2;
}
if (words > 2 && !strcmp(w[2], "remove"))
@ -310,7 +310,7 @@ int Instruments::read_config_file(const char *name)
{
if (!(cp = strchr(w[i], '=')))
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: bad soundfont option %s\n", name, line, w[i]);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: bad soundfont option %s\n", name, line, w[i]);
return -2;
}
}
@ -327,7 +327,7 @@ int Instruments::read_config_file(const char *name)
if (words < 3)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error\n", name, line);
return -2;
}
@ -343,7 +343,7 @@ int Instruments::read_config_file(const char *name)
}
else
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: font subcommand must be 'order' or 'exclude'\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: font subcommand must be 'order' or 'exclude'\n", name, line);
return -2;
}
if (i < words)
@ -377,7 +377,7 @@ int Instruments::read_config_file(const char *name)
* apparently it sets some sort of base offset for tone numbers.
* Why anyone would want to do this is beyond me.
*/
//cmsg(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"progbase\" in TiMidity config.\n");
//printMessage(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"progbase\" in TiMidity config.\n");
}
else if (!strcmp(w[0], "map")) /* "map" name set1 elem1 set2 elem2 */
{
@ -387,7 +387,7 @@ int Instruments::read_config_file(const char *name)
* documentation whatsoever for it, but it looks like it's used
* for remapping one instrument to another somehow.
*/
//cmsg(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"map\" in TiMidity config.\n");
//printMessage(CMSG_ERROR, VERB_NORMAL, "FIXME: Implement \"map\" in TiMidity config.\n");
}
/* Standard TiMidity config */
@ -396,7 +396,7 @@ int Instruments::read_config_file(const char *name)
{
if (words < 2)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No directory given\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No directory given\n", name, line);
return -2;
}
for (i = 1; i < words; i++)
@ -409,7 +409,7 @@ int Instruments::read_config_file(const char *name)
{
if (words < 2)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No file name given\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No file name given\n", name, line);
return -2;
}
for (i=1; i<words; i++)
@ -423,7 +423,7 @@ int Instruments::read_config_file(const char *name)
{
if (words != 2)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Must specify exactly one patch name\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Must specify exactly one patch name\n", name, line);
return -2;
}
def_instr_name = w[1];
@ -432,13 +432,13 @@ int Instruments::read_config_file(const char *name)
{
if (words < 2)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No drum set number given\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No drum set number given\n", name, line);
return -2;
}
i = atoi(w[1]);
if (i < 0 || i > 127)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Drum set must be between 0 and 127\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Drum set must be between 0 and 127\n", name, line);
return -2;
}
if (drumset[i] == NULL)
@ -451,13 +451,13 @@ int Instruments::read_config_file(const char *name)
{
if (words < 2)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No bank number given\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: No bank number given\n", name, line);
return -2;
}
i = atoi(w[1]);
if (i < 0 || i > 127)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Tone bank must be between 0 and 127\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Tone bank must be between 0 and 127\n", name, line);
return -2;
}
if (tonebank[i] == NULL)
@ -470,18 +470,18 @@ int Instruments::read_config_file(const char *name)
{
if ((words < 2) || (*w[0] < '0' || *w[0] > '9'))
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error\n", name, line);
return -2;
}
i = atoi(w[0]);
if (i < 0 || i > 127)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Program must be between 0 and 127\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Program must be between 0 and 127\n", name, line);
return -2;
}
if (bank == NULL)
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Must specify tone bank or drum set before assignment\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: Must specify tone bank or drum set before assignment\n", name, line);
return -2;
}
bank->tone[i].note = bank->tone[i].pan =
@ -515,7 +515,7 @@ int Instruments::read_config_file(const char *name)
{
if (!(cp=strchr(w[j], '=')))
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: bad patch option %s\n", name, line, w[j]);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: bad patch option %s\n", name, line, w[j]);
return -2;
}
*cp++ = 0;
@ -528,7 +528,7 @@ int Instruments::read_config_file(const char *name)
k = atoi(cp);
if ((k < 0 || k > 127) || (*cp < '0' || *cp > '9'))
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: note must be between 0 and 127\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: note must be between 0 and 127\n", name, line);
return -2;
}
bank->tone[i].note = k;
@ -546,7 +546,7 @@ int Instruments::read_config_file(const char *name)
if ((k < 0 || k > 127) ||
(k == 0 && *cp != '-' && (*cp < '0' || *cp > '9')))
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: panning must be left, right, "
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: panning must be left, right, "
"center, or between -100 and 100\n", name, line);
return -2;
}
@ -560,7 +560,7 @@ int Instruments::read_config_file(const char *name)
bank->tone[i].strip_loop = 0;
else
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: keep must be env or loop\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: keep must be env or loop\n", name, line);
return -2;
}
}
@ -574,13 +574,13 @@ int Instruments::read_config_file(const char *name)
bank->tone[i].strip_tail = 1;
else
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: strip must be env, loop, or tail\n", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: strip must be env, loop, or tail\n", name, line);
return -2;
}
}
else
{
cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: bad patch option %s\n", name, line, w[j]);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: bad patch option %s\n", name, line, w[j]);
return -2;
}
}
@ -821,7 +821,7 @@ static void default_cmsg(int type, int verbosity_level, const char* fmt, ...)
}
// Allow hosting applications to capture the messages and deal with them themselves.
void (*cmsg)(int type, int verbosity_level, const char* fmt, ...) = default_cmsg;
void (*printMessage)(int type, int verbosity_level, const char* fmt, ...) = default_cmsg;
}

View file

@ -48,7 +48,7 @@ enum
VERB_DEBUG
};
extern void (*cmsg)(int type, int verbosity_level, const char *fmt, ...);
extern void (*printMessage)(int type, int verbosity_level, const char *fmt, ...);
/*

View file

@ -177,6 +177,6 @@ void default_ctl_cmsg(int type, int verbosity_level, const char* fmt, ...)
}
// Allow hosting applications to capture the messages and deal with them themselves.
void (*ctl_cmsg)(int type, int verbosity_level, const char* fmt, ...) = default_ctl_cmsg;
void (*printMessage)(int type, int verbosity_level, const char* fmt, ...) = default_ctl_cmsg;
}

View file

@ -34,7 +34,7 @@ namespace TimidityPlus
#define MAXWORDS 130
#define CHECKERRLIMIT \
if(++errcnt >= 10) { \
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, \
printMessage(CMSG_ERROR, VERB_NORMAL, \
"Too many errors... Give up read %s", name); \
reuse_mblock(&varbuf); \
tf_close(tf); return 1; }
@ -192,7 +192,7 @@ static Quantity **config_parse_modulation(const char *name, int line, const char
if ((delim = strpbrk(strncpy(buf, p, sizeof buf - 1), ":,")) != NULL)
*delim = '\0';
if (*buf != '\0' && (err = string_to_quantity(buf, &mod_list[i][j], qtypes[mod_type * 3 + j])) != NULL) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: %s: parameter %d of item %d: %s (%s)",
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: %s: parameter %d of item %d: %s (%s)",
name, line, qtypestr[mod_type], j + 1, i + 1, err, buf);
free_ptr_list(mod_list, *num);
mod_list = NULL;
@ -257,7 +257,7 @@ int Instruments::set_gus_patchconf_opts(const char *name, int line, char *opts,
int k;
if (!(cp = strchr(opts, '='))) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: bad patch option %s", name, line, opts);
return 1;
}
@ -265,7 +265,7 @@ int Instruments::set_gus_patchconf_opts(const char *name, int line, char *opts,
if (!strcmp(opts, "amp")) {
k = atoi(cp);
if ((k < 0 || k > MAX_AMPLIFICATION) || (*cp < '0' || *cp > '9')) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: amplification must be between 0 and %d",
name, line, MAX_AMPLIFICATION);
return 1;
@ -275,7 +275,7 @@ int Instruments::set_gus_patchconf_opts(const char *name, int line, char *opts,
else if (!strcmp(opts, "note")) {
k = atoi(cp);
if ((k < 0 || k > 127) || (*cp < '0' || *cp > '9')) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: note must be between 0 and 127",
name, line);
return 1;
@ -294,7 +294,7 @@ int Instruments::set_gus_patchconf_opts(const char *name, int line, char *opts,
k = ((atoi(cp) + 100) * 100) / 157;
if ((k < 0 || k > 127)
|| (k == 0 && *cp != '-' && (*cp < '0' || *cp > '9'))) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: panning must be left, right, "
"center, or between -100 and 100",
name, line);
@ -315,7 +315,7 @@ int Instruments::set_gus_patchconf_opts(const char *name, int line, char *opts,
else if (!strcmp(cp, "loop"))
tone->strip_loop = 0;
else {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: keep must be env or loop", name, line);
return 1;
}
@ -328,7 +328,7 @@ int Instruments::set_gus_patchconf_opts(const char *name, int line, char *opts,
else if (!strcmp(cp, "tail"))
tone->strip_tail = 1;
else {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: strip must be env, loop, or tail",
name, line);
return 1;
@ -391,7 +391,7 @@ int Instruments::set_gus_patchconf_opts(const char *name, int line, char *opts,
else if (!strcmp(opts, "qvelf")) /* resonance velocity-follow */
tone->vel_to_resonance = atoi(cp);
else {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: bad patch option %s",
name, line, opts);
return 1;
@ -429,7 +429,7 @@ int Instruments::set_gus_patchconf(const char *name, int line, ToneBankElement *
if (opts[0] == NULL || opts[1] == NULL || opts[2] == NULL ||
(atoi(opts[1]) == 128 && opts[3] == NULL))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Syntax error", name, line);
return 1;
}
@ -465,7 +465,7 @@ int Instruments::set_gus_patchconf(const char *name, int line, ToneBankElement *
if (opts[0] == NULL)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Syntax error", name, line);
return 1;
}
@ -502,12 +502,12 @@ int Instruments::set_patchconf(const char *name, int line, ToneBank *bank, char
if (i < 0 || i > 127)
{
if (dr)
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Drum number must be between "
"0 and 127",
name, line);
else
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Program must be between "
"%d and %d",
name, line, progbase, 127 + progbase);
@ -515,7 +515,7 @@ int Instruments::set_patchconf(const char *name, int line, ToneBank *bank, char
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
return 1;
@ -628,7 +628,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
if (rcf_count > 50)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"Probable source loop in configuration files");
return READ_CONFIG_RECURSION;
}
@ -699,7 +699,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (!isspace(terminator[1]) && terminator[1] != '\0')
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: there must be at least one whitespace between "
"string terminator (%c) and the next parameter", name, line, tmp[i]);
CHECKERRLIMIT;
@ -734,14 +734,14 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -750,7 +750,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension timeout "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -763,7 +763,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No copydrumset number given",
name, line);
CHECKERRLIMIT;
@ -772,7 +772,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension copydrumset "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -780,7 +780,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or "
"drum set before assignment", name, line);
CHECKERRLIMIT;
@ -793,7 +793,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No copybank number given",
name, line);
CHECKERRLIMIT;
@ -802,7 +802,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension copybank "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -810,7 +810,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or "
"drum set before assignment", name, line);
CHECKERRLIMIT;
@ -826,35 +826,35 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if ((mapto = mapname2id(w[1], &toisdrum)) == -1)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Invalid map name: %s", name, line, w[1]);
CHECKERRLIMIT;
continue;
}
if ((mapfrom = mapname2id(w[2], &fromisdrum)) == -1)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Invalid map name: %s", name, line, w[2]);
CHECKERRLIMIT;
continue;
}
if (toisdrum != fromisdrum)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Map type should be matched", name, line);
CHECKERRLIMIT;
continue;
}
if (copymap(mapto, mapfrom, toisdrum))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No free %s available to map",
name, line, toisdrum ? "drum set" : "tone bank");
CHECKERRLIMIT;
@ -866,7 +866,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No undef number given",
name, line);
CHECKERRLIMIT;
@ -875,7 +875,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension undef "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -883,7 +883,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or "
"drum set before assignment", name, line);
CHECKERRLIMIT;
@ -898,7 +898,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before altassign", name, line);
CHECKERRLIMIT;
@ -906,14 +906,14 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
}
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No alternate assignment", name, line);
CHECKERRLIMIT;
continue;
}
if (!dr) {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL,
printMessage(CMSG_WARNING, VERB_NORMAL,
"%s: line %d: Warning: Not a drumset altassign"
" (ignored)",
name, line);
@ -927,14 +927,14 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -943,7 +943,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension legato "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -955,14 +955,14 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -971,7 +971,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension damper "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -983,14 +983,14 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -999,7 +999,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension rnddelay "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -1011,13 +1011,13 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -1026,7 +1026,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[2]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension level "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -1046,13 +1046,13 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -1061,7 +1061,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[2]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension reverbsend "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -1081,13 +1081,13 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -1096,7 +1096,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[2]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension chorussend "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -1116,13 +1116,13 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -1131,7 +1131,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[2]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension delaysend "
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -1151,13 +1151,13 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if (!bank)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify tone bank or drum set "
"before assignment", name, line);
CHECKERRLIMIT;
@ -1166,7 +1166,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[2]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: extension playnote"
"must be between 0 and 127", name, line);
CHECKERRLIMIT;
@ -1189,7 +1189,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No soundfont file given",
name, line);
CHECKERRLIMIT;
@ -1208,7 +1208,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
}
if (!(cp = strchr(w[j], '=')))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: bad patch option %s",
name, line, w[j]);
CHECKERRLIMIT;
@ -1220,7 +1220,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (k < 0 || (*cp < '0' || *cp > '9'))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: order must be a digit",
name, line);
CHECKERRLIMIT;
@ -1232,7 +1232,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (k < 0 || (*cp < '0' || *cp > '9'))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: cutoff must be a digit",
name, line);
CHECKERRLIMIT;
@ -1244,7 +1244,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (k < 0 || (*cp < '0' || *cp > '9'))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: reso must be a digit",
name, line);
CHECKERRLIMIT;
@ -1267,7 +1267,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
int bank, preset, keynote;
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: no font command", name, line);
CHECKERRLIMIT;
continue;
@ -1276,7 +1276,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 3)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No bank/preset/key is given",
name, line);
CHECKERRLIMIT;
@ -1293,7 +1293,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
keynote = -1;
if (exclude_soundfont(bank, preset, keynote))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No soundfont is given",
name, line);
CHECKERRLIMIT;
@ -1304,7 +1304,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
int order;
if (words < 4)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No order/bank is given",
name, line);
CHECKERRLIMIT;
@ -1322,7 +1322,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
keynote = -1;
if (order_soundfont(bank, preset, keynote, order))
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No soundfont is given",
name, line);
CHECKERRLIMIT;
@ -1333,7 +1333,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 2 || *w[1] < '0' || *w[1] > '9')
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
@ -1346,14 +1346,14 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
if (words != 6)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
}
if ((arg[0] = mapname2id(w[1], &isdrum)) == -1)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Invalid map name: %s", name, line, w[1]);
CHECKERRLIMIT;
continue;
@ -1376,7 +1376,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
break;
if (i != 5)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Invalid parameter", name, line);
CHECKERRLIMIT;
continue;
@ -1391,7 +1391,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No directory given", name, line);
CHECKERRLIMIT;
continue;
@ -1403,7 +1403,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No file name given", name, line);
CHECKERRLIMIT;
continue;
@ -1433,7 +1433,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words != 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Must specify exactly one patch name",
name, line);
CHECKERRLIMIT;
@ -1450,7 +1450,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No drum set number given", name, line);
CHECKERRLIMIT;
continue;
@ -1459,7 +1459,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if ((newmapid = mapname2id(w[1], &isdrum)) == -1 || !isdrum)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Invalid drum set map name: %s", name, line, w[1]);
CHECKERRLIMIT;
continue;
@ -1472,7 +1472,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]) - progbase;
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Drum set must be between %d and %d",
name, line,
progbase, progbase + 127);
@ -1484,7 +1484,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = alloc_instrument_map_bank(1, newmapid, i);
if (i == -1)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No free drum set available to map",
name, line);
CHECKERRLIMIT;
@ -1503,7 +1503,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 4 || *w[2] < '0' || *w[2] > '9')
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
@ -1522,7 +1522,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
if (words < 2)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No bank number given", name, line);
CHECKERRLIMIT;
continue;
@ -1531,7 +1531,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if ((newmapid = mapname2id(w[1], &isdrum)) == -1 || isdrum)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Invalid bank map name: %s", name, line, w[1]);
CHECKERRLIMIT;
continue;
@ -1544,7 +1544,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = atoi(w[1]);
if (i < 0 || i > 127)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: Tone bank must be between 0 and 127",
name, line);
CHECKERRLIMIT;
@ -1555,7 +1555,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
i = alloc_instrument_map_bank(0, newmapid, i);
if (i == -1)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: No free tone bank available to map",
name, line);
CHECKERRLIMIT;
@ -1574,7 +1574,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (words < 4 || *w[2] < '0' || *w[2] > '9')
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;
@ -1592,7 +1592,7 @@ int Instruments::read_config_file(const char *name, int self, int allow_missing_
{
if (extension_flag)
continue;
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: line %d: syntax error", name, line);
CHECKERRLIMIT;
continue;

View file

@ -614,7 +614,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
&& tone->fcnum == 0 && tone->resonum == 0)
if ((ip = search_instrument_cache(name, panning, amp, note_to_use,
strip_loop, strip_envelope, strip_tail)) != NULL) {
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " * Cached");
printMessage(CMSG_INFO, VERB_DEBUG, " * Cached");
return ip;
}
/* Open patch file */
@ -648,7 +648,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
}
if (noluck)
{
ctl_cmsg(CMSG_INFO, VERB_DEBUG, "Instrument `%s' can't be found.", name);
printMessage(CMSG_INFO, VERB_DEBUG, "Instrument `%s' can't be found.", name);
return 0;
}
/* Read some headers and do cursory sanity checks. There are loads
@ -664,19 +664,19 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
|| (memcmp(tmp, "GF1PATCH110\0ID#000002", 22)
&& memcmp(tmp, "GF1PATCH100\0ID#000002", 22))) {
/* don't know what the differences are */
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "%s: not an instrument", name);
printMessage(CMSG_ERROR, VERB_NORMAL, "%s: not an instrument", name);
tf_close(tf);
return 0;
}
/* instruments. To some patch makers, 0 means 1 */
if (tmp[82] != 1 && tmp[82] != 0) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"Can't handle patches with %d instruments", tmp[82]);
tf_close(tf);
return 0;
}
if (tmp[151] != 1 && tmp[151] != 0) { /* layers. What's a layer? */
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"Can't handle instruments with %d layers", tmp[151]);
tf_close(tf);
return 0;
@ -690,7 +690,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
skip(tf, 7); /* Skip the wave name */
if (tf_read(&fractions, 1, 1, tf) != 1) {
fail:
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "Error reading sample %d", i);
printMessage(CMSG_ERROR, VERB_NORMAL, "Error reading sample %d", i);
for (j = 0; j < i; j++)
free(ip->sample[j].data);
free(ip->sample);
@ -729,7 +729,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
READ_LONG(sp->root_freq);
skip(tf, 2); /* Why have a "root frequency" and then "tuning"?? */
READ_CHAR(tmp[0]);
ctl_cmsg(CMSG_INFO, VERB_DEBUG, "Rate/Low/Hi/Root = %d/%d/%d/%d",
printMessage(CMSG_INFO, VERB_DEBUG, "Rate/Low/Hi/Root = %d/%d/%d/%d",
sp->sample_rate, sp->low_freq, sp->high_freq, sp->root_freq);
if (panning == -1)
/* 0x07 and 0x08 are both center panning */
@ -742,13 +742,13 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
if (!tmp[13] || !tmp[14]) {
sp->tremolo_sweep_increment = sp->tremolo_phase_increment = 0;
sp->tremolo_depth = 0;
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " * no tremolo");
printMessage(CMSG_INFO, VERB_DEBUG, " * no tremolo");
}
else {
sp->tremolo_sweep_increment = convert_tremolo_sweep(tmp[12]);
sp->tremolo_phase_increment = convert_tremolo_rate(tmp[13]);
sp->tremolo_depth = tmp[14];
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" * tremolo: sweep %d, phase %d, depth %d",
sp->tremolo_sweep_increment, sp->tremolo_phase_increment,
sp->tremolo_depth);
@ -756,20 +756,20 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
if (!tmp[16] || !tmp[17]) {
sp->vibrato_sweep_increment = sp->vibrato_control_ratio = 0;
sp->vibrato_depth = 0;
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " * no vibrato");
printMessage(CMSG_INFO, VERB_DEBUG, " * no vibrato");
}
else {
sp->vibrato_control_ratio = convert_vibrato_rate(tmp[16]);
sp->vibrato_sweep_increment = convert_vibrato_sweep(tmp[15],
sp->vibrato_control_ratio);
sp->vibrato_depth = tmp[17];
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" * vibrato: sweep %d, ctl %d, depth %d",
sp->vibrato_sweep_increment, sp->vibrato_control_ratio,
sp->vibrato_depth);
}
READ_CHAR(sp->modes);
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " * mode: 0x%02x", sp->modes);
printMessage(CMSG_INFO, VERB_DEBUG, " * mode: 0x%02x", sp->modes);
READ_SHORT(sp->scale_freq);
READ_SHORT(sp->scale_factor);
skip(tf, 36); /* skip reserved space */
@ -787,12 +787,12 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
| MODES_PINGPONG | MODES_REVERSE))) {
sp->modes &= ~(MODES_SUSTAIN | MODES_LOOPING
| MODES_PINGPONG | MODES_REVERSE);
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" - Removing loop and/or sustain");
}
if (strip_envelope == 1) {
if (sp->modes & MODES_ENVELOPE)
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " - Removing envelope");
printMessage(CMSG_INFO, VERB_DEBUG, " - Removing envelope");
sp->modes &= ~MODES_ENVELOPE;
}
else if (strip_envelope != 0) {
@ -803,7 +803,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
* No envelope needed either...
*/
sp->modes &= ~(MODES_SUSTAIN | MODES_ENVELOPE);
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" - No loop, removing sustain and envelope");
}
else if (!memcmp(tmp, "??????", 6) || tmp[11] >= 100) {
@ -812,7 +812,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
* That's a weird envelope. Take it out.
*/
sp->modes &= ~MODES_ENVELOPE;
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" - Weirdness, removing envelope");
}
else if (!(sp->modes & MODES_SUSTAIN)) {
@ -822,7 +822,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
* mostly drums. I think.
*/
sp->modes &= ~MODES_ENVELOPE;
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" - No sustain, removing envelope");
}
}
@ -845,7 +845,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
sp->data = (sample_t *)safe_malloc(sp->data_length + 4);
sp->data_alloced = 1;
if ((j = tf_read(sp->data, 1, sp->data_length, tf)) != (int)sp->data_length) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "Too small this patch length: %d < %d", j, sp->data_length);
printMessage(CMSG_ERROR, VERB_NORMAL, "Too small this patch length: %d < %d", j, sp->data_length);
goto fail;
}
if (!(sp->modes & MODES_16BIT)) { /* convert to 16-bit data */
@ -890,7 +890,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
sp->loop_end = sp->data_length - t;
sp->modes &= ~MODES_REVERSE;
sp->modes |= MODES_LOOPING; /* just in case */
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "Reverse loop in %s", name);
printMessage(CMSG_WARNING, VERB_NORMAL, "Reverse loop in %s", name);
}
/* If necessary do some anti-aliasing filtering */
if (antialiasing_allowed)
@ -910,7 +910,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
if ((a = abs(tmp[i])) > maxamp)
maxamp = a;
sp->volume = 32768 / (double)maxamp;
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" * volume comp: %f", sp->volume);
}
/* These are in bytes. Convert into samples. */
@ -959,7 +959,7 @@ Instrument *Instruments::load_gus_instrument(char *name, ToneBank *bank, int dr,
if (strip_tail == 1) {
/* Let's not really, just say we did. */
sp->data_length = sp->loop_end;
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " - Stripping tail");
printMessage(CMSG_INFO, VERB_DEBUG, " - Stripping tail");
}
}
tf_close(tf);
@ -1104,7 +1104,7 @@ int Instruments::fill_bank(int dr, int b, int *rc)
if (bank->tone[i].instrument == NULL)
{
// This would be too annoying on 'warning' level.
ctl_cmsg(CMSG_WARNING, VERB_DEBUG,
printMessage(CMSG_WARNING, VERB_DEBUG,
"No instrument mapped to %s %d, program %d%s",
dr ? "drum set" : "tone bank",
dr ? b + progbase : b,
@ -1144,7 +1144,7 @@ int Instruments::fill_bank(int dr, int b, int *rc)
bank->tone[i].instrument = load_instrument(dr, b, i);
if (!bank->tone[i].instrument)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"Couldn't load instrument %s "
"(%s %d, program %d)", bank->tone[i].name,
dr ? "drum set" : "tone bank",
@ -2014,7 +2014,7 @@ Instrument *Instruments::recompute_userdrum(int bank, int prog)
copy_tone_bank_element(&drumset[bank]->tone[prog], &drumset[0]->tone[source_note]);
}
else {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "Referring user drum set %d, note %d not found - this instrument will not be heard as expected", bank, prog);
printMessage(CMSG_WARNING, VERB_NORMAL, "Referring user drum set %d, note %d not found - this instrument will not be heard as expected", bank, prog);
}
}
return ip;

File diff suppressed because it is too large Load diff

View file

@ -212,7 +212,7 @@ static int GetQuantityHints(uint16_t type, QuantityHint *units)
REGISTER_TYPE_INT("ms", VIBRATO_SWEEP_MS);
END_QUANTITY_TYPE;
default:
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "Internal parameter error (%d)", type);
printMessage(CMSG_ERROR, VERB_NORMAL, "Internal parameter error (%d)", type);
return 0;
}
return 1;
@ -284,7 +284,7 @@ static int GetQuantityConvertProc(const Quantity *quantity, QuantityConvertProc
}
unit++;
}
ctl_cmsg(CMSG_ERROR, VERB_NORMAL, "Internal parameter error");
printMessage(CMSG_ERROR, VERB_NORMAL, "Internal parameter error");
return -1;
}

View file

@ -49,7 +49,7 @@ static int set_xg_reverb_type(int msb, int lsb)
(msb >= 0x05 && msb <= 0x0F) ||
(msb >= 0x14)) /* NO EFFECT */
{
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"XG Set Reverb Type (NO EFFECT %d %d)", msb, lsb);
//printMessage(CMSG_INFO,VERB_NOISY,"XG Set Reverb Type (NO EFFECT %d %d)", msb, lsb);
return -1;
}
@ -91,7 +91,7 @@ static int set_xg_reverb_type(int msb, int lsb)
if (lsb == 0x02 && msb == 0x02)
type = 2; /* Room 3 */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"XG Set Reverb Type (%d)", type);
//printMessage(CMSG_INFO,VERB_NOISY,"XG Set Reverb Type (%d)", type);
return type;
}
@ -105,7 +105,7 @@ static int set_xg_chorus_type(int msb, int lsb)
(msb >= 0x45 && msb <= 0x47) ||
(msb >= 0x49)) /* NO EFFECT */
{
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"XG Set Chorus Type (NO EFFECT %d %d)", msb, lsb);
//printMessage(CMSG_INFO,VERB_NOISY,"XG Set Chorus Type (NO EFFECT %d %d)", msb, lsb);
return -1;
}
@ -167,7 +167,7 @@ static int set_xg_chorus_type(int msb, int lsb)
}
}
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"XG Set Chorus Type (%d)", type);
//printMessage(CMSG_INFO,VERB_NOISY,"XG Set Chorus Type (%d)", type);
return type;
}
@ -487,7 +487,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
for (ent = addlow; body <= body_end; body++, ent++) {
switch (ent) {
case 0x00: /* Element Reserve */
/* //ctl_cmsg(CMSG_INFO,VERB_NOISY,"Element Reserve is not supported. (CH:%d VAL:%d)", p, *body); */
/* //printMessage(CMSG_INFO,VERB_NOISY,"Element Reserve is not supported. (CH:%d VAL:%d)", p, *body); */
break;
case 0x01: /* bank select MSB */
@ -873,7 +873,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
break;
case 0x59: /* AC1 Controller Number */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"AC1 Controller Number is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"AC1 Controller Number is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x5A: /* AC1 Pitch Control */
@ -907,7 +907,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
break;
case 0x60: /* AC2 Controller Number */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"AC2 Controller Number is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"AC2 Controller Number is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x61: /* AC2 Pitch Control */
@ -949,19 +949,19 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
case 0x69: /* Pitch EG Initial Level */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Pitch EG Initial Level is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Pitch EG Initial Level is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x6A: /* Pitch EG Attack Time */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Pitch EG Attack Time is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Pitch EG Attack Time is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x6B: /* Pitch EG Release Level */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Pitch EG Release Level is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Pitch EG Release Level is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x6C: /* Pitch EG Release Time */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Pitch EG Release Time is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Pitch EG Release Time is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x6D: /* Velocity Limit Low */
@ -975,11 +975,11 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
break;
case 0x70: /* Bend Pitch Low Control */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Bend Pitch Low Control is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Bend Pitch Low Control is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x71: /* Filter EG Depth */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Filter EG Depth is not supported. (CH:%d VAL:%d)", p, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Filter EG Depth is not supported. (CH:%d VAL:%d)", p, *body);
break;
case 0x72: /* EQ BASS */
@ -1011,7 +1011,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported XG Bulk Dump SysEx. (ADDR:%02X %02X %02X VAL:%02X)", addhigh, addlow, ent, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported XG Bulk Dump SysEx. (ADDR:%02X %02X %02X VAL:%02X)", addhigh, addlow, ent, *body);
continue;
break;
}
@ -1076,7 +1076,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events += 3;
break;
case 0x03: /* Alternate Group */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Alternate Group is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Alternate Group is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
break;
case 0x04: /* Pan */
SETMIDIEVENT(evm[num_events], 0, ME_NRPN_MSB, dp, 0x1C, SYSEX_TAG);
@ -1103,7 +1103,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events += 3;
break;
case 0x08: /* Key Assign */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Key Assign is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Key Assign is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
break;
case 0x09: /* Rcv Note Off */
SETMIDIEVENT(evm[num_events], 0, ME_SYSEX_MSB, dp, note, 0);
@ -1166,16 +1166,16 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events += 3;
break;
case 0x50: /* High Pass Filter Cutoff Frequency */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"High Pass Filter Cutoff Frequency is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"High Pass Filter Cutoff Frequency is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
break;
case 0x60: /* Velocity Pitch Sense */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Velocity Pitch Sense is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Velocity Pitch Sense is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
break;
case 0x61: /* Velocity LPF Cutoff Sense */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Velocity LPF Cutoff Sense is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Velocity LPF Cutoff Sense is not supported. (CH:%d NOTE:%d VAL:%d)", dp, note, *body);
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported XG Bulk Dump SysEx. (ADDR:%02X %02X %02X VAL:%02X)", addhigh, addmid, ent, *body);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported XG Bulk Dump SysEx. (ADDR:%02X %02X %02X VAL:%02X)", addhigh, addmid, ent, *body);
break;
}
}
@ -1208,7 +1208,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
checksum += val[i];
}
if (((128 - (checksum & 0x7F)) & 0x7F) != val[gslen - 1]) {
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"GS SysEx: Checksum Error.");
//printMessage(CMSG_INFO,VERB_NOISY,"GS SysEx: Checksum Error.");
return num_events;
}
@ -1371,10 +1371,10 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
break;
case 0x1F: /* CC1 Controller Number */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"CC1 Controller Number is not supported. (CH:%d VAL:%d)", p, val[7]);
//printMessage(CMSG_INFO,VERB_NOISY,"CC1 Controller Number is not supported. (CH:%d VAL:%d)", p, val[7]);
break;
case 0x20: /* CC2 Controller Number */
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"CC2 Controller Number is not supported. (CH:%d VAL:%d)", p, val[7]);
//printMessage(CMSG_INFO,VERB_NOISY,"CC2 Controller Number is not supported. (CH:%d VAL:%d)", p, val[7]);
break;
case 0x21: /* Chorus Send Level */
SETMIDIEVENT(evm[0], 0, ME_CHORUS_EFFECT, p, val[7], SYSEX_TAG);
@ -1459,7 +1459,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events += 12;
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
}
@ -1733,7 +1733,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
}
@ -1850,7 +1850,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
}
@ -1873,7 +1873,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
}
@ -1997,7 +1997,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
}
@ -2020,7 +2020,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
}
@ -2073,7 +2073,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events += 3;
break;
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
break;
@ -2148,7 +2148,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
break;
#endif
default:
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
//printMessage(CMSG_INFO,VERB_NOISY,"Unsupported GS SysEx. (ADDR:%02X %02X %02X VAL:%02X %02X)", addr_h, addr_m, addr_l, val[7], val[8]);
break;
}
break;
@ -2165,7 +2165,7 @@ int SysexConvert::parse_sysex_event_multi(const uint8_t *val, int32_t len, MidiE
num_events++;
break;
default:
/* ctl_cmsg(CMSG_INFO,VERB_NOISY, "Unsupported GS SysEx. "
/* printMessage(CMSG_INFO,VERB_NOISY, "Unsupported GS SysEx. "
"(ADDR:%02X %02X %02X VAL:%02X %02X)",
addr_h, addr_m, addr_l, val[7], val[8]);*/
break;
@ -2639,15 +2639,15 @@ int SysexConvert::parse_sysex_event(const uint8_t *val, int32_t len, MidiEvent *
case 0x09: /* General MIDI Message */
/* GM System Enable/Disable */
if (val[3] == 1) {
ctl_cmsg(CMSG_INFO, VERB_DEBUG, "SysEx: GM System On");
printMessage(CMSG_INFO, VERB_DEBUG, "SysEx: GM System On");
SETMIDIEVENT(*ev, 0, ME_RESET, 0, GM_SYSTEM_MODE, 0);
}
else if (val[3] == 3) {
ctl_cmsg(CMSG_INFO, VERB_DEBUG, "SysEx: GM2 System On");
printMessage(CMSG_INFO, VERB_DEBUG, "SysEx: GM2 System On");
SETMIDIEVENT(*ev, 0, ME_RESET, 0, GM2_SYSTEM_MODE, 0);
}
else {
ctl_cmsg(CMSG_INFO, VERB_DEBUG, "SysEx: GM System Off");
printMessage(CMSG_INFO, VERB_DEBUG, "SysEx: GM System Off");
SETMIDIEVENT(*ev, 0, ME_RESET, 0, DEFAULT_SYSTEM_MODE, 0);
}
return 1;

View file

@ -918,7 +918,7 @@ void pre_resample(Sample * sp)
if ((int64_t)sp->data_length * a >= 0x7fffffffL)
{
/* Too large to compute */
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " *** Can't pre-resampling for note %d",
printMessage(CMSG_INFO, VERB_DEBUG, " *** Can't pre-resampling for note %d",
sp->note_to_use);
return;
}
@ -929,7 +929,7 @@ void pre_resample(Sample * sp)
if ((double)newlen + incr >= 0x7fffffffL)
{
/* Too large to compute */
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " *** Can't pre-resampling for note %d",
printMessage(CMSG_INFO, VERB_DEBUG, " *** Can't pre-resampling for note %d",
sp->note_to_use);
return;
}

View file

@ -2121,7 +2121,7 @@ void Reverb::alloc_effect(EffectList *ef)
ef->info = safe_malloc(ef->engine->info_size);
memset(ef->info, 0, ef->engine->info_size);
/* //ctl_cmsg(CMSG_INFO,VERB_NOISY,"Effect Engine: %s", ef->engine->name); */
/* //printMessage(CMSG_INFO,VERB_NOISY,"Effect Engine: %s", ef->engine->name); */
}
/*! allocate new effect item and add it into the tail of effect list.
@ -4154,7 +4154,7 @@ void Reverb::set_effect_param_xg(struct effect_xg_t *st, int type_msb, int type_
for (j = 0; j < 10; j++) {
st->param_msb[j] = effect_parameter_xg[i].param_msb[j];
}
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"XG EFX: %s", effect_parameter_xg[i].name);
//printMessage(CMSG_INFO,VERB_NOISY,"XG EFX: %s", effect_parameter_xg[i].name);
return;
}
}
@ -4168,7 +4168,7 @@ void Reverb::set_effect_param_xg(struct effect_xg_t *st, int type_msb, int type_
for (j = 0; j < 10; j++) {
st->param_msb[j] = effect_parameter_xg[i].param_msb[j];
}
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"XG EFX: %s", effect_parameter_xg[i].name);
//printMessage(CMSG_INFO,VERB_NOISY,"XG EFX: %s", effect_parameter_xg[i].name);
return;
}
}
@ -4347,7 +4347,7 @@ void Reverb::set_effect_param_gs(struct insertion_effect_gs_t *st, int msb, int
for (j = 0; j < 20; j++) {
st->parameter[j] = effect_parameter_gs[i].param[j];
}
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"GS EFX: %s", effect_parameter_gs[i].name);
//printMessage(CMSG_INFO,VERB_NOISY,"GS EFX: %s", effect_parameter_gs[i].name);
break;
}
}

View file

@ -157,14 +157,14 @@ int Instruments::load_soundfont(SFInfo *sf, struct timidity_file *fd)
/* check RIFF file header */
READCHUNK(&chunk, fd);
if (chunkid(chunk.id) != RIFF_ID) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: *** not a RIFF file", fd->filename.c_str());
return -1;
}
/* check file id */
READID(chunk.id, fd);
if (chunkid(chunk.id) != SFBK_ID) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"%s: *** not a SoundFont file", fd->filename.c_str());
return -1;
}
@ -177,7 +177,7 @@ int Instruments::load_soundfont(SFInfo *sf, struct timidity_file *fd)
break;
}
else {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "%s: *** illegal id in level 0: %4.4s %4d", fd->filename.c_str(), chunk.id, chunk.size);
printMessage(CMSG_WARNING, VERB_NORMAL, "%s: *** illegal id in level 0: %4.4s %4d", fd->filename.c_str(), chunk.id, chunk.size);
FSKIP(chunk.size, fd);
// Not aborting here will inevitably crash.
return -1;
@ -278,7 +278,7 @@ int Instruments::process_list(int size, SFInfo *sf, struct timidity_file *fd)
/* read the following id string */
READID(chunk.id, fd); size -= 4;
ctl_cmsg(CMSG_INFO, VERB_DEBUG, "%c%c%c%c:",
printMessage(CMSG_INFO, VERB_DEBUG, "%c%c%c%c:",
chunk.id[0], chunk.id[1], chunk.id[2], chunk.id[3]);
switch (chunkid(chunk.id)) {
case INFO_ID:
@ -288,7 +288,7 @@ int Instruments::process_list(int size, SFInfo *sf, struct timidity_file *fd)
case PDTA_ID:
return process_pdta(size, sf, fd);
default:
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "%s: *** illegal id in level 1: %4.4s", fd->filename.c_str(), chunk.id);
printMessage(CMSG_WARNING, VERB_NORMAL, "%s: *** illegal id in level 1: %4.4s", fd->filename.c_str(), chunk.id);
FSKIP(size, fd); /* skip it */
return 0;
}
@ -313,14 +313,14 @@ int Instruments::process_info(int size, SFInfo *sf, struct timidity_file *fd)
return -1;
size -= 8;
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " %c%c%c%c:",
printMessage(CMSG_INFO, VERB_DEBUG, " %c%c%c%c:",
chunk.id[0], chunk.id[1], chunk.id[2], chunk.id[3]);
switch (chunkid(chunk.id)) {
case IFIL_ID:
/* soundfont file version */
READW(&sf->version, fd);
READW(&sf->minorversion, fd);
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" version %d, minor %d",
sf->version, sf->minorversion);
break;
@ -329,7 +329,7 @@ int Instruments::process_info(int size, SFInfo *sf, struct timidity_file *fd)
sf->sf_name = (char*)safe_malloc(chunk.size + 1);
tf_read(sf->sf_name, 1, chunk.size, fd);
sf->sf_name[chunk.size] = 0;
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" name %s", sf->sf_name);
break;
@ -357,7 +357,7 @@ int Instruments::process_sdta(int size, SFInfo *sf, struct timidity_file *fd)
return -1;
size -= 8;
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " %c%c%c%c:",
printMessage(CMSG_INFO, VERB_DEBUG, " %c%c%c%c:",
chunk.id[0], chunk.id[1], chunk.id[2], chunk.id[3]);
switch (chunkid(chunk.id)) {
case SNAM_ID:
@ -394,7 +394,7 @@ int Instruments::process_pdta(int size, SFInfo *sf, struct timidity_file *fd)
return -1;
size -= 8;
ctl_cmsg(CMSG_INFO, VERB_DEBUG, " %c%c%c%c:",
printMessage(CMSG_INFO, VERB_DEBUG, " %c%c%c%c:",
chunk.id[0], chunk.id[1], chunk.id[2], chunk.id[3]);
switch (chunkid(chunk.id)) {
case PHDR_ID:
@ -438,7 +438,7 @@ void Instruments::load_sample_names(int size, SFInfo *sf, struct timidity_file *
{
int i, nsamples;
if (sf->version > 1) {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "%s: *** version 2 has obsolete format??",fd->filename.c_str());
printMessage(CMSG_WARNING, VERB_NORMAL, "%s: *** version 2 has obsolete format??",fd->filename.c_str());
FSKIP(size, fd);
return;
}
@ -450,7 +450,7 @@ void Instruments::load_sample_names(int size, SFInfo *sf, struct timidity_file *
sf->sample = NEW(SFSampleInfo, sf->nsamples);
}
else if (sf->nsamples != nsamples) {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "%s: *** different # of samples ?? (%d : %d)\n",fd->filename.c_str(), sf->nsamples, nsamples);
printMessage(CMSG_WARNING, VERB_NORMAL, "%s: *** different # of samples ?? (%d : %d)\n",fd->filename.c_str(), sf->nsamples, nsamples);
FSKIP(size, fd);
return;
}
@ -504,7 +504,7 @@ void Instruments::load_inst_header(int size, SFInfo *sf, struct timidity_file *f
sf->inst[i].hdr.nlayers = 0;
sf->inst[i].hdr.layer = NULL;
ctl_cmsg(CMSG_INFO, VERB_DEBUG,
printMessage(CMSG_INFO, VERB_DEBUG,
" InstHdr %d (%s) bagNdx=%d",
i, sf->inst[i].hdr.name, sf->inst[i].hdr.bagNdx);
}
@ -617,7 +617,7 @@ void Instruments::convert_layers(SFInfo *sf)
if (prbags.bag == NULL || prbags.gen == NULL ||
inbags.bag == NULL || inbags.gen == NULL) {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "%s: *** illegal bags / gens", sf->sf_name);
printMessage(CMSG_WARNING, VERB_NORMAL, "%s: *** illegal bags / gens", sf->sf_name);
return;
}
@ -645,7 +645,7 @@ void Instruments::generate_layers(SFHeader *hdr, SFHeader *next, SFBags *bags)
hdr->nlayers = next->bagNdx - hdr->bagNdx;
if (hdr->nlayers < 0) {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "%s: illegal layer numbers %d", "", hdr->nlayers);
printMessage(CMSG_WARNING, VERB_NORMAL, "%s: illegal layer numbers %d", "", hdr->nlayers);
return;
}
if (hdr->nlayers == 0)
@ -656,7 +656,7 @@ void Instruments::generate_layers(SFHeader *hdr, SFHeader *next, SFBags *bags)
int genNdx = bags->bag[i];
layp->nlists = bags->bag[i + 1] - genNdx;
if (layp->nlists < 0) {
ctl_cmsg(CMSG_WARNING, VERB_NORMAL, "%s: illegal list numbers %d", "", layp->nlists);
printMessage(CMSG_WARNING, VERB_NORMAL, "%s: illegal list numbers %d", "", layp->nlists);
return;
}
layp->list = (SFGenRec*)safe_malloc(sizeof(SFGenRec) * layp->nlists);

View file

@ -317,7 +317,7 @@ int Instruments::import_wave_load(char *sample_file, Instrument *inst)
tf_close(tf);
return 1;
}
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Loading WAV: %s", sample_file);
//printMessage(CMSG_INFO,VERB_NOISY,"Loading WAV: %s", sample_file);
state = chunk_flags = 0;
type_index = 4, type_size = 8;
for(;;) {
@ -349,7 +349,7 @@ int Instruments::import_wave_load(char *sample_file, Instrument *inst)
frames = chunk_size / format.wBlockAlign;
inst->samples = samples = format.wChannels;
inst->sample = (Sample *)safe_malloc(sizeof(Sample) * samples);
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Format: %d-bits %dHz %dch, %d frames", format.wBitsPerSample, format.dwSamplesPerSec, samples, frames);
//printMessage(CMSG_INFO,VERB_NOISY,"Format: %d-bits %dHz %dch, %d frames", format.wBitsPerSample, format.dwSamplesPerSec, samples, frames);
initialize_sample(inst, frames, format.wBitsPerSample, format.dwSamplesPerSec);
/* load waveform data */
for(i = 0; i < samples; i++)
@ -439,7 +439,7 @@ static int read_WAVFormatChunk(struct timidity_file *tf, WAVFormatChunk *fmt, in
goto fail;
return 1;
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read format chunk");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read format chunk");
return 0;
}
@ -485,13 +485,13 @@ static int read_WAVSamplerChunk(struct timidity_file *tf, WAVSamplerChunk *smpl,
}
}
if (psize != cbSamplerData)
ctl_cmsg(CMSG_WARNING, VERB_NOISY, "Bad sampler chunk length");
printMessage(CMSG_WARNING, VERB_NOISY, "Bad sampler chunk length");
if (tf_seek(tf, psize, SEEK_CUR) == -1)
goto fail;
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Sampler: %dns/frame, note=%d, loops=%d", smpl->dwSamplePeriod, smpl->dwMIDIUnityNote, loopCount);
//printMessage(CMSG_INFO,VERB_NOISY,"Sampler: %dns/frame, note=%d, loops=%d", smpl->dwSamplePeriod, smpl->dwMIDIUnityNote, loopCount);
return 1;
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read sampler chunk");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read sampler chunk");
return 0;
}
@ -508,12 +508,12 @@ static int read_WAVInstrumentChunk(struct timidity_file *tf, GeneralInstrumentIn
READ_CHAR(inst->highNote);
READ_CHAR(inst->lowVelocity);
READ_CHAR(inst->highVelocity);
ctl_cmsg(CMSG_INFO, VERB_VERBOSE, "Instrument: note=%d (%d-%d), gain=%ddb, velocity=%d-%d",
printMessage(CMSG_INFO, VERB_VERBOSE, "Instrument: note=%d (%d-%d), gain=%ddb, velocity=%d-%d",
inst->baseNote, inst->lowNote, inst->highNote, inst->gain,
inst->lowVelocity, inst->highVelocity);
return 1;
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read instrument chunk");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read instrument chunk");
return 0;
}
@ -601,7 +601,7 @@ int Instruments::import_aiff_load(char *sample_file, Instrument *inst)
return 1;
}
compressed = buf[8 + 3] == 'C';
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Loading AIFF: %s", sample_file);
//printMessage(CMSG_INFO,VERB_NOISY,"Loading AIFF: %s", sample_file);
type_index = 4, type_size = 8;
chunk_flags = 0;
sound.inst = inst;
@ -748,7 +748,7 @@ int Instruments::import_aiff_load(char *sample_file, Instrument *inst)
goto fail;
comm->sampleRate = ConvertFromIeeeExtended(sampleRate);
csize -= 8 + 10;
//ctl_cmsg(CMSG_INFO,VERB_NOISY,"Format: %d-bits %dHz %dch, %d frames", comm->sampleSize, (int)comm->sampleRate, comm->numChannels, comm->numSampleFrames);
//printMessage(CMSG_INFO,VERB_NOISY,"Format: %d-bits %dHz %dch, %d frames", comm->sampleSize, (int)comm->sampleRate, comm->numChannels, comm->numSampleFrames);
if (compressed)
{
READ_LONG_BE(compressionType);
@ -761,7 +761,7 @@ int Instruments::import_aiff_load(char *sample_file, Instrument *inst)
if (tf_read(compressionName, compressionNameLength, 1, tf) != 1)
goto fail;
compressionName[compressionNameLength] = '\0';
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "AIFF-C unknown compression type: %s", compressionName);
printMessage(CMSG_WARNING, VERB_VERBOSE, "AIFF-C unknown compression type: %s", compressionName);
goto fail;
}
csize -= 4;
@ -771,7 +771,7 @@ int Instruments::import_aiff_load(char *sample_file, Instrument *inst)
goto fail;
return 1;
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read common chunk");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read common chunk");
return 0;
}
@ -805,7 +805,7 @@ int Instruments::read_AIFFSoundDataChunk(struct timidity_file *tf, AIFFSoundData
return read_AIFFSoundData(tf, sound->inst, sound->common);
}
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read sound data chunk");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read sound data chunk");
return 0;
}
@ -830,7 +830,7 @@ int Instruments::read_AIFFSoundData(struct timidity_file *tf, Instrument *inst,
goto fail;
return 1;
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read sound data");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read sound data");
return 0;
}
@ -841,7 +841,7 @@ static int read_AIFFInstumentChunk(struct timidity_file *tf, GeneralInstrumentIn
if (csize != 20)
{
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Bad instrument chunk length");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Bad instrument chunk length");
if (tf_seek(tf, csize, SEEK_CUR) == -1)
goto fail;
return 1;
@ -858,12 +858,12 @@ static int read_AIFFInstumentChunk(struct timidity_file *tf, GeneralInstrumentIn
READ_SHORT_BE(loop->endID);
if (tf_seek(tf, 2 + 2 + 2, SEEK_CUR) == -1) /* release loop */
goto fail;
ctl_cmsg(CMSG_INFO, VERB_VERBOSE, "Instrument: note=%d (%d-%d), gain=%ddb, velocity=%d-%d",
printMessage(CMSG_INFO, VERB_VERBOSE, "Instrument: note=%d (%d-%d), gain=%ddb, velocity=%d-%d",
inst->baseNote, inst->lowNote, inst->highNote, inst->gain,
inst->lowVelocity, inst->highVelocity);
return 1;
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read instrument chunk");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read instrument chunk");
return 0;
}
@ -879,7 +879,7 @@ static int read_AIFFMarkerChunk(struct timidity_file *tf, AIFFMarkerData **marke
READ_SHORT_BE(markerCount)
if (csize != 2 + markerCount * (2 + 4))
{
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Bad marker chunk length");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Bad marker chunk length");
if (tf_seek(tf, csize, SEEK_CUR) == -1)
goto fail;
return 1;
@ -899,7 +899,7 @@ static int read_AIFFMarkerChunk(struct timidity_file *tf, AIFFMarkerData **marke
fail:
if (m != NULL)
free(m);
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read marker chunk");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read marker chunk");
return 0;
}
@ -1020,7 +1020,7 @@ static int read_sample_data(int32_t flags, struct timidity_file *tf, int bits, i
}
return 1;
fail:
ctl_cmsg(CMSG_WARNING, VERB_VERBOSE, "Unable to read sample data");
printMessage(CMSG_WARNING, VERB_VERBOSE, "Unable to read sample data");
return 0;
}

View file

@ -261,7 +261,7 @@ void Instruments::init_sf(SFInsts *rec)
int i;
if ((rec->tf = open_file(rec->fname, sfreader)) == NULL) {
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"Can't open soundfont file %s", rec->fname);
end_soundfont(rec);
return;
@ -359,7 +359,7 @@ Instrument *Instruments::try_load_soundfont(SFInsts *rec, int order, int bank,in
return NULL;
if ((rec->tf = open_file(rec->fname, sfreader)) == NULL)
{
ctl_cmsg(CMSG_ERROR, VERB_NORMAL,
printMessage(CMSG_ERROR, VERB_NORMAL,
"Can't open soundfont file %s", rec->fname);
end_soundfont(rec);
return NULL;
@ -924,7 +924,7 @@ int Instruments::make_patch(SFInfo *sf, int pridx, LayerTable *tbl)
if(sample->sampletype & SF_SAMPLETYPE_ROM) /* is ROM sample? */
{
ctl_cmsg(CMSG_INFO, VERB_DEBUG, "preset %d is ROM sample: 0x%x",
printMessage(CMSG_INFO, VERB_DEBUG, "preset %d is ROM sample: 0x%x",
pridx, sample->sampletype);
return AWE_RET_SKIP;
}
@ -1209,7 +1209,7 @@ void Instruments::set_init_info(SFInfo *sf, SampleList *vp, LayerTable *tbl)
if(tbl->set[SF_keynum])
vp->v.note_to_use = (int)tbl->val[SF_keynum];
if(tbl->set[SF_velocity] && (int)tbl->val[SF_velocity] != 0) {
ctl_cmsg(CMSG_INFO,VERB_DEBUG,"error: fixed-velocity is not supported.");
printMessage(CMSG_INFO,VERB_DEBUG,"error: fixed-velocity is not supported.");
}
vp->v.sample_type = sample->sampletype;
@ -1263,7 +1263,7 @@ void Instruments::set_init_info(SFInfo *sf, SampleList *vp, LayerTable *tbl)
} else if(sample->sampletype == SF_SAMPLETYPE_LEFT) { /* leftSample = 4 */
vp->v.panning = 0;
} else if(sample->sampletype == SF_SAMPLETYPE_LINKED) { /* linkedSample = 8 */
ctl_cmsg(CMSG_ERROR,VERB_NOISY,"error: linkedSample is not supported.");
printMessage(CMSG_ERROR,VERB_NOISY,"error: linkedSample is not supported.");
}
memset(vp->v.envelope_keyf, 0, sizeof(vp->v.envelope_keyf));

View file

@ -52,7 +52,7 @@ inline bool RC_IS_SKIP_FILE(int rc)
}
extern void (*ctl_cmsg)(int type, int verbosity_level, const char* fmt, ...);
extern void (*printMessage)(int type, int verbosity_level, const char* fmt, ...);
}

View file

@ -135,6 +135,8 @@ private:
struct _mdi *Init_MDI();
unsigned long int get_inc(struct _mdi *mdi, struct _note *nte);
};
extern void (*wm_error_func)(const char *wmfmt, va_list args);
}
#endif /* WILDMIDI_LIB_H */

View file

@ -231,7 +231,7 @@ TimidityMIDIDevice::TimidityMIDIDevice(const char *args, int samplerate)
: SoftSynthMIDIDevice(samplerate, 11025, 65535)
{
LoadConfig(args);
Timidity::cmsg = gzdoom_ctl_cmsg;
Timidity::printMessage = gzdoom_ctl_cmsg;
Renderer = new Timidity::Renderer((float)SampleRate, midi_voices, instruments);
}

View file

@ -274,7 +274,7 @@ TimidityPPMIDIDevice::TimidityPPMIDIDevice(const char *args, int samplerate)
delete instruments;
instruments = nullptr;
}
TimidityPlus::ctl_cmsg = gzdoom_ctl_cmsg;
TimidityPlus::printMessage = gzdoom_ctl_cmsg;
TimidityPlus::set_playback_rate(SampleRate);
if (instruments == nullptr)

View file

@ -38,6 +38,9 @@
#include "doomerrors.h"
#include "i_soundfont.h"
#include "c_console.h"
#include "v_text.h"
// MACROS ------------------------------------------------------------------
// TYPES -------------------------------------------------------------------
@ -111,6 +114,12 @@ void WildMidi_Shutdown()
// CODE --------------------------------------------------------------------
static void gzdoom_error_func(const char* wmfmt, va_list args)
{
Printf(TEXTCOLOR_RED);
VPrintf(PRINT_HIGH, wmfmt, args);
}
//==========================================================================
//
// WildMIDIDevice Constructor
@ -121,6 +130,7 @@ WildMIDIDevice::WildMIDIDevice(const char *args, int samplerate)
:SoftSynthMIDIDevice(samplerate <= 0? wildmidi_frequency : samplerate, 11025, 65535)
{
Renderer = NULL;
WildMidi::wm_error_func = gzdoom_error_func;
if (args == NULL || *args == 0) args = wildmidi_config;