melos's People
melos's Issues
Move Console to Program to view logs from whole app
Multilanguage lyrics
Add tabs with different lyrics translations.
Name of the tab should represent sort name of language.
After tabs should be added "+" tab for adding new translations.
View folder structure in open/save dialogs
TODO:
- Add file list view to
OpenFileDialog
- Add file list view to
SaveFileDialog
- Add filters for files
Use walkdir crate to construct folder tree
Add config file
Config should contains:
- path to font
- window size
Search for lyric in the web
TODO:
- Extract logic from UI layer
- Create common lib to be shared between core library and plugins
- Create plugin system
- Create plugins for:
Playback queue
Make customizable playback queue from time frames to play audio in sequential order.
It will be useful if user want to play audio without some parts or duplicate some of them.
This needs to be in separate window and must be able to:
- add existing time frames to the queue
- move time frames up and down
- time frames must be updated from main window
Add name for time frame
Add text box near to "+" button to input time frame tag.
Tag should be viewed as not editable text or tooltip. Tag will help to understand to which quaternion the time frame relates to.
Replace @> button with "Play" button
Clicking on "@>" button is redundant step. It's will be better to move "Play" button from player section to each of time frame list items
Use 'failure' crate for error handling
Split sample sourсe by multiple structs
Splitting huge SmartSource, which do almost everything by multiple small structs. This will allow to test source seeking part in unit tests.
Make `FloatWindow` source finitie
Now all sources are infinity sample's producers. The better way is make them finite but with reset ability (using Resettable
trait). This can help avoid duplicating code for bounds checking there
https://github.com/AlexNav73/melos/blob/master/src/song/sources/windowed.rs#L122-L129
and here
https://github.com/AlexNav73/melos/blob/master/src/song/sources/smart.rs#L54-L59
Refactor configuration handling
Russian text renders as '?'
Global code reorganizing
Convert current project to a workspace with projects:
-
melos_song
- library which provides ability to create and play songs- add tests module for testing all sample sources
-
melos_ui
(Optional) - make base library for front-end libraries -
melos_ui_imgui
- UI implemented byimgui
-
melos
- meta project to collect all libraries into one runnable binary
Add 'New' button to main menu
Need ability to create empty project
Fix release build
λ cargo run --release
Compiling melos v0.1.0 (file:///D:/Programms/Rust/melos)
Finished release [optimized] target(s) in 70.24 secs
Running `target\release\melos.exe`
thread 'main' panicked at 'gl function was not loaded', D:\Programms\Rust\melos\target\release\build\gfx_gl-712da6e95429916c\out/gl_bindings.rs:1504:13
stack backtrace:
0: 0x7ff69c27ee15 - std::sys::windows::backtrace::unwind_backtrace
at C:\projects\rust\src\libstd\sys\windows\backtrace\mod.rs:65
1: 0x7ff69c2876cb - std::sys_common::backtrace::print
at C:\projects\rust\src\libstd\sys_common\backtrace.rs:56
2: 0x7ff69c27bb4f - std::panicking::default_hook::{{closure}}
at C:\projects\rust\src\libstd\panicking.rs:381
3: 0x7ff69c27b7f5 - std::panicking::default_hook
at C:\projects\rust\src\libstd\panicking.rs:397
4: 0x7ff69c27c11c - std::panicking::rust_panic_with_hook
at C:\projects\rust\src\libstd\panicking.rs:577
5: 0x7ff69c246881 - std::panicking::begin_panic::h0511d261efd2bc71
6: 0x7ff69c2467ab - gfx_gl::FnPtr::new::haa26dec2c5496951
7: 0x7ff69c2378d3 - <gfx_device_gl::info::Version as core::fmt::Debug>::fmt::h29397dd39c40bfae
8: 0x7ff69c237a43 - gfx_device_gl::info::get::h5953633c9fd6164f
9: 0x7ff69c21cc80 - gfx_device_gl::create::h1bc100f8777a6916
10: 0x7ff69c21c593 - gfx_window_glutin::init_existing_raw::h8bf9174f4d80e784
11: 0x7ff69c21c342 - gfx_window_glutin::init_raw::h9c634eba15d46005
12: 0x7ff69c2129f3 - gfx_window_glutin::init::h41182533b6e22a5f
13: 0x7ff69c20f2ff - melos::support_gfx::run::h6520fdc0d0aa1484
14: 0x7ff69c2007ee - <melos::Program as melos::support_gfx::AppContext>::show::hb4c56939ce310b69
15: 0x7ff69c213805 - std::io::append_to_string::hb659ac45b3e09c3e
16: 0x7ff69c27bd1c - std::panicking::try::do_call<closure,i32>
at C:\projects\rust\src\libstd\panicking.rs:476
17: 0x7ff69c28a961 - panic_unwind::__rust_maybe_catch_panic
at C:\projects\rust\src\libpanic_unwind\lib.rs:101
18: 0x7ff69c27f5e2 - std::rt::lang_start_internal
at C:\projects\rust\src\libstd\rt.rs:50
19: 0x7ff69c200959 - main
20: 0x7ff69c2e7dfb - __scrt_common_main_seh
at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283
21: 0x7ff941b31fe3 - BaseThreadInitThunk
error: process didn't exit successfully: `target\release\melos.exe` (exit code: 101)
Update:
Bug will be fixed in new version of the gfx_gl
(gfx_backend_gl
) library
- Update dependencies when new version will be shipped. To update deps will be enought to start
cargo update
Add ability to remove lyrics of choosed language
Now user can only to create new language tab. Language tabs can't be removed or edited for now.
Use TimeFrame struct in Player window
Store TimeFrame struct within Player struct instead of two u32 and implement From<TimeFrame> for TimeSpan
Save decoded song to file
Decoding of a song might take to much time to complete. May be it will be faster to store decoded audio stream file for future. It allow to skip decoding part of loading audio in memory.
In future, file with decoded audio stream can be read partially (only that part, which user try to play) and store it inside internal buffer. File will be load completely if user will play all time frames.
Empty tooltip
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.