Coder Social home page Coder Social logo

drmr's People

Contributors

nicklan 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

drmr's Issues

Sample preview button

Loving the awesome sampler. Just what Linux audio needs right now (or at least, the part that I'm interesting in :D).

It would be really useful to have a sample preview button in the sample pane in the mane window. One reason is that if you're not familiar with the kit, then you really want to be able to check what it sounds like quickly and easily. Another is to check the sample gain and panning.

Just a small button near the sample title would be suitable - or you could even make the sample title a button.

DrMr 16

Hi Nick!

I love DrMr and how easy it is to use within Qtractor (as opposed to Hydrogen...). However, I liked the multi-channel capabilities inside Hydrogen (comes in handy when you want to sidechain or add effects to only the hi-hats or whatever), so I did some ugly modifications and turned DrMr into a 16 channel sampler.

This is my first open source contribution, so I don't know if I'm breaking any rules/etiquette, so I would be glad if you checked DrMr 16 through. Feel free to snap me on the fingers if you notice anything bad (not mainly the code... I know it's an ugly solution), no harm intended!

Warm greetings
Håkan Bernhardsson

Using hydrogen envelopes

I used Hydrogen envelope to shorten a Hihat, but when I loaded the drumkit in DrMr, it seems to be unaffected by the ADSR settings.

EDIT: I now realised it's a TODO feature, not yet completed.

UI doesn't work well on small screens

On my netbook, if there are any more than two or three rows of drums, then the bottom of the UI gets cut off, so I can't select a different drumkit. This probably wouldn't matter so much if all the kit controls were at the top, as I don't often need to change individual drums much.

It'd be great if the drums would spread out into more than 4 columns when the window was resized too, as this would allow easier access to most drums.

Allow custom MIDI mapping

I wish I could choose what sample listens to what MIDI note. A MIDI-learn style function for this would be great.

  1. Select your first sound.
  2. Press "MIDI learn" button for that sample
  3. Hit a pad or key you want to assign to that sample
  4. Repeat for all the samples you need!

wishlist: activity LED for each sample

Hi!

I don't know if it makes sense, but I've tried drmr for the first time today. It was connected to an external MIDI keyboard, so I simply tried all the keys to trigger the samples.

If I would want to alter some settings (vol/pan), I would have to guess which key belongs to which sample. If you could provide a way to indicate an active sample, things would be considerably easier.

Maybe add an LED between the two knobs or change the box' background colour upon activity, maybe even some colour gradient depending on the currently played velocity.

Cheers

Crashing Ardour 5

I was playing DrMr Sampler with a MIDI controller, while suddenly Ardour crashed.
As I was running a debug build, here's the full GDB backtrace from Ardour-5.4.40-dbg:

(gdb) thread apply all bt

Thread 157 (Thread 0x7fffc4cfd700 (LWP 25837)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fffb21f590d in ?? () from /usr/lib/lv2/drmr.lv2/drmr.so
#2  0x00007fffef5b06fa in start_thread (arg=0x7fffc4cfd700)
    at pthread_create.c:333
#3  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 57 (Thread 0x7fffc54fe700 (LWP 30285)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3882fcc in g_cond_wait ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff79064e3 in ArdourCanvas::WaveView::drawing_thread ()
    at ../libs/canvas/wave_view.cc:1565
#3  0x0000000000e535fd in sigc::pointer_functor0<void>::operator() (
    this=0xc47f798)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#4  0x0000000000e507a0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0xc47f790)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/---Type <return> to continue, or q <return> to quit---
adaptor_trait.h:251
#5  0x0000000000e4c84b in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0xc47f760)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#6  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#7  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#8  0x00007fffef5b06fa in start_thread (arg=0x7fffc54fe700)
    at pthread_create.c:333
#9  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 56 (Thread 0x7fff837fe700 (LWP 30206)):
#0  0x00007fffef5b9c5d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff3862a48 in g_usleep ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff63d97c1 in ARDOUR::AutomationWatch::thread (this=0x2ed9390)
    at ../libs/ardour/automation_watch.cc:153
#3  0x00007ffff63dcd41 in boost::_mfi::mf0<void, ARDOUR::AutomationWatch>::operator() (this=0x9624ae0, p=0x2ed9390)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/mem_fn_template.---Type <return> to continue, or q <return> to quit---
hpp:49
#4  0x00007ffff63dc926 in boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list0> (this=0x9624af0, f=..., a=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind.hpp:253
#5  0x00007ffff63dc3a7 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> > >::operator() (this=0x9624ae0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind_template.hpp:20
#6  0x00007ffff63dc334 in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> > > >::operator() (this=0x9624ae0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#7  0x00007ffff63dbe4a in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AutomationWatch>, boost::_bi::list1<boost::_bi::value<ARDOUR::AutomationWatch*> > >, void>::call_it (rep=0x9624ab0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#9  0x00007ffff3861225 in ?? ()
---Type <return> to continue, or q <return> to quit---
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#10 0x00007fffef5b06fa in start_thread (arg=0x7fff837fe700)
    at pthread_create.c:333
#11 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 55 (Thread 0x7fffb37fe700 (LWP 30205)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff6883b09 in ARDOUR::Session::auto_connect_thread_run (
    this=0x2f92b80) at ../libs/ardour/session.cc:7093
#2  0x00007ffff688387e in ARDOUR::Session::auto_connect_thread (arg=0x2f92b80)
    at ../libs/ardour/session.cc:7047
#3  0x00007fffef5b06fa in start_thread (arg=0x7fffb37fe700)
    at pthread_create.c:333
#4  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 54 (Thread 0x7fff82ffd700 (LWP 30204)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff68f4a95 in ARDOUR::Session::emit_thread_run (this=0x2f92b80)
    at ../libs/ardour/session_process.cc:1316
---Type <return> to continue, or q <return> to quit---
#2  0x00007ffff68f4a32 in ARDOUR::Session::emit_thread (arg=0x2f92b80)
    at ../libs/ardour/session_process.cc:1305
#3  0x00007fffef5b06fa in start_thread (arg=0x7fff82ffd700)
    at pthread_create.c:333
#4  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 48 (Thread 0x7fffb0feb700 (LWP 29784)):
#0  0x00007fffec2a4e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff3831674 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff38319f2 in g_main_loop_run ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#3  0x00007ffff4a620fb in BaseUI::main_thread (this=0x3f1add0)
    at ../libs/pbd/base_ui.cc:86
#4  0x00007ffff4a66140 in sigc::bound_mem_functor0<void, BaseUI>::operator() (
    this=0x3f1b558)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/mem_fun.h:1787
