Git Product home page Git Product logo

picorims / wav2bar Goto Github PK

View Code? Open in Web Editor NEW
76.0 3.0 7.0 584.57 MB

Wav2Bar is a tool to make custom audio visualization and export production videos for the audio and music industry.

License: GNU General Public License v3.0

CSS 4.01% HTML 6.95% JavaScript 89.04%
video electron custom-audio-visualization music audio-visualizer audio music-industry audio-visualizer-creator ffmpeg electron-forge

wav2bar's Introduction

Wav2Bar

A tool to make custom audio visualization and export production videos for the audio/music industry.

Important Notes

  • This tool is a side project and is provided as is, without garantee of long term maintenance. If this is fine for you, you can proceed. Enjoy!
  • This tool is usable at this point, but is still in early development! Your work is subject to bugs, backup your saves!
  • Git LFS used to be used for node_modules and FFMpeg, but is no longer used. Both of these folders have been removed from the repository, but not its history. You do not need to clone them. Git LFS files are no longer included in archive downloads. If you want a full release source code archive, go to the releases section. This will include node_modules, but not FFmpeg (which can be downloaded from their official website compiled and packaged).
  • I know this is some Frankenstein of a project with an awful architecture, questionnable decisions (why my own UI system and state machine when you have all kinds of frameworks and libs?). It is something I started in high school and that I tried to continuously improve with refreshed novel (which explains the mix of module and non module JS for example). At the same time it is my sandbox for experimentations (custom UI, state machine, etc.). So yeah, it has a lot of awful stuff but I am just having fun there. Which doesn't mean I neglect it either. I have limited time and energy, that I try to avoid spending on endless refactoring (easier said than done). Check the FAQ in the development guidelines file for additional information.

