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
[email protected]
https://mail.gnome.org/mailman/listinfo/beast

Reply via email to