#5  0x00007ffff4a65d72 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, BaseUI> >::operator() (this=0x3f1b550)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
---Type <return> to continue, or q <return> to quit---
#6  0x00007ffff4a65821 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, BaseUI>, void>::call_it (rep=0x3f1b520)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#7  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#8  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#9  0x00007fffef5b06fa in start_thread (arg=0x7fffb0feb700)
    at pthread_create.c:333
#10 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 47 (Thread 0x7fffc40db800 (LWP 29783)):
#0  0x00007fffec2a4e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff4a77f00 in CrossThreadChannel::poll_for_request (this=0x2f1c7d8)
    at ../libs/pbd/crossthread.posix.cc:75
#2  0x00007ffff4a77f69 in CrossThreadChannel::receive (this=0x2f1c7d8, 
    msg=@0x7fffc40da46f: 0 '\000', wait=true)
    at ../libs/pbd/crossthread.posix.cc:96
#3  0x00007ffff63ecf8c in ARDOUR::Butler::thread_work (this=0x2f1c740)
    at ../libs/ardour/butler.cc:175
#4  0x00007ffff63ecd0d in ARDOUR::Butler::_thread_work (arg=0x2f1c740)
---Type <return> to continue, or q <return> to quit---
    at ../libs/ardour/butler.cc:156
