Skip to content

Commit 234a8c2

Browse files
committed
use midilib instead of midi.c
1 parent 543185c commit 234a8c2

File tree

7 files changed

+28
-130
lines changed

7 files changed

+28
-130
lines changed

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "libfmvoice"]
22
path = libfmvoice
33
url = https://github.com/vampirefrog/libfmvoice.git
4+
[submodule "midilib"]
5+
path = midilib
6+
url = https://github.com/vampirefrog/midilib.git

Makefile

+12-18
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,32 @@ CFLAGS=-ggdb -Wall $(shell pkg-config alsa jack --cflags)
22
CC=gcc
33
CXX=g++
44

5-
PROGS=fmtoy_jack
6-
all: $(PROGS)
5+
all: libfmtoy.a fmtoy_jack
76

8-
LIBS=-lz
7+
LIBS=-lz -lm
98
ifneq (,$(findstring MINGW,$(shell uname -s)))
109
LIBS+=-liconv -lws2_32
1110
endif
1211

13-
.SECONDEXPANSION:
14-
fmtoy_jack_SRCS=fmtoy_jack.c fmtoy.c cmdline.c tools.c midi.c \
15-
chips/ym2151.c chips/fm.c chips/fm2612.c chips/ymdeltat.c chips/fmopl.c chips/ymf262.c \
16-
fmtoy_ym2151.c fmtoy_ym2203.c fmtoy_ym2608.c fmtoy_ym2610.c fmtoy_ym2610b.c fmtoy_ym2612.c fmtoy_ym3812.c fmtoy_ymf262.c
17-
fmtoy_jack_EXTRA=libfmvoice/libfmvoice.a
18-
fmtoy_jack_LIBS=$(shell pkg-config alsa jack --libs)
12+
libfmtoy.a: fmtoy.o \
13+
chips/ym2151.o chips/fm.o chips/fm2612.o chips/ymdeltat.o chips/fmopl.o chips/ymf262.o \
14+
fmtoy_ym2151.o fmtoy_ym2203.o fmtoy_ym2608.o fmtoy_ym2610.o fmtoy_ym2610b.o fmtoy_ym2612.o fmtoy_ym3812.o fmtoy_ymf262.o
15+
ar cr $@ $^
1916

20-
OBJS=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(foreach prog,$(PROGS),$(prog).cpp $($(prog)_SRCS))))
17+
fmtoy_jack: fmtoy_jack.c cmdline.c tools.c libfmtoy.a libfmvoice/libfmvoice.a midilib/libmidi.a
18+
$(CC) $^ -o $@ $(CFLAGS) $(LIBS) $(shell pkg-config alsa jack --libs)
2119

22-
$(OBJS): Makefile
23-
24-
$(PROGS): $$(sort $$@.o $$(patsubst %.c,%.o,$$(patsubst %.cpp,%.o,$$($$@_SRCS)))) $$($$@_EXTRA)
25-
$(CXX) $^ -o $@ $(CFLAGS) $($@_CFLAGS) $(LIBS) $($@_LIBS)
26-
27-
%.o: %.cpp
28-
$(CXX) -MMD -c $< -o $@ $(CFLAGS)
2920
%.o: %.c
3021
$(CC) -MMD -c $< -o $@ $(CFLAGS) $($@_CFLAGS)
3122

23+
midilib/libmidi.a:
24+
cd midilib && make libmidi.a
3225
libfmvoice/libfmvoice.a:
3326
cd libfmvoice && make libfmvoice.a
3427

3528
-include $(OBJS:.o=.d)
3629

3730
clean:
38-
rm -f $(PROGS) $(addsuffix .exe,$(PROGS)) *.o *.d chips/*.o chips/*.d
31+
rm -f *.o *.d *.a fmtoy_jack
3932
cd libfmvoice && make clean
33+
cd midilib && make clean

fmtoy.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
#include <stdio.h>
66

77
#include "libfmvoice/fm_voice.h"
8+
#include "midilib/midi.h"
89

910
#include "fmtoy.h"
10-
#include "midi.h"
1111

1212
#include "fmtoy_ym2151.h"
1313
#include "fmtoy_ym2203.h"

fmtoy_jack.c

+11-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include "tools.h"
77
#include "fmtoy.h"
88
#include "libfmvoice/fm_voice.h"
9-
#include "midi.h"
9+
#include "midilib/midi.h"
1010

1111
typedef jack_default_audio_sample_t sample_t;
1212

@@ -52,16 +52,22 @@ void midi_action(snd_seq_t *seq_handle) {
5252
snd_seq_event_input(seq_handle, &ev);
5353
switch (ev->type) {
5454
case SND_SEQ_EVENT_NOTEON:
55-
if(opt_verbose)
56-
printf("%s: Note \033[32mON\033[0m %s%d (%d) %d\n", fmtoy_channel_name(&fmtoy, ev->data.control.channel), midi_note_name(ev->data.note.note), midi_note_octave(ev->data.note.note), ev->data.note.note, ev->data.note.velocity);
55+
if(opt_verbose) {
56+
uint8_t octave;
57+
const char *note_name = midi_note_name(ev->data.note.note, &octave);
58+
printf("%s: Note \033[32mON\033[0m %s%d (%d) %d\n", fmtoy_channel_name(&fmtoy, ev->data.control.channel), note_name, octave, ev->data.note.note, ev->data.note.velocity);
59+
}
5760
if(ev->data.note.velocity > 0)
5861
fmtoy_note_on(&fmtoy, ev->data.note.channel, ev->data.note.note, ev->data.note.velocity);
5962
else
6063
fmtoy_note_off(&fmtoy, ev->data.note.channel, ev->data.note.note, ev->data.note.velocity);
6164
break;
6265
case SND_SEQ_EVENT_NOTEOFF:
63-
if(opt_verbose)
64-
printf("%s: Note \033[31mOFF\033[0m %s%d (%d) %d\n", fmtoy_channel_name(&fmtoy, ev->data.control.channel), midi_note_name(ev->data.note.note), midi_note_octave(ev->data.note.note), ev->data.note.note, ev->data.note.velocity);
66+
if(opt_verbose) {
67+
uint8_t octave;
68+
const char *note_name = midi_note_name(ev->data.note.note, &octave);
69+
printf("%s: Note \033[31mOFF\033[0m %s%d (%d) %d\n", fmtoy_channel_name(&fmtoy, ev->data.control.channel), note_name, octave, ev->data.note.note, ev->data.note.velocity);
70+
}
6571
fmtoy_note_off(&fmtoy, ev->data.note.channel, ev->data.note.note, ev->data.note.velocity);
6672
break;
6773
case SND_SEQ_EVENT_PITCHBEND:

midi.c

-98
This file was deleted.

midi.h

-8
This file was deleted.

midilib

Submodule midilib added at 032b634

0 commit comments

Comments
 (0)