Giter Site home page Giter Site logo

weirdconstructor / hexosynth Goto Github PK

View Code? Open in Web Editor NEW
204.0 10.0 9.0 5.3 MB

A FLOSS (Open Source) hexagonal modular synthesizer plugin.

License: GNU General Public License v3.0

Rust 98.67% Shell 1.33%
rust audio music synthesizer audioplugin vst2 jackaudio linuxaudio modular-synth modular-synthesizers

hexosynth's Introduction

HexoSynth - A hexagonal modular synthesizer

Build

This project aims to create a modular synthesizer plugin (VST3, CLAP). Like those encountered in projects like VCVRack or Bitwig's Grid.

The core idea is having a hexagonal tile map for laying out module instances and connect them at the edges to route audio signals and control signals to inputs of other modules.

A goal is to provide a simple wireless environment to build sound effects, synthesizers or whole generative music patches from predefined modules.

Hosting plugins (VST, LV2, ...) is out of the scope of this project. The goal is rather to have a good set of predefined modules.

Here is a screenshot of how it looks:

HexoSynth Screenshot from 2022-09-11

State of Development

Since June 2022 the project is under heavy development again. A rewrite of HexoTK took longer than anticipated, but provides all required features now. All development currently takes place on the "master" branch, so don't be surprised if something does not work. As of 2022-08-16 most of the functionality from end of 2021 has been rewritten and new features and polish are being added right now for the next release.

If you want to stay up to date, follow my devlog:

Make sure to follow Weird Constructors Mastodon account or the releases of this project to be notified once I release a beta or stable release.

If you want to do chat, feel free to join the RustAudio Discord / Community here: https://rust.audio/

Rough Code Structure

HexoSynth leaves all GUI logic to the scripting language WLambda, which is an easily embeddable scripting language for Rust. All higher level functionality will be realised in WLambda. As well as the test suite for the GUI.

The Rust code contains all the low level functionality, such as the DSP code, the hexagonal grid data structure and the implementation of all the GUI widgets.

The scripting language code will be linked into the HexoSynth application at compile time. The goal is to deploy a single binary. But you could load the WLambda code from a different place using an environment variable later.

In the process of developing HexoSynth I developed a series of crates (aka libraries) that factor out some generic parts to be reusable by someone else maybe:

Implemented Features

  • A useable GUI with highly features parameter knobs and a hexagonal module/node matrix that is easily changeable with the mouse.
  • Serialization/Deserialization of patches is implemented in the VST3/CLAP plugins and can be managed by the DAW.
  • Signal monitors for the selected node.
  • Per node and output signal feedback LEDs.
  • A simple Tracker to edit "TSeq" sequences.
  • A primitive sample selection browser.
  • Prototype of the WBlockDSP visual programming language for DIY DSP nodes inside HexoSynth.

And following DSP nodes:

Category Name Function
IO Util Out Audio output (to DAW or Jack)
Osc Sampl Sample player
Osc Sin Sine oscillator
Osc BOsc Basic bandlimited waveform oscillator (waveforms: Sin, Tri, Saw, Pulse/Square)
Osc VOsc Vector phase shaping oscillator
Osc Noise Noise oscillator
Osc FormFM Formant oscillator based on FM synthesis
Signal Amp Amplifier/Attenuator
Signal SFilter Simple collection of filters, useable for synthesis
Signal FVaFilt Collection of virtual analog filters (Moog, EDP Wasp, Korg MS20)
Signal Delay Single tap signal delay
Signal PVerb Reverb node, based on Dattorros plate reverb algorithm
Signal AllP All-Pass filter based on internal delay line feedback
Signal Comb Comb filter
N->M Mix3 3 channel mixer
N->M Mux9 9 channel to 1 output multiplexer/switch
Ctrl SMap Simple control signal mapper
Ctrl Map Control signal mapper
Ctrl CQnt Control signal pitch quantizer
Ctrl Quant Pitch signal quantizer
Mod TSeq Tracker/pattern sequencer
Mod Ad Attack-Decay (AD) envelope
Mod Adsr Attack-Decay-Sustain-Release (ADSR) envelope
Mod TsLFO Tri/Saw waveform low frequency oscillator (LFO)
Mod RndWk Random walker, a Sample & Hold noise generator
IO Util FbWr / FbRd Utility modules for feedback in patches
IO Util Scope Oscilloscope for up to 3 channels
IO Util MidiP MIDI Pitch/Note input from plugin host, DAW or hardware
IO Util MidiCC MIDI CC input from plugin host, DAW or hardware
IO Util ExtA - ExtF Access to plugin parameter sets A to F

Road Map / TODO List

I have a pretty detailed TODO list in my private notebook, but this is the rough road map:

  • DONE: Make a UI that is more or less fluently usable and easily extendable with new modules.
  • DONE: Take a bit of care that there is online help.
  • DONE: Factor out the DSP code into it's own crate.
  • DONE: Redo the UI with performance optimized and overhauled HexoTK.
  • DONE: Rebuild the UI logic of HexoSynth from 2021 with WLambda.
  • Add preset/patch management to the UI.
  • Add lots (many more than above listed) of modules (Oscillators, Filters, Envelopes, LFOs, Quantizers, ...).
  • Add a MIDI-Ctrl interface for receiving pitch control signals, gate and clock from the DAW
  • Add parameter input node for receiving automation from the DAW
  • Add audio inputs for receiving audio from the DAW
  • Comment the code for easier maintenance.

Building and Dependencies

You might need following dependencies (Ubuntu Linux):

sudo apt install libjack0 libjack-jackd2-dev qjackctl libx11-xcb-dev
sudo apt install libxcb-icccm4-dev libxcb-dri3-dev