#5  0x00007ffff4a99eb6 in fake_thread_start (arg=0x3f1abc0)
    at ../libs/pbd/pthread_utils.cc:101
#6  0x00007fffef5b06fa in start_thread (arg=0x7fffc40db800)
    at pthread_create.c:333
#7  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 46 (Thread 0x7fffc435f700 (LWP 29774)):
#0  0x00007fffb21f63fd in ?? () from /usr/lib/lv2/drmr.lv2/drmr.so
#1  0x00007fffb21f691c in ?? () from /usr/lib/lv2/drmr.lv2/drmr.so
#2  0x00007ffff69bf801 in lilv_instance_run (instance=0xe100a70, 
    sample_count=256)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/lilv-0/lilv/lilv.h:1662
#3  0x00007ffff69cedaa in ARDOUR::LV2Plugin::run (this=0xe204a80, nframes=256, 
    sync_work=false) at ../libs/ardour/lv2_plugin.cc:2878
#4  0x00007ffff69cca40 in ARDOUR::LV2Plugin::connect_and_run (this=0xe204a80, 
    bufs=..., start=4067584, end=4067840, speed=0, in_map=..., out_map=..., 
    nframes=256, offset=0) at ../libs/ardour/lv2_plugin.cc:2539
#5  0x00007ffff67873a4 in ARDOUR::PluginInsert::connect_and_run (
    this=0xe3c2890, bufs=..., start=4067584, end=4067840, speed=0, 
    nframes=256, offset=0, with_auto=true)
    at ../libs/ardour/plugin_insert.cc:904
---Type <return> to continue, or q <return> to quit---
#6  0x00007ffff678888f in ARDOUR::PluginInsert::run (this=0xe3c2890, bufs=..., 
    start_frame=4067584, end_frame=4067840, speed=0, nframes=256)
    at ../libs/ardour/plugin_insert.cc:1095
#7  0x00007ffff6810180 in ARDOUR::Route::process_output_buffers (
    this=0xdf2ff60, bufs=..., start_frame=4067584, end_frame=4067840, 
    nframes=256, declick=0, gain_automation_ok=true)
    at ../libs/ardour/route.cc:450
#8  0x00007ffff6811252 in ARDOUR::Route::passthru (this=0xdf2ff60, bufs=..., 
    start_frame=4067584, end_frame=4067840, nframes=256, declick=0)
    at ../libs/ardour/route.cc:608
#9  0x00007ffff69aabb3 in ARDOUR::Track::no_roll (this=0xdf2ff60, nframes=256, 
    start_frame=4067584, end_frame=4067840, session_state_changing=false)
    at ../libs/ardour/track.cc:480
#10 0x00007ffff670de33 in ARDOUR::MidiTrack::no_roll (this=0xdf2ff60, 
    nframes=256, start_frame=4067584, end_frame=4067840, state_changing=false)
    at ../libs/ardour/midi_track.cc:457
#11 0x00007ffff64df539 in ARDOUR::Graph::process_one_route (this=0x442b6c0, 
    route=0xdf2ff60) at ../libs/ardour/graph.cc:585
#12 0x00007ffff64e4c62 in ARDOUR::GraphNode::process (this=0xdf30268)
    at ../libs/ardour/graphnode.cc:79
#13 0x00007ffff64dda97 in ARDOUR::Graph::run_one (this=0x442b6c0)
    at ../libs/ardour/graph.cc:400
#14 0x00007ffff64ddcc6 in ARDOUR::Graph::helper_thread (this=0x442b6c0)
---Type <return> to continue, or q <return> to quit---
    at ../libs/ardour/graph.cc:418
#15 0x00007ffff64e428d in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (
    this=0x7fffc435ed58, p=0x442b6c0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/mem_fn_template.hpp:49
#16 0x00007ffff64e3988 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (
    this=0x7fffc435ed68, f=..., a=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind.hpp:253
