Build log
nerves_system_rpi4
tuning_fork_drafter 0.1.11 · fail · run tuning_fork_drafter-0.1.11-1791145837646
1236 of 1236 lines
1Resolving Hex dependencies...2Resolution completed in 0.162s3Unchanged:4 circular_buffer 1.1.05 drafter 0.4.06 elixir_make 0.10.07 french_curve 0.1.48 interactive_cmd 0.1.49 nerves 2.0.0-pre.210 nerves_discovery 0.1.511 nerves_logging 0.2.412 nerves_runtime 0.13.1313 nerves_system_bbb 2.30.214 nerves_system_br 1.34.415 nerves_system_mangopi_mq_pro 0.17.216 nerves_system_qemu_aarch64 0.4.217 nerves_system_rpi0 2.1.218 nerves_system_rpi4 2.1.219 nerves_system_rpi5 2.1.220 nerves_system_trellis 0.5.021 nerves_system_x86_64 1.34.222 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.123 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.124 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.125 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.126 nerves_toolchain_x86_64_nerves_linux_musl 15.3.127 nerves_uevent 0.1.728 phoenix_pubsub 2.3.029 property_table 0.3.430 ring_logger 0.11.731 spark 2.7.632 tablet 0.3.333 toolshed 0.5.034 tuning_fork 0.1.1135 tuning_fork_composer 0.1.1136 tuning_fork_drafter 0.1.1137 tuning_fork_midi 0.1.1138 uboot_env 1.0.239* Getting tuning_fork_drafter (Hex package)40* Getting nerves (Hex package)41* Getting ring_logger (Hex package)42* Getting toolshed (Hex package)43* Getting nerves_runtime (Hex package)44* Getting nerves_system_bbb (Hex package)45* Getting nerves_system_mangopi_mq_pro (Hex package)46* Getting nerves_system_qemu_aarch64 (Hex package)47* Getting nerves_system_rpi0 (Hex package)48* Getting nerves_system_rpi4 (Hex package)49* Getting nerves_system_rpi5 (Hex package)50* Getting nerves_system_trellis (Hex package)51* Getting nerves_system_x86_64 (Hex package)52* Getting nerves_system_br (Hex package)53* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)54* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)55* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)56* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)57* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)58* Getting nerves_logging (Hex package)59* Getting nerves_uevent (Hex package)60* Getting uboot_env (Hex package)61* Getting elixir_make (Hex package)62* Getting property_table (Hex package)63* Getting circular_buffer (Hex package)64* Getting interactive_cmd (Hex package)65* Getting nerves_discovery (Hex package)66* Getting tablet (Hex package)67* Getting drafter (Hex package)68* Getting french_curve (Hex package)69* Getting tuning_fork (Hex package)70* Getting tuning_fork_composer (Hex package)71* Getting tuning_fork_midi (Hex package)72* Getting phoenix_pubsub (Hex package)73* Getting spark (Hex package)74==> nerves_system_br75Generated nerves_system_br app76==> circular_buffer77Compiling 1 file (.ex)78Generated circular_buffer app79==> spark80Compiling 46 files (.ex)81Generated spark app82==> tablet83Compiling 2 files (.ex)84Generated tablet app85==> elixir_make86Compiling 8 files (.ex)87Generated elixir_make app88==> nerves_logging89 CC kmsg_tailer.o90 LD kmsg_tailer91Compiling 5 files (.ex)92Generated nerves_logging app93==> nerves_discovery94Compiling 5 files (.ex)95Generated nerves_discovery app96==> ring_logger97Compiling 7 files (.ex)98Generated ring_logger app99==> interactive_cmd100Compiling 1 file (.ex)101Generated interactive_cmd app102==> nerves103Compiling 65 files (.ex)104 warning: redefining module Mix.Tasks.Nerves.Init (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Mix.Tasks.Nerves.Init.beam)105 │106 6 │ defmodule Mix.Tasks.Nerves.Init do107 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~108 │109 └─ lib/mix/tasks/nerves.init.ex:6: Mix.Tasks.Nerves.Init (module)110111 warning: redefining module Nerves (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.beam)112 │113 6 │ defmodule Nerves do114 │ ~~~~~~~~~~~~~~~~~~~115 │116 └─ lib/nerves.ex:6: Nerves (module)117118 warning: redefining module Nerves.ArtifactResolver (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.ArtifactResolver.beam)119 │120 5 │ defmodule Nerves.ArtifactResolver do121 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~122 │123 └─ lib/nerves/artifact_resolver.ex:5: Nerves.ArtifactResolver (module)124125 warning: redefining module Nerves.BuildAction.AppModes (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.AppModes.beam)126 │127 6 │ defmodule Nerves.BuildAction.AppModes do128 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~129 │130 └─ lib/nerves/build_action/app_modes.ex:6: Nerves.BuildAction.AppModes (module)131132 warning: redefining module Nerves.BuildAction.CheckExecutables (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.CheckExecutables.beam)133 │134 5 │ defmodule Nerves.BuildAction.CheckExecutables do135 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~136 │137 └─ lib/nerves/build_action/check_executables.ex:5: Nerves.BuildAction.CheckExecutables (module)138139 warning: redefining module Nerves.BuildAction.Erlinit (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Erlinit.beam)140 │141 8 │ defmodule Nerves.BuildAction.Erlinit do142 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~143 │144 └─ lib/nerves/build_action/erlinit.ex:8: Nerves.BuildAction.Erlinit (module)145146 warning: redefining module Nerves.BuildAction.Firmware (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Firmware.beam)147 │148 5 │ defmodule Nerves.BuildAction.Firmware do149 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~150 │151 └─ lib/nerves/build_action/firmware.ex:5: Nerves.BuildAction.Firmware (module)152153 warning: redefining module Nerves.BuildAction.IExStartupCheck (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.IExStartupCheck.beam)154 │155 7 │ defmodule Nerves.BuildAction.IExStartupCheck do156 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~157 │158 └─ lib/nerves/build_action/iex_startup_check.ex:7: Nerves.BuildAction.IExStartupCheck (module)159160 warning: redefining module Nerves.BuildAction.NervesV1System (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1System.beam)161 │162 5 │ defmodule Nerves.BuildAction.NervesV1System do163 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~164 │165 └─ lib/nerves/build_action/nerves_v1_system.ex:5: Nerves.BuildAction.NervesV1System (module)166167 warning: redefining module Nerves.BuildAction.NervesV1Toolchain (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.NervesV1Toolchain.beam)168 │169 5 │ defmodule Nerves.BuildAction.NervesV1Toolchain do170 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~171 │172 └─ lib/nerves/build_action/nerves_v1_toolchain.ex:5: Nerves.BuildAction.NervesV1Toolchain (module)173174 warning: redefining module Nerves.BuildAction.Rootfs (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Rootfs.beam)175 │176 5 │ defmodule Nerves.BuildAction.Rootfs do177 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~178 │179 └─ lib/nerves/build_action/rootfs.ex:5: Nerves.BuildAction.Rootfs (module)180181 warning: redefining module Nerves.BuildAction.SortApps (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.SortApps.beam)182 │183 6 │ defmodule Nerves.BuildAction.SortApps do184 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~185 │186 └─ lib/nerves/build_action/sort_apps.ex:6: Nerves.BuildAction.SortApps (module)187188 warning: redefining module Nerves.BuildAction.StripAll (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.StripAll.beam)189 │190 5 │ defmodule Nerves.BuildAction.StripAll do191 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~192 │193 └─ lib/nerves/build_action/strip_all.ex:5: Nerves.BuildAction.StripAll (module)194195 warning: redefining module Nerves.BuildAction.Trimmer (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildAction.Trimmer.beam)196 │197 5 │ defmodule Nerves.BuildAction.Trimmer do198 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~199 │200 └─ lib/nerves/build_action/trimmer.ex:5: Nerves.BuildAction.Trimmer (module)201202 warning: redefining module Nerves.BuildPlan (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.beam)203 │204 5 │ defmodule Nerves.BuildPlan do205 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~206 │207 └─ lib/nerves/build_plan.ex:5: Nerves.BuildPlan (module)208209 warning: redefining module Nerves.BuildPlan.Checks (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.BuildPlan.Checks.beam)210 │211 5 │ defmodule Nerves.BuildPlan.Checks do212 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~213 │214 └─ lib/nerves/build_plan/checks.ex:5: Nerves.BuildPlan.Checks (module)215216 warning: redefining module Nerves.Container (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Container.beam)217 │218 6 │ defmodule Nerves.Container do219 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~220 │221 └─ lib/nerves/container.ex:6: Nerves.Container (module)222223 warning: redefining module Nerves.Fingerprint (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Fingerprint.beam)224 │225 5 │ defmodule Nerves.Fingerprint do226 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~227 │228 └─ lib/nerves/fingerprint.ex:5: Nerves.Fingerprint (module)229230 warning: redefining module Nerves.MixPackage (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.MixPackage.beam)231 │232 5 │ defmodule Nerves.MixPackage do233 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~234 │235 └─ lib/nerves/mix_package.ex:5: Nerves.MixPackage (module)236237 warning: redefining module Nerves.Paths (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.Paths.beam)238 │239 5 │ defmodule Nerves.Paths do240 │ ~~~~~~~~~~~~~~~~~~~~~~~~~241 │242 └─ lib/nerves/paths.ex:5: Nerves.Paths (module)243244 warning: redefining module Nerves.TargetTuple (current version loaded from /work/proj/_build/rpi4/lib/nerves/ebin/Elixir.Nerves.TargetTuple.beam)245 │246 5 │ defmodule Nerves.TargetTuple do247 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~248 │249 └─ lib/nerves/target_tuple.ex:5: Nerves.TargetTuple (module)250251Generated nerves app252==> nerves_toolchain_aarch64_nerves_linux_gnu253Compiling 1 file (.ex)254Generated nerves_toolchain_aarch64_nerves_linux_gnu app255==> nerves_system_rpi4256Generated nerves_system_rpi4 app257==> french_curve258Compiling 14 files (.ex)259 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 operator260 │261 214 │ <<part::binary-size(size), rest::binary>> when byte_size(rest) > 0 ->262 │ ~263 │264 └─ lib/french_curve/backend/kitty.ex:214:27: FrenchCurve.Backend.Kitty.chunk/2265266 warning: the variable "stride" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator267 │268 46 │ for <<row::binary-size(stride) <- rgba>>, do: [0, row]269 │ ~270 │271 └─ lib/french_curve/png.ex:46:28: FrenchCurve.Png.filter_scanlines/2272273Generated french_curve app274==> phoenix_pubsub275Compiling 12 files (.ex)276Generated phoenix_pubsub app277==> drafter278mkdir -p priv279/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 -o priv/termios_nif.so.tmp c_src/termios_nif.c --sysroot=/home/nerves/.nerves/artifacts/nerves_system_rpi4-2.1.2/staging -shared -lutil && mv -f priv/termios_nif.so.tmp priv/termios_nif.so280/home/nerves/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-15.3.1/bin/aarch64-nerves-linux-gnu-gcc -O2 -o priv/pty_spawn.tmp c_src/pty_spawn.c && mv -f priv/pty_spawn.tmp priv/pty_spawn281Compiling 202 files (.ex)282 warning: unused require Logger283 │284 4 │ require Logger285 │ ~286 │287 └─ lib/drafter/diagnostics/logging.ex:4:3288289 warning: this clause of defp since_last_push/1 is never used (or it will always fail/warn when invoked)290 │291 580 │ defp since_last_push(nil), do: :infinity292 │ ~293 │294 └─ lib/drafter/widget_runtime/widget_server.ex:580:8: Drafter.WidgetServer.since_last_push/1295296 warning: the following clause is redundant:297298 def get_unmasked_value(%Drafter.Widget.MaskedInput{value: value, mask: mask})299300 it has type:301302 dynamic(%Drafter.Widget.MaskedInput{})303304 previous clauses have already matched on the following types:305306 %Drafter.Widget.MaskedInput{}307308 │309 375 │ def get_unmasked_value(%__MODULE__{value: value, mask: mask}), do: strip_mask(value, mask)310 │ ~311 │312 └─ lib/drafter/widget/masked_input.ex:375:7: Drafter.Widget.MaskedInput.get_unmasked_value/1313314 warning: the following clause is redundant:315316 def handle_event(_event, state)317318 it has type:319320 dynamic(), dynamic()321322 previous clauses have already matched on the following types:323324 {:key, :escape}, term()325 {:key, :h}, term()326 {:bracketed_paste, term()}, term()327 term(), term()328329 │330 1 │ defmodule Drafter.Widget.FilePicker do331 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~332 │333 └─ lib/drafter/widget/file_picker.ex:1: Drafter.Widget.FilePicker.handle_event/2334335 warning: the following conditional expression:336337 new_index338339 will always evaluate to:340341 dynamic(not false and not nil)342343 where "new_index" was given the type:344345 # type: dynamic(not false and not nil)346 # from: lib/drafter/widget/data_table/selection.ex:75:15347 new_index =348 case find_next_enabled_from(state.data, target_index) do349 ...350 end351352 type warning found at:353 │354 84 │ if new_index do355 │ ~~~~~~~~~~~~~~~356 │357 └─ lib/drafter/widget/data_table/selection.ex:84: Drafter.Widget.DataTable.Selection.action_page_down/2358359 warning: the following clause is redundant:360361 other ->362363 previous clauses have already matched on the following types:364365 {term(), term()}366367 where "other" was given the type:368369 # type: dynamic({term(), term()})370 # from: lib/drafter/terminal/driver.ex:471:7371 other372373 type warning found at:374 │375 471 │ other -> {:error, {:stty_failed, other}}376 │ ~377 │378 └─ lib/drafter/terminal/driver.ex:471:13: Drafter.Terminal.Driver.enter_terminal_mode_with_stty/0379380 warning: the following clause is redundant:381382 defp get_state_value(state, key)383 when is_map(state) and is_map_key(state, :__struct__) and384 is_atom(:erlang.map_get(:__struct__, state))385386 it has type:387388 dynamic(%{..., __struct__: atom()}), dynamic()389390 previous clauses have already matched on the following types:391392 map(), term()393394 │395 159 │ defp get_state_value(state, key) when is_struct(state) do396 │ ~397 │398 └─ lib/drafter/style/computed.ex:159:8: Drafter.Style.Computed.get_state_value/2399400 warning: the following clause is redundant:401402 defp apply_render_result({:error, _reason}, _, _, _, _, _)403404 it has type:405406 dynamic({:error, term()}), dynamic(), dynamic(), dynamic(), dynamic(), dynamic()407408 previous clauses have already matched on the following types:409410 {...}, term(), term(), term(), term(), term()411 empty_list() or non_empty_list(term(), term()), term(), term(), term(), term(), term()412413 │414 211 │ defp apply_render_result({:error, _reason}, _, _, _, _, _), do: {:error, nil}415 │ ~416 │417 └─ lib/drafter/runtime/renderer.ex:211:8: Drafter.Runtime.Renderer.apply_render_result/6418419 warning: this guard will never succeed:420421 false422423 because it returns type:424425 false426427 type warning found at:428 │429 765 │ defp paintable_region(_strips, _rect) when false, do: false430 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~431 │432 └─ lib/drafter/runtime/renderer.ex:765: Drafter.Runtime.Renderer.paintable_region/2433434 warning: the following clause is redundant:435436 def handle_event(_event, state)437438 it has type:439440 dynamic(), dynamic()441442 previous clauses have already matched on the following types:443444 {:key, :enter}, term()445 {:key, :escape}, term()446 term(), term()447448 │449 1 │ defmodule Drafter.Accounts.RegisterApp do450 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~451 │452 └─ lib/drafter/accounts/register_app.ex:1: Drafter.Accounts.RegisterApp.handle_event/2453454 warning: this clause of defp safe_widget_state/1 is never used (or it will always fail/warn when invoked)455 │456 748 │ defp safe_widget_state(nil), do: nil457 │ ~458 │459 └─ lib/drafter.ex:748:8: Drafter.safe_widget_state/1460461Generated drafter app462==> tuning_fork463Compiling 70 files (.ex)464 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 operator465 │466 82 │ <<_block::binary-size(length), after_block::binary>> ->467 │ ~468 │469 └─ lib/tuning_fork/flac.ex:82:29: TuningFork.Flac.metadata/2470471 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 operator472 │473 102 │ <<_pad::size(pad), _crc::16, next::binary>> = rest474 │ ~475 │476 └─ lib/tuning_fork/flac.ex:102:20: TuningFork.Flac.frames/3477478 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 operator479 │480 206 │ <<value::signed-size(bits), rest::bits>> -> {:ok, List.duplicate(value, size), rest}481 │ ~482 │483 └─ lib/tuning_fork/flac.ex:206:28: TuningFork.Flac.subframe_of/4484485 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 operator486 │487 215 │ <<raw::bits-size(total), rest::bits>> ->488 │ ~489 │490 └─ lib/tuning_fork/flac.ex:215:24: TuningFork.Flac.subframe_of/4491492 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 operator493 │494 216 │ {:ok, for(<<value::signed-size(bits) <- raw>>, do: value), rest}495 │ ~496 │497 └─ lib/tuning_fork/flac.ex:216:40: TuningFork.Flac.subframe_of/4498499 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 operator500 │501 248 │ <<raw::bits-size(total), rest::bits>> ->502 │ ~503 │504 └─ lib/tuning_fork/flac.ex:248:24: TuningFork.Flac.warmup/3505506 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 operator507 │508 249 │ {:ok, for(<<value::signed-size(bits) <- raw>>, do: value), rest}509 │ ~510 │511 └─ lib/tuning_fork/flac.ex:249:40: TuningFork.Flac.warmup/3512513 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 operator514 │515 262 │ <<raw::bits-size(total), rest::bits>> ->516 │ ~517 │518 └─ lib/tuning_fork/flac.ex:262:24: TuningFork.Flac.lpc_coefficients/2519520 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 operator521 │522 263 │ {:ok, for(<<value::signed-size(bits) <- raw>>, do: value), shift, rest}523 │ ~524 │525 └─ lib/tuning_fork/flac.ex:263:40: TuningFork.Flac.lpc_coefficients/2526527 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 operator528 │529 292 │ <<^escape::size(param_bits), raw_bits::5, rest::bits>> -> raw(rest, samples, raw_bits)530 │ ~531 │532 └─ lib/tuning_fork/flac.ex:292:25: TuningFork.Flac.partitions/8533534 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 operator535 │536 293 │ <<param::size(param_bits), rest::bits>> -> rice(rest, param, samples, [])537 │ ~538 │539 └─ lib/tuning_fork/flac.ex:293:23: TuningFork.Flac.partitions/8540541 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 operator542 │543 306 │ <<raw::bits-size(total), rest::bits>> ->544 │ ~545 │546 └─ lib/tuning_fork/flac.ex:306:24: TuningFork.Flac.raw/3547548 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 operator549 │550 307 │ {:ok, for(<<value::signed-size(raw_bits) <- raw>>, do: value), rest}551 │ ~552 │553 └─ lib/tuning_fork/flac.ex:307:40: TuningFork.Flac.raw/3554555 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 operator556 │557 318 │ {quotient, <<remainder::size(param), rest::bits>>} ->558 │ ~559 │560 └─ lib/tuning_fork/flac.ex:318:36: TuningFork.Flac.rice/4561562 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 operator563 │564 332 │ <<_::size(zeros + 1), rest::bits>> = bits565 │ ~566 │567 └─ lib/tuning_fork/flac.ex:332:15: TuningFork.Flac.unary/2568569 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 operator570 │571 60 │ <<before::binary-size(at), rest::binary>> = base572 │ ~573 │574 └─ lib/tuning_fork/mixer.ex:60:31: TuningFork.Mixer.mix_at/4575576 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 operator577 │578 64 │ <<fits::binary-size(space), over::binary>> = buffer579 │ ~580 │581 └─ lib/tuning_fork/mixer.ex:64:29: TuningFork.Mixer.mix_at/4582583 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 operator584 │585 65 │ <<before::binary-size(at), rest::binary>> = base586 │ ~587 │588 └─ lib/tuning_fork/mixer.ex:65:31: TuningFork.Mixer.mix_at/4589590 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 operator591 │592 81 │ <<chunk::binary-size(wanted), rest::binary>> ->593 │ ~594 │595 └─ lib/tuning_fork/mixer.ex:81:28: TuningFork.Mixer.take/3596597 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 operator598 │599 103 │ <<head::binary-size(keep), tail::binary>> when tail != <<>> ->600 │ ~601 │602 └─ lib/tuning_fork/mixer.ex:103:27: TuningFork.Mixer.fold/3603604 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 operator605 │606 86 │ <<blob::binary-size(size), left::binary>> = rest607 │ ~608 │609 └─ lib/tuning_fork/osc.ex:86:25: TuningFork.Osc.argument_of/2610611 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 operator612 │613 88 │ <<_padding::binary-size(over), after_padding::binary>> = left614 │ ~615 │616 └─ lib/tuning_fork/osc.ex:88:29: TuningFork.Osc.argument_of/2617618 warning: unused require Logger619 │620 11 │ require Logger621 │ ~622 │623 └─ lib/tuning_fork/osc/client.ex:11:3624625 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 operator626 │627 220 │ <<head::binary-size(room), tail::binary>> when tail != <<>> ->628 │ ~629 │630 └─ lib/tuning_fork/score.ex:220:27: TuningFork.Score.wrap/4631632 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 operator633 │634 417 │ <<data::binary-size(length), rest::binary>> = rest635 │ ~636 │637 └─ lib/tuning_fork/midi.ex:417:25: TuningFork.Midi.event/2638639 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 operator640 │641 427 │ <<_data::binary-size(length), rest::binary>> = rest642 │ ~643 │644 └─ lib/tuning_fork/midi.ex:427:26: TuningFork.Midi.event/2645646 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 operator647 │648 167 │ for <<frame::binary-size(channels * 2) <- pcm>>, reduce: {0, <<>>} do649 │ ~650 │651 └─ lib/tuning_fork/stage/bed.ex:167:30: TuningFork.Stage.Bed.ramp/4652653 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 operator654 │655 734 │ for <<sample::16-signed-little, _rest::binary-size(channels * 2 - 2) <- pcm>>, do: sample656 │ ~657 │658 └─ lib/tuning_fork/stage.ex:734:58: TuningFork.Stage.thinned/3659660 warning: the following conditional expression:661662 File.mkdir_p!(TuningFork.Sample.Fetch.dir())663664 will always evaluate to:665666 dynamic(:ok)667668 type warning found at:669 │670 144 │ unless File.exists?(path), do: File.mkdir_p!(Fetch.dir()) && File.write!(path, bytes)671 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~672 │673 └─ lib/tuning_fork/sample/font.ex:144: TuningFork.Sample.Font.decode/3674675Generated tuning_fork app676==> tuning_fork_composer677Compiling 4 files (.ex)678Generated tuning_fork_composer app679==> tuning_fork_midi680mkdir -p priv681/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 -lasound682In file included from c_src/tuning_fork_midi_nif.c:22:683c_src/minimidio.h:483:5: error: unknown type name 'snd_seq_t'; did you mean 'snd_sctl_t'?684 483 | snd_seq_t* seq;685 | ^~~~~~~~~686 | snd_sctl_t687c_src/minimidio.h:497:5: error: unknown type name 'snd_midi_event_t'; did you mean 'snd_mixer_event_t'?688 497 | snd_midi_event_t* midi_ev; /* raw path: byte<->event coder (NULL otherwise) */689 | ^~~~~~~~~~~~~~~~690 | snd_mixer_event_t691c_src/minimidio.h: In function 'mm_context_init':692c_src/minimidio.h:1493:9: error: implicit declaration of function 'snd_seq_open'; did you mean 'snd_ctl_open'? [-Wimplicit-function-declaration]693 1493 | if (snd_seq_open(&ctx->al.seq, "default", SND_SEQ_OPEN_DUPLEX, 0) < 0)694 | ^~~~~~~~~~~~695 | snd_ctl_open696c_src/minimidio.h:1493:47: error: 'SND_SEQ_OPEN_DUPLEX' undeclared (first use in this function)697 1493 | if (snd_seq_open(&ctx->al.seq, "default", SND_SEQ_OPEN_DUPLEX, 0) < 0)698 | ^~~~~~~~~~~~~~~~~~~699c_src/minimidio.h:1493:47: note: each undeclared identifier is reported only once for each function it appears in700c_src/minimidio.h:1495:5: error: implicit declaration of function 'snd_seq_set_client_name' [-Wimplicit-function-declaration]701 1495 | snd_seq_set_client_name(ctx->al.seq, ctx->name);702 | ^~~~~~~~~~~~~~~~~~~~~~~703c_src/minimidio.h:1496:25: error: implicit declaration of function 'snd_seq_client_id' [-Wimplicit-function-declaration]704 1496 | ctx->al.client_id = snd_seq_client_id(ctx->al.seq);705 | ^~~~~~~~~~~~~~~~~706c_src/minimidio.h: In function 'mm_context_uninit':707c_src/minimidio.h:1502:5: error: implicit declaration of function 'snd_seq_close'; did you mean 'snd_ctl_close'? [-Wimplicit-function-declaration]708 1502 | snd_seq_close(ctx->al.seq);709 | ^~~~~~~~~~~~~710 | snd_ctl_close711c_src/minimidio.h: In function 'mm__alsa_enum':712c_src/minimidio.h:1529:5: error: unknown type name 'snd_seq_client_info_t'; did you mean 'snd_ctl_elem_info_t'?713 1529 | snd_seq_client_info_t* ci;714 | ^~~~~~~~~~~~~~~~~~~~~715 | snd_ctl_elem_info_t716c_src/minimidio.h:1530:5: error: unknown type name 'snd_seq_port_info_t'; did you mean 'snd_ctl_card_info_t'?717 1530 | snd_seq_port_info_t* pi;718 | ^~~~~~~~~~~~~~~~~~~719 | snd_ctl_card_info_t720c_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]721 1531 | snd_seq_client_info_alloca(&ci);722 | ^~~~~~~~~~~~~~~~~~~~~~~~~~723 | snd_ctl_elem_info_alloca724c_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]725 1532 | snd_seq_port_info_alloca(&pi);726 | ^~~~~~~~~~~~~~~~~~~~~~~~727 | snd_ctl_card_info_alloca728c_src/minimidio.h:1534:5: error: implicit declaration of function 'snd_seq_client_info_set_client' [-Wimplicit-function-declaration]729 1534 | snd_seq_client_info_set_client(ci, -1);730 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~731c_src/minimidio.h:1535:12: error: implicit declaration of function 'snd_seq_query_next_client' [-Wimplicit-function-declaration]732 1535 | while (snd_seq_query_next_client(al->seq, ci) >= 0) {733 | ^~~~~~~~~~~~~~~~~~~~~~~~~734c_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]735 1536 | int cid = snd_seq_client_info_get_client(ci);736 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~737 | snd_ctl_elem_info_get_count738c_src/minimidio.h:1538:9: error: implicit declaration of function 'snd_seq_port_info_set_client' [-Wimplicit-function-declaration]739 1538 | snd_seq_port_info_set_client(pi, cid);740 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~741c_src/minimidio.h:1539:9: error: implicit declaration of function 'snd_seq_port_info_set_port' [-Wimplicit-function-declaration]742 1539 | snd_seq_port_info_set_port(pi, -1);743 | ^~~~~~~~~~~~~~~~~~~~~~~~~~744c_src/minimidio.h:1540:16: error: implicit declaration of function 'snd_seq_query_next_port' [-Wimplicit-function-declaration]745 1540 | while (snd_seq_query_next_port(al->seq, pi) >= 0) {746 | ^~~~~~~~~~~~~~~~~~~~~~~747c_src/minimidio.h:1541:32: error: implicit declaration of function 'snd_seq_port_info_get_capability' [-Wimplicit-function-declaration]748 1541 | unsigned int cap = snd_seq_port_info_get_capability(pi);749 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~750c_src/minimidio.h:1546:25: error: implicit declaration of function 'snd_seq_port_info_get_port' [-Wimplicit-function-declaration]751 1546 | p->port = snd_seq_port_info_get_port(pi);752 | ^~~~~~~~~~~~~~~~~~~~~~~~~~753c_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]754 1548 | snd_seq_client_info_get_name(ci),755 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~756 | snd_ctl_elem_info_get_name757c_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]758 1549 | snd_seq_port_info_get_name(pi), cid, p->port);759 | ^~~~~~~~~~~~~~~~~~~~~~~~~~760 | snd_ctl_card_info_get_name761c_src/minimidio.h: In function 'mm_in_count':762c_src/minimidio.h:1559:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)763 1559 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,764 | ^~~~~~~~~~~~~~~~~~~~~765c_src/minimidio.h:1559:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)766 1559 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,767 | ^~~~~~~~~~~~~~~~~~~~~~~~~~768c_src/minimidio.h: In function 'mm_out_count':769c_src/minimidio.h:1567:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)770 1567 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);771 | ^~~~~~~~~~~~~~~~~~~~~~772c_src/minimidio.h:1567:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)773 1567 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);774 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~775c_src/minimidio.h: In function 'mm_in_name':776c_src/minimidio.h:1574:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)777 1574 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,778 | ^~~~~~~~~~~~~~~~~~~~~779c_src/minimidio.h:1574:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)780 1574 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,781 | ^~~~~~~~~~~~~~~~~~~~~~~~~~782c_src/minimidio.h: In function 'mm_out_name':783c_src/minimidio.h:1583:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)784 1583 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);785 | ^~~~~~~~~~~~~~~~~~~~~~786c_src/minimidio.h:1583:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)787 1583 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);788 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~789c_src/minimidio.h: In function 'mm__alsa_recv_thread':790c_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]791 1597 | int nalsa = snd_seq_poll_descriptors_count(al->seq, POLLIN);792 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~793 | snd_ctl_poll_descriptors_count794c_src/minimidio.h:1603:5: error: implicit declaration of function 'snd_seq_poll_descriptors'; did you mean 'snd_ctl_poll_descriptors'? [-Wimplicit-function-declaration]795 1603 | snd_seq_poll_descriptors(al->seq, pfds, (unsigned)nalsa, POLLIN);796 | ^~~~~~~~~~~~~~~~~~~~~~~~797 | snd_ctl_poll_descriptors798c_src/minimidio.h:1619:16: error: implicit declaration of function 'snd_seq_event_input_pending' [-Wimplicit-function-declaration]799 1619 | while (snd_seq_event_input_pending(al->seq, 1) > 0) {800 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~801c_src/minimidio.h:1654:17: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?802 1654 | snd_seq_event_t* ev = NULL;803 | ^~~~~~~~~~~~~~~804 | snd_ctl_event_t805c_src/minimidio.h:1655:26: error: implicit declaration of function 'snd_seq_event_input' [-Wimplicit-function-declaration]806 1655 | int rc = snd_seq_event_input(al->seq, &ev);807 | ^~~~~~~~~~~~~~~~~~~808c_src/minimidio.h:1662:23: error: request for member 'type' in something not a structure or union809 1662 | if (ev->type == SND_SEQ_EVENT_SYSEX) {810 | ^~811c_src/minimidio.h:1662:33: error: 'SND_SEQ_EVENT_SYSEX' undeclared (first use in this function)812 1662 | if (ev->type == SND_SEQ_EVENT_SYSEX) {813 | ^~~~~~~~~~~~~~~~~~~814c_src/minimidio.h:1663:46: error: request for member 'data' in something not a structure or union815 1663 | uint8_t* d = (uint8_t*)ev->data.ext.ptr;816 | ^~817c_src/minimidio.h:1664:36: error: request for member 'data' in something not a structure or union818 1664 | size_t n = ev->data.ext.len;819 | ^~820c_src/minimidio.h:1678:30: error: implicit declaration of function 'snd_midi_event_decode' [-Wimplicit-function-declaration]821 1678 | long n = snd_midi_event_decode(da->midi_ev, buf,822 | ^~~~~~~~~~~~~~~~~~~~~823c_src/minimidio.h:1687:13: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?824 1687 | snd_seq_event_t* ev = NULL;825 | ^~~~~~~~~~~~~~~826 | snd_ctl_event_t827c_src/minimidio.h:1696:23: error: request for member 'type' in something not a structure or union828 1696 | switch (ev->type) {829 | ^~830c_src/minimidio.h:1698:22: error: 'SND_SEQ_EVENT_NOTEON' undeclared (first use in this function)831 1698 | case SND_SEQ_EVENT_NOTEON:832 | ^~~~~~~~~~~~~~~~~~~~833c_src/minimidio.h:1699:38: error: request for member 'data' in something not a structure or union834 1699 | msg.type = (ev->data.note.velocity > 0) ? MM_NOTE_ON : MM_NOTE_OFF;835 | ^~836c_src/minimidio.h:1700:37: error: request for member 'data' in something not a structure or union837 1700 | msg.channel = ev->data.note.channel;838 | ^~839c_src/minimidio.h:1701:37: error: request for member 'data' in something not a structure or union840 1701 | msg.data[0] = ev->data.note.note;841 | ^~842c_src/minimidio.h:1702:37: error: request for member 'data' in something not a structure or union843 1702 | msg.data[1] = ev->data.note.velocity;844 | ^~845c_src/minimidio.h:1705:22: error: 'SND_SEQ_EVENT_NOTEOFF' undeclared (first use in this function)846 1705 | case SND_SEQ_EVENT_NOTEOFF:847 | ^~~~~~~~~~~~~~~~~~~~~848c_src/minimidio.h:1706:57: error: request for member 'data' in something not a structure or union849 1706 | msg.type=MM_NOTE_OFF; msg.channel=ev->data.note.channel;850 | ^~851c_src/minimidio.h:1707:35: error: request for member 'data' in something not a structure or union852 1707 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;853 | ^~854c_src/minimidio.h:1707:67: error: request for member 'data' in something not a structure or union855 1707 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;856 | ^~857c_src/minimidio.h:1710:22: error: 'SND_SEQ_EVENT_KEYPRESS' undeclared (first use in this function)858 1710 | case SND_SEQ_EVENT_KEYPRESS:859 | ^~~~~~~~~~~~~~~~~~~~~~860c_src/minimidio.h:1711:62: error: request for member 'data' in something not a structure or union861 1711 | msg.type=MM_POLY_PRESSURE; msg.channel=ev->data.note.channel;862 | ^~863c_src/minimidio.h:1712:35: error: request for member 'data' in something not a structure or union864 1712 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;865 | ^~866c_src/minimidio.h:1712:67: error: request for member 'data' in something not a structure or union867 1712 | msg.data[0]=ev->data.note.note; msg.data[1]=ev->data.note.velocity;868 | ^~869c_src/minimidio.h:1715:22: error: 'SND_SEQ_EVENT_CONTROLLER' undeclared (first use in this function)870 1715 | case SND_SEQ_EVENT_CONTROLLER:871 | ^~~~~~~~~~~~~~~~~~~~~~~~872c_src/minimidio.h:1716:63: error: request for member 'data' in something not a structure or union873 1716 | msg.type=MM_CONTROL_CHANGE; msg.channel=ev->data.control.channel;874 | ^~875c_src/minimidio.h:1717:44: error: request for member 'data' in something not a structure or union876 1717 | msg.data[0]=(uint8_t)ev->data.control.param;877 | ^~878c_src/minimidio.h:1718:44: error: request for member 'data' in something not a structure or union879 1718 | msg.data[1]=(uint8_t)ev->data.control.value;880 | ^~881c_src/minimidio.h:1721:22: error: 'SND_SEQ_EVENT_PGMCHANGE' undeclared (first use in this function)882 1721 | case SND_SEQ_EVENT_PGMCHANGE:883 | ^~~~~~~~~~~~~~~~~~~~~~~884c_src/minimidio.h:1722:63: error: request for member 'data' in something not a structure or union885 1722 | msg.type=MM_PROGRAM_CHANGE; msg.channel=ev->data.control.channel;886 | ^~887c_src/minimidio.h:1723:44: error: request for member 'data' in something not a structure or union888 1723 | msg.data[0]=(uint8_t)ev->data.control.value;889 | ^~890c_src/minimidio.h:1726:22: error: 'SND_SEQ_EVENT_CHANPRESS' undeclared (first use in this function)891 1726 | case SND_SEQ_EVENT_CHANPRESS:892 | ^~~~~~~~~~~~~~~~~~~~~~~893c_src/minimidio.h:1727:65: error: request for member 'data' in something not a structure or union894 1727 | msg.type=MM_CHANNEL_PRESSURE; msg.channel=ev->data.control.channel;895 | ^~896c_src/minimidio.h:1728:44: error: request for member 'data' in something not a structure or union897 1728 | msg.data[0]=(uint8_t)ev->data.control.value;898 | ^~899c_src/minimidio.h:1731:22: error: 'SND_SEQ_EVENT_PITCHBEND' undeclared (first use in this function)900 1731 | case SND_SEQ_EVENT_PITCHBEND: {901 | ^~~~~~~~~~~~~~~~~~~~~~~902c_src/minimidio.h:1732:30: error: request for member 'data' in something not a structure or union903 1732 | int pb=ev->data.control.value+8192;904 | ^~905c_src/minimidio.h:1733:59: error: request for member 'data' in something not a structure or union906 1733 | msg.type=MM_PITCH_BEND; msg.channel=ev->data.control.channel;907 | ^~908c_src/minimidio.h:1739:22: error: 'SND_SEQ_EVENT_CLOCK' undeclared (first use in this function)909 1739 | case SND_SEQ_EVENT_CLOCK:910 | ^~~~~~~~~~~~~~~~~~~911c_src/minimidio.h:1741:22: error: 'SND_SEQ_EVENT_START' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_START'?912 1741 | case SND_SEQ_EVENT_START:913 | ^~~~~~~~~~~~~~~~~~~914 | SND_TIMER_EVENT_START915c_src/minimidio.h:1743:22: error: 'SND_SEQ_EVENT_CONTINUE' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_CONTINUE'?916 1743 | case SND_SEQ_EVENT_CONTINUE:917 | ^~~~~~~~~~~~~~~~~~~~~~918 | SND_TIMER_EVENT_CONTINUE919c_src/minimidio.h:1745:22: error: 'SND_SEQ_EVENT_STOP' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_STOP'?920 1745 | case SND_SEQ_EVENT_STOP:921 | ^~~~~~~~~~~~~~~~~~922 | SND_TIMER_EVENT_STOP923c_src/minimidio.h:1749:22: error: 'SND_SEQ_EVENT_SONGPOS' undeclared (first use in this function)924 1749 | case SND_SEQ_EVENT_SONGPOS: {925 | ^~~~~~~~~~~~~~~~~~~~~926c_src/minimidio.h:1750:46: error: request for member 'data' in something not a structure or union927 1750 | uint16_t pos=(uint16_t)ev->data.control.value;928 | ^~929c_src/minimidio.h:1758:22: error: 'SND_SEQ_EVENT_QFRAME' undeclared (first use in this function)930 1758 | case SND_SEQ_EVENT_QFRAME:931 | ^~~~~~~~~~~~~~~~~~~~932c_src/minimidio.h:1760:44: error: request for member 'data' in something not a structure or union933 1760 | msg.data[0]=(uint8_t)ev->data.control.value;934 | ^~935c_src/minimidio.h:1764:22: error: 'SND_SEQ_EVENT_SONGSEL' undeclared (first use in this function)936 1764 | case SND_SEQ_EVENT_SONGSEL:937 | ^~~~~~~~~~~~~~~~~~~~~938c_src/minimidio.h:1766:44: error: request for member 'data' in something not a structure or union939 1766 | msg.data[0]=(uint8_t)ev->data.control.value;940 | ^~941c_src/minimidio.h:1770:22: error: 'SND_SEQ_EVENT_SENSING' undeclared (first use in this function)942 1770 | case SND_SEQ_EVENT_SENSING:943 | ^~~~~~~~~~~~~~~~~~~~~944c_src/minimidio.h:1775:22: error: 'SND_SEQ_EVENT_TUNE_REQUEST' undeclared (first use in this function)945 1775 | case SND_SEQ_EVENT_TUNE_REQUEST:946 | ^~~~~~~~~~~~~~~~~~~~~~~~~~947c_src/minimidio.h:1780:22: error: 'SND_SEQ_EVENT_RESET' undeclared (first use in this function); did you mean 'SND_CTL_EVENT_LAST'?948 1780 | case SND_SEQ_EVENT_RESET:949 | ^~~~~~~~~~~~~~~~~~~950 | SND_CTL_EVENT_LAST951c_src/minimidio.h:1786:44: error: request for member 'data' in something not a structure or union952 1786 | uint8_t* d=(uint8_t*)ev->data.ext.ptr;953 | ^~954c_src/minimidio.h:1787:34: error: request for member 'data' in something not a structure or union955 1787 | size_t n=ev->data.ext.len;956 | ^~957c_src/minimidio.h: In function 'mm_in_open':958c_src/minimidio.h:1819:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)959 1819 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,960 | ^~~~~~~~~~~~~~~~~~~~~961c_src/minimidio.h:1819:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)962 1819 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,963 | ^~~~~~~~~~~~~~~~~~~~~~~~~~964c_src/minimidio.h:1831:23: error: implicit declaration of function 'snd_seq_create_simple_port' [-Wimplicit-function-declaration]965 1831 | dev->al.port_id = snd_seq_create_simple_port(ctx->al.seq, portname,966 | ^~~~~~~~~~~~~~~~~~~~~~~~~~967c_src/minimidio.h:1832:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)968 1832 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,969 | ^~~~~~~~~~~~~~~~~~~~~~970c_src/minimidio.h:1832:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)971 1832 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,972 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~973c_src/minimidio.h:1833:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)974 1833 | SND_SEQ_PORT_TYPE_APPLICATION);975 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~976c_src/minimidio.h: In function 'mm_in_open_raw':977c_src/minimidio.h:1887:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)978 1887 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,979 | ^~~~~~~~~~~~~~~~~~~~~980c_src/minimidio.h:1887:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)981 1887 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,982 | ^~~~~~~~~~~~~~~~~~~~~~~~~~983c_src/minimidio.h:1896:9: error: implicit declaration of function 'snd_midi_event_new'; did you mean 'snd_mixer_elem_new'? [-Wimplicit-function-declaration]984 1896 | if (snd_midi_event_new(MM_SYSEX_BUF_SIZE, &dev->al.midi_ev) < 0)985 | ^~~~~~~~~~~~~~~~~~986 | snd_mixer_elem_new987c_src/minimidio.h:1898:5: error: implicit declaration of function 'snd_midi_event_no_status' [-Wimplicit-function-declaration]988 1898 | snd_midi_event_no_status(dev->al.midi_ev, 1);989 | ^~~~~~~~~~~~~~~~~~~~~~~~990c_src/minimidio.h:1901:9: error: implicit declaration of function 'snd_midi_event_free'; did you mean 'snd_ctl_event_free'? [-Wimplicit-function-declaration]991 1901 | snd_midi_event_free(dev->al.midi_ev); dev->al.midi_ev=NULL; return MM_ERROR;992 | ^~~~~~~~~~~~~~~~~~~993 | snd_ctl_event_free994c_src/minimidio.h:1906:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)995 1906 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,996 | ^~~~~~~~~~~~~~~~~~~~~~997c_src/minimidio.h:1906:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)998 1906 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,999 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~1000c_src/minimidio.h:1907:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)1001 1907 | SND_SEQ_PORT_TYPE_APPLICATION);1002 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~1003c_src/minimidio.h: In function 'mm_in_open_virtual_raw':1004c_src/minimidio.h:1932:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)1005 1932 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,1006 | ^~~~~~~~~~~~~~~~~~~~~~1007c_src/minimidio.h:1932:34: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)1008 1932 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,1009 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~1010c_src/minimidio.h:1933:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)1011 1933 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);1012 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~1013c_src/minimidio.h:1933:41: error: 'SND_SEQ_PORT_TYPE_MIDI_GENERIC' undeclared (first use in this function)1014 1933 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);1015 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1016c_src/minimidio.h: In function 'mm_in_start':1017c_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]1018 1946 | snd_seq_connect_from(al->seq, dev->al.port_id,1019 | ^~~~~~~~~~~~~~~~~~~~1020 | snd_ctl_convert_from_dB1021c_src/minimidio.h:1954:13: error: implicit declaration of function 'snd_seq_disconnect_from' [-Wimplicit-function-declaration]1022 1954 | snd_seq_disconnect_from(al->seq, dev->al.port_id,1023 | ^~~~~~~~~~~~~~~~~~~~~~~1024c_src/minimidio.h: In function 'mm_in_close':1025c_src/minimidio.h:1982:5: error: implicit declaration of function 'snd_seq_delete_port' [-Wimplicit-function-declaration]1026 1982 | snd_seq_delete_port(dev->ctx->al.seq, dev->al.port_id);1027 | ^~~~~~~~~~~~~~~~~~~1028c_src/minimidio.h: In function 'mm_out_open':1029c_src/minimidio.h:1991:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)1030 1991 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);1031 | ^~~~~~~~~~~~~~~~~~~~~~1032c_src/minimidio.h:1991:32: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)1033 1991 | SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, 0);1034 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~1035c_src/minimidio.h:1998:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)1036 1998 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,1037 | ^~~~~~~~~~~~~~~~~~~~~1038c_src/minimidio.h:1998:31: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)1039 1998 | SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,1040 | ^~~~~~~~~~~~~~~~~~~~~~~~~~1041c_src/minimidio.h:1999:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)1042 1999 | SND_SEQ_PORT_TYPE_APPLICATION);1043 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~1044c_src/minimidio.h:2001:5: error: implicit declaration of function 'snd_seq_connect_to' [-Wimplicit-function-declaration]1045 2001 | snd_seq_connect_to(ctx->al.seq, dev->al.port_id,1046 | ^~~~~~~~~~~~~~~~~~1047c_src/minimidio.h: At top level:1048c_src/minimidio.h:2008:46: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?1049 2008 | static void mm__alsa_send_ev(mm_device* dev, snd_seq_event_t* ev) {1050 | ^~~~~~~~~~~~~~~1051 | snd_ctl_event_t1052c_src/minimidio.h: In function 'mm_out_send_raw':1053c_src/minimidio.h:2028:5: error: implicit declaration of function 'snd_midi_event_reset_encode' [-Wimplicit-function-declaration]1054 2028 | snd_midi_event_reset_encode(dev->al.midi_ev);1055 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~1056c_src/minimidio.h:2031:9: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?1057 2031 | snd_seq_event_t ev; memset(&ev,0,sizeof(ev));1058 | ^~~~~~~~~~~~~~~1059 | snd_ctl_event_t1060c_src/minimidio.h:2032:21: error: implicit declaration of function 'snd_midi_event_encode' [-Wimplicit-function-declaration]1061 2032 | long used = snd_midi_event_encode(dev->al.midi_ev, data+off,1062 | ^~~~~~~~~~~~~~~~~~~~~1063c_src/minimidio.h:2036:15: error: request for member 'type' in something not a structure or union1064 2036 | if (ev.type != SND_SEQ_EVENT_NONE)1065 | ^1066c_src/minimidio.h:2036:24: error: 'SND_SEQ_EVENT_NONE' undeclared (first use in this function)1067 2036 | if (ev.type != SND_SEQ_EVENT_NONE)1068 | ^~~~~~~~~~~~~~~~~~1069c_src/minimidio.h:2037:13: error: implicit declaration of function 'mm__alsa_send_ev'; did you mean 'mm__alsa_enum'? [-Wimplicit-function-declaration]1070 2037 | mm__alsa_send_ev(dev, &ev);1071 | ^~~~~~~~~~~~~~~~1072 | mm__alsa_enum1073c_src/minimidio.h: In function 'mm_out_send':1074c_src/minimidio.h:2045:5: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?1075 2045 | snd_seq_event_t ev; memset(&ev,0,sizeof(ev));1076 | ^~~~~~~~~~~~~~~1077 | snd_ctl_event_t1078c_src/minimidio.h:2048:13: error: implicit declaration of function 'snd_seq_ev_set_noteon' [-Wimplicit-function-declaration]1079 2048 | snd_seq_ev_set_noteon(&ev,msg->channel,msg->data[0],msg->data[1]); break;1080 | ^~~~~~~~~~~~~~~~~~~~~1081c_src/minimidio.h:2050:13: error: implicit declaration of function 'snd_seq_ev_set_noteoff' [-Wimplicit-function-declaration]1082 2050 | snd_seq_ev_set_noteoff(&ev,msg->channel,msg->data[0],msg->data[1]); break;1083 | ^~~~~~~~~~~~~~~~~~~~~~1084c_src/minimidio.h:2052:13: error: implicit declaration of function 'snd_seq_ev_set_controller' [-Wimplicit-function-declaration]1085 2052 | snd_seq_ev_set_controller(&ev,msg->channel,msg->data[0],msg->data[1]); break;1086 | ^~~~~~~~~~~~~~~~~~~~~~~~~1087c_src/minimidio.h:2054:13: error: implicit declaration of function 'snd_seq_ev_set_keypress' [-Wimplicit-function-declaration]1088 2054 | snd_seq_ev_set_keypress(&ev,msg->channel,msg->data[0],msg->data[1]); break;1089 | ^~~~~~~~~~~~~~~~~~~~~~~1090c_src/minimidio.h:2056:13: error: implicit declaration of function 'snd_seq_ev_set_chanpress' [-Wimplicit-function-declaration]1091 2056 | snd_seq_ev_set_chanpress(&ev,msg->channel,msg->data[0]); break;1092 | ^~~~~~~~~~~~~~~~~~~~~~~~1093c_src/minimidio.h:2059:13: error: implicit declaration of function 'snd_seq_ev_set_pitchbend' [-Wimplicit-function-declaration]1094 2059 | snd_seq_ev_set_pitchbend(&ev,msg->channel,pb-8192); break;1095 | ^~~~~~~~~~~~~~~~~~~~~~~~1096c_src/minimidio.h:2062:13: error: implicit declaration of function 'snd_seq_ev_set_pgmchange' [-Wimplicit-function-declaration]1097 2062 | snd_seq_ev_set_pgmchange(&ev,msg->channel,msg->data[0]); break;1098 | ^~~~~~~~~~~~~~~~~~~~~~~~1099c_src/minimidio.h:2063:29: error: request for member 'type' in something not a structure or union1100 2063 | case MM_CLOCK: ev.type=SND_SEQ_EVENT_CLOCK; break;1101 | ^1102c_src/minimidio.h:2063:35: error: 'SND_SEQ_EVENT_CLOCK' undeclared (first use in this function)1103 2063 | case MM_CLOCK: ev.type=SND_SEQ_EVENT_CLOCK; break;1104 | ^~~~~~~~~~~~~~~~~~~1105c_src/minimidio.h:2064:29: error: request for member 'type' in something not a structure or union1106 2064 | case MM_START: ev.type=SND_SEQ_EVENT_START; break;1107 | ^1108c_src/minimidio.h:2064:35: error: 'SND_SEQ_EVENT_START' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_START'?1109 2064 | case MM_START: ev.type=SND_SEQ_EVENT_START; break;1110 | ^~~~~~~~~~~~~~~~~~~1111 | SND_TIMER_EVENT_START1112c_src/minimidio.h:2065:29: error: request for member 'type' in something not a structure or union1113 2065 | case MM_CONTINUE: ev.type=SND_SEQ_EVENT_CONTINUE; break;1114 | ^1115c_src/minimidio.h:2065:35: error: 'SND_SEQ_EVENT_CONTINUE' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_CONTINUE'?1116 2065 | case MM_CONTINUE: ev.type=SND_SEQ_EVENT_CONTINUE; break;1117 | ^~~~~~~~~~~~~~~~~~~~~~1118 | SND_TIMER_EVENT_CONTINUE1119c_src/minimidio.h:2066:29: error: request for member 'type' in something not a structure or union1120 2066 | case MM_STOP: ev.type=SND_SEQ_EVENT_STOP; break;1121 | ^1122c_src/minimidio.h:2066:35: error: 'SND_SEQ_EVENT_STOP' undeclared (first use in this function); did you mean 'SND_TIMER_EVENT_STOP'?1123 2066 | case MM_STOP: ev.type=SND_SEQ_EVENT_STOP; break;1124 | ^~~~~~~~~~~~~~~~~~1125 | SND_TIMER_EVENT_STOP1126c_src/minimidio.h:2068:15: error: request for member 'type' in something not a structure or union1127 2068 | ev.type=SND_SEQ_EVENT_SONGPOS;1128 | ^1129c_src/minimidio.h:2068:21: error: 'SND_SEQ_EVENT_SONGPOS' undeclared (first use in this function)1130 2068 | ev.type=SND_SEQ_EVENT_SONGPOS;1131 | ^~~~~~~~~~~~~~~~~~~~~1132c_src/minimidio.h:2069:15: error: request for member 'data' in something not a structure or union1133 2069 | ev.data.control.value=msg->song_position; break;1134 | ^1135c_src/minimidio.h:2071:15: error: request for member 'type' in something not a structure or union1136 2071 | ev.type=SND_SEQ_EVENT_QFRAME;1137 | ^1138c_src/minimidio.h:2071:21: error: 'SND_SEQ_EVENT_QFRAME' undeclared (first use in this function)1139 2071 | ev.type=SND_SEQ_EVENT_QFRAME;1140 | ^~~~~~~~~~~~~~~~~~~~1141c_src/minimidio.h:2072:15: error: request for member 'data' in something not a structure or union1142 2072 | ev.data.control.value=msg->data[0]; break;1143 | ^1144c_src/minimidio.h:2074:15: error: request for member 'type' in something not a structure or union1145 2074 | ev.type=SND_SEQ_EVENT_SONGSEL;1146 | ^1147c_src/minimidio.h:2074:21: error: 'SND_SEQ_EVENT_SONGSEL' undeclared (first use in this function)1148 2074 | ev.type=SND_SEQ_EVENT_SONGSEL;1149 | ^~~~~~~~~~~~~~~~~~~~~1150c_src/minimidio.h:2075:15: error: request for member 'data' in something not a structure or union1151 2075 | ev.data.control.value=msg->data[0]; break;1152 | ^1153c_src/minimidio.h:2076:34: error: request for member 'type' in something not a structure or union1154 2076 | case MM_TUNE_REQUEST: ev.type=SND_SEQ_EVENT_TUNE_REQUEST; break;1155 | ^1156c_src/minimidio.h:2076:40: error: 'SND_SEQ_EVENT_TUNE_REQUEST' undeclared (first use in this function)1157 2076 | case MM_TUNE_REQUEST: ev.type=SND_SEQ_EVENT_TUNE_REQUEST; break;1158 | ^~~~~~~~~~~~~~~~~~~~~~~~~~1159c_src/minimidio.h:2077:34: error: request for member 'type' in something not a structure or union1160 2077 | case MM_ACTIVE_SENSE: ev.type=SND_SEQ_EVENT_SENSING; break;1161 | ^1162c_src/minimidio.h:2077:40: error: 'SND_SEQ_EVENT_SENSING' undeclared (first use in this function)1163 2077 | case MM_ACTIVE_SENSE: ev.type=SND_SEQ_EVENT_SENSING; break;1164 | ^~~~~~~~~~~~~~~~~~~~~1165c_src/minimidio.h:2078:34: error: request for member 'type' in something not a structure or union1166 2078 | case MM_RESET: ev.type=SND_SEQ_EVENT_RESET; break;1167 | ^1168c_src/minimidio.h:2078:40: error: 'SND_SEQ_EVENT_RESET' undeclared (first use in this function); did you mean 'SND_CTL_EVENT_LAST'?1169 2078 | case MM_RESET: ev.type=SND_SEQ_EVENT_RESET; break;1170 | ^~~~~~~~~~~~~~~~~~~1171 | SND_CTL_EVENT_LAST1172c_src/minimidio.h: In function 'mm_out_send_sysex':1173c_src/minimidio.h:2115:5: error: unknown type name 'snd_seq_event_t'; did you mean 'snd_ctl_event_t'?1174 2115 | snd_seq_event_t ev; memset(&ev,0,sizeof(ev));1175 | ^~~~~~~~~~~~~~~1176 | snd_ctl_event_t1177c_src/minimidio.h:2116:7: error: request for member 'type' in something not a structure or union1178 2116 | ev.type=SND_SEQ_EVENT_SYSEX;1179 | ^1180c_src/minimidio.h:2116:13: error: 'SND_SEQ_EVENT_SYSEX' undeclared (first use in this function)1181 2116 | ev.type=SND_SEQ_EVENT_SYSEX;1182 | ^~~~~~~~~~~~~~~~~~~1183c_src/minimidio.h:2117:7: error: request for member 'data' in something not a structure or union1184 2117 | ev.data.ext.len=(unsigned int)size;1185 | ^1186c_src/minimidio.h:2118:7: error: request for member 'data' in something not a structure or union1187 2118 | ev.data.ext.ptr=dev->al.sysex_buf;1188 | ^1189c_src/minimidio.h:2119:7: error: request for member 'flags' in something not a structure or union1190 2119 | ev.flags=SND_SEQ_EVENT_LENGTH_VARIABLE;1191 | ^1192c_src/minimidio.h:2119:14: error: 'SND_SEQ_EVENT_LENGTH_VARIABLE' undeclared (first use in this function)1193 2119 | ev.flags=SND_SEQ_EVENT_LENGTH_VARIABLE;1194 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~1195c_src/minimidio.h: In function 'mm_out_close':1196c_src/minimidio.h:2127:9: error: implicit declaration of function 'snd_seq_disconnect_to' [-Wimplicit-function-declaration]1197 2127 | snd_seq_disconnect_to(al->seq,dev->al.port_id,1198 | ^~~~~~~~~~~~~~~~~~~~~1199c_src/minimidio.h: In function 'mm_in_open_virtual':1200c_src/minimidio.h:2160:9: error: 'SND_SEQ_PORT_CAP_WRITE' undeclared (first use in this function)1201 2160 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,1202 | ^~~~~~~~~~~~~~~~~~~~~~1203c_src/minimidio.h:2160:34: error: 'SND_SEQ_PORT_CAP_SUBS_WRITE' undeclared (first use in this function)1204 2160 | SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE,1205 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~1206c_src/minimidio.h:2161:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)1207 2161 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);1208 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~1209c_src/minimidio.h:2161:41: error: 'SND_SEQ_PORT_TYPE_MIDI_GENERIC' undeclared (first use in this function)1210 2161 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);1211 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1212c_src/minimidio.h: In function 'mm_out_open_virtual':1213c_src/minimidio.h:2180:9: error: 'SND_SEQ_PORT_CAP_READ' undeclared (first use in this function)1214 2180 | SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ,1215 | ^~~~~~~~~~~~~~~~~~~~~1216c_src/minimidio.h:2180:33: error: 'SND_SEQ_PORT_CAP_SUBS_READ' undeclared (first use in this function)1217 2180 | SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ,1218 | ^~~~~~~~~~~~~~~~~~~~~~~~~~1219c_src/minimidio.h:2181:9: error: 'SND_SEQ_PORT_TYPE_APPLICATION' undeclared (first use in this function)1220 2181 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);1221 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~1222c_src/minimidio.h:2181:41: error: 'SND_SEQ_PORT_TYPE_MIDI_GENERIC' undeclared (first use in this function)1223 2181 | SND_SEQ_PORT_TYPE_APPLICATION | SND_SEQ_PORT_TYPE_MIDI_GENERIC);1224 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1225make: *** [Makefile:24: priv/tuning_fork_midi_nif.so] Error 11226could 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"1227==> nerves_compatibility_test1228** (Mix) Could not compile with "make" (exit status: 2).1229tuning_fork_midi's MIDI ports did not build.12301231This package is only the ports. tuning_fork itself is pure Elixir and needs none of it:1232drop this dependency and everything but playing to and reading from a MIDI device still1233works, including writing a .mid file with TuningFork.Midi.write!/3.12341235Building it needs a C compiler, and on Linux the ALSA headers (libasound2-dev).1236