You might need following dependencies (Ubuntu 20.04 Linux):

sudo apt install libgl1-mesa-dev libjack-jackd2-dev qjackctl libxcursor-dev
sudo apt install libx11-xcb-dev libxcb-icccm4-dev libxcb-dri2-0-dev libxcb-dri3-dev

These might work on Debian too:

sudo apt install libjack0 libjack-dev libx11-xcb-dev libxcb-icccm4-dev libxcb-dri2-dev

Compiling the VST3 and CLAP plugins

Compile:

$ cargo +nightly xtask bundle hexosynth_plug --release

Install:

$ cp -vfr target/bundled/hexosynth_plug.vst3 ~/.vst3/
$ cp -vfr target/bundled/hexosynth_plug.clap ~/.vst3/

Running the CPAL Standalone Example

CPAL is a generic audio device abstraction library. It should work on most systems.

Compile and run:

$ cargo +nightly run --release --bin hexosynth_cpal

Running the Jack Standalone Example

JACK Audio Connection Kit is a sound server API, which allows multiple audio applications to communicate with each other.

Compile and run:

$ cargo +nightly run --release --bin hexosynth_jack

DAW Compatibility

As of 2022-08-15 HexoSynth has been tested with:

- Ubuntu Linux 20.04 and Bitwig: Works
- Ubuntu Linux 20.04 and Renoise: Works
- Ubuntu Linux 20.04 and Reaper: Works, except Keyboard support
- Ubuntu Linux 20.04 and Ardour: Works

Known Bugs

  • The ones you encounter and create as issues on GitHub.

Credits

  • Dimas Leenman (aka Skythedragon) contributed the FormFM node.
  • Frederik Halkjær (aka Fredemus, aka RocketPhysician) contributed the DSP algorithms for the FVaFilt virtual analog filter node.

Contributions

I currently have a quite precise vision of what I want to achieve and my goal is to make music with this project eventually.

The projects is still young, and I currently don't have that much time to devote for project coordination. So please don't be offended if your issue rots in the GitHub issue tracker, or your pull requests is left dangling around for ages.

I might merge pull requests if I find the time and think that the contributions are in line with my vision.

Please bear in mind, that I can only accept contributions under the License of this project (GPLv3 or later).

Help

If you want to help this project:

  • Samples: Find drum or synth samples that I can publish in HexoSynth. I would love to provide a drum kit with default sounds that is always available.
  • Binaries: Build Windows and/or Mac OS binaries: I've decided that I won't build windows binaries anymore. I don't like supporting the whole Apple & Micosoft vendor lock-in directly. However, I would be fine putting links to your binaries on my release pages or the HexoSynth README. Given that the binaries are current enough.
  • More DSP nodes/modules: Implement more DSP nodes: You could extend HexoDSP with new DSP implementations. Just reach out to me via Discord/IRC/Mastodon or Github issue to discus the name of the new node. I wrote up a little guide to get you started here: Refer to the HexoDSP API Documentation - DSP node implementation guide.

Contact the Author

You can reach me via Discord ( WeirdConstructor#7936 ), Mastodon ( @[email protected] ) or IRC. I'm joined most public Rust Discord servers, especially the "Rust Audio" Discord server. And I am also on IRC on the network Libera.Chat in the #lad channel (nick wct).

If you don't have means to access any of them, you can alternatively send me a Github issue.

Don't use E-Mail, I only read them irregularly, and I might miss yours completely.

License

This project is licensed under the GNU General Public License Version 3 or later.

The fonts DejaVuSerif.ttf and DejaVuSansMono.ttf under the license:

Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)

Why GPL?

Picking a license for my code bothered me for a long time. I read many discussions about this topic. Read the license explanations. And discussed this matter with other developers.

First about why I write code for free at all, the reasons are:

  • It's my passion to write computer programs. In my free time I can write the code I want, when I want and the way I want. I can freely allocate my time and freely choose the projects I want to work on.
  • To help a friend or member of my family.
  • To solve a problem I have.
  • To learn something new.

Those are the reasons why I write code for free. Now the reasons why I publish the code, when I could as well keep it to myself:

  • So that it may bring value to users and the free software community.
  • Show my work as an artist.
  • To get into contact with other developers.
  • To exchange knowledge and help other developers.
  • And it's a nice change to put some more polish on my private projects.

Most of those reasons don't yet justify GPL. The main point of the GPL, as far as I understand: The GPL makes sure the software stays free software until eternity. That the end user of the software always stays in control. That the users have the means to adapt the software to new platforms or use cases. Even if the original authors don't maintain the software anymore. It ultimately prevents "vendor lock in". I really dislike vendor lock in, especially as developer. Especially as developer I want and need to stay in control of the computers and software I use.

Another point is, that my work (and the work of any other developer) has a value. If I give away my work without any strings attached, I effectively work for free. This compromises the price I (and potentially other developers) can demand for the skill, workforce and time.

This makes two reasons for me to choose the GPL:

  1. I do not want to support vendor lock in scenarios for free. I want to prevent those when I have a choice, when I invest my private time to bring value to the end users.
  2. I don't want to low ball my own (and other developer's) wage and prices by giving away the work I spent my scarce private time on with no strings attached. I do not want companies to be able to use it in closed source projects to drive a vendor lock in scenario.

We can discuss relicensing of my code or project if you are interested in using it in a closed source project. Bear in mind, that I can only relicense the parts of the project I wrote. If the project contains GPL code from other projects and authors, I can't relicense it.

hexosynth's People

Contributors

weirdconstructor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hexosynth's Issues

Build failure on Fedora 38