#17 0x00007ffff64e2dfb in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (
    this=0x7fffc435ed58)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind_template.hpp:20
#18 0x00007ffff64e267d in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >, void>::invoke (function_obj_ptr=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/function/function_template.hpp:153
#19 0x0000000000733cf2 in boost::function0<void>::operator() (
    this=0x7fffc435ed50)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/function/function_template.hpp:760
---Type <return> to continue, or q <return> to quit---
#20 0x00007fffd5ae8c29 in ARDOUR::JACKAudioBackend::_start_process_thread (
    arg=0x20d71f0) at ../libs/backends/jack/jack_audiobackend.cc:936
#21 0x00007fffef5b06fa in start_thread (arg=0x7fffc435f700)
    at pthread_create.c:333
#22 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 45 (Thread 0x7fffc43e0700 (LWP 29773)):
#0  0x00007fffef5b8867 in futex_abstimed_wait_cancelable (private=0, 
    abstime=0x0, expected=0, futex_word=0x442b798)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x442b798, abstime=0x0)
    at sem_waitcommon.c:111
#2  0x00007fffef5b8914 in __new_sem_wait_slow (sem=0x442b798, abstime=0x0)
    at sem_waitcommon.c:181
#3  0x00007fffef5b89ba in __new_sem_wait (sem=<optimized out>) at sem_wait.c:29
#4  0x00007ffff64df796 in PBD::Semaphore::wait (this=0x442b798)
    at /home/ardour/linux-x86_64-v5/ardour/libs/pbd/pbd/semutils.h:61
#5  0x00007ffff64dd908 in ARDOUR::Graph::run_one (this=0x442b6c0)
    at ../libs/ardour/graph.cc:387
#6  0x00007ffff64ddcc6 in ARDOUR::Graph::helper_thread (this=0x442b6c0)
    at ../libs/ardour/graph.cc:418
#7  0x00007ffff64e428d in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (
---Type <return> to continue, or q <return> to quit---
    this=0x7fffc43dfd58, p=0x442b6c0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/mem_fn_template.hpp:49
#8  0x00007ffff64e3988 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (
    this=0x7fffc43dfd68, f=..., a=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind.hpp:253
#9  0x00007ffff64e2dfb in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (
    this=0x7fffc43dfd58)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind_template.hpp:20
#10 0x00007ffff64e267d in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >, void>::invoke (function_obj_ptr=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/function/function_template.hpp:153
#11 0x0000000000733cf2 in boost::function0<void>::operator() (
    this=0x7fffc43dfd50)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/function/function_template.hpp:760
#12 0x00007fffd5ae8c29 in ARDOUR::JACKAudioBackend::_start_process_thread (
    arg=0x20d71f0) at ../libs/backends/jack/jack_audiobackend.cc:936
---Type <return> to continue, or q <return> to quit---
#13 0x00007fffef5b06fa in start_thread (arg=0x7fffc43e0700)
    at pthread_create.c:333
#14 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 44 (Thread 0x7fffc4461700 (LWP 29772)):
#0  0x00007fffef5b8867 in futex_abstimed_wait_cancelable (private=0, 
    abstime=0x0, expected=0, futex_word=0x442b798)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x442b798, abstime=0x0)
    at sem_waitcommon.c:111
#2  0x00007fffef5b8914 in __new_sem_wait_slow (sem=0x442b798, abstime=0x0)
    at sem_waitcommon.c:181
#3  0x00007fffef5b89ba in __new_sem_wait (sem=<optimized out>) at sem_wait.c:29
#4  0x00007ffff64df796 in PBD::Semaphore::wait (this=0x442b798)
    at /home/ardour/linux-x86_64-v5/ardour/libs/pbd/pbd/semutils.h:61
#5  0x00007ffff64dd908 in ARDOUR::Graph::run_one (this=0x442b6c0)
    at ../libs/ardour/graph.cc:387
