Midi Import broken

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Midi Import broken

Stefan Westerfeld
   Hi!

It appears that midi import is broken somehow, I just experienced this crash:

(beast-0.10.1:24158): BSE-WARNING **: no such method "create-song" of item "BseProject::Untitled.bse"
bseitem.cc:1013: beast-0.10.1[24162] CRITICAL: assertion failed: BSE_IS_ITEM (object)
bseitem.cc:783: beast-0.10.1[24162] CRITICAL: assertion failed: BSE_IS_ITEM (item)

Thread 2 "beast-0.10.1" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffea6e6700 (LWP 24162)]
bse_midi_file_setup_song () at bsemidifile.cc:327
327       Bse::SongImpl &song = *bsong->as<Bse::SongImpl*>();
(gdb) bt
#0  0x00007ffff6553e3e in bse_midi_file_setup_song(BseMidiFile*, BseSong*) () at bsemidifile.cc:327
#1  0x00007ffff649eb57 in Bse::ProjectImpl::import_midi_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at bseproject.cc:1145
#2  0x00007ffff6508398 in __aida_call__Project__import_midi_file() () at bseserverapi.cc:4809
#3  0x00007ffff5c13764 in Rapicorn::Aida::ServerConnectionImpl::dispatch() () at rcore/aida.cc:2354
#4  0x00007ffff6412657 in Bse::AidaGlibSourceImpl::glib_dispatch(_GSource*, int (*)(void*), void*) () at bsestartup.cc:114
#5  0x00007ffff6412657 in Bse::AidaGlibSourceImpl::glib_dispatch(_GSource*, int (*)(void*), void*) () at bsestartup.cc:85
#6  0x00007ffff691a1a7 in g_main_context_dispatch (context=0x7fffe40008c0) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3154
#7  0x00007ffff691a1a7 in g_main_context_dispatch (context=context@entry=0x7fffe40008c0) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3769
#8  0x00007ffff691a400 in g_main_context_iterate (context=context@entry=0x7fffe40008c0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3840
#9  0x00007ffff691a4ac in g_main_context_iteration (context=0x7fffe40008c0, may_block=1) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3901
#10 0x00007ffff646229c in bse_main_loop_thread() () at bsemain.cc:253
#11 0x00007ffff4d3fc80 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff57b870a in start_thread (arg=0x7fffea6e6700) at pthread_create.c:333
#13 0x00007ffff44a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

when trying to import a midi file after startup.

   Cu... Stefan
--
Stefan Westerfeld, http://space.twc.de/~stefan
_______________________________________________
beast mailing list
[hidden email]
https://mail.gnome.org/mailman/listinfo/beast
Reply | Threaded
Open this post in threaded view
|

Re: Midi Import broken

Tim Janik-6
Ok, looks like a left over from a recent procedure port.

I have some local build issues atm and its late, so here's a patch you can try,
but I can't test it just now.

Let me know if that helps.


On 28.11.2016 18:44, Stefan Westerfeld wrote:

>    Hi!
>
> It appears that midi import is broken somehow, I just experienced this crash:
>
> (beast-0.10.1:24158): BSE-WARNING **: no such method "create-song" of item "BseProject::Untitled.bse"
> bseitem.cc:1013: beast-0.10.1[24162] CRITICAL: assertion failed: BSE_IS_ITEM (object)
> bseitem.cc:783: beast-0.10.1[24162] CRITICAL: assertion failed: BSE_IS_ITEM (item)
>
> Thread 2 "beast-0.10.1" received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7fffea6e6700 (LWP 24162)]
> bse_midi_file_setup_song () at bsemidifile.cc:327
> 327       Bse::SongImpl &song = *bsong->as<Bse::SongImpl*>();
> (gdb) bt
> #0  0x00007ffff6553e3e in bse_midi_file_setup_song(BseMidiFile*, BseSong*) () at bsemidifile.cc:327
> #1  0x00007ffff649eb57 in Bse::ProjectImpl::import_midi_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at bseproject.cc:1145
> #2  0x00007ffff6508398 in __aida_call__Project__import_midi_file() () at bseserverapi.cc:4809
> #3  0x00007ffff5c13764 in Rapicorn::Aida::ServerConnectionImpl::dispatch() () at rcore/aida.cc:2354
> #4  0x00007ffff6412657 in Bse::AidaGlibSourceImpl::glib_dispatch(_GSource*, int (*)(void*), void*) () at bsestartup.cc:114
> #5  0x00007ffff6412657 in Bse::AidaGlibSourceImpl::glib_dispatch(_GSource*, int (*)(void*), void*) () at bsestartup.cc:85
> #6  0x00007ffff691a1a7 in g_main_context_dispatch (context=0x7fffe40008c0) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3154
> #7  0x00007ffff691a1a7 in g_main_context_dispatch (context=context@entry=0x7fffe40008c0) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3769
> #8  0x00007ffff691a400 in g_main_context_iterate (context=context@entry=0x7fffe40008c0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
>     at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3840
> #9  0x00007ffff691a4ac in g_main_context_iteration (context=0x7fffe40008c0, may_block=1) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3901
> #10 0x00007ffff646229c in bse_main_loop_thread() () at bsemain.cc:253
> #11 0x00007ffff4d3fc80 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #12 0x00007ffff57b870a in start_thread (arg=0x7fffea6e6700) at pthread_create.c:333
> #13 0x00007ffff44a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
>
> when trying to import a midi file after startup.
>
>    Cu... Stefan
>
--
Yours sincerely,
Tim Janik

