Git Product home page Git Product logo

adct-the-experimenter / binaural-audio-editor Goto Github PK

View Code? Open in Web Editor NEW
56.0 56.0 6.0 15.51 MB

This is an audio application that produces 3D binaural audio from 2D mono audio samples and positional information given by the graphical user interface. Listen to 3D audio through stereo headphones. Video Demo:https://www.youtube.com/watch?v=peF9cZSwVGw

License: BSD 3-Clause "New" or "Revised" License

CMake 0.61% C++ 99.35% Shell 0.04%
3d-audio binaural binauralaudio cpp cxx hrtf openal-soft play-sounds soundscape spatial spatial-audio surround-sound wxwidgets

binaural-audio-editor's People

Contributors

adct-the-experimenter 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

Watchers

 avatar  avatar  avatar  avatar  avatar

binaural-audio-editor's Issues

Segfault from switching Sound Producer

The segfault happens within SoundProducer class.

To reproduce crash just create more than 1 sound producer and try to edit the first soundproducer made.

[Feature Request] Save in and load data from project files.

Data to save and load:

  • Listener attributes i.e. free roam status and external orientation status
  • Data points drawn on graph in listener and sound producer tracks.
  • Audio loaded from .wav, .ogg, .flac file
  • Sound producers(including names and position) created.
  • Which sound producers are attached to each sound producer track.

Listener class object pointer becomes null after wxWidgets app initialized.

https://www.codetriage.com/adct-the-experimenter/binaural-audio-editor/badges/users.svg
I need help in finding a solution to keeping Listener pointer not null so that it can be edited by a dialog. It becomes null after wxWidgets app initialization finishes.

Knowledge of wxWidgets, C++, and threads would be helpful here.

Editing the position and orientation of the listener is a very important new feature that needs to be added. It affects how sound is played.

It would be a very major contribution to the project if you solved this!

wxWidgets library not being linked

$ cmake .. -DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
  wxWidgets_INCLUDE_DIRS)
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.16/Modules/FindwxWidgets.cmake:1008 (find_package_handle_standard_args)
  CMakeLists.txt:15 (FIND_PACKAGE)


-- Configuring incomplete, errors occurred!
See also "/home/devesh/binaural-audio-editor/build/CMakeFiles/CMakeOutput.log".

I'm not being able to build the software,the process is failing at cmake build step.
I'm using Ubuntu 20.04.2 and I have installed all the other dependencies required.
I tried recompiling wxWidgets both with gtk2 and gtk3 ,wxWidgets gets built sucessfully but build process of binaural audio editor fails in both the cases.
In the above code snippet i was using gtk2,and the wx-config file was named "wx-config" instead of "wx-config-gtk3",apart from this minor change i have followed the guide.

Timeline Frame uses high amount of CPU

When timeline frame is used, the CPU usage increases by a lot.

However, if timeline frame is minimized the CPU usage is very low.
This indicates that rendering the timeline frame is causing the high amount of CPU usage.

Invalid SoundProducer pointer after new sound producer added to unique pointer vector

After pushing back a new unqiue_ptr sound producer object into vector containing sound producers, the soundproducers become invalid and point to 0x20 with no access to that address.

Where sound producer gets created.
osgViewerWX.cpp:420

Where the segfault happens.
soundproducer-track.cpp:143

Where invalid points is obtained.
soundproducer-registry.cpp:12

Setup Travis CI for build AppImage (portable binary package for Linux)

Lets setup Travis CI for auto-build AppImage (portable package for Linux) for each commit:

  1. Create ../blob/master/.travis.yml
  2. https://github.com/appimage/AppImageKit
    1.1. https://github.com/probonopd/linuxdeployqt
    1.2 https://github.com/linuxdeploy
  3. https://github.com/probonopd/uploadtool
  4. Enable Travis CI pushing to GitHub releases for this repo.

For example, take a look on LeoCAD .travis.yml implementation:

And here is how resulted builds would look like:

For any support:

Program crashes after preview of reverb sound effect finishes playing

New info:

This tends to happen on the second time that preview button is clicked on to play the sound with reverb effect.

Backtrace