Hacking

  • NodeJS must be installed (It will install npm too).
  • Clone the git repository (you can also use GitHub's download button if you only want to perform tests). Note that Git LFS is no longer used. Git LFS files are not cloned and packaged anymore.
  • Install node modules and dependencies using npm install.
  • Open the repository folder in a prompt and run npm start.
  • If everything works, download FFmpeg for your operating system and configure it in the app settings (otherwise export won't work!).

Compiling

Compilation is done through electron-forge v6's make command. No matter the platform, you can compile by running npm run make which is an alias to electron-forge make. It will automatically package the app before, but you can also do it using npm run package. More info at https://www.electronforge.io/ and https://www.electronforge.io/configuration.

Compilation settings are detailed in package.JSON at the "config" node. You can add additional configurations to export in other formats, but you need to have access to the targetted platform/OS and install required dependencies. The list of available makers is available at https://www.electronforge.io/config/makers.

FFmpeg should be installed independently and not compiled in the application.

ZIP (Windows, Linux)

Zip maker is available for all platforms, without any dependencies required. It will produce an executable to run the app from anywhere on your machine, without any installation process. Use this if you want a portable installation, that can for example be kept on an external storage device (like a USB stick).

Windows specific

WiX MSI

This maker create a Windows .msi installer. To make a .msi installer, Wix must be installed on the machine (not necessarily Windows), as well as light and candle installed from the WiX Toolkit. More info at https://www.electronforge.io/config/makers/wix-msi and https://github.com/felixrieseberg/electron-wix-msi. The paths for the installer assets are absolute, don't forget to change them in package.json or the make command will fail!

Linux specific

flatpak

This option is currently configured but NOT available due to this issue: electron/forge#2561

This maker creates a flatpak package, which is a sandboxed package that helps deploying applications to many Linux distributions at a time.

As per the Electron Forge documentation (https://www.electronforge.io/config/makers/flatpak):

You can only build the Flatpak target if you have flatpak, flatpak-builder, and eu-strip (usually part of the elfutils package) installed on your system.

deb and rpm

There are existing configurations for .deb and .rpm packages although they have not been tested as I have no viable Linux development environment at the moment.

deb and rpm packages have been abandoned as their packaging never worked, and Linux support is otherwise guaranteed from other package formats. Instead (if it works), flatpak support should be introduced in a future release.

Mac Specific

.pkg packages

Although there is no support for MacOS, the application may run just fine as Electron supports MacOS. If you would like to make a .pkg package for MacOS instead or running from source, you may look at https://www.electronforge.io/config/makers/pkg.

Using the Command Line Interface (CLI)

See docs/cli.md for more details.

License

This tool is licensed under GPL-3.0-or-later

Wav2Bar - Free software for creating audio visualization (motion design) videos
Copyright (C) 2023  Picorims <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

wav2bar's People

Contributors

pdejan avatar picorims 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

Watchers

 avatar  avatar  avatar

wav2bar's Issues

Inconsistent behavior with very long audio files (LIMITATION)

Describe the bug
When opening a very long audio file, it is unclear whether the app is loading or can't support it. The app seems to freeze or stop responding.

To Reproduce
Steps to reproduce the behavior:

  1. load a long audio file (more than half an hour)
  2. Try to play it
  3. Try to save it
  4. Try to export it

Expected behavior
The app notifies when it can't proceed the audio. (This would be an evolution)

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 0.3.3-beta

Additional context
The length required to reproduce the bug depends of the computer capabilities.

Timer object not exporting

Describe the bug
A clear and concise description of what the bug is.

working on a project I add a background image, a wavbar of any kind and a timer.
everything works fine while on Wav2Bar and while exporting the rendering shows movement on the bars and timer, but the final exported mp4 does include the bars but the timer object is missing or shows up but static, does not move

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error
    not a matter of the process but mostly the final outcome. The timer as an object gets added with no problem, but is not included in the final render

Expected behavior
A clear and concise description of what you expected to happen (if the bug described below didn't exist).
Is expected for the objects to appear in the final render as they are added in the editing process

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. Windows 10]
  • Version [e.g. 22]
  • additional specs judged useful
    **Win 11 x64
    0.3.1 beta, 0.3.0 beta
    ryzen 7 - 32gb
    **

Additional context
Add any other context about the problem here.

Trying to export a projet with an audio file in mono crashes the export

Describe the bug
Using a mono audio file in a project will result in the export window to freeze and the app to get stuck in a loading state.

To Reproduce

  1. Create a new project;
  2. Upload an audio file in mono;
  3. Add an object, e.g a visualizer;
  4. Export the project as a video;
  5. Observe.

Expected behavior
The export starts and the export window as well as the progress bar shows the progress of the export.

Desktop (please complete the following information):

  • OS: Windows
  • Version 0.3.0
  • used .msi installer

Additional context
Add any other context about the problem here.

[2022-06-02T18:26:09.660] [INFO] export - audio loaded successfully.
[2022-06-02T18:26:16.340] [ERROR] export - Uncaught IndexSizeError: Failed to execute 'getChannelData' on 'AudioBuffer': channel index (1) exceeds number of channels (1)
source: file:///C:/Program%20Files%20(x86)/Wav2Bar/app-0.3.0/resources/app/js/export_renderer.js
 line: 171
[2022-06-03T18:24:38.870] [INFO] main_renderer - The window will be closed.

Audio file extension containing capital letters may cause errors at export

Describe the bug
Using audio extensions that have capital letters in it can cause issues at export.

To Reproduce
Steps to reproduce the behavior:

  1. Import an audio file with an extension containing capital letters.
  2. Try to export the video.

Expected behavior
The video exports successfully.

Desktop (please complete the following information):

  • OS: Windows 10
  • Version: beta-0.3.0

Additional context
Using extensions without any capital letters (like .wav instead of .Wav or .WAV) is a workaround to the issue.

Linux cli version

Describe the solution you'd like
I would like to create videos using a command line, the application can have some inputs and export the video.

export process trying to evaluate CLI arguments

Describe the bug
When running Wav2Bar from the CLI, the export process also tries to evaluate it, causing the export to fail.

To Reproduce
Steps to reproduce the behavior:

  1. run start \wait Wav2Bar.exe -- export -i "path" -o "path".
  2. Look at the end of the logs.

Expected behavior
The video is successfully exported.

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 0.2.2

Additional context
The export only fails from the CLI, because the code causing the issue isn't ran when not using the CLI.

save help bubbles have outdated information

Describe the bug
Help of the save section in the project tab is outdated.

To Reproduce
Steps to reproduce the behavior:

  1. Go to project tab
  2. Hover question marks for all save related options.

Expected behavior
Indicating that it is saved in .w2bzip format, and that audio and video is saved.

Screenshots

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 0.2.2

Additional context
Can be fixed by updating related strings in save section in assets/help/help.json.

The open logs folder is broken

Describe the bug
Clicking on the browse logs folder button in the settings throws an error.

To Reproduce
Steps to reproduce the behavior:

  1. Go to settings
  2. Click on BROWSE LOGS FOLDER

Expected behavior
Open the logs folder.

Actual behavior
An error in a new window is thrown.

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 0.3.2-beta

Additional context
It seems to be an issue with slashes.

FPS, screen size and JPEG export inputs are completely broken (MSI installation)

Describe the bug
FPS, screen size and JPEG export inputs are completely broken. Labels do not show up correctly, and inputs have no effect.

To Reproduce
Steps to reproduce the behavior:

  1. Open the application
  2. Observe incorrect labels
  3. Test the inputs in front of incorrect labels.

Expected behavior
FPS, screen size and JPEG export values should be visible and editable, inputs should have an effect, and labels should be correct.

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 0.3.2-beta
  • MSI installation (no impact on ZIP)

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.