https://testbit.eu/timj/
Free software author.

_______________________________________________
beast mailing list
[hidden email]
https://mail.gnome.org/mailman/listinfo/beast

create_song.diff (642 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Midi Import broken

Stefan Westerfeld
   Hi!

If I apply your patch, the crash is gone, however there are two more warnings
during midi import:

(beast-0.10.1:32358): BSE-WARNING **: item "BseSong::export.mid" has no property named `bpm'

(beast-0.10.1:32358): BSE-WARNING **: no such method "ensure-master-bus" of item "BseSong::export.mid"

So the bpm isn't imported properly. Also the imported tracks are not connected
to any output bus, so assigning an instrument and hitting play doesn't produce
any sound.

   Cu... Stefan

On Wed, Nov 30, 2016 at 01:28:15AM +0100, Tim Janik wrote:

> Ok, looks like a left over from a recent procedure port.
>
> I have some local build issues atm and its late, so here's a patch you can try,
> but I can't test it just now.
>
> Let me know if that helps.
>
>
> On 28.11.2016 18:44, Stefan Westerfeld wrote:
> >    Hi!
> >
> > It appears that midi import is broken somehow, I just experienced this crash:
> >
> > (beast-0.10.1:24158): BSE-WARNING **: no such method "create-song" of item "BseProject::Untitled.bse"
> > bseitem.cc:1013: beast-0.10.1[24162] CRITICAL: assertion failed: BSE_IS_ITEM (object)
> > bseitem.cc:783: beast-0.10.1[24162] CRITICAL: assertion failed: BSE_IS_ITEM (item)
> >
> > Thread 2 "beast-0.10.1" received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 0x7fffea6e6700 (LWP 24162)]
> > bse_midi_file_setup_song () at bsemidifile.cc:327
> > 327       Bse::SongImpl &song = *bsong->as<Bse::SongImpl*>();
> > (gdb) bt
> > #0  0x00007ffff6553e3e in bse_midi_file_setup_song(BseMidiFile*, BseSong*) () at bsemidifile.cc:327
> > #1  0x00007ffff649eb57 in Bse::ProjectImpl::import_midi_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at bseproject.cc:1145
> > #2  0x00007ffff6508398 in __aida_call__Project__import_midi_file() () at bseserverapi.cc:4809
> > #3  0x00007ffff5c13764 in Rapicorn::Aida::ServerConnectionImpl::dispatch() () at rcore/aida.cc:2354
> > #4  0x00007ffff6412657 in Bse::AidaGlibSourceImpl::glib_dispatch(_GSource*, int (*)(void*), void*) () at bsestartup.cc:114
> > #5  0x00007ffff6412657 in Bse::AidaGlibSourceImpl::glib_dispatch(_GSource*, int (*)(void*), void*) () at bsestartup.cc:85
> > #6  0x00007ffff691a1a7 in g_main_context_dispatch (context=0x7fffe40008c0) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3154
> > #7  0x00007ffff691a1a7 in g_main_context_dispatch (context=context@entry=0x7fffe40008c0) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3769
> > #8  0x00007ffff691a400 in g_main_context_iterate (context=context@entry=0x7fffe40008c0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
> >     at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3840
> > #9  0x00007ffff691a4ac in g_main_context_iteration (context=0x7fffe40008c0, may_block=1) at /build/glib2.0-7IO_Yw/glib2.0-2.48.1/./glib/gmain.c:3901
> > #10 0x00007ffff646229c in bse_main_loop_thread() () at bsemain.cc:253
> > #11 0x00007ffff4d3fc80 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> > #12 0x00007ffff57b870a in start_thread (arg=0x7fffea6e6700) at pthread_create.c:333
> > #13 0x00007ffff44a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
> >
> > when trying to import a midi file after startup.
> >
> >    Cu... Stefan
> >
>
> --
> Yours sincerely,
> Tim Janik
>
> https://testbit.eu/timj/
> Free software author.

> diff --git bse/bseproject.cc bse/bseproject.cc
> index ef9d37f..52c1b43 100644
> --- bse/bseproject.cc
> +++ bse/bseproject.cc
> @@ -1138,9 +1138,8 @@ ProjectImpl::import_midi_file (const String &file_name)
>        BseSong *song = bse_project_get_song (self);
>        if (!song)
>   {
> -  gchar *basename = g_path_get_basename (file_name.c_str());
> -  bse_item_exec (self, "create-song", basename, &song);
> -  g_free (basename);
> +          SongIfaceP song_iface = create_song (Path::basename (file_name));
> +          song = song_iface->as<BseSong*>();
>   }
>        bse_midi_file_setup_song (smf, song);
>        bse_item_undo_close (ustack);

> _______________________________________________
> beast mailing list
> [hidden email]
> https://mail.gnome.org/mailman/listinfo/beast


--
Stefan Westerfeld, http://space.twc.de/~stefan
_______________________________________________
beast mailing list
[hidden email]
https://mail.gnome.org/mailman/listinfo/beast