I am trying to build hexosynth on Fedora 38 from master.
I met a build error:

   Compiling synfx-dsp v0.5.6
error[E0432]: unresolved import `std::simd::cmp`
  --> /home/collette/.cargo/registry/src/index.crates.io-6f17d22bba15001f/synfx-dsp-0.5.6/src/fh_va/ladder.rs:11:16
   |
11 | use std::simd::cmp::SimdPartialEq;
   |                ^^^ could not find `cmp` in `simd`

error[E0432]: unresolved import `std::simd::cmp`
  --> /home/collette/.cargo/registry/src/index.crates.io-6f17d22bba15001f/synfx-dsp-0.5.6/src/fh_va/ladder.rs:12:16
   |
12 | use std::simd::cmp::SimdPartialOrd;
   |                ^^^ could not find `cmp` in `simd`

error[E0554]: `#![feature]` may not be used on the stable release channel
   --> /home/collette/.cargo/registry/src/index.crates.io-6f17d22bba15001f/synfx-dsp-0.5.6/src/lib.rs:230:12
    |
230 | #![feature(portable_simd)]
    |            ^^^^^^^^^^^^^

Some errors have detailed explanations: E0432, E0554.
For more information about an error, try `rustc --explain E0432`.
error: could not compile `synfx-dsp` (lib) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
erreur : Mauvais statut de sortie pour /var/tmp/rpm-tmp.BiUe0p (%build)

Blank purple screen?

Hi. As a standalone JACK application or VST3 (unsure of CPAL or CLAP), current main branch creates an empty purple window. As a plugin, an audio loop plays through the DAW (tested in reaper and ardour8).

image

System:
arch linux - 6.7.3
wayland, sway, pipewire
AMD GPU

warning: `hexosynth` (lib) generated 15 warnings (run `cargo fix --lib -p hexosynth` to apply 4 suggestions)
    Finished release [optimized] target(s) in 0.14s
     Running `target/release/hexosynth_jack`
JACK: sample rate changed to 48000
JACK: port registered: HexoSynth:hexosynth_in1
JACK: registered port with id 6676
JACK: thread init
JACK: port registered: HexoSynth:hexosynth_in2
JACK: registered port with id 6677
JACK: port registered: HexoSynth:hexosynth_out1
JACK: registered port with id 6678
JACK: port registered: HexoSynth:hexosynth_out2
JACK: registered port with id 6679
JACK: ports with id 6678 and 6351 are connected
JACK: graph reordered
JACK: ports with id 6679 and 6353 are connected
JACK: graph reordered
SYNC FROM
HexoTK drop widget ID=13
HexoTK drop widget ID=14
HexoTK drop widget ID=15
HexoTK drop widget ID=17
HexoTK drop widget ID=16
HexoTK drop widget ID=136
HexoTK drop widget ID=137
HexoTK drop widget ID=134
HexoTK drop widget ID=135
HexoTK drop widget ID=49
HexoTK drop widget ID=50
HexoTK drop widget ID=51
HexoTK drop widget ID=54
HexoTK drop widget ID=52
HexoTK drop widget ID=53
HexoTK drop widget ID=55
HexoTK drop widget ID=138
HexoTK drop widget ID=139
HexoTK drop widget ID=140
HexoTK drop widget ID=141
HexoTK drop widget ID=142
HexoTK drop widget ID=143
HexoTK drop widget ID=144
HexoTK drop widget ID=145
HexoTK drop widget ID=146
HexoTK drop widget ID=18
HexoTK drop widget ID=147
HexoTK drop widget ID=149
HexoTK drop widget ID=150
HexoTK drop widget ID=148
HexoTK drop widget ID=219
HexoTK drop widget ID=220
HexoTK drop widget ID=221
HexoTK drop widget ID=222
HexoTK drop widget ID=152
HexoTK drop widget ID=155
HexoTK drop widget ID=158
HexoTK drop widget ID=160
HexoTK drop widget ID=159
HexoTK drop widget ID=161
HexoTK drop widget ID=163
HexoTK drop widget ID=162
HexoTK drop widget ID=164
HexoTK drop widget ID=166
HexoTK drop widget ID=165
HexoTK drop widget ID=167
HexoTK drop widget ID=169
HexoTK drop widget ID=168
HexoTK drop widget ID=170
HexoTK drop widget ID=171
HexoTK drop widget ID=173
HexoTK drop widget ID=172
HexoTK drop widget ID=174
HexoTK drop widget ID=176
HexoTK drop widget ID=175
HexoTK drop widget ID=177
HexoTK drop widget ID=179
HexoTK drop widget ID=178
HexoTK drop widget ID=180
HexoTK drop widget ID=182
HexoTK drop widget ID=181
HexoTK drop widget ID=183
HexoTK drop widget ID=184
HexoTK drop widget ID=186
HexoTK drop widget ID=185
HexoTK drop widget ID=187
HexoTK drop widget ID=189
HexoTK drop widget ID=188
HexoTK drop widget ID=190
HexoTK drop widget ID=192
HexoTK drop widget ID=191
HexoTK drop widget ID=193
HexoTK drop widget ID=195
HexoTK drop widget ID=194
HexoTK drop widget ID=196
HexoTK drop widget ID=197
HexoTK drop widget ID=199
HexoTK drop widget ID=198
HexoTK drop widget ID=200
HexoTK drop widget ID=202
HexoTK drop widget ID=201
HexoTK drop widget ID=203
HexoTK drop widget ID=205
HexoTK drop widget ID=204
HexoTK drop widget ID=206
HexoTK drop widget ID=207
HexoTK drop widget ID=209
HexoTK drop widget ID=208
HexoTK drop widget ID=210
HexoTK drop widget ID=212
HexoTK drop widget ID=211
HexoTK drop widget ID=213
HexoTK drop widget ID=215
HexoTK drop widget ID=214
HexoTK drop widget ID=216
HexoTK drop widget ID=217
HexoTK drop widget ID=218
HexoTK drop widget ID=226
HexoTK drop widget ID=227
HexoTK drop widget ID=228
HexoTK drop widget ID=230
HexoTK drop widget ID=229
HexoTK drop widget ID=231
HexoTK drop widget ID=235
HexoTK drop widget ID=242
ERROR: Compile error: top_main:2:18 Compilation Error: Error on evaluating module 'main': Runtime error: Panic: Error value in map value: "No Document dir could be found!"
     "No Document dir could be found!"
    wllib/file_selector.wl:29:11 Func[new] [:patches]
    main.wl:1014:40 Call [:patches]

