Giter VIP home page Giter VIP logo

mamba's Introduction

Mamba

Virtual MIDI keyboard and MIDI file player/recorder for the JACK Audio Connection Kit

Mamba

Description

Virtual MIDI Keyboard

Mamba comes with some predefined key-maps: QWERTZ, QWERTY, AZERTY (fr) and AZERTY (be), but you can also define your own key-maps with the included key-map editor. In addition to computer keyboard and mouse input, Mamba also supports JACK and ALSA MIDI In and Out connections. Incoming MIDI notes are displayed on the keyboard, each with their own colour according to their MIDI channels. JACK and ALSA connections can be managed within the connection menu.

Mamba implements full Scala tuning support, which means it can load Scala tuning files (*.scl) and Scala MIDI keymap files (*.kbm) to support micro-tonal tunings. These can be loaded simply via drag and drop or via the "File" -> "Load Scala" menu. The keyboard layout "tries" to reflect the loaded tuning ratio scala. MIDI keyboard mapping works for both JACK and ALSA MIDI input.

The MIDI-CC control dials on the GUI can be used via the mouse or the keyboard. Using the mouse you can hover over a dial and turn the mouse-wheel, or left-click and drag the mouse up/down. The pitch-wheel control is a special case: to use it with the mouse-wheel, you need to press the mouse-wheel while moving it. This is because of the auto-return-to-default value behaviour of the pitch-wheel. This means, when you release the mouse-wheel press, the pitch-wheel control will spring back to its default value 64.

To change the MIDI-CC control dials on the GUI via the PC keyboard, use the up/down arrow keys. For a control to receive keyboard input, it must be under the mouse pointer. When using the PC keyboard to control the pitch-wheel, it does not spring back to the default value.

16 Channel Live MIDI Looper/Recorder

To record a loop, press "Play" and then, to start recording, press "Record". To stop recording press "Record" again. Playback will start immediately.

The first recorded channel will become the Master Channel loop. This loop sets the length for all loops recorded afterwards. The loop length of the Master Channel will be adjusted (i.e. extended or cut) to the nearest full beat according to the tempo .

To record a new loop, switch to another MIDI channel, select your instrument and press "Record" again to start recording.

The loops recorded after the Master Channel loop will be synced to it. When the recording time exceeds the absolute Master Channel loop time, recording will be turned off, but the playback continues and loops back. Absolute time is not bound to the loop point, so you can record loops crossing it. You can also stop recording by pressing "Record" again before the time expires.

Each Channel can be cleared and re-recorded separately at any time. When you press "Record" on an already recorded channel, it will be cleared automatically before recording starts.

You can record events from the connected MIDI input device or use the the keyboard to play and record.

MIDI File Player

You can select a MIDI file via the menu "File" -> "Load MIDI", or just drag and drop a MIDI file from your file manager onto the keyboard. It will be loaded into the play buffer of the first channel, regardless of how many MIDI channels it uses. You can then use channels 2 - 16 to record your own playing on top of it. To play along with it you can use any channel. A loaded MIDI file will become the Master Channel loop of the looper.

To save your work, just go to menu "File" -> "Save MIDI file as", select a path and enter a file name. If the filename doesn't have one of the common MIDI file name extensions, Mamba will add the extension .midi before saving the file.

FluidSynth

FluidSynth settings

You can load an SF2 SoundFont via the menu "Fluidsynth" -> "Load SoundFont", or drag and drop it from your file manager onto the keyboard. Mamba will start the FluidSynth engine and create the necessary connections so that you can just start playing the SoundFont. The menu "Fluidsynth" -> "Settings" will open a new window were you can select the instrument for the currently selected MIDI channel and change the settings for the FluidSynth reverb and chorus. Also, you can select the tuning scale to use there; the available options are Just Intonation, 12-edo or Scala. All your Settings will be saved on exit, so when you next open the application you can just start playing.