#0 0x00007ffff576e78c in _XEnq () at /usr/lib/libX11.so.6
#1 0x00007ffff576b448 in () at /usr/lib/libX11.so.6
#2 0x00007ffff576bd8a in _XEventsQueued () at /usr/lib/libX11.so.6
#3 0x00007ffff575d782 in XPending () at /usr/lib/libX11.so.6
#4 0x00007ffff5becd97 in () at /usr/lib/libgdk-x11-2.0.so.0
#5 0x00007ffff58d6a00 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#6 0x00007ffff58d7046 in () at /usr/lib/libglib-2.0.so.0
#7 0x00007ffff58d729a in g_main_context_pending () at /usr/lib/libglib-2.0.so.0
#8 0x00007ffff5f75fea in gtk_events_pending () at /usr/lib/libgtk-x11-2.0.so.0
#9 0x00007ffff7bb0786 in wxApp::DoIdle() () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#10 0x00007ffff7bb08b4 in () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#11 0x00007ffff58d526f in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#12 0x00007ffff58d71b1 in () at /usr/lib/libglib-2.0.so.0
#13 0x00007ffff58d80c3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#14 0x00007ffff5f75df3 in gtk_main () at /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007ffff7bce1b6 in wxGUIEventLoop::DoRun() () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#16 0x00007ffff7762bae in wxEventLoopBase::Run() () at /usr/lib/libwx_baseu-3.0.so.0
#17 0x00007ffff7c378f1 in wxDialog::ShowModal() () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#18 0x0000555555649e56 in CreateStandardReverbZoneDialog::CreateStandardReverbZoneDialog(wxString const&, EffectsManager*)
(this=0x555555effb20, title=..., effects_manager=0x555555c91300)
at /home/pab/CodeProj/cxx_projects/binaural-audio-editor/src/CreateStandardReverbZoneDialog.cpp:298
#19 0x000055555562d923 in MainFrame::OnCreateStandardReverbZone(wxCommandEvent&) (this=0x555555826bf0, event=...)
at /home/pab/CodeProj/cxx_projects/binaural-audio-editor/src/osgViewerWX.cpp:808
#20 0x00007ffff789589e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
at /usr/lib/libwx_baseu-3.0.so.0
#21 0x00007ffff78959a4 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () at /usr/lib/libwx_baseu-3.0.so.0
#22 0x00007ffff7895cde in wxEvtHandler::TryHereOnly(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#23 0x00007ffff7895d64 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#24 0x00007ffff7895e02 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#25 0x00007ffff7d9ee6b in wxWindowBase::TryAfter(wxEvent&) () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#26 0x00007ffff7895ba7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#27 0x00007ffff7d554ea in wxMenuBase::SendEvent(int, int) () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#28 0x00007ffff7c4e6dc in () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#29 0x00007ffff59c1d5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#30 0x00007ffff59af88e in () at /usr/lib/libgobject-2.0.so.0
#31 0x00007ffff59b398a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#32 0x00007ffff59b47f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#33 0x00007ffff6091f38 in gtk_widget_activate () at /usr/lib/libgtk-x11-2.0.so.0
#34 0x00007ffff5f8ae71 in gtk_menu_shell_activate_item () at /usr/lib/libgtk-x11-2.0.so.0
#35 0x00007ffff5f8b140 in () at /usr/lib/libgtk-x11-2.0.so.0
#36 0x00007ffff5f787cc in () at /usr/lib/libgtk-x11-2.0.so.0
#37 0x00007ffff59c1d5a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#38 0x00007ffff59aeff8 in () at /usr/lib/libgobject-2.0.so.0
#39 0x00007ffff59b2f1c in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#40 0x00007ffff59b47f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#41 0x00007ffff6093235 in () at /usr/lib/libgtk-x11-2.0.so.0
#42 0x00007ffff5f76a0e in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
#43 0x00007ffff5f76e43 in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
#44 0x00007ffff5befd5e in () at /usr/lib/libgdk-x11-2.0.so.0
#45 0x00007ffff58d539e in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#46 0x00007ffff58d71b1 in () at /usr/lib/libglib-2.0.so.0
#47 0x00007ffff58d80c3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#48 0x00007ffff5f75df3 in gtk_main () at /usr/lib/libgtk-x11-2.0.so.0
#49 0x00007ffff7bce1b6 in wxGUIEventLoop::DoRun() () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#50 0x00007ffff7762bae in wxEventLoopBase::Run() () at /usr/lib/libwx_baseu-3.0.so.0
#51 0x00007ffff7727517 in wxAppConsoleBase::MainLoop() () at /usr/lib/libwx_baseu-3.0.so.0
#52 0x00007ffff77af4c8 in wxEntry(int&, wchar_t**) () at /usr/lib/libwx_baseu-3.0.so.0
#53 0x0000555555629134 in main(int, char**) (argc=1, argv=0x7fffffffe3e8)

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.