DPI FACTOR = 1, Phys=PhySize { width: 1400, height: 800 }, Logic=Size { width: 1400.0, height: 800.0 }
start relayout w=1400, h=800
layout changed
redraw (lbl=false): 1
UNHANDLED EVENT: Mouse(CursorEntered)
UNHANDLED EVENT: Mouse(CursorLeft)
UNHANDLED EVENT: Mouse(CursorEntered)
UNHANDLED EVENT: Mouse(CursorLeft)
JACK: unregistered client with name "HexoSynth"
[.@. HexoSynth]$

Rust build type-errors

hi, we briefly interacted a while ago on Mastodon, and was reminded of your project this morning.

I had some abandoned work from September where I tried to provision a dev environment using nix and build the project (I use NixOS so am accustomed to doing this).

this morning I rebased that over latest master and tried again. the changeset is captured here: https://github.com/mhuesch/HexoSynth/commits/mhueschen-2

I was able to get the deps working, tho arrived at a state where a number of Rust type errors dumped out. is that the expected state of master or did I do something wrong? of note, I tried both nightly 1.64 rust, and stable 1.62, with seemingly the same error msgs.

I was hoping to try out the latest state of the synth on my machine, but if you think that will be too much hassle I am ok with giving up / waiting 🙂 I know it can be jarring to have "visitors" show up unannounced into a codebase 🙇

vayu :: ~/projects/HexoSynth ‹mhueschen-2› » g rev-parse HEAD                               101 ↵
a1384bcac2ef3760abe8404f60ad27597a83eb09

vayu :: ~/projects/HexoSynth ‹mhueschen-2› » rustc --version                
rustc 1.64.0-nightly (c396bb3b8 2022-07-10)

vayu :: ~/projects/HexoSynth ‹mhueschen-2› » cargo build
   Compiling hexosynth v0.2.0-alpha-1 (/home/mhueschen/projects/HexoSynth)
error[E0432]: unresolved imports `hexotk::Units`, `hexotk::TestScript`, `hexotk::HexoTKWindowHandle`
 --> src/lib.rs:7:31
  |
7 | use hexotk::{UI, open_window, Units, Rect, TestScript, HexoTKWindowHandle};
  |                               ^^^^^        ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^ no `HexoTKWindowHandle` in the root
  |                               |            |
  |                               |            no `TestScript` in the root
  |                               no `Units` in the root

error[E0432]: unresolved import `hexotk::DummyParamModel`
  --> src/wlapi/hxdsp/matrix.rs:23:5
   |
23 | use hexotk::DummyParamModel;
   |     ^^^^^^^^^^^^^^^^^^^^^^^ no `DummyParamModel` in the root

error[E0432]: unresolved import `hexotk::PatternEditorFeedback`
  --> src/wlapi/hxdsp/matrix.rs:24:9
   |
24 | pub use hexotk::PatternEditorFeedback;
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `PatternEditorFeedback` in the root

error[E0432]: unresolved import `hexodsp::matrix::MatrixObserver`
 --> src/wlapi/hxdsp/matrix_recorder.rs:6:23
  |
6 | use hexodsp::matrix::{MatrixObserver};
  |                       ^^^^^^^^^^^^^^ no `MatrixObserver` in `matrix`

error[E0432]: unresolved imports `hexotk::HexGridModel`, `hexotk::HexCell`, `hexotk::HexDir`, `hexotk::HexEdge`, `hexotk::HexHLight`
 --> src/wlapi/hxdsp/grid_model.rs:7:14
  |
7 | use hexotk::{HexGridModel, HexCell, HexDir, HexEdge, HexHLight};
  |              ^^^^^^^^^^^^  ^^^^^^^  ^^^^^^  ^^^^^^^  ^^^^^^^^^ no `HexHLight` in the root
  |              |             |        |       |
  |              |             |        |       no `HexEdge` in the root
  |              |             |        no `HexDir` in the root
  |              |             no `HexCell` in the root
  |              no `HexGridModel` in the root

error[E0432]: unresolved import `hexotk::OctaveKeysModel`
 --> src/wlapi/hxdsp/octave_keys.rs:7:5
  |
7 | use hexotk::OctaveKeysModel;
  |     ^^^^^^^^^^^^^^^^^^^^^^^ no `OctaveKeysModel` in the root

error[E0432]: unresolved import `hexotk::GraphModel`
 --> src/wlapi/hxdsp/graph.rs:8:5
  |
8 | use hexotk::GraphModel;
  |     ^^^^^^^^^^^^^^^^^^ no `GraphModel` in the root

error[E0432]: unresolved import `hexotk::GraphMinMaxModel`
 --> src/wlapi/hxdsp/graph_minmax.rs:8:5
  |
8 | use hexotk::GraphMinMaxModel;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^ no `GraphMinMaxModel` in the root

