Code Monkey home page Code Monkey logo

Comments (6)

Sytronik avatar Sytronik commented on June 23, 2024 1

Thank you for your interest.
Unfortunately, I and @crackyachae are busy these days.
I welcome any suggestions & PRs.

(In fact, I'm questioning whether this architecture (electron + rust backend) was a good choice.)

from thesia.

Sytronik avatar Sytronik commented on June 23, 2024 1

@m4b ,
Thank you for your interest and suggestions.

I also really want to use those GUI librarys written in Rust.
It would make the build process simple and could give better performance by using wgpu.

But I'm sorry, we (I and @crackyachae) can't use them for now.
To explain why, I have to say the motivations of starting this project.
In 2021, I had some experiences of audio signal processing, and I wanted to get familiar to Rust by developing some signal processing stuffs.
For that, I made an idea of this project, but I had mere experiences of developing GUI frontends.
So I needed a frontend developer.
And my friend @crackyachae just started learning the web frontend development at that time, and wanted to get familiar to html, css, js, React, etc.
That's why we decided to compose a frontend from web stacks and a backend from Rust.

Of course, since then, I have learned about GUI frontend a little by this project and @crackyachae have studied React.js enough.
So, in the future, we (or I only) can immigrate the frontend to those Rust libraries.
But we decided to keep this architecture until v1.0, to release the packaged app as soon as possible.
We can try other architectures (including your suggestions) for v2.0.

Anyways, I want to know about the details of problems that you faced while running thesia.
The recent version of main branch passed packaging tests for windows-latest, macos-latest, ubuntu-latest (See GitHub Actions tab), and we also tested macOS 13 + Intel, macOS 14 + Intel, macOS 14 + Apple Silicon, and Windows11 + AMD Ryzen 7800X3D.
(If you just don't want to install npm or other dependencies but want to try thesia, I can start to release beta versions of packaged app.)

P.S.
One of the best options for "web frontend + rust backend" is tauri now, but in 2021, it didn't exist.
If we immigrate this project to tauri, then problems that you faced might be relieved.
(But I think tauri can have performance issue caused by iner-process communication between frontend and backend with json serialization.
The current architecture of thesia involves a lot of communications between frontend and backend to suppport smoothly resizing images.
The backend runs in the same process as frontend for that purpose.
Of course, the current architecture is not the best and we have to change it one day.)

from thesia.

Sytronik avatar Sytronik commented on June 23, 2024

We're continuing this project. (You can run it by following the instructions in README)

from thesia.

m4b avatar m4b commented on June 23, 2024

this is closed issue, but wanted to also say very cool project, love that there's more work on sound related stuff in rust ecosystem! i tried running it but had various issues, at first fortran and then the npm stack made it a bit hard.

on that topic, if you're reconsidering the frontend aspects at any point (or not, it's probably a big rewrite!), there are now several very nice gpu based ui projects, e.g.

  1. iced
  2. egui
  3. bevy (more for games than guis)

are three off the top of my head i'm familiar with and used for various projects. the advantages there are a full rust stack and it uses wgpu (https://github.com/gfx-rs/wgpu) under the hood, which is nice.

some examples:
synth using iced: https://github.com/greatest-ape/OctaSine
midi wgpu app: https://github.com/PolyMeilex/Neothesia
bevy app: https://github.com/Woyten/tune/tree/main/microwave

my guess is your biggest issue is getting the styling/widgets right, but both iced and egui should have good styling features, although probably not as feature full as react, etc.

Anyway, just some suggestions if you ever end up looking at redoing the frontend graphical part in pure rust; regardless, keep up the good work!

from thesia.

m4b avatar m4b commented on June 23, 2024

I'm on archlinux, so packages are slightly different, but first issue was gcc-fortran needed to be installed; I also hit another error about some linalg symbols missing or something, but it still compiled, it might have been a warning (and I don't have the terminal log anymore).
The second issue was just getting npm and nodejs installed and all that business and the various other deps, I just didn't feel like installing a bunch of libraries to be honest is all, and was just for fun anyway :)
a precompiled binary would be fun to play with, but please don't feel need to package something up just for my benefit, etc. :)

from thesia.

Sytronik avatar Sytronik commented on June 23, 2024

@m4b
Okay, thank you for your sharing.
Honestly, I don't have any Linux machines w/ GUI.
A full testing on Linux may not be possible for now.
When we get pre-release or v1.0 version, I will possibly need testers for Linux.

Again, I appreciate your interest and testing.
Thank you :)

from thesia.

Related Issues (1)

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.