Build log
nerves_system_rpi4
tuning_fork_midi 0.1.11 · fail · run tuning_fork_midi-0.1.11-1791145763815
1013 of 1013 lines
1Resolving Hex dependencies...2Resolution completed in 0.098s3Unchanged:4 circular_buffer 1.1.05 elixir_make 0.10.06 interactive_cmd 0.1.47 nerves 2.0.0-pre.28 nerves_discovery 0.1.59 nerves_logging 0.2.410 nerves_runtime 0.13.1311 nerves_system_bbb 2.30.212 nerves_system_br 1.34.413 nerves_system_mangopi_mq_pro 0.17.214 nerves_system_qemu_aarch64 0.4.215 nerves_system_rpi0 2.1.216 nerves_system_rpi4 2.1.217 nerves_system_rpi5 2.1.218 nerves_system_trellis 0.5.019 nerves_system_x86_64 1.34.220 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.121 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.122 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.123 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.124 nerves_toolchain_x86_64_nerves_linux_musl 15.3.125 nerves_uevent 0.1.726 property_table 0.3.427 ring_logger 0.11.728 tablet 0.3.329 toolshed 0.5.030 tuning_fork 0.1.1131 tuning_fork_midi 0.1.1132 uboot_env 1.0.233* Getting tuning_fork_midi (Hex package)34* Getting nerves (Hex package)35* Getting ring_logger (Hex package)36* Getting toolshed (Hex package)37* Getting nerves_runtime (Hex package)38* Getting nerves_system_bbb (Hex package)39* Getting nerves_system_mangopi_mq_pro (Hex package)40* Getting nerves_system_qemu_aarch64 (Hex package)41* Getting nerves_system_rpi0 (Hex package)42* Getting nerves_system_rpi4 (Hex package)43* Getting nerves_system_rpi5 (Hex package)44* Getting nerves_system_trellis (Hex package)45* Getting nerves_system_x86_64 (Hex package)46* Getting nerves_system_br (Hex package)47* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)48* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)49* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)50* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)51* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)52* Getting nerves_logging (Hex package)53* Getting nerves_uevent (Hex package)54* Getting uboot_env (Hex package)55* Getting elixir_make (Hex package)56* Getting property_table (Hex package)57* Getting circular_buffer (Hex package)58* Getting interactive_cmd (Hex package)59* Getting nerves_discovery (Hex package)60* Getting tablet (Hex package)61* Getting tuning_fork (Hex package)62==> nerves_system_br63Generated nerves_system_br app64==> circular_buffer65Compiling 1 file (.ex)66Generated circular_buffer app67==> tablet68Compiling 2 files (.ex)69Generated tablet app70==> elixir_make71Compiling 8 files (.ex)72Generated elixir_make app73==> nerves_logging74 CC kmsg_tailer.o75 LD kmsg_tailer76Compiling 5 files (.ex)77Generated nerves_logging app78==> nerves_discovery79Compiling 5 files (.ex)80Generated nerves_discovery app81==> ring_logger82Compiling 7 files (.ex)83Generated ring_logger app84==> interactive_cmd85Compiling 1 file (.ex)86Generated interactive_cmd app87==> nerves88Compiling 65 files (.ex)89 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)90 │91 6 │ defmodule Mix.Tasks.Nerves.Init do92 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~93 │94 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)9596 warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.beam)97 │98 6 │ defmodule Nerves do99 │ ~~~~~~~~~~~~~~~~~~~100 │101 └─ lib/nerves.ex:6: Nerves (module)102103 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)104 │105 5 │ defmodule Nerves.ArtifactResolver do106 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~107 │108 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)109110 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)111 │112 6 │ defmodule Nerves.BuildAction.AppModes do113 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~114 │115 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)116117 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)118 │119 5 │ defmodule Nerves.BuildAction.CheckExecutables do120 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~121 │122 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)123124 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)125 │126 8 │ defmodule Nerves.BuildAction.Erlinit do127 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~128 │129 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)130131 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)132 │133 5 │ defmodule Nerves.BuildAction.Firmware do134 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~135 │136 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)137138 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)139 │140 7 │ defmodule Nerves.BuildAction.IExStartupCheck do141 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~142 │143 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)144145 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)146 │147 5 │ defmodule Nerves.BuildAction.NervesV1System do148 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~149 │150 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)151152 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)153 │154 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do155 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~156 │157 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)158159 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)160 │161 5 │ defmodule Nerves.BuildAction.Rootfs do162 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~163 │164 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)165166 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)167 │168 6 │ defmodule Nerves.BuildAction.SortApps do169 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~170 │171 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)172173 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)174 │175 5 │ defmodule Nerves.BuildAction.StripAll do176 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~177 │178 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)179180 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)181 │182 5 │ defmodule Nerves.BuildAction.Trimmer do183 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~184 │185 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)186187 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)188 │189 5 │ defmodule Nerves.BuildPlan do190 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~191 │192 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)193194 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)195 │196 5 │ defmodule Nerves.BuildPlan.Checks do197 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~198 │199 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)200201 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Container.beam)202 │203 6 │ defmodule Nerves.Container do204 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~205 │206 └─ lib/nerves/container.ex:6: Nerves.Container (module)207208 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)209 │210 5 │ defmodule Nerves.Fingerprint do211 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~212 │213 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)214215 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)216 │217 5 │ defmodule Nerves.MixPackage do218 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~219 │220 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)221222 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Paths.beam)223 │224 5 │ defmodule Nerves.Paths do225 │ ~~~~~~~~~~~~~~~~~~~~~~~~~226 │227 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)228229 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)230 │231 5 │ defmodule Nerves.TargetTuple do232 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~233 │234 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)235236Generated nerves app237==> nerves_toolchain_aarch64_nerves_linux_gnu238Compiling 1 file (.ex)239Generated nerves_toolchain_aarch64_nerves_linux_gnu app240==> nerves_system_rpi4241Generated nerves_system_rpi4 app242==> tuning_fork243Compiling 70 files (.ex)244 warning: the variable "length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator245 │246 82 │ <<_block::binary-size(length), after_block::binary>> ->247 │ ~248 │249 └─ lib/tuning_fork/flac.ex:82:29: TuningFork.Flac.metadata/2250251 warning: the variable "pad" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator252 │253 102 │ <<_pad::size(pad), _crc::16, next::binary>> = rest254 │ ~255 │256 └─ lib/tuning_fork/flac.ex:102:20: TuningFork.Flac.frames/3257258 warning: the variable "bits" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator259 │260 206 │ <<value::signed-size(bits), rest::bits>> -> {:ok, List.duplicate(value, size), rest}261 │ ~262 │263 └─ lib/tuning_fork/flac.ex:206:28: TuningFork.Flac.subframe_of/4264265 warning: the variable "total" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator266 │267 215 │ <<raw::bits-size(total), rest::bits>> ->268 │ ~269 │270 └─ lib/tuning_fork/flac.ex:215:24: TuningFork.Flac.subframe_of/4271272 warning: the variable "bits" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator273 │274 216 │ {:ok, for(<<value::signed-size(bits) <- raw>>, do: value), rest}275 │ ~276 │277 └─ lib/tuning_fork/flac.ex:216:40: TuningFork.Flac.subframe_of/4278279 warning: the variable "total" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator280 │281 248 │ <<raw::bits-size(total), rest::bits>> ->282 │ ~283 │284 └─ lib/tuning_fork/flac.ex:248:24: TuningFork.Flac.warmup/3285286 warning: the variable "bits" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator287 │288 249 │ {:ok, for(<<value::signed-size(bits) <- raw>>, do: value), rest}289 │ ~290 │291 └─ lib/tuning_fork/flac.ex:249:40: TuningFork.Flac.warmup/3292293 warning: the variable "total" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator294 │295 262 │ <<raw::bits-size(total), rest::bits>> ->296 │ ~297 │298 └─ lib/tuning_fork/flac.ex:262:24: TuningFork.Flac.lpc_coefficients/2299300 warning: the variable "bits" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator301 │302 263 │ {:ok, for(<<value::signed-size(bits) <- raw>>, do: value), shift, rest}303 │ ~304 │305 └─ lib/tuning_fork/flac.ex:263:40: TuningFork.Flac.lpc_coefficients/2306307 warning: the variable "param_bits" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator308 │309 292 │ <<^escape::size(param_bits), raw_bits::5, rest::bits>> -> raw(rest, samples, raw_bits)310 │ ~311 │312 └─ lib/tuning_fork/flac.ex:292:25: TuningFork.Flac.partitions/8313314 warning: the variable "param_bits" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator315 │316 293 │ <<param::size(param_bits), rest::bits>> -> rice(rest, param, samples, [])317 │ ~318 │319 └─ lib/tuning_fork/flac.ex:293:23: TuningFork.Flac.partitions/8320321 warning: the variable "total" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator322 │323 306 │ <<raw::bits-size(total), rest::bits>> ->324 │ ~325 │326 └─ lib/tuning_fork/flac.ex:306:24: TuningFork.Flac.raw/3327328 warning: the variable "raw_bits" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator329 │330 307 │ {:ok, for(<<value::signed-size(raw_bits) <- raw>>, do: value), rest}331 │ ~332 │333 └─ lib/tuning_fork/flac.ex:307:40: TuningFork.Flac.raw/3334335 warning: the variable "param" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator336 │337 318 │ {quotient, <<remainder::size(param), rest::bits>>} ->338 │ ~339 │340 └─ lib/tuning_fork/flac.ex:318:36: TuningFork.Flac.rice/4341342 warning: the variable "zeros" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator343 │344 332 │ <<_::size(zeros + 1), rest::bits>> = bits345 │ ~346 │347 └─ lib/tuning_fork/flac.ex:332:15: TuningFork.Flac.unary/2348349 warning: the variable "at" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator350 │351 60 │ <<before::binary-size(at), rest::binary>> = base352 │ ~353 │354 └─ lib/tuning_fork/mixer.ex:60:31: TuningFork.Mixer.mix_at/4355356 warning: the variable "space" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator357 │358 64 │ <<fits::binary-size(space), over::binary>> = buffer359 │ ~360 │361 └─ lib/tuning_fork/mixer.ex:64:29: TuningFork.Mixer.mix_at/4362363 warning: the variable "at" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator364 │365 65 │ <<before::binary-size(at), rest::binary>> = base366 │ ~367 │368 └─ lib/tuning_fork/mixer.ex:65:31: TuningFork.Mixer.mix_at/4369370 warning: the variable "wanted" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator371 │372 81 │ <<chunk::binary-size(wanted), rest::binary>> ->373 │ ~374 │375 └─ lib/tuning_fork/mixer.ex:81:28: TuningFork.Mixer.take/3376377 warning: the variable "keep" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator378 │379 103 │ <<head::binary-size(keep), tail::binary>> when tail != <<>> ->380 │ ~381 │382 └─ lib/tuning_fork/mixer.ex:103:27: TuningFork.Mixer.fold/3383384 warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator385 │386 86 │ <<blob::binary-size(size), left::binary>> = rest387 │ ~388 │389 └─ lib/tuning_fork/osc.ex:86:25: TuningFork.Osc.argument_of/2390391 warning: the variable "over" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator392 │393 88 │ <<_padding::binary-size(over), after_padding::binary>> = left394 │ ~395 │396 └─ lib/tuning_fork/osc.ex:88:29: TuningFork.Osc.argument_of/2397398 warning: unused require Logger399 │400 11 │ require Logger401 │ ~402 │403 └─ lib/tuning_fork/osc/client.ex:11:3404405 warning: the variable "room" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator406 │407 220 │ <<head::binary-size(room), tail::binary>> when tail != <<>> ->408 │ ~409 │410 └─ lib/tuning_fork/score.ex:220:27: TuningFork.Score.wrap/4411412 warning: the variable "length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator413 │414 417 │ <<data::binary-size(length), rest::binary>> = rest415 │ ~416 │417 └─ lib/tuning_fork/midi.ex:417:25: TuningFork.Midi.event/2418419 warning: the variable "length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator420 │421 427 │ <<_data::binary-size(length), rest::binary>> = rest422 │ ~423 │424 └─ lib/tuning_fork/midi.ex:427:26: TuningFork.Midi.event/2425426 warning: the variable "channels" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator427 │428 167 │ for <<frame::binary-size(channels * 2) <- pcm>>, reduce: {0, <<>>} do429 │ ~430 │431 └─ lib/tuning_fork/stage/bed.ex:167:30: TuningFork.Stage.Bed.ramp/4432433 warning: the variable "channels" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator434 │435 734 │ for <<sample::16-signed-little, _rest::binary-size(channels * 2 - 2) <- pcm>>, do: sample436 │ ~437 │438 └─ lib/tuning_fork/stage.ex:734:58: TuningFork.Stage.thinned/3439440 warning: the following conditional expression:441442 File.mkdir_p!(TuningFork.Sample.Fetch.dir())443444 will always evaluate to:445446 dynamic(:ok)447448 type warning found at:449 │450 144 │ unless File.exists?(path), do: File.mkdir_p!(Fetch.dir()) && File.write!(path, bytes)451 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~452 │453 └─ lib/tuning_fork/sample/font.ex:144: TuningFork.Sample.Font.decode/3454455Generated tuning_fork app456==> tuning_fork_midi457mkdir -p priv458/home/nerves/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-15.3.1/bin/aarch64-nerves-linux-gnu-gcc -mabi=lp64 -fstack-protector-strong -mcpu=cortex-a72 -fPIE -pie -Wl,-z,now -Wl,-z,relro -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -O2 --sysroot /home/nerves/.nerves/artifacts/nerves_system_rpi4-2.1.2/staging -I/home/nerves/.nerves/artifacts/nerves_system_rpi4-2.1.2/staging/usr/lib/erlang/erts-17.0.6/include -Ic_src -o priv/tuning_fork_midi_nif.so c_src/tuning_fork_midi_nif.c --sysroot=/home/nerves/.nerves/artifacts/nerves_system_rpi4-2.1.2/staging -shared -lpthread -lasound459In file included from c_src/tuning_fork_midi_nif.c:22:460c_src/minimidio.h:483:5: error: unknown type name 'snd_seq_t'; did you mean 'snd_sctl_t'?461 483 | snd_seq_t* seq;462 | ^~~~~~~~~463 | snd_sctl_t464c_src/minimidio.h:497:5: error: unknown type name 'snd_midi_event_t'; did you mean 'snd_mixer_event_t'?465 497 | snd_midi_event_t* midi_ev; /* raw path: byte<->event coder (NULL otherwise) */466 | ^~~~~~~~~~~~~~~~467 | snd_mixer_event_t468c_src/minimidio.h: In function 'mm_context_init':469c_src/minimidio.h:1493:9: error: implicit declaration of function 'snd_seq_open'; did you mean 'snd_ctl_open'? [-Wimplicit-function-declaration]470 1493 | if (snd_seq_open(&ctx->al.seq, "default", SND_SEQ_OPEN_DUPLEX, 0) < 0)471 | ^~~~~~~~~~~~472 | snd_ctl_open473c_src/minimidio.h:1493:47: error: 'SND_SEQ_OPEN_DUPLEX' undeclared (first use in this function)474 1493 | if (snd_seq_open(&ctx->al.seq, "default", SND_SEQ_OPEN_DUPLEX, 0) < 0)475 | ^~~~~~~~~~~~~~~~~~~476c_src/minimidio.h:1493:47: note: each undeclared identifier is reported only once for each function it appears in477c_src/minimidio.h:1495:5: error: implicit declaration of function 'snd_seq_set_client_name' [-Wimplicit-function-declaration]478 1495 | snd_seq_set_client_name(ctx->al.seq, ctx->name);479 | ^~~~~~~~~~~~~~~~~~~~~~~480c_src/minimidio.h:1496:25: error: implicit declaration of function 'snd_seq_client_id' [-Wimplicit-function-declaration]481 1496 | ctx->al.client_id = snd_seq_client_id(ctx->al.seq);482 | ^~~~~~~~~~~~~~~~~483c_src/minimidio.h: In function 'mm_context_uninit':484c_src/minimidio.h:1502:5: error: implicit declaration of function 'snd_seq_close'; did you mean 'snd_ctl_close'? [-Wimplicit-function-declaration]485 1502 | snd_seq_close(ctx->al.seq);486 | ^~~~~~~~~~~~~487 | snd_ctl_close488c_src/minimidio.h: In function 'mm__alsa_enum':489c_src/minimidio.h:1529:5: error: unknown type name 'snd_seq_client_info_t'; did you mean 'snd_ctl_elem_info_t'?490 1529 | snd_seq_client_info_t* ci;491 | ^~~~~~~~~~~~~~~~~~~~~492 | snd_ctl_elem_info_t493c_src/minimidio.h:1530:5: error: unknown type name 'snd_seq_port_info_t'; did you mean 'snd_ctl_card_info_t'?494 1530 | snd_seq_port_info_t* pi;495 | ^~~~~~~~~~~~~~~~~~~496 | snd_ctl_card_info_t497c_src/minimidio.h:1531:5: error: implicit declaration of function 'snd_seq_client_info_alloca'; did you mean 'snd_ctl_elem_info_alloca'? [-Wimplicit-function-declaration]498 1531 | snd_seq_client_info_alloca(&ci);499 | ^~~~~~~~~~~~~~~~~~~~~~~~~~500 | snd_ctl_elem_info_alloca501c_src/minimidio.h:1532:5: error: implicit declaration of function 'snd_seq_port_info_alloca'; did you mean 'snd_ctl_card_info_alloca'? [-Wimplicit-function-declaration]502 1532 | snd_seq_port_info_alloca(&pi);503 | ^~~~~~~~~~~~~~~~~~~~~~~~504 | snd_ctl_card_info_alloca505c_src/minimidio.h:1534:5: error: implicit declaration of function 'snd_seq_client_info_set_client' [-Wimplicit-function-declaration]506 1534 | snd_seq_client_info_set_client(ci, -1);507 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~508c_src/minimidio.h:1535:12: error: implicit declaration of function 'snd_seq_query_next_client' [-Wimplicit-function-declaration]509 1535 | while (snd_seq_query_next_client(al->seq, ci) >= 0) {510 | ^~~~~~~~~~~~~~~~~~~~~~~~~511c_src/minimidio.h:1536:19: error: implicit declaration of function 'snd_seq_client_info_get_client'; did you mean 'snd_ctl_elem_info_get_count'? [-Wimplicit-function-declaration]512 1536 | int cid = snd_seq_client_info_get_client(ci);513 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~514 | snd_ctl_elem_info_get_count515c_src/minimidio.h:1538:9: error: implicit declaration of function 'snd_seq_port_info_set_client' [-Wimplicit-function-declaration]516 1538 | snd_seq_port_info_set_client(pi, cid);517 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~518c_src/minimidio.h:1539:9: error: implicit declaration of function 'snd_seq_port_info_set_port' [-Wimplicit-function-declaration]519 1539 | snd_seq_port_info_set_port(pi, -1);520 | ^~~~~~~~~~~~~~~~~~~~~~~~~~521c_src/minimidio.h:1540:16: error: implicit declaration of function 'snd_seq_query_next_port' [-Wimplicit-function-declaration]522 1540 | while (snd_seq_query_next_port(al->seq, pi) >= 0) {523 | ^~~~~~~~~~~~~~~~~~~~~~~524c_src/minimidio.h:1541:32: error: implicit declaration of function 'snd_seq_port_info_get_capability' [-Wimplicit-function-declaration]525 1541 | unsigned int cap = snd_seq_port_info_get_capability(pi);526 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~527c_src/minimidio.h:1546:25: error: implicit declaration of function 'snd_seq_port_info_get_port' [-Wimplicit-function-declaration]528 1546 | p->port = snd_seq_port_info_get_port(pi);529 | ^~~~~~~~~~~~~~~~~~~~~~~~~~530c_src/minimidio.h:1548:22: error: implicit declaration of function 'snd_seq_client_info_get_name'; did you mean 'snd_ctl_elem_info_get_name'? [-Wimplicit-function-declaration]531 1548 | snd_seq_client_info_get_name(ci),532 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~533 | snd_ctl_elem_info_get_name534c_src/minimidio.h:1549:22: error: implicit declaration of function 'snd_seq_port_info_get_name'; did you mean 'snd_ctl_card_info_get_name'? [-Wimplicit-function-declaration]535 1549 | snd_seq_port_info_get_name(pi), cid, p->port);536 | ^~~~~~~~~~~~~~~~~~~~~~~~~~537 | snd_ctl_card_info_get_name538c_src/minimidio.h: In function 'mm_in_count':539c_src/minimidio.h:1559:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)540 1559 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,541 | ^~~~~~~~~~~~~~~~~~~~~542c_src/minimidio.h:1559:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)543 1559 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,544 | ^~~~~~~~~~~~~~~~~~~~~~~~~~545c_src/minimidio.h: In function 'mm_out_count':546c_src/minimidio.h:1567:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)547 1567 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);548 | ^~~~~~~~~~~~~~~~~~~~~~549c_src/minimidio.h:1567:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)550 1567 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);551 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~552c_src/minimidio.h: In function 'mm_in_name':553c_src/minimidio.h:1574:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)554 1574 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,555 | ^~~~~~~~~~~~~~~~~~~~~556c_src/minimidio.h:1574:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)557 1574 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,558 | ^~~~~~~~~~~~~~~~~~~~~~~~~~559c_src/minimidio.h: In function 'mm_out_name':560c_src/minimidio.h:1583:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)561 1583 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);562 | ^~~~~~~~~~~~~~~~~~~~~~563c_src/minimidio.h:1583:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)564 1583 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);565 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~566c_src/minimidio.h: In function 'mm__alsa_recv_thread':567c_src/minimidio.h:1597:17: error: implicit declaration of function 'snd_seq_poll_descriptors_count'; did you mean 'snd_ctl_poll_descriptors_count'? [-Wimplicit-function-declaration]568 1597 | int nalsa = snd_seq_poll_descriptors_count(al->seq, POLLIN);569 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~570 | snd_ctl_poll_descriptors_count571c_src/minimidio.h:1603:5: error: implicit declaration of function 'snd_seq_poll_descriptors'; did you mean 'snd_ctl_poll_descriptors'? [-Wimplicit-function-declaration]572 1603 | snd_seq_poll_descriptors(al->seq, pfds, (unsigned)nalsa, POLLIN);573 | ^~~~~~~~~~~~~~~~~~~~~~~~574 | snd_ctl_poll_descriptors575c_src/minimidio.h:1619:16: error: implicit declaration of function 'snd_seq_event_input_pending' [-Wimplicit-function-declaration]576 1619 | while (snd_seq_event_input_pending(al->seq, 1) > 0) {577 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~578c_src/minimidio.h:1654:17: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?579 1654 | snd_seq_event_t* ev = NULL;580 | ^~~~~~~~~~~~~~~581 | snd_ctl_event_t582c_src/minimidio.h:1655:26: error: implicit declaration of function 'snd_seq_event_input' [-Wimplicit-function-declaration]583 1655 | int rc = snd_seq_event_input(al->seq, &ev);584 | ^~~~~~~~~~~~~~~~~~~585c_src/minimidio.h:1662:23: error: request for member 'type' in something not a structure or union586 1662 | if (ev->type == SND_SEQ_EVENT_SYSEX) {587 | ^~588c_src/minimidio.h:1662:33: error: 'SND_SEQ_EVENT_SYSEX' undeclared (first use in this function)589 1662 | if (ev->type == SND_SEQ_EVENT_SYSEX) {590 | ^~~~~~~~~~~~~~~~~~~591c_src/minimidio.h:1663:46: error: request for member 'data' in something not a structure or union592 1663 | uint8_t* d = (uint8_t*)ev->data.ext.ptr;593 | ^~594c_src/minimidio.h:1664:36: error: request for member 'data' in something not a structure or union595 1664 | size_t n = ev->data.ext.len;596 | ^~597c_src/minimidio.h:1678:30: error: implicit declaration of function 'snd_midi_event_decode' [-Wimplicit-function-declaration]598 1678 | long n = snd_midi_event_decode(da->midi_ev, buf,599 | ^~~~~~~~~~~~~~~~~~~~~600c_src/minimidio.h:1687:13: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?601 1687 | snd_seq_event_t* ev = NULL;602 | ^~~~~~~~~~~~~~~603 | snd_ctl_event_t604c_src/minimidio.h:1696:23: error: request for member 'type' in something not a structure or union605 1696 | switch (ev->type) {606 | ^~607c_src/minimidio.h:1698:22: error: 'SND_SEQ_EVENT_NOTEON' undeclared (first use in this function)608 1698 | case SND_SEQ_EVENT_NOTEON:609 | ^~~~~~~~~~~~~~~~~~~~610c_src/minimidio.h:1699:38: error: request for member 'data' in something not a structure or union611 1699 | msg.type = (ev->data.note.velocity > 0) ? MM_NOTE_ON : MM_NOTE_OFF;612 | ^~613c_src/minimidio.h:1700:37: error: request for member 'data' in something not a structure or union614 1700 | msg.channel = ev->data.note.channel;615 | ^~616c_src/minimidio.h:1701:37: error: request for member 'data' in something not a structure or union617 1701 | msg.data[0] = ev->data.note.note;618 | ^~619c_src/minimidio.h:1702:37: error: request for member 'data' in something not a structure or union620 1702 | msg.data[1] = ev->data.note.velocity;621 | ^~622c_src/minimidio.h:1705:22: error: 'SND_SEQ_EVENT_NOTEOFF' undeclared (first use in this function)623 1705 | case SND_SEQ_EVENT_NOTEOFF:624 | ^~~~~~~~~~~~~~~~~~~~~625c_src/minimidio.h:1706:57: error: request for member 'data' in something not a structure or union626 1706 | msg.type=MM_NOTE_OFF; msg.channel=ev->data.note.channel;627 | ^~628c_src/minimidio.h:1707:35: error: request for member 'data' in something not a structure or union629 1707 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;630 | ^~631c_src/minimidio.h:1707:67: error: request for member 'data' in something not a structure or union632 1707 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;633 | ^~634c_src/minimidio.h:1710:22: error: 'SND_SEQ_EVENT_KEYPRESS' undeclared (first use in this function)635 1710 | case SND_SEQ_EVENT_KEYPRESS:636 | ^~~~~~~~~~~~~~~~~~~~~~637c_src/minimidio.h:1711:62: error: request for member 'data' in something not a structure or union638 1711 | msg.type=MM_POLY_PRESSURE; msg.channel=ev->data.note.channel;639 | ^~640c_src/minimidio.h:1712:35: error: request for member 'data' in something not a structure or union641 1712 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;642 | ^~643c_src/minimidio.h:1712:67: error: request for member 'data' in something not a structure or union644 1712 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;645 | ^~646c_src/minimidio.h:1715:22: error: 'SND_SEQ_EVENT_CONTROLLER' undeclared (first use in this function)647 1715 | case SND_SEQ_EVENT_CONTROLLER:648 | ^~~~~~~~~~~~~~~~~~~~~~~~649c_src/minimidio.h:1716:63: error: request for member 'data' in something not a structure or union650 1716 | msg.type=MM_CONTROL_CHANGE; msg.channel=ev->data.control.channel;651 | ^~652c_src/minimidio.h:1717:44: error: request for member 'data' in something not a structure or union653 1717 | msg.data[0]=(uint8_t)ev->data.control.param;654 | ^~655c_src/minimidio.h:1718:44: error: request for member 'data' in something not a structure or union656 1718 | msg.data[1]=(uint8_t)ev->data.control.value;657 | ^~658c_src/minimidio.h:1721:22: error: 'SND_SEQ_EVENT_PGMCHANGE' undeclared (first use in this function)659 1721 | case SND_SEQ_EVENT_PGMCHANGE:660 | ^~~~~~~~~~~~~~~~~~~~~~~661c_src/minimidio.h:1722:63: error: request for member 'data' in something not a structure or union662 1722 | msg.type=MM_PROGRAM_CHANGE; msg.channel=ev->data.control.channel;663 | ^~664c_src/minimidio.h:1723:44: error: request for member 'data' in something not a structure or union665 1723 | msg.data[0]=(uint8_t)ev->data.control.value;666 | ^~667c_src/minimidio.h:1726:22: error: 'SND_SEQ_EVENT_CHANPRESS' undeclared (first use in this function)668 1726 | case SND_SEQ_EVENT_CHANPRESS:669 | ^~~~~~~~~~~~~~~~~~~~~~~670c_src/minimidio.h:1727:65: error: request for member 'data' in something not a structure or union671 1727 | msg.type=MM_CHANNEL_PRESSURE; msg.channel=ev->data.control.channel;672 | ^~673c_src/minimidio.h:1728:44: error: request for member 'data' in something not a structure or union674 1728 | msg.data[0]=(uint8_t)ev->data.control.value;675 | ^~676c_src/minimidio.h:1731:22: error: 'SND_SEQ_EVENT_PITCHBEND' undeclared (first use in this function)677 1731 | case SND_SEQ_EVENT_PITCHBEND: {678 | ^~~~~~~~~~~~~~~~~~~~~~~679c_src/minimidio.h:1732:30: error: request for member 'data' in something not a structure or union680 1732 | int pb=ev->data.control.value+8192;681 | ^~682c_src/minimidio.h:1733:59: error: request for member 'data' in something not a structure or union683 1733 | msg.type=MM_PITCH_BEND; msg.channel=ev->data.control.channel;684 | ^~685c_src/minimidio.h:1739:22: error: 'SND_SEQ_EVENT_CLOCK' undeclared (first use in this function)686 1739 | case SND_SEQ_EVENT_CLOCK:687 | ^~~~~~~~~~~~~~~~~~~688c_src/minimidio.h:1741:22: error: 'SND_SEQ_EVENT_START' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_START'?689 1741 | case SND_SEQ_EVENT_START:690 | ^~~~~~~~~~~~~~~~~~~691 | SND_TIMER_EVENT_START692c_src/minimidio.h:1743:22: error: 'SND_SEQ_EVENT_CONTINUE' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_CONTINUE'?693 1743 | case SND_SEQ_EVENT_CONTINUE:694 | ^~~~~~~~~~~~~~~~~~~~~~695 | SND_TIMER_EVENT_CONTINUE696c_src/minimidio.h:1745:22: error: 'SND_SEQ_EVENT_STOP' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_STOP'?697 1745 | case SND_SEQ_EVENT_STOP:698 | ^~~~~~~~~~~~~~~~~~699 | SND_TIMER_EVENT_STOP700c_src/minimidio.h:1749:22: error: 'SND_SEQ_EVENT_SONGPOS' undeclared (first use in this function)701 1749 | case SND_SEQ_EVENT_SONGPOS: {702 | ^~~~~~~~~~~~~~~~~~~~~703c_src/minimidio.h:1750:46: error: request for member 'data' in something not a structure or union704 1750 | uint16_t pos=(uint16_t)ev->data.control.value;705 | ^~706c_src/minimidio.h:1758:22: error: 'SND_SEQ_EVENT_QFRAME' undeclared (first use in this function)707 1758 | case SND_SEQ_EVENT_QFRAME:708 | ^~~~~~~~~~~~~~~~~~~~709c_src/minimidio.h:1760:44: error: request for member 'data' in something not a structure or union710 1760 | msg.data[0]=(uint8_t)ev->data.control.value;711 | ^~712c_src/minimidio.h:1764:22: error: 'SND_SEQ_EVENT_SONGSEL' undeclared (first use in this function)713 1764 | case SND_SEQ_EVENT_SONGSEL:714 | ^~~~~~~~~~~~~~~~~~~~~715c_src/minimidio.h:1766:44: error: request for member 'data' in something not a structure or union716 1766 | msg.data[0]=(uint8_t)ev->data.control.value;717 | ^~718c_src/minimidio.h:1770:22: error: 'SND_SEQ_EVENT_SENSING' undeclared (first use in this function)719 1770 | case SND_SEQ_EVENT_SENSING:720 | ^~~~~~~~~~~~~~~~~~~~~721c_src/minimidio.h:1775:22: error: 'SND_SEQ_EVENT_TUNE_REQUEST' undeclared (first use in this function)722 1775 | case SND_SEQ_EVENT_TUNE_REQUEST:723 | ^~~~~~~~~~~~~~~~~~~~~~~~~~724c_src/minimidio.h:1780:22: error: 'SND_SEQ_EVENT_RESET' undeclared (first use in this function); did you mean 'SND_CTL_EVENT_LAST'?725 1780 | case SND_SEQ_EVENT_RESET:726 | ^~~~~~~~~~~~~~~~~~~727 | SND_CTL_EVENT_LAST728c_src/minimidio.h:1786:44: error: request for member 'data' in something not a structure or union729 1786 | uint8_t* d=(uint8_t*)ev->data.ext.ptr;730 | ^~731c_src/minimidio.h:1787:34: error: request for member 'data' in something not a structure or union732 1787 | size_t n=ev->data.ext.len;733 | ^~734c_src/minimidio.h: In function 'mm_in_open':735c_src/minimidio.h:1819:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)736 1819 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,737 | ^~~~~~~~~~~~~~~~~~~~~738c_src/minimidio.h:1819:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)739 1819 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,740 | ^~~~~~~~~~~~~~~~~~~~~~~~~~741c_src/minimidio.h:1831:23: error: implicit declaration of function 'snd_seq_create_simple_port' [-Wimplicit-function-declaration]742 1831 | dev->al.port_id = snd_seq_create_simple_port(ctx->al.seq, portname,743 | ^~~~~~~~~~~~~~~~~~~~~~~~~~744c_src/minimidio.h:1832:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)745 1832 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,746 | ^~~~~~~~~~~~~~~~~~~~~~747c_src/minimidio.h:1832:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)748 1832 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,749 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~750c_src/minimidio.h:1833:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)751 1833 | SND_SEQ_PORT_TYPE_APPLICATION);752 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~753c_src/minimidio.h: In function 'mm_in_open_raw':754c_src/minimidio.h:1887:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)755 1887 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,756 | ^~~~~~~~~~~~~~~~~~~~~757c_src/minimidio.h:1887:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)758 1887 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,759 | ^~~~~~~~~~~~~~~~~~~~~~~~~~760c_src/minimidio.h:1896:9: error: implicit declaration of function 'snd_midi_event_new'; did you mean 'snd_mixer_elem_new'? [-Wimplicit-function-declaration]761 1896 | if (snd_midi_event_new(MM_SYSEX_BUF_SIZE, &dev->al.midi_ev) < 0)762 | ^~~~~~~~~~~~~~~~~~763 | snd_mixer_elem_new764c_src/minimidio.h:1898:5: error: implicit declaration of function 'snd_midi_event_no_status' [-Wimplicit-function-declaration]765 1898 | snd_midi_event_no_status(dev->al.midi_ev, 1);766 | ^~~~~~~~~~~~~~~~~~~~~~~~767c_src/minimidio.h:1901:9: error: implicit declaration of function 'snd_midi_event_free'; did you mean 'snd_ctl_event_free'? [-Wimplicit-function-declaration]768 1901 | snd_midi_event_free(dev->al.midi_ev); dev->al.midi_ev=NULL; return MM_ERROR;769 | ^~~~~~~~~~~~~~~~~~~770 | snd_ctl_event_free771c_src/minimidio.h:1906:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)772 1906 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,773 | ^~~~~~~~~~~~~~~~~~~~~~774c_src/minimidio.h:1906:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)775 1906 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,776 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~777c_src/minimidio.h:1907:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)778 1907 | SND_SEQ_PORT_TYPE_APPLICATION);779 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~780c_src/minimidio.h: In function 'mm_in_open_virtual_raw':781c_src/minimidio.h:1932:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)782 1932 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,783 | ^~~~~~~~~~~~~~~~~~~~~~784c_src/minimidio.h:1932:34: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)785 1932 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,786 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~787c_src/minimidio.h:1933:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)788 1933 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);789 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~790c_src/minimidio.h:1933:41: error: 'SND_SEQ_PORT_TYPE_MIDI_GENERIC' undeclared (first use in this function)791 1933 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);792 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~793c_src/minimidio.h: In function 'mm_in_start':794c_src/minimidio.h:1946:9: error: implicit declaration of function 'snd_seq_connect_from'; did you mean 'snd_ctl_convert_from_dB'? [-Wimplicit-function-declaration]795 1946 | snd_seq_connect_from(al->seq, dev->al.port_id,796 | ^~~~~~~~~~~~~~~~~~~~797 | snd_ctl_convert_from_dB798c_src/minimidio.h:1954:13: error: implicit declaration of function 'snd_seq_disconnect_from' [-Wimplicit-function-declaration]799 1954 | snd_seq_disconnect_from(al->seq, dev->al.port_id,800 | ^~~~~~~~~~~~~~~~~~~~~~~801c_src/minimidio.h: In function 'mm_in_close':802c_src/minimidio.h:1982:5: error: implicit declaration of function 'snd_seq_delete_port' [-Wimplicit-function-declaration]803 1982 | snd_seq_delete_port(dev->ctx->al.seq, dev->al.port_id);804 | ^~~~~~~~~~~~~~~~~~~805c_src/minimidio.h: In function 'mm_out_open':806c_src/minimidio.h:1991:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)807 1991 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);808 | ^~~~~~~~~~~~~~~~~~~~~~809c_src/minimidio.h:1991:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)810 1991 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);811 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~812c_src/minimidio.h:1998:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)813 1998 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,814 | ^~~~~~~~~~~~~~~~~~~~~815c_src/minimidio.h:1998:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)816 1998 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,817 | ^~~~~~~~~~~~~~~~~~~~~~~~~~818c_src/minimidio.h:1999:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)819 1999 | SND_SEQ_PORT_TYPE_APPLICATION);820 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~821c_src/minimidio.h:2001:5: error: implicit declaration of function 'snd_seq_connect_to' [-Wimplicit-function-declaration]822 2001 | snd_seq_connect_to(ctx->al.seq, dev->al.port_id,823 | ^~~~~~~~~~~~~~~~~~824c_src/minimidio.h: At top level:825c_src/minimidio.h:2008:46: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?826 2008 | static void mm__alsa_send_ev(mm_device* dev, snd_seq_event_t* ev) {827 | ^~~~~~~~~~~~~~~828 | snd_ctl_event_t829c_src/minimidio.h: In function 'mm_out_send_raw':830c_src/minimidio.h:2028:5: error: implicit declaration of function 'snd_midi_event_reset_encode' [-Wimplicit-function-declaration]831 2028 | snd_midi_event_reset_encode(dev->al.midi_ev);832 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~833c_src/minimidio.h:2031:9: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?834 2031 | snd_seq_event_t ev; memset(&ev,0,sizeof(ev));835 | ^~~~~~~~~~~~~~~836 | snd_ctl_event_t837c_src/minimidio.h:2032:21: error: implicit declaration of function 'snd_midi_event_encode' [-Wimplicit-function-declaration]838 2032 | long used = snd_midi_event_encode(dev->al.midi_ev, data+off,839 | ^~~~~~~~~~~~~~~~~~~~~840c_src/minimidio.h:2036:15: error: request for member 'type' in something not a structure or union841 2036 | if (ev.type != SND_SEQ_EVENT_NONE)842 | ^843c_src/minimidio.h:2036:24: error: 'SND_SEQ_EVENT_NONE' undeclared (first use in this function)844 2036 | if (ev.type != SND_SEQ_EVENT_NONE)845 | ^~~~~~~~~~~~~~~~~~846c_src/minimidio.h:2037:13: error: implicit declaration of function 'mm__alsa_send_ev'; did you mean 'mm__alsa_enum'? [-Wimplicit-function-declaration]847 2037 | mm__alsa_send_ev(dev, &ev);848 | ^~~~~~~~~~~~~~~~849 | mm__alsa_enum850c_src/minimidio.h: In function 'mm_out_send':851c_src/minimidio.h:2045:5: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?852 2045 | snd_seq_event_t ev; memset(&ev,0,sizeof(ev));853 | ^~~~~~~~~~~~~~~854 | snd_ctl_event_t855c_src/minimidio.h:2048:13: error: implicit declaration of function 'snd_seq_ev_set_noteon' [-Wimplicit-function-declaration]856 2048 | snd_seq_ev_set_noteon(&ev,msg->channel,msg->data[0],msg->data[1]); break;857 | ^~~~~~~~~~~~~~~~~~~~~858c_src/minimidio.h:2050:13: error: implicit declaration of function 'snd_seq_ev_set_noteoff' [-Wimplicit-function-declaration]859 2050 | snd_seq_ev_set_noteoff(&ev,msg->channel,msg->data[0],msg->data[1]); break;860 | ^~~~~~~~~~~~~~~~~~~~~~861c_src/minimidio.h:2052:13: error: implicit declaration of function 'snd_seq_ev_set_controller' [-Wimplicit-function-declaration]862 2052 | snd_seq_ev_set_controller(&ev,msg->channel,msg->data[0],msg->data[1]); break;863 | ^~~~~~~~~~~~~~~~~~~~~~~~~864c_src/minimidio.h:2054:13: error: implicit declaration of function 'snd_seq_ev_set_keypress' [-Wimplicit-function-declaration]865 2054 | snd_seq_ev_set_keypress(&ev,msg->channel,msg->data[0],msg->data[1]); break;866 | ^~~~~~~~~~~~~~~~~~~~~~~867c_src/minimidio.h:2056:13: error: implicit declaration of function 'snd_seq_ev_set_chanpress' [-Wimplicit-function-declaration]868 2056 | snd_seq_ev_set_chanpress(&ev,msg->channel,msg->data[0]); break;869 | ^~~~~~~~~~~~~~~~~~~~~~~~870c_src/minimidio.h:2059:13: error: implicit declaration of function 'snd_seq_ev_set_pitchbend' [-Wimplicit-function-declaration]871 2059 | snd_seq_ev_set_pitchbend(&ev,msg->channel,pb-8192); break;872 | ^~~~~~~~~~~~~~~~~~~~~~~~873c_src/minimidio.h:2062:13: error: implicit declaration of function 'snd_seq_ev_set_pgmchange' [-Wimplicit-function-declaration]874 2062 | snd_seq_ev_set_pgmchange(&ev,msg->channel,msg->data[0]); break;875 | ^~~~~~~~~~~~~~~~~~~~~~~~876c_src/minimidio.h:2063:29: error: request for member 'type' in something not a structure or union877 2063 | case MM_CLOCK: ev.type=SND_SEQ_EVENT_CLOCK; break;878 | ^879c_src/minimidio.h:2063:35: error: 'SND_SEQ_EVENT_CLOCK' undeclared (first use in this function)880 2063 | case MM_CLOCK: ev.type=SND_SEQ_EVENT_CLOCK; break;881 | ^~~~~~~~~~~~~~~~~~~882c_src/minimidio.h:2064:29: error: request for member 'type' in something not a structure or union883 2064 | case MM_START: ev.type=SND_SEQ_EVENT_START; break;884 | ^885c_src/minimidio.h:2064:35: error: 'SND_SEQ_EVENT_START' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_START'?886 2064 | case MM_START: ev.type=SND_SEQ_EVENT_START; break;887 | ^~~~~~~~~~~~~~~~~~~888 | SND_TIMER_EVENT_START889c_src/minimidio.h:2065:29: error: request for member 'type' in something not a structure or union890 2065 | case MM_CONTINUE: ev.type=SND_SEQ_EVENT_CONTINUE; break;891 | ^892c_src/minimidio.h:2065:35: error: 'SND_SEQ_EVENT_CONTINUE' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_CONTINUE'?893 2065 | case MM_CONTINUE: ev.type=SND_SEQ_EVENT_CONTINUE; break;894 | ^~~~~~~~~~~~~~~~~~~~~~895 | SND_TIMER_EVENT_CONTINUE896c_src/minimidio.h:2066:29: error: request for member 'type' in something not a structure or union897 2066 | case MM_STOP: ev.type=SND_SEQ_EVENT_STOP; break;898 | ^899c_src/minimidio.h:2066:35: error: 'SND_SEQ_EVENT_STOP' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_STOP'?900 2066 | case MM_STOP: ev.type=SND_SEQ_EVENT_STOP; break;901 | ^~~~~~~~~~~~~~~~~~902 | SND_TIMER_EVENT_STOP903c_src/minimidio.h:2068:15: error: request for member 'type' in something not a structure or union904 2068 | ev.type=SND_SEQ_EVENT_SONGPOS;905 | ^906c_src/minimidio.h:2068:21: error: 'SND_SEQ_EVENT_SONGPOS' undeclared (first use in this function)907 2068 | ev.type=SND_SEQ_EVENT_SONGPOS;908 | ^~~~~~~~~~~~~~~~~~~~~909c_src/minimidio.h:2069:15: error: request for member 'data' in something not a structure or union910 2069 | ev.data.control.value=msg->song_position; break;911 | ^912c_src/minimidio.h:2071:15: error: request for member 'type' in something not a structure or union913 2071 | ev.type=SND_SEQ_EVENT_QFRAME;914 | ^915c_src/minimidio.h:2071:21: error: 'SND_SEQ_EVENT_QFRAME' undeclared (first use in this function)916 2071 | ev.type=SND_SEQ_EVENT_QFRAME;917 | ^~~~~~~~~~~~~~~~~~~~918c_src/minimidio.h:2072:15: error: request for member 'data' in something not a structure or union919 2072 | ev.data.control.value=msg->data[0]; break;920 | ^921c_src/minimidio.h:2074:15: error: request for member 'type' in something not a structure or union922 2074 | ev.type=SND_SEQ_EVENT_SONGSEL;923 | ^924c_src/minimidio.h:2074:21: error: 'SND_SEQ_EVENT_SONGSEL' undeclared (first use in this function)925 2074 | ev.type=SND_SEQ_EVENT_SONGSEL;926 | ^~~~~~~~~~~~~~~~~~~~~927c_src/minimidio.h:2075:15: error: request for member 'data' in something not a structure or union928 2075 | ev.data.control.value=msg->data[0]; break;929 | ^930c_src/minimidio.h:2076:34: error: request for member 'type' in something not a structure or union931 2076 | case MM_TUNE_REQUEST: ev.type=SND_SEQ_EVENT_TUNE_REQUEST; break;932 | ^933c_src/minimidio.h:2076:40: error: 'SND_SEQ_EVENT_TUNE_REQUEST' undeclared (first use in this function)934 2076 | case MM_TUNE_REQUEST: ev.type=SND_SEQ_EVENT_TUNE_REQUEST; break;935 | ^~~~~~~~~~~~~~~~~~~~~~~~~~936c_src/minimidio.h:2077:34: error: request for member 'type' in something not a structure or union937 2077 | case MM_ACTIVE_SENSE: ev.type=SND_SEQ_EVENT_SENSING; break;938 | ^939c_src/minimidio.h:2077:40: error: 'SND_SEQ_EVENT_SENSING' undeclared (first use in this function)940 2077 | case MM_ACTIVE_SENSE: ev.type=SND_SEQ_EVENT_SENSING; break;941 | ^~~~~~~~~~~~~~~~~~~~~942c_src/minimidio.h:2078:34: error: request for member 'type' in something not a structure or union943 2078 | case MM_RESET: ev.type=SND_SEQ_EVENT_RESET; break;944 | ^945c_src/minimidio.h:2078:40: error: 'SND_SEQ_EVENT_RESET' undeclared (first use in this function); did you mean 'SND_CTL_EVENT_LAST'?946 2078 | case MM_RESET: ev.type=SND_SEQ_EVENT_RESET; break;947 | ^~~~~~~~~~~~~~~~~~~948 | SND_CTL_EVENT_LAST949c_src/minimidio.h: In function 'mm_out_send_sysex':950c_src/minimidio.h:2115:5: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?951 2115 | snd_seq_event_t ev; memset(&ev,0,sizeof(ev));952 | ^~~~~~~~~~~~~~~953 | snd_ctl_event_t954c_src/minimidio.h:2116:7: error: request for member 'type' in something not a structure or union955 2116 | ev.type=SND_SEQ_EVENT_SYSEX;956 | ^957c_src/minimidio.h:2116:13: error: 'SND_SEQ_EVENT_SYSEX' undeclared (first use in this function)958 2116 | ev.type=SND_SEQ_EVENT_SYSEX;959 | ^~~~~~~~~~~~~~~~~~~960c_src/minimidio.h:2117:7: error: request for member 'data' in something not a structure or union961 2117 | ev.data.ext.len=(unsigned int)size;962 | ^963c_src/minimidio.h:2118:7: error: request for member 'data' in something not a structure or union964 2118 | ev.data.ext.ptr=dev->al.sysex_buf;965 | ^966c_src/minimidio.h:2119:7: error: request for member 'flags' in something not a structure or union967 2119 | ev.flags=SND_SEQ_EVENT_LENGTH_VARIABLE;968 | ^969c_src/minimidio.h:2119:14: error: 'SND_SEQ_EVENT_LENGTH_VARIABLE' undeclared (first use in this function)970 2119 | ev.flags=SND_SEQ_EVENT_LENGTH_VARIABLE;971 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~972c_src/minimidio.h: In function 'mm_out_close':973c_src/minimidio.h:2127:9: error: implicit declaration of function 'snd_seq_disconnect_to' [-Wimplicit-function-declaration]974 2127 | snd_seq_disconnect_to(al->seq,dev->al.port_id,975 | ^~~~~~~~~~~~~~~~~~~~~976c_src/minimidio.h: In function 'mm_in_open_virtual':977c_src/minimidio.h:2160:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)978 2160 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,979 | ^~~~~~~~~~~~~~~~~~~~~~980c_src/minimidio.h:2160:34: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)981 2160 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,982 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~983c_src/minimidio.h:2161:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)984 2161 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);985 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~986c_src/minimidio.h:2161:41: error: 'SND_SEQ_PORT_TYPE_MIDI_GENERIC' undeclared (first use in this function)987 2161 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);988 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~989c_src/minimidio.h: In function 'mm_out_open_virtual':990c_src/minimidio.h:2180:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)991 2180 | SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ,992 | ^~~~~~~~~~~~~~~~~~~~~993c_src/minimidio.h:2180:33: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)994 2180 | SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ,995 | ^~~~~~~~~~~~~~~~~~~~~~~~~~996c_src/minimidio.h:2181:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)997 2181 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);998 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~999c_src/minimidio.h:2181:41: error: 'SND_SEQ_PORT_TYPE_MIDI_GENERIC' undeclared (first use in this function)1000 2181 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);1001 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1002make: *** [Makefile:24: priv/tuning_fork_midi_nif.so] Error 11003could not compile dependency :tuning_fork_midi, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile tuning_fork_midi --force", update it with "mix deps.update tuning_fork_midi" or clean it with "mix deps.clean tuning_fork_midi"1004==> nerves_compatibility_test1005** (Mix) Could not compile with "make" (exit status: 2).1006tuning_fork_midi's MIDI ports did not build.10071008This package is only the ports. tuning_fork itself is pure Elixir and needs none of it:1009drop this dependency and everything but playing to and reading from a MIDI device still1010works, including writing a .mid file with TuningFork.Midi.write!/3.10111012Building it needs a C compiler, and on Linux the ALSA headers (libasound2-dev).1013