error[E0432]: unresolved import `hexotk::ParamModel`
 --> src/wlapi/hex_knob.rs:6:5
  |
6 | use hexotk::ParamModel;
  |     ^^^^^^^^^^^^^^^^^^ no `ParamModel` in the root

error[E0432]: unresolved import `hexotk::ConnectorData`
 --> src/wlapi/connector.rs:7:5
  |
7 | use hexotk::ConnectorData;
  |     ^^^^^^^^^^^^^^^^^^^^^ no `ConnectorData` in the root

error[E0432]: unresolved imports `hexotk::WichTextData`, `hexotk::WichTextSimpleDataStore`
 --> src/wlapi/wichtext.rs:7:14
  |
7 | use hexotk::{WichTextData, WichTextSimpleDataStore};
  |              ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^ no `WichTextSimpleDataStore` in the root
  |              |
  |              no `WichTextData` in the root
  |              help: a similar name exists in the module: `WidgetData`

error[E0432]: unresolved imports `hexotk::UIPatternModel`, `hexotk::PatternData`, `hexotk::PatternEditorFeedback`, `hexotk::PatternEditorFeedbackDummy`
 --> src/wlapi/pattern_editor.rs:8:5
  |
8 |     UIPatternModel, PatternData,
  |     ^^^^^^^^^^^^^^  ^^^^^^^^^^^ no `PatternData` in the root
  |     |
  |     no `UIPatternModel` in the root
9 |     PatternEditorFeedback, PatternEditorFeedbackDummy
  |     ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `PatternEditorFeedbackDummy` in the root
  |     |
  |     no `PatternEditorFeedback` in the root

error[E0432]: unresolved import `hexotk::ParamModel`
 --> src/matrix_param_model.rs:5:14
  |
5 | use hexotk::{ParamModel, ChangeRes};
  |              ^^^^^^^^^^ no `ParamModel` in the root

error[E0433]: failed to resolve: could not find `Style` in `hexotk`
   --> src/lib.rs:143:60
    |
143 |         Self { style: Rc::new(RefCell::new(Rc::new(hexotk::Style::new()))) }
    |                                                            ^^^^^ could not find `Style` in `hexotk`

error[E0433]: failed to resolve: could not find `Align` in `hexotk`
   --> src/lib.rs:205:45
    |
205 |                         "center" => hexotk::Align::Center,
    |                                             ^^^^^ could not find `Align` in `hexotk`

error[E0433]: failed to resolve: could not find `Align` in `hexotk`
   --> src/lib.rs:206:45
    |
206 |                         "left"   => hexotk::Align::Left,
    |                                             ^^^^^ could not find `Align` in `hexotk`

error[E0433]: failed to resolve: could not find `Align` in `hexotk`
   --> src/lib.rs:207:45
    |
207 |                         "right"  => hexotk::Align::Right,
    |                                             ^^^^^ could not find `Align` in `hexotk`

error[E0433]: failed to resolve: could not find `Align` in `hexotk`
   --> src/lib.rs:208:45
    |
208 |                         _        => hexotk::Align::Left,
    |                                             ^^^^^ could not find `Align` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:218:48
    |
218 | ...                   "rect"  => hexotk::BorderStyle::Rect,
    |                                          ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:219:48
    |