#6  0x00007ffff64ddf8b in ARDOUR::Graph::main_thread (this=0x442b6c0)
    at ../libs/ardour/graph.cc:457
#7  0x00007ffff64e428d in boost::_mfi::mf0<void, ARDOUR::Graph>::operator() (
    this=0x7fffc4460d58, p=0x442b6c0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/mem_fn_template.---Type <return> to continue, or q <return> to quit---
hpp:49
#8  0x00007ffff64e3988 in boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> >::operator()<boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list0> (
    this=0x7fffc4460d68, f=..., a=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind.hpp:253
#9  0x00007ffff64e2dfb in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >::operator() (
    this=0x7fffc4460d58)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind_template.hpp:20
#10 0x00007ffff64e267d in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::Graph>, boost::_bi::list1<boost::_bi::value<ARDOUR::Graph*> > >, void>::invoke (function_obj_ptr=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/function/function_template.hpp:153
#11 0x0000000000733cf2 in boost::function0<void>::operator() (
    this=0x7fffc4460d50)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/function/function_template.hpp:760
#12 0x00007fffd5ae8c29 in ARDOUR::JACKAudioBackend::_start_process_thread (
    arg=0x20d71f0) at ../libs/backends/jack/jack_audiobackend.cc:936
#13 0x00007fffef5b06fa in start_thread (arg=0x7fffc4461700)
    at pthread_create.c:333
---Type <return> to continue, or q <return> to quit---
#14 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 27 (Thread 0x7fffc5ed3700 (LWP 29098)):
#0  0x00007fffef5b8867 in futex_abstimed_wait_cancelable (private=0, 
    abstime=0x0, expected=0, futex_word=0x442b7d8)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x442b7d8, abstime=0x0)
    at sem_waitcommon.c:111
#2  0x00007fffef5b8914 in __new_sem_wait_slow (sem=0x442b7d8, abstime=0x0)
    at sem_waitcommon.c:181
#3  0x00007fffef5b89ba in __new_sem_wait (sem=<optimized out>) at sem_wait.c:29
#4  0x00007ffff64df796 in PBD::Semaphore::wait (this=0x442b7d8)
    at /home/ardour/linux-x86_64-v5/ardour/libs/pbd/pbd/semutils.h:61
#5  0x00007ffff64df286 in ARDOUR::Graph::routes_no_roll (this=0x442b6c0, 
    nframes=256, start_frame=4067584, end_frame=4067840, non_rt_pending=false, 
    declick=0) at ../libs/ardour/graph.cc:567
#6  0x00007ffff68efc58 in ARDOUR::Session::no_roll (this=0x2f92b80, 
    nframes=256) at ../libs/ardour/session_process.cc:147
#7  0x00007ffff68efa0c in ARDOUR::Session::fail_roll (this=0x2f92b80, 
    nframes=256) at ../libs/ardour/session_process.cc:126
#8  0x00007ffff68f32b3 in ARDOUR::Session::process_without_events (
    this=0x2f92b80, nframes=256) at ../libs/ardour/session_process.cc:833
---Type <return> to continue, or q <return> to quit---
#9  0x00007ffff68f0b3a in ARDOUR::Session::process_with_events (
    this=0x2f92b80, nframes=256) at ../libs/ardour/session_process.cc:362
#10 0x00007ffff68ef743 in ARDOUR::Session::process (this=0x2f92b80, 
    nframes=256) at ../libs/ardour/session_process.cc:76
#11 0x00007ffff6383773 in ARDOUR::AudioEngine::process_callback (
    this=0x1bdb2e0, nframes=256) at ../libs/ardour/audioengine.cc:375
#12 0x00007fffd5ae8cf3 in ARDOUR::JACKAudioBackend::process_thread (
    this=0x1da5640) at ../libs/backends/jack/jack_audiobackend.cc:967
#13 0x00007fffd5ae8c78 in ARDOUR::JACKAudioBackend::_process_thread (
    arg=0x1da5640) at ../libs/backends/jack/jack_audiobackend.cc:944