Features

  • Virtual MIDI keyboard for JACK Audio Connection Kit
  • Includes ALSA MIDI support
  • Includes NSM support
  • Includes gettext localization support
  • Includes FluidSynth support
  • SoundFont loader for FluidSynth
  • Controls for FluidSynth reverb, chorus and channel pressure
  • Instrument selector for FluidSynth
  • Micro-tonal tuning for FluidSynth
  • MIDI Channel selector
  • MIDI Bank and Program selector
  • Keyboard mapping for QWERZ, QWERTY, AZERTY (fr) and AZERTY (be) selectable from the menu
  • Key-map editor to set up a custom key-map
  • PC keyboard mapping selector from C0 to C4
  • Control dials for sending MIDI Pitch-bend, and MIDI Control Changes (Balance, ModWheel (Modulation), Detune, Expression, Attack, Release and Volume) and setting the Note On velocity
  • MIDI Sustain and Sostenuto controller switches
  • Connection management menu
  • Supports MIDI file loading, saving, recording and loop-playing
  • BPM controller for playback speed
  • Supports MIDI Timing Clock for playback speed
  • MIDI Through: forwarding ALSA MIDI in to JACK
  • MIDI Through: forwarding MIDI input to output
  • MIDI input notes highlighting on keyboard
  • Resizable up to a full-range 127 keys view
  • Load MIDI files from the command-line
  • Supports JACK transport to start and stop MIDI-Loops
  • Supports loading Scala tuning (*.scl) files
  • Supports loading Scala MIDI keyboard mapping (*.kbm) files

Keyboard Shortcuts

Shortcut Function
ctrl + 0-4 change octave
ctrl + t toggle MIDI Through
ctrl + g toggle Grab Keyboard
ctrl + r toggle Record Button
ctrl + p toggle Play Button
ctrl + l open load file dialogue
ctrl + s open save file dialogue
ctrl + a show info box
ctrl + k show Key-map Editor
ctrl + q quit
ctrl + c quit

Dependencies

  • libfluidsynth-dev
  • libc6-dev
  • libsmf-dev
  • libcairo2-dev
  • libx11-dev
  • liblo-dev
  • libsigc++-2.0-dev
  • libjack-(jackd2)-dev
  • libasound2-dev

Prebuild Binary

Mamba.zip

Build

git submodule init
git submodule update
make
sudo make install # will install into /usr/bin

With Localization Support

git submodule init
git submodule update
make nls
sudo make install # will install into /usr/bin

mamba's People

Contributors

brummer10 avatar houston4444 avatar jn64 avatar noedigcode avatar orivej avatar schnitzeltony avatar spotlightkid avatar trebmuh 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

Watchers

 avatar  avatar  avatar  avatar

mamba's Issues

libxputty/xputty/header/xwidget-platform.h:84:1: error: unknown type name 'Display'

Build fails:

c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fschedule-insns' is not supported [-Wignored-optimization-argument]
In file included from MidiKeyBoard.cpp:22:
In file included from ./MidiKeyBoard.h:55:
In file included from /usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidgets.h:40:
In file included from /usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/widgets/xbutton.h:26:
In file included from /usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xputty.h:200:
In file included from /usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget.h:34:
/usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget-platform.h:84:1: error: unknown type name 'Display'
   84 | Display *os_open_display(char *display_name);
      | ^
/usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget-platform.h:91:23: error: unknown type name 'Display'
   91 | void os_close_display(Display *dpy);
      |                       ^
/usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget-platform.h:101:1: error: unknown type name 'Window'
  101 | Window os_get_root_window(Xputty *main, int flag);
      | ^
/usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget-platform.h:119:39: error: unknown type name 'Window'
  119 | void os_translate_coords(Widget_t *w, Window from_window, Window to_window,
      |                                       ^
/usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget-platform.h:119:59: error: unknown type name 'Window'
  119 | void os_translate_coords(Widget_t *w, Window from_window, Window to_window,
      |                                                           ^
/usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget-platform.h:147:21: error: unknown type name 'Display'
  147 | void os_move_window(Display *dpy, Widget_t *w, int x, int y);
      |                     ^
/usr/ports/audio/mamba/work/Mamba-2.6/libxputty/xputty/header/xwidget-platform.h:156:23: error: unknown type name 'Display'

Version: 2.6
FreeBSD 14.0

Grab keyboard on startup

Is it possible to make it automatically grab keyboard on startup with a command line argument/?

Make a minimal mode

Idea: Make a 'minimal mode' for Mamba. Where the goal is to make Mamba take as less screenspace as possible, but still being nice to use.

This is useful when you want to use Mamba with Ingen, AMS and those kind of synths.

See also: #28 (comment)

MIDI file playlist?

Being able to just load a directory of MIDI files so as to loop though them sequentially and back again to the start after (or randomly, etc.) for a bit of variety (beyond just one file) whilst testing.

Mamba 1.5 fails to build on fedora 32

Here is the error I've got:

XSynth.cpp: In member function 'void xsynth::XSynth::print_soundfont()':
XSynth.cpp:102:5: error: 'fluid_sfont_iteration_start' was not declared in this scope; did you mean 'fluid_synth_tuning_iteration_start'?
  102 |     fluid_sfont_iteration_start(sfont);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      |     fluid_synth_tuning_iteration_start
XSynth.cpp:104:21: error: 'fluid_sfont_iteration_next' was not declared in this scope; did you mean 'fluid_synth_tuning_iteration_next'?
  104 |     while((preset = fluid_sfont_iteration_next(sfont)) != NULL) {
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                     fluid_synth_tuning_iteration_next
XSynth.cpp:106:45: error: 'fluid_preset_get_banknum' was not declared in this scope; did you mean 'fluid_event_get_bank'?
  106 |         snprintf(inst, 100, "%03d %03d %s", fluid_preset_get_banknum(preset) + offset,
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~
      |                                             fluid_event_get_bank
XSynth.cpp:107:29: error: 'fluid_preset_get_num' was not declared in this scope; did you mean 'fluid_player_get_bpm'?
  107 |                             fluid_preset_get_num(preset),fluid_preset_get_name(preset));
      |                             ^~~~~~~~~~~~~~~~~~~~
      |                             fluid_player_get_bpm
XSynth.cpp:107:58: error: 'fluid_preset_get_name' was not declared in this scope; did you mean 'fluid_player_get_bpm'?
  107 |                             fluid_preset_get_num(preset),fluid_preset_get_name(preset));
      |                                                          ^~~~~~~~~~~~~~~~~~~~~
      |                                                          fluid_player_get_bpm
XSynth.cpp: In member function 'int xsynth::XSynth::get_instrument_for_channel(int)':
XSynth.cpp:143:41: error: 'fluid_preset_get_banknum' was not declared in this scope; did you mean 'fluid_event_get_bank'?
  143 |     snprintf(inst, 100, "%03d %03d %s", fluid_preset_get_banknum(preset) + offset,
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~
      |                                         fluid_event_get_bank
XSynth.cpp:144:25: error: 'fluid_preset_get_num' was not declared in this scope; did you mean 'fluid_player_get_bpm'?
  144 |                         fluid_preset_get_num(preset),fluid_preset_get_name(preset));
      |                         ^~~~~~~~~~~~~~~~~~~~
      |                         fluid_player_get_bpm
XSynth.cpp:144:54: error: 'fluid_preset_get_name' was not declared in this scope; did you mean 'fluid_player_get_bpm'?
  144 |                         fluid_preset_get_num(preset),fluid_preset_get_name(preset));
      |                                                      ^~~~~~~~~~~~~~~~~~~~~
      |                                                      fluid_player_get_bpm

On Fedora 32, fluidsynth 1.1.11 is installed.

[Idea] Mamba as LV2

Just a quick wild idea. Make Mamba as LV2 plugin, which you can load in Ingen (with embedded GUI)

keyboard map saved in NSM file, should it not be .config ?

Under NSM, the used keyboard map (azerty, qwerty...) seems to be saved in the NSM path.
It's quite annoying because user has to setup the keyboard each time (s)he adds Mamba to the Session.
It's not a big problem in RaySession because user can easily set Mamba client as template and open its template instead of the default one, but we can't do that in new-session-manager.

I think that the keyboard map should be stored only in .config . It takes more sense, almost users rarely change their keyboard map, and if you share your session with a stranger, this stranger would be happy to keep his own keyboard map.

Mamba fails to build on Fedora 38

Hi, thank you for Mamba! I just tried to build git HEAD on Fedora 38 x86_64 and the build fails with:

XAlsa.cpp: In member function 'void xalsa::XAlsa::xalsa_get_ports(std::vector<std::__cxx11::basic_string >, std::vector<std::__cxx11::basic_string >)':
XAlsa.cpp:157:34: error: no matching function for call to 'std::vector<std::__cxx11::basic_string >::push_back(char [256])'
157 | iports->push_back(port);
| ~~~~~~~~~~~~~~~~~^~~~~~

Any idea how to solve this error?

[discuss] mamba saves GUI state in NSM

Mamba saves and restore GUI state in NSM when saving a session. This is according to the original Non-Session-Manager (NSM) api.

I didn't fully made my mind up yet about what it is best behavior with regard to show/hide gui in NSM, somehow, it should be simple stupid and consequent. But now Mamba is behaving differently then most other applications.

NSM forks api now hides at launch. This is how plugins do it I think. A standalone application is no plugin though, normally when you start a standalone application, it shows up. That's what people expect.

It might not be bad though, to hide guis by default when opening a session. The default could then still be to show at new client launch. Like I said, I'm undecided at the moment here.

Anyway, for this particular behavior of Mamba, it might be a good thing if users can configure how they want Mamba to behave: save GUI state between session, or show or hide when opening a session.

i18n issues (French l10n)

Following #13 , I've build it and so far so good, it seems to work like a charm.

A few possible improvements here to get it perfect!


1. There are some places where the space allocated is too small to handle the French localised strings, such as:

mamba-trans-1
mamba-trans-3

Is there some way from your (coding) side to allow for more space and/or automatic spacing please?


2. One untranslated strings (File -> Load) and one (UTF-8 ?) issue:

mamba-trans-2


3. Clicking the Mapping -> Keymap Editor segfaults when the GUI is in French but displays the Editor if launched in English (LANG=C mamba). No message from the terminal.


That's my current findings.

[feature request] Easier/faster adjustment octave mapping

You can easily switch channel, bank etc. in Mamba, but for mapping different octave you need to go to the menu, so you need 3 clicks to change it (if you know where to do it). Would be nice if that would be the same as for channel, bank etc.

Segfault when Mamba is started under NSM or RaySession

Hi. Sorry to re-engage the issue counter ;)