219 | ...                   "hex"   => hexotk::BorderStyle::Hex {
    |                                          ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:224:41
    |
224 | ...                   hexotk::BorderStyle::Bevel {
    |                               ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:233:42
    |
233 | ...                   _ => hexotk::BorderStyle::Rect
    |                                    ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:239:48
    |
239 | ...                   "rect"  => hexotk::BorderStyle::Rect,
    |                                          ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:240:48
    |
240 | ...                   "hex"   => hexotk::BorderStyle::Hex {
    |                                          ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:243:48
    |
243 | ...                   "bevel" => hexotk::BorderStyle::Bevel {
    |                                          ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `BorderStyle` in `hexotk`
   --> src/lib.rs:246:42
    |
246 | ...                   _ => hexotk::BorderStyle::Rect
    |                                    ^^^^^^^^^^^ could not find `BorderStyle` in `hexotk`

error[E0433]: failed to resolve: could not find `VAlign` in `hexotk`
   --> src/lib.rs:255:45
    |
255 |                         "middle" => hexotk::VAlign::Middle,
    |                                             ^^^^^^ could not find `VAlign` in `hexotk`

error[E0433]: failed to resolve: could not find `VAlign` in `hexotk`
   --> src/lib.rs:256:45
    |
256 |                         "top"    => hexotk::VAlign::Top,
    |                                             ^^^^^^ could not find `VAlign` in `hexotk`

error[E0433]: failed to resolve: could not find `VAlign` in `hexotk`
   --> src/lib.rs:257:45
    |
257 |                         "bottom" => hexotk::VAlign::Bottom,
    |                                             ^^^^^^ could not find `VAlign` in `hexotk`

error[E0433]: failed to resolve: could not find `VAlign` in `hexotk`
   --> src/lib.rs:258:45
    |
258 |                         _        => hexotk::VAlign::Middle,
    |                                             ^^^^^^ could not find `VAlign` in `hexotk`

error[E0433]: failed to resolve: could not find `CloneMutable` in `hexotk`
   --> src/lib.rs:369:50
    |
369 |             txtmut: Rc::new(RefCell::new(hexotk::CloneMutable::new(s))),
    |                                                  ^^^^^^^^^^^^ could not find `CloneMutable` in `hexotk`

error[E0433]: failed to resolve: could not find `Widget` in `hexotk`
   --> src/lib.rs:406:22
    |
406 |         Self(hexotk::Widget::new(style))
    |                      ^^^^^^ could not find `Widget` in `hexotk`

error[E0433]: failed to resolve: could not find `PopupPos` in `hexotk`
   --> src/lib.rs:509:41
    |
509 |                 self.0.popup_at(hexotk::PopupPos::MousePos);
    |                                         ^^^^^^^^ could not find `PopupPos` in `hexotk`

error[E0433]: failed to resolve: could not find `PositionType` in `hexotk`
   --> src/lib.rs:580:78
    |
580 | ...                   "self"   => Some(hexotk::PositionType::SelfDirected),
    |                                                ^^^^^^^^^^^^ could not find `PositionType` in `hexotk`

error[E0433]: failed to resolve: could not find `PositionType` in `hexotk`
   --> src/lib.rs:581:78
    |
581 | ...                   "parent" => Some(hexotk::PositionType::ParentDirected),
    |                                                ^^^^^^^^^^^^ could not find `PositionType` in `hexotk`

error[E0433]: failed to resolve: could not find `LayoutType` in `hexotk`
   --> src/lib.rs:596:78
    |
596 | ...                   "row"    => Some(hexotk::LayoutType::Row),
    |                                                ^^^^^^^^^^ could not find `LayoutType` in `hexotk`

error[E0433]: failed to resolve: could not find `LayoutType` in `hexotk`
   --> src/lib.rs:597:78
    |
597 | ...                   "column" => Some(hexotk::LayoutType::Column),
    |                                                ^^^^^^^^^^ could not find `LayoutType` in `hexotk`

error[E0433]: failed to resolve: could not find `LayoutType` in `hexotk`
   --> src/lib.rs:598:78
    |
598 | ...                   "grid"   => Some(hexotk::LayoutType::Grid),
    |                                                ^^^^^^^^^^ could not find `LayoutType` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:677:53
    |
677 | ...                   self.0.set_ctrl(hexotk::Control::None);
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:681:53
    |
681 | ...                   self.0.set_ctrl(hexotk::Control::Rect);
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:685:53
    |
685 | ...                   self.0.set_ctrl(hexotk::Control::Label {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `CloneMutable` in `hexotk`
   --> src/lib.rs:689:53
    |
689 | ...                   hexotk::CloneMutable::new(
    |                               ^^^^^^^^^^^^ could not find `CloneMutable` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:695:53
    |
695 | ...                   self.0.set_ctrl(hexotk::Control::Button {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `CloneMutable` in `hexotk`
   --> src/lib.rs:699:53
    |
699 | ...                   hexotk::CloneMutable::new(
    |                               ^^^^^^^^^^^^ could not find `CloneMutable` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:706:57
    |
706 | ...                   self.0.set_ctrl(hexotk::Control::HexKnob {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `HexKnob` in `hexotk`
   --> src/lib.rs:707:60
    |
707 | ...                   knob: Box::new(hexotk::HexKnob::new(param)),
    |                                              ^^^^^^^ could not find `HexKnob` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:720:57
    |
720 | ...                   self.0.set_ctrl(hexotk::Control::HexGrid {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:734:57
    |
734 | ...                   self.0.set_ctrl(hexotk::Control::Connector {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `Connector` in `hexotk`
   --> src/lib.rs:735:59
    |
735 | ...                   con: Box::new(hexotk::Connector::new(data)),
    |                                             ^^^^^^^^^ could not find `Connector` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:748:57
    |
748 | ...                   self.0.set_ctrl(hexotk::Control::WichText {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `WichText` in `hexotk`
   --> src/lib.rs:749:58
    |
749 | ...                   wt: Box::new(hexotk::WichText::new(data)),
    |                                            ^^^^^^^^ could not find `WichText` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:762:57
    |
762 | ...                   self.0.set_ctrl(hexotk::Control::OctaveKeys {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `OctaveKeys` in `hexotk`
   --> src/lib.rs:763:60
    |
763 | ...                   keys: Box::new(hexotk::OctaveKeys::new(data)),
    |                                              ^^^^^^^^^^ could not find `OctaveKeys` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:780:57
    |
780 | ...                   self.0.set_ctrl(hexotk::Control::Graph {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:797:57
    |
797 | ...                   self.0.set_ctrl(hexotk::Control::GraphMinMax {
    |                                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `Control` in `hexotk`
   --> src/lib.rs:819:49
    |
819 | ...                   hexotk::Control::PatternEditor { edit });
    |                               ^^^^^^^ could not find `Control` in `hexotk`

error[E0433]: failed to resolve: could not find `EvPayload` in `hexotk`
   --> src/lib.rs:858:45
    |
858 | ...                   hexotk::EvPayload::Button(btn) => {
    |                               ^^^^^^^^^ could not find `EvPayload` in `hexotk`

error[E0433]: failed to resolve: could not find `EvPayload` in `hexotk`
   --> src/lib.rs:861:45
    |
861 | ...                   hexotk::EvPayload::HexGridClick { x, y, button } => {
    |                               ^^^^^^^^^ could not find `EvPayload` in `hexotk`

error[E0433]: failed to resolve: could not find `EvPayload` in `hexotk`
   --> src/lib.rs:867:45
    |
867 | ...                   hexotk::EvPayload::HexGridDrag {
    |                               ^^^^^^^^^ could not find `EvPayload` in `hexotk`

error[E0433]: failed to resolve: could not find `EvPayload` in `hexotk`
   --> src/lib.rs:878:45
    |
878 | ...                   hexotk::EvPayload::UserData(rc) => {
    |                               ^^^^^^^^^ could not find `EvPayload` in `hexotk`

error[E0433]: failed to resolve: could not find `EvPayload` in `hexotk`
   --> src/lib.rs:882:45
    |
882 | ...                   hexotk::EvPayload::DropAccept(rc) => {
    |                               ^^^^^^^^^ could not find `EvPayload` in `hexotk`

error[E0433]: failed to resolve: could not find `EvPayload` in `hexotk`
   --> src/lib.rs:891:45
    |
891 | ...                   hexotk::EvPayload::HexGridDropData { x, y, data: rc } => {
    |                               ^^^^^^^^^ could not find `EvPayload` in `hexotk`

error[E0433]: failed to resolve: could not find `style` in `hexotk`
    --> src/lib.rs:1228:40
     |
1228 |             for (name, clr) in hexotk::style::get_ui_colors() {
     |                                        ^^^^^ could not find `style` in `hexotk`

error[E0433]: failed to resolve: could not find `style` in `hexotk`
    --> src/lib.rs:1235:32
     |
1235 |             for clr in hexotk::style::get_standard_colors() {
     |                                ^^^^^ could not find `style` in `hexotk`

error[E0412]: cannot find type `Style` in crate `hexotk`
   --> src/lib.rs:138:38
    |
138 |     pub style: Rc<RefCell<Rc<hexotk::Style>>>,
    |                                      ^^^^^ not found in `hexotk`

error[E0412]: cannot find type `Style` in crate `hexotk`
   --> src/lib.rs:146:35
    |
146 |     pub fn from(style: Rc<hexotk::Style>) -> Self {
    |                                   ^^^^^ not found in `hexotk`

error[E0412]: cannot find type `Style` in crate `hexotk`
   --> src/lib.rs:180:43
    |
180 | fn set_style_from_key(style: &mut hexotk::Style, key: &str, v: &VVal) -> bool {
    |                                           ^^^^^ not found in `hexotk`

error[E0412]: cannot find type `Style` in crate `hexotk`
   --> src/lib.rs:357:54
    |
357 | pub fn vv2style_rc(mut v: VVal) -> Option<Rc<hexotk::Style>> {
    |                                                      ^^^^^ not found in `hexotk`

error[E0412]: cannot find type `CloneMutable` in crate `hexotk`
   --> src/lib.rs:363:36
    |
363 |     pub txtmut: Rc<RefCell<hexotk::CloneMutable<String>>>,
    |                                    ^^^^^^^^^^^^ not found in `hexotk`

error[E0412]: cannot find type `CloneMutable` in crate `hexotk`
   --> src/lib.rs:397:61
    |
397 | pub fn vv2txt_mut(mut v: VVal) -> Option<Rc<RefCell<hexotk::CloneMutable<String>>>> {
    |                                                             ^^^^^^^^^^^^ not found in `hexotk`

error[E0412]: cannot find type `Widget` in crate `hexotk`
   --> src/lib.rs:402:30
    |
402 | pub struct VUIWidget(hexotk::Widget);
    |                              ^^^^^^ help: a trait with a similar name exists: `WidgetUI`
    |
   ::: /home/mhueschen/.cargo/git/checkouts/hexotk-ec326cafa71f6e1c/56e23de/src/lib.rs:798:1
    |
798 | pub trait WidgetUI {
    | ------------------ similarly named trait `WidgetUI` defined here

error[E0412]: cannot find type `Style` in crate `hexotk`
   --> src/lib.rs:405:34
    |
405 |     pub fn new(style: Rc<hexotk::Style>) -> Self {
    |                                  ^^^^^ not found in `hexotk`

error[E0412]: cannot find type `Widget` in crate `hexotk`
   --> src/lib.rs:409:33
    |
409 |     pub fn from(widget: hexotk::Widget) -> Self {
    |                                 ^^^^^^ help: a trait with a similar name exists: `WidgetUI`
    |
   ::: /home/mhueschen/.cargo/git/checkouts/hexotk-ec326cafa71f6e1c/56e23de/src/lib.rs:798:1
    |
798 | pub trait WidgetUI {
    | ------------------ similarly named trait `WidgetUI` defined here

error[E0433]: failed to resolve: could not find `HexGrid` in `hexotk`
   --> src/lib.rs:721:60
    |
721 | ...                   grid: Box::new(hexotk::HexGrid::new(model)),
    |                                              ^^^^^^^ not found in `hexotk`
    |
help: consider importing this struct
    |
7   | use hexotk::widgets::HexGrid;
    |
help: if you import `HexGrid`, refer to it directly
    |
721 -                                     grid: Box::new(hexotk::HexGrid::new(model)),
721 +                                     grid: Box::new(HexGrid::new(model)),
    |

error[E0433]: failed to resolve: could not find `Graph` in `hexotk`
   --> src/lib.rs:781:61
    |
781 | ...                   graph: Box::new(hexotk::Graph::new(data, samples, live)),
    |                                               ^^^^^ not found in `hexotk`
    |
help: consider importing this struct
    |
7   | use hexotk::widgets::Graph;
    |
help: if you import `Graph`, refer to it directly
    |
781 -                                     graph: Box::new(hexotk::Graph::new(data, samples, live)),
781 +                                     graph: Box::new(Graph::new(data, samples, live)),
    |

error[E0433]: failed to resolve: could not find `GraphMinMax` in `hexotk`
   --> src/lib.rs:798:61
    |
798 | ...                   graph: Box::new(hexotk::GraphMinMax::new(data, samples)),
    |                                               ^^^^^^^^^^^ not found in `hexotk`
    |
help: consider importing this struct
    |
7   | use hexotk::widgets::GraphMinMax;
    |
help: if you import `GraphMinMax`, refer to it directly
    |
798 -                                     graph: Box::new(hexotk::GraphMinMax::new(data, samples)),
798 +                                     graph: Box::new(GraphMinMax::new(data, samples)),
    |

error[E0433]: failed to resolve: could not find `PatternEditor` in `hexotk`
   --> src/lib.rs:815:58
    |
815 | ...                   Box::new(hexotk::PatternEditor::new(columns));
    |                                        ^^^^^^^^^^^^^ not found in `hexotk`
    |
help: consider importing this struct
    |
7   | use hexotk::widgets::PatternEditor;
    |
help: if you import `PatternEditor`, refer to it directly
    |
815 -                                         Box::new(hexotk::PatternEditor::new(columns));
815 +                                         Box::new(PatternEditor::new(columns));
    |

error[E0412]: cannot find type `Widget` in crate `hexotk`
   --> src/lib.rs:924:49
    |
924 | pub fn vv2widget(mut v: VVal) -> Option<hexotk::Widget> {
    |                                                 ^^^^^^ help: a trait with a similar name exists: `WidgetUI`
    |
   ::: /home/mhueschen/.cargo/git/checkouts/hexotk-ec326cafa71f6e1c/56e23de/src/lib.rs:798:1
    |
798 | pub trait WidgetUI {
    | ------------------ similarly named trait `WidgetUI` defined here

error[E0412]: cannot find type `TestDriver` in crate `hexotk`
   --> src/lib.rs:999:47
    |
999 | pub struct VTestDriver(Rc<RefCell<Box<hexotk::TestDriver>>>);
    |                                               ^^^^^^^^^^ not found in `hexotk`

Some errors have detailed explanations: E0412, E0432, E0433.
For more information about an error, try `rustc --explain E0412`.
error: could not compile `hexosynth` due to 79 previous errors
vayu :: ~/projects/HexoSynth ‹mhueschen-2› »                                                101 ↵

Failure to compile on Fedora ARM64

Hello, as said in the title, I tried to compile on a Fedora ARM64.

I add to install:

sudo dnf install alsa-lib-devel libXcursor-devel mesa-libGL-devel jack-audio-connection-kit-devel xcb-util-wm-devel.aarch64

But I get this error:

   Compiling fnv v1.0.7
error[E0432]: unresolved import `std::simd::cmp`
  --> /home/felixdv/.cargo/registry/src/index.crates.io-6f17d22bba15001f/synfx-dsp-0.5.6/src/fh_va/ladder.rs:11:16
   |
11 | use std::simd::cmp::SimdPartialEq;
   |                ^^^ could not find `cmp` in `simd`

error[E0432]: unresolved import `std::simd::cmp`
  --> /home/felixdv/.cargo/registry/src/index.crates.io-6f17d22bba15001f/synfx-dsp-0.5.6/src/fh_va/ladder.rs:12:16
   |
12 | use std::simd::cmp::SimdPartialOrd;
   |                ^^^ could not find `cmp` in `simd`

   Compiling cfg-if v0.1.10
error[E0554]: `#![feature]` may not be used on the stable release channel
   --> /home/felixdv/.cargo/registry/src/index.crates.io-6f17d22bba15001f/synfx-dsp-0.5.6/src/lib.rs:230:12
    |
230 | #![feature(portable_simd)]
    |            ^^^^^^^^^^^^^

error: Please select a feature to build for unix: `x11`, `wayland`

When compiling on Linux, I get an error:

cd nih_plug/
cargo xtask bundle hexosynth_plug --release
error: Please select a feature to build for unix: `x11`, `wayland`
  --> /home/tuxmain/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.1/src/platform_impl/linux/mod.rs:10:1
   |
10 | compile_error!("Please select a feature to build for unix: `x11`, `wayland`");
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0392]: parameter `T` is never used
  --> /home/tuxmain/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.1/src/event_loop.rs:35:22
   |
35 | pub struct EventLoop<T: 'static> {
   |                      ^ unused parameter
   |
   = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`

error[E0392]: parameter `T` is never used
  --> /home/tuxmain/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.1/src/event_loop.rs:46:34
   |
46 | pub struct EventLoopWindowTarget<T: 'static> {
   |                                  ^ unused parameter
   |
   = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`

error[E0392]: parameter `T` is never used
   --> /home/tuxmain/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.1/src/event_loop.rs:349:27
    |
349 | pub struct EventLoopProxy<T: 'static> {
    |                           ^ unused parameter
    |
    = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`

error[E0392]: parameter `T` is never used
   --> /home/tuxmain/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.1/src/platform_impl/linux/mod.rs:635:20
    |
635 | pub enum EventLoop<T: 'static> {
    |                    ^ unused parameter
    |
    = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`

error[E0392]: parameter `T` is never used
   --> /home/tuxmain/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.1/src/platform_impl/linux/mod.rs:642:25
    |
642 | pub enum EventLoopProxy<T: 'static> {
    |                         ^ unused parameter
    |
    = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`

error[E0392]: parameter `T` is never used
   --> /home/tuxmain/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.1/src/platform_impl/linux/mod.rs:769:32
    |
769 | pub enum EventLoopWindowTarget<T> {
    |                                ^ unused parameter
    |
    = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData`
    = help: if you intended `T` to be a const parameter, use `const T: usize` instead

For more information about this error, try `rustc --explain E0392`.
error: could not compile `winit` due to 7 previous errors
warning: build failed, waiting for other jobs to finish...
Error: Could not build hexosynth_plug

Maybe there should be an xtask option to choose x11 or wayland?

master 60a7bca
ArchLinux 5.15.55-2-lts, cargo 1.64.0-nightly (dbff32b27 2022-06-24)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.