#14 0x00007fffd583363a in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#15 0x00007fffd5855ad0 in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#16 0x00007fffef5b06fa in start_thread (arg=0x7fffc5ed3700)
    at pthread_create.c:333
#17 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 26 (Thread 0x7fffc7d17700 (LWP 29095)):
#0  0x00007fffef5b955d in read () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffd58572b5 in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#2  0x00007fffd585a94b in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#3  0x00007fffd5855ad0 in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#4  0x00007fffef5b06fa in start_thread (arg=0x7fffc7d17700)
---Type <return> to continue, or q <return> to quit---
    at pthread_create.c:333
#5  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 25 (Thread 0x7fffc7d98700 (LWP 29094)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fffd58568fc in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#2  0x00007fffd5849858 in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#3  0x00007fffd5855ad0 in ?? () from /usr/lib/x86_64-linux-gnu/libjack.so.0
#4  0x00007fffef5b06fa in start_thread (arg=0x7fffc7d98700)
    at pthread_create.c:333
#5  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 13 (Thread 0x7fffc6ef9700 (LWP 24403)):
#0  0x00007fffec2a4e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff3831674 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff383177c in g_main_context_iteration ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#3  0x00007ffff38317b9 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#4  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#5  0x00007fffef5b06fa in start_thread (arg=0x7fffc6ef9700)
    at pthread_create.c:333
#6  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 7 (Thread 0x7fffd6cf9700 (LWP 24356)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3882fcc in g_cond_wait ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff6384006 in ARDOUR::AudioEngine::do_devicelist_update (
    this=0x1bdb2e0) at ../libs/ardour/audioengine.cc:560
#3  0x00007ffff638ebf5 in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator() (this=0x1a0b490, p=0x1bdb2e0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/mem_fn_template.hpp:49
#4  0x00007ffff638e69a in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0> (this=0x1a0b4a0, f=..., a=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind.hpp:253
#5  0x00007ffff638dcf3 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::o---Type <return> to continue, or q <return> to quit---
perator() (this=0x1a0b490)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind_template.hpp:20
#6  0x00007ffff638d67c in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator() (this=0x1a0b490)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#7  0x00007ffff638c968 in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::call_it (rep=0x1a0b460)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#9  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#10 0x00007fffef5b06fa in start_thread (arg=0x7fffd6cf9700)
    at pthread_create.c:333
#11 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7fffd74fa700 (LWP 24355)):
---Type <return> to continue, or q <return> to quit---
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3882fcc in g_cond_wait ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff6383de0 in ARDOUR::AudioEngine::do_reset_backend (
    this=0x1bdb2e0) at ../libs/ardour/audioengine.cc:525
#3  0x00007ffff638ebf5 in boost::_mfi::mf0<void, ARDOUR::AudioEngine>::operator() (this=0x1a0b440, p=0x1bdb2e0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/mem_fn_template.hpp:49
#4  0x00007ffff638e69a in boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> >::operator()<boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list0> (this=0x1a0b450, f=..., a=...)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind.hpp:253
#5  0x00007ffff638dcf3 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >::operator() (this=0x1a0b440)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/boost/bind/bind_template.hpp:20
#6  0x00007ffff638d67c in sigc::adaptor_functor<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > > >::operator() (this=0x1a0b440)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
---Type <return> to continue, or q <return> to quit---
#7  0x00007ffff638c968 in sigc::internal::slot_call0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, ARDOUR::AudioEngine>, boost::_bi::list1<boost::_bi::value<ARDOUR::AudioEngine*> > >, void>::call_it (rep=0x1a0b410)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#8  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#9  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#10 0x00007fffef5b06fa in start_thread (arg=0x7fffd74fa700)
    at pthread_create.c:333