Mamba always crashes with a segfault when it is started from RaySession or New Session Manager.

if I start from external (RS or NSM open, with a session loaded) this way:

NSM_URL=osc.udp://my_machine:16187/ mamba

result is :

NSM: Successfully registered. NSM says: Well hello, stranger. Welcome to the party.Erreur de segmentation

"Erreur de segmentation" means segfault in french.

System: Librazik 3
Mamba version: 2.1

mamba browsing limit ?

mamba-browser-limit

I don't know/understand why, but when I'm trying to load a SF, it looks like my /usr/share/ folder doesn't display things after the "./marco/ subfolder". Might that be a limitation because of the great number of /usr/share/ 's subfolders?

Edit: Mamba 1.4

This is the same with LANG=C mamba:

mamba-browsing-limit-en

Compilation problem with gcc-11

Hello,
I am trying to compile mamba on fedora 34 beta with gcc-11 and I met the following error message:

/usr/include/smf.h:217:1: note: 'extern "C"' linkage started here
  217 | extern "C" {
      | ^~~~~~~~~~
In file included from /usr/include/glib-2.0/glib/gatomic.h:31,
                 from /usr/include/glib-2.0/glib/gthread.h:32,
                 from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/smf.h:221,
                 from Mamba.h:22,
                 from Mamba.cpp:22:
/usr/include/c++/11/type_traits:1250:3: error: template with C linkage
 1250 |   template<typename _Tp>
      |   ^~~~~~~~
In file included from Mamba.h:22,
                 from Mamba.cpp:22:

MidiKeyBoard.cpp:745:35: error: ‘menu_add_check_entry’ was not declared in this scope;

Getting this currently:

...
cp libxputty.a ../libxputty/
make[2]: Leaving directory '/home/milk/.cache/yay/mamba-git/src/mamba/libxputty/Build'
make[1]: Leaving directory '/home/milk/.cache/yay/mamba-git/src/mamba/libxputty'
make[1]: Entering directory '/home/milk/.cache/yay/mamba-git/src/mamba/src'
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -O2 -D_FORTIFY_SOURCE=2 -Wall  MidiKeyBoard.cpp Mamba.cpp XJack.cpp NsmHandler.cpp xkeyboard.c -L. ../libxputty/libxputty/libxputty.a -o mamba -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-z,noexecstack -I./ -I../libxputty/libxputty/include/ `pkg-config --cflags --libs jack cairo x11 sigc++-2.0 liblo smf` -lm -pthread
MidiKeyBoard.cpp: In member function ‘void midikeyboard::XKeyBoard::get_port_entrys(Widget_t*, jack_port_t*, JackPortFlags)’:
MidiKeyBoard.cpp:745:35: error: ‘menu_add_check_entry’ was not declared in this scope; did you mean ‘menu_add_check_item’?
  745 |                 Widget_t *entry = menu_add_check_entry(parent,port_list[i]);
      |                                   ^~~~~~~~~~~~~~~~~~~~
      |                                   menu_add_check_item
make[1]: *** [Makefile:97: Mamba] Error 1
make[1]: Leaving directory '/home/milk/.cache/yay/mamba-git/src/mamba/src'
make: *** [Makefile:26: src] Error 2
==> ERROR: A failure occurred in build().

Ignore key repeat

Hi, using Mamba 2.2 on Fedora 33 / GNOME 3.38. I have key repeat enabled for typing purposes.

When I hold a key in Mamba, it repeats (repeatedly triggering the note).

In comparison, in other virtual MIDI keyboards like jack-keyboard, trackers, and other music software, it does not repeat. It behaves like a piano key (hold = sustain).

Is it possible for Mamba to also ignore key repeat and behave like a piano key?

Support microtonal scales

https://sevish.com/scaleworkshop/ allow to export custom scales.
By using the menu New -> "Subharmonic series segments" you can test an example of micro-tonale scale as used in Arabian, Balkan Indian and Turkish musics.

Scala (.scl files) is probably a great reference in micro-tonal music research softwares, but I don't know much more about all those formats.

Icon has a too light icon resolution

Hi !
The provided Mamba.png icon is 24x24 pixels only.
That is quite ugly when it is shown with higher size, like it can be the case in the main desktop menu, in RaySession or Agordejo.
However, the application icon (when Mamba is running) is fine, so I suppose it uses a vector image even if I can't found any .svg file.
Maybe Mamba could provide a .svg icon directly to desktop, and everything would we ok.

ability to set isomorphic key mapping

It'd be cool to have an option to set an arbitrary isomorphic key mapping
like for example -1 semitones going up vertically and 2 going right horizontally on the (typing) keyboard (Bosanquet-Wilson Layout)
here's what it would feel like to use in action with the example given, the values can also be changed under "Isomorphic key mapping"

mamba binary segmentation fault

Hello,
I tried mamba binary today on Devuan Daedalus.
I installed libsmf0 (1.3-4) and ran the binary. Got this error message:
Segmentation fault
Without any further indication.
Any suggestions as to how troubleshoot this issue?

mamba is veryyy long to start on librazik3

On my laptop on librazik3, mamba displays a GUI after at least 7-8 seconds, I think it is very long for this kind of software.
On my desktop on Ubuntu18.04, GUI is displayed in the two first seconds, what is largely acceptable.
There is a little performance difference between the two hardwares, but I can't think this explains the difference.

Note: the stderr messages is written only when GUI appears.

Samplerate 48000Hz 
Buffersize is 256 samples 
jack running with realtime priority

fetch wrong key state

Hi @trebmuh

Related to the issue you've reported on IRC, I checked your log http://paste.alacon.org/46731 and it looks to me as if Mamba indicate you've pressed 'ctrl +q' which quit the application.
It seems as if Mamba indicate the wrong key state and sym.
To ensure the correct keysym will be fetched, I use now the identifiers from keysymdef.h for the accel keys as well.
Also I've add a printout when 'ctrl +q' will be indicated.
Please try the latest commit and let me know if it works correct now, or at least, when not, if you get a printout when the application exits unexpected.

ability to save and load custom keymaps

would be a great feature to have, particularly for experimenting with different keyboard layouts for alternative tunings and such without having to remap it every time

I can't solve libfluidsynth dependency on Pop!_OS 22.04

Hi,

I downloaded the prebuilt binary and installed all the dependencies. But when I try run mamba I get an error message. Mamba seeks the library libfluidsynth.so.2 but in Pop!_OS 22.04 I have the version 3: libfluidsynth.so.3.

How to resolve this inconvenience?

fatal error: 'xwidgets.h' file not found

Build fails:

c++: warning: optimization flag '-fstrength-reduce' is not supported [-Wignored-optimization-argument]
c++: warning: optimization flag '-fschedule-insns' is not supported [-Wignored-optimization-argument]
In file included from MidiKeyBoard.cpp:22:
./MidiKeyBoard.h:55:10: fatal error: 'xwidgets.h' file not found
   55 | #include "xwidgets.h"
      |          ^~~~~~~~~~~~
1 error generated.

This file is present, just not found:

$ find . -name xwidgets.h
./work/Mamba-2.6/libxputty/xputty/header/xwidgets.h

Version: 2.6
FreeBSD 14.0

[FR] Grab keyboard hotkey

Hi,

I've found that Mamba has the cool feature to capture keypress being unfocused. But to toggle that option you have to use mouse.
What if to add some hotkey for switch on/off "Grab keyboard"?
I suppose that "on" will work while Mamba is focused only, and "off" when it's not in front too.

Custom key mapping for chromatic keyboards (for example a button accordion)

Thanks for the great program!

Regarding custom key mapping - there is one mistake and one wish.

  1. There is no way to specify the "Enter" key.

  2. The program is perfect for modeling chromatic keyboards (for example a button accordion), but duplication of keys is typical for them, that is, I need the ability to assign several different keys to the same note. Unfortunately, there is no such possibility in any virtual midi keyboard I know.
    https://en.wikipedia.org/wiki/Chromatic_button_accordion

Thank you!

mamba 2.4 segfaults on Manjaro when it connects to JACK

$ gcc -v
Es werden eingebaute Spezifikationen verwendet.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.1/lto-wrapper
Ziel: x86_64-pc-linux-gnu
Konfiguriert mit: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread-Modell: posix
Unterstützte LTO-Kompressionsalgorithmen: zlib zstd
gcc-Version 12.2.1 20230201 (GCC) 
$ gdb src/build/mamba 
GNU gdb (GDB) 13.1
[...]
]Reading symbols from src/build/mamba...
(gdb) run
Starting program: /home/chris/work/archlinux-proaudio/packages/mamba/src/Mamba_2.4/src/build/mamba 

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
[Thread debugging using libthread_db enabled]                                                                                                                                                 
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff60d46c0 (LWP 5623)]                                                                                                                                                        
[New Thread 0x7ffff58d36c0 (LWP 5624)]
[New Thread 0x7ffff57246c0 (LWP 5625)]
Samplerate 48000Hz 
[New Thread 0x7ffff56916c0 (LWP 5626)]
Buffersize is 256 samples 
jack running with realtime priority