#11 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7fffe5db9700 (LWP 24242)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3882fcc in g_cond_wait ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff631d466 in ARDOUR::Analyser::work ()
    at ../libs/ardour/analyser.cc:87
#3  0x00007ffff631d252 in analyser_work () at ../libs/ardour/analyser.cc:52
#4  0x0000000000e535fd in sigc::pointer_functor0<void>::operator() (
    this=0x19bd7a8)
---Type <return> to continue, or q <return> to quit---
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#5  0x0000000000e507a0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x19bd7a0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#6  0x0000000000e4c84b in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x19bd770)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#7  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#8  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#9  0x00007fffef5b06fa in start_thread (arg=0x7fffe5db9700)
    at pthread_create.c:333
#10 0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7fffe65ba700 (LWP 24241)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3882fcc in g_cond_wait ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#2  0x00007ffff697c89e in peak_thread_work ()
    at ../libs/ardour/source_factory.cc:71
#3  0x0000000000e535fd in sigc::pointer_functor0<void>::operator() (
    this=0x1964c28)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#4  0x0000000000e507a0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x1964c20)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#5  0x0000000000e4c84b in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x1964bf0)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#6  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#7  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#8  0x00007fffef5b06fa in start_thread (arg=0x7fffe65ba700)
    at pthread_create.c:333
#9  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

---Type <return> to continue, or q <return> to quit---
Thread 3 (Thread 0x7fffe6dbb700 (LWP 24240)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff3882fcc in g_cond_wait ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff697c89e in peak_thread_work ()
    at ../libs/ardour/source_factory.cc:71
#3  0x0000000000e535fd in sigc::pointer_functor0<void>::operator() (
    this=0x19be578)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/ptr_fun.h:77
#4  0x0000000000e507a0 in sigc::adaptor_functor<sigc::pointer_functor0<void> >::operator() (this=0x19be570)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251
#5  0x0000000000e4c84b in sigc::internal::slot_call0<sigc::pointer_functor0<void>, void>::call_it (rep=0x19be540)
    at /home/ardour/linux-x86_64-v5/gtk/inst/include/sigc++-2.0/sigc++/functors/slot.h:103
#6  0x00007ffff3dcb23d in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglibmm-2.4.so.1
#7  0x00007ffff3861225 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#8  0x00007fffef5b06fa in start_thread (arg=0x7fffe6dbb700)
---Type <return> to continue, or q <return> to quit---
    at pthread_create.c:333
#9  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7fffe75bc700 (LWP 24239)):
#0  0x00007fffef5b9c5d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff3862a48 in g_usleep ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x000000000114289d in gui_event_loop (ptr=0x0)
    at ../gtk2_ardour/linux_vst_gui_support.cc:475
#3  0x00007fffef5b06fa in start_thread (arg=0x7fffe75bc700)
    at pthread_create.c:333
#4  0x00007fffec2b0b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7ffff7f9e8c0 (LWP 23735)):
#0  0x00007fffec2a4e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff3831674 in ?? ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#2  0x00007ffff38319f2 in g_main_loop_run ()
   from /opt/Ardour-5.4.40-dbg/lib/libglib-2.0.so.0
#3  0x00007ffff2e27597 in gtk_main ()
   from /opt/Ardour-5.4.40-dbg/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#4  0x00007ffff75076fa in Gtkmm2ext::UI::run (this=0x1bfb4d0, old_receiver=...)
    at ../libs/gtkmm2ext/gtk_ui.cc:286
#5  0x0000000000bfccd3 in main (argc=1, argv=0x7fffffffdc48)
    at ../gtk2_ardour/main.cc:408
(gdb) 

drmr_ui.xml missing

joe@Joyce:~/building/drmr$ make
make: *** No rule to make target `drmr_ui.xml', needed by `drmr.lv2'. Stop.

update for gtk3

Hello, Just tried getting this to compile on ubuntu 20.04 . I am a programmer but lacking in Maekfile black magic!

Any possibility this will get updated?
Id love to be able to use hydrogren directly in ardour. Esp if it could fan out to multi tracks hint hint..

Avail for testing etc

Cannot handle symlinks

If the drumkit folder is a symlink drmr is not able to load it. Fails with:

trying to load: file:///home/falktx/.lv2/sfs.lv2/Audiophob/drumkit.xml
Unable to open file:: No such file or directory
Failed to load kit at: file:///home/falktx/.lv2/sfs.lv2/Audiophob
Passed a path I can't resolve, bailing out

These files definitely exist though:

$ file /home/falktx/.lv2/sfs.lv2/Audiophob
/home/falktx/.lv2/sfs.lv2/Audiophob: symbolic link to `/usr/share/hydrogen/data/drumkits/Audiophob'

and

$ file /home/falktx/.lv2/sfs.lv2/Audiophob/drumkit.xml
/home/falktx/.lv2/sfs.lv2/Audiophob/drumkit.xml: XML document text

Because of this drmr cannot load state in jalv and ardour3.

Fabla: Drmr replacement

Not to cut your grass Nick, but since Drmr hasn't seen much activity in a while, I thought I'd point out Harry Harren's Fabla: http://openavproductions.com/fabla/

It does basically the same thing as Drmr - very simple drum sampling, with basic controls per drum. It doesn't load hydrogen drumkits, as far as I know, but that may be possible in the future.

No UI in QT5 apps

Hi

This plugin is indispensable. It works in latest Qtractor build with QT4 but chokes on big Hydrogen banks and forgets its bank in between reloads, but othewise everything is OK. Thanks a lot, this is a really cool piece of plugin.

In Qtractor built with QT5, the UI is broken : See http://www.rncbc.org/drupal/comment/6453#comment-6453 and no access to the banks seem possible...

LV2 interfaces see kit option as an index instead of a name

When you load DrMr as an LV2 plugin within Qtractor, if you edit the plugin using Qtractors' interface, you can only see the drum kit index (integer), and not the drum kit title. This makes it pretty difficult to select which kit you want to use.

I don't know if it's possible to change this from DrMr - it might be a Qtractor problem. If it is, I'll submit a bug there.

new plugin gui

hi like your plugin it the best alterative to ez drummer or any of the others like it. I think it would be to have a new plugin gui like this
mocup

with a animated drum set
and a mixing board

Make use of Hydrogen mute groups

I often use mute groups in Hydrogen to make closed/open hihat sound like one instrument instead of two.
Looks like DrMr Sampler is ignoring them right now though.

wishlist:

At the beginning - thanks for this plugin. It will be a great thing.

I use / test it and I have some thoughts.

Triggers
Currently you can only change the "base midi note". I propose to create an array of triggers.

At the moment it looks like this:
nn = data[1];
nn-=baseNote;
trigger_sample(drmr,nn,data);

I propose to replace:
nn = trigger_table[data[1]];
if(nn>0){
nn--;
trigger_sample(drmr,nn,data);
}
/ / Samples in trigger_table numbers are increased by 1

"Sample a zero position" in this case would be unnecessary.
Table trigger_table for a each kit should be remembered (saved to a file).

Graphically this would look like a matrix: rows - midi notes (C2, C#2, D2...) , columns - sample number (or names).

Indicators play sample.
The topic has been exhausted in previous posts, so I will not be repeated.

And a little thing - to reduce the size of the wheel from 50 to 25 (or similar). But this is only my whim. ;)

I'm currently using Hydrogen and Ardour. This plugin is a positive revolution!
Very fan of you. With great interest I will be looking at further development DrMr.

Regards :)
Marcin.

Use digits instead of words to denote sample number

I find it easier to navigate a list of parameters when the use digits instead of words to convey numbers:

"01, 02, 03" is easier for me to read than "one, two, three"

Wouldn't it be a good idea to modify the DrMr Sampler LV2 plugin parameter names in such fashion?

This looks pretty confusing to me, I can't even tell if the samples are listen in order.
selection_192

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.