Thread 1 "mamba" received signal SIGSEGV, Segmentation fault.
0x00007ffff74a55de in pthread_setschedparam () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff74a55de in pthread_setschedparam () at /usr/lib/libc.so.6
#1  0x00005555555bbb5c in xalsa::XAlsa::xalsa_set_priority(int) (this=0x7fffffffba50, priority=75) at XAlsa.cpp:131
#2  0x000055555557de2d in operator()(int) const (__closure=0x7fffffffc680, p=75) at MidiKeyBoard.cpp:3465
#3  0x0000555555580ec4 in std::__invoke_impl<void, main(int, char**)::<lambda(int)>&, int>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12.2.1/bits/invoke.h:61
#4  0x0000555555580303 in std::__invoke_r<void, main(int, char**)::<lambda(int)>&, int>(struct {...} &) (__fn=...) at /usr/include/c++/12.2.1/bits/invoke.h:111
#5  0x000055555557f643 in std::_Function_handler<void(int), main(int, char**)::<lambda(int)> >::_M_invoke(const std::_Any_data &, int &&) (__functor=..., __args#0=@0x7fffffffb574: 75)
    at /usr/include/c++/12.2.1/bits/std_function.h:290
#6  0x00005555555c1ddc in std::function<void (int)>::operator()(int) const (this=0x7fffffffc680, __args#0=75) at /usr/include/c++/12.2.1/bits/std_function.h:591
#7  0x00005555555beba2 in xjack::XJack::init_jack() (this=0x7fffffffc620) at XJack.cpp:175
#8  0x000055555557e26c in main(int, char**) (argc=1, argv=0x7fffffffccc8) at MidiKeyBoard.cpp:3477

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.