beekeep: graphical scene editor

  • in fits and starts over the last several weeks, i went ahead and added a bunch of stuff to the 'beekeep' utility so it now functions as a graphical scene editor. it is not exactly a brilliant piece of graphic design, but i hope it will be useful.

    i wanted to post linux and mac builds, but found it surprisingly difficult to make a functioning app bundle for a GTK+ application on mac, though it does build and run, with considerable work.
    (see here: https://github.com/tehn/aleph/blob/master/utils/beekeep/build_osx.md)

    since that is taking longer than i hoped, i went ahead and posted 32bit and 64bit builds for linux on the aleph github:
    https://github.com/tehn/aleph/releases/tag/beekeep-0.6.0-linux

    these binaries were built on xubuntu and should work on most distributions that already use GTK. it should also be pretty easy to build from source.
    (see here: https://github.com/tehn/aleph/blob/master/utils/beekeep/build_linux.md)

    i also posted a usage guide here:
    http://monome.org/docs/aleph:beekeep

    if you use linux, please give it a try and let me know what you think!

  • if anyone has experience in bundling osx applications, particularly using GTK+ (with its complex shared librariy dependencies), do get in touch. i could use your help. otherwise i will muddle through it eventually.

    to give you an idea, this is the kind of thing that needs to be done:
    http://ascend4.org/Porting_to_Mac/gtk-mac-bundler

    GTK provides a python tool to help with this:
    https://wiki.gnome.org/Projects/GTK+/OSX/Bundling
    but i had no luck getting it to work. i think it has not been maintained in a while.

  • This is awesome Ezra.

    unfortunately I don't have any useful skills to offer, but will be checking in regularly for the mac build.

    Stoked!

  • setting up linux for this

    thanks z!

  • brilliant news, ezra! won't be setting up linux just yet, but wait a little while longer until the mac version is done. unfortunately not able to help with the technical stuff.

    thanks for making this happen.

    @gli: please do post your experience with it once you've got everything installed and working. cheers!

  • brilliant news, ezra! won't be setting up linux just yet, but wait a little while longer until the mac version is done. unfortunately not able to help with the technical stuff.

    thanks for making this happen.

    @gli: please do post your experience with it once you've got everything installed and working. cheers!

  • waiting on mac build :)

  • same here, sorry...

  • I just ran beekeep on a Mac using a Linux virtual machine. I'm using VirtualBox and a BitCurator* image, but you could use any image that boots into Xwindows -- Ubuntu is pretty straightforward. The only thing I had to do is make beekeep executable.

    * BitCurator is a digital forensics system -- I just went to a presentation on it -- it happens to be an Ubuntu image with various neat software. http://wiki.bitcurator.net/index.php?title=Main_Page

  • hey @bens, could you explain briefly what you mean by "make beekeep executable"? might give the VirtualBox approach a shot if I knew how to then get beekeep to run. thanks!

  • means, add executable permissions:
    sudo chmod +x beekeep-blahblah

    @bens, good to hear. you try 32b or 64b?

    i'm still hammering on the mac thing.

  • i was getting a weird "/cdrom cant unmount" error when i tried installing

    gotta sort that out later

  • 64b beekeep up and running in linux/ubuntu.

    had a couple of crashes but managed to save a very simple scene (bignums monitoring fs 1 and 2 output), and load it to the sdcard successfully.

    i needed to use the "sudo chmod +x beekeep-blahblah" permissions command to get beekeep to run.

    nice work @zebra, will be experimenting more over the weekend.

  • I used the 64-bit executable.

    And yes, "chmod +x beekeep-0.6.0-linux-64bit", but I think Ubuntu lets you right-click on a file and check "make executable" or something in one of the tabs.

  • Thank you for this work!

  • yeah sorry about crashes... i'm still finding them, just pushed a fix yesterday for crash when connecting input to empty output selection.

    the posted builds do have debug symbols. if you want to run with gdb.

    also easy enough to build from source on linux if you want the latest.

  • Anyone mind posting a screen grab? not sure I want to re-install a virtual box (installed one for dev earlier an my brain still hurts) or wait for a mac release.

  • got a virtualbox running 64bit
    still tinkering @c1t1zen but here's a quick grab

    940 x 716 - 314K
  • Thanks, That actually looks pretty neat. Great job Zebra!

  • oh, that looks really great. looking forward.

  • yeah @zebra the design is great

    but what is "deadbeef"?

  • eh, it is a sanity-check pattern filling the serialized scene data. better than all zeros for debugging. whimsically, initialized scene name looks the same (and is always overwritten in bees proper.)

    will change this to NONE to avoid confusion.

  • it doesnt need to change

    i just thought it might be a new module you're working on :)

  • deadbeef sounds at home in SHlisp

  • ok, i managed to get a mac app bundle working, it appears to be self-contained with all the dependencies. i only have a single 10.8.5 system to test on though, so please to do try it and let me know.

    i do know that it will absolutely NOT work on 10.6 or earlier. making a backwards-compatible build is possible but it means a great deal of pain.

    there are other caveats so please take the time to look over the release notes. thanks!
    https://github.com/tehn/aleph/releases/tag/beekeep-0.6.0-osx

  • On 10.9.5 I'm having some kind of font problem -- all little rectangles instead of characters. This might be something to do with pango. There are lots of messages in the terminal like "Gtk-WARNING **: Error loading theme icon 'image-missing' for stock: Icon 'image-missing' not present in theme". I might be missing something in my MacPorts installation.

  • huh ok. well the idea of an app bundle is that it should use libs and environment variables from the bundle, not from macports. pango and everything is in there. it's possible that the macports installation screws things up. it's also possbile that mavericks screws something up. its also possible that i'm just out of my mind...

    anyways, if you already have a working GTK environment installed through macports, homebrew, jhbuild, or some other *nix-style method, then you can just build beekeep from source. it's a simple makefile using pkg-config.

    i'll keep tweaking this of course... will test on a friend's yosemite system tonight.

  • ok i'm seeing the missing stuff on yosemite too. so can't blame macports. arg. not gonna get deep into it tonight...

    would be helpful to know if the bundled pango works for others on 10.8. if so, i'm kinda stuck. if not, i'll fix it. (that would mean i'm probably getting the right loaders from somewhere other than the bundle and need to wipe those parts of my system. not a bad guess.)

    sorry folks...

    ..... upp, ok, yes. it is looking for a component installed by homebrew and not in the bundle... right? yeah


    (beekeep-bin:585): GdkPixbuf-WARNING **: Cannot open pixbuf loader module file '/usr/local/Cellar/gdk-pixbuf/2.30.8/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

    This likely means that your installation is broken.
    Try running the command
    gdk-pixbuf-query-loaders > /usr/local/Cellar/gdk-pixbuf/2.30.8/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
    to make things work again for the time being.

    (beekeep-bin:585): Pango-CRITICAL **: No modules found:
    No builtin or dynamically loaded modules were found.
    PangoFc will not work correctly.
    This probably means there was an error in the creation of:
    '/usr/local/Cellar/pango/1.36.8/etc/pango/pango.modules'
    You should create this file by running:
    pango-querymodules > '/usr/local/Cellar/pango/1.36.8/etc/pango/pango.modules'

    (beekeep-bin:585): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderCoreText', script='common'



    ( i'll fix this tomorrow. it doesn't mean you should actually install that stuff, unless you want to build from source. it means the launcher script needs work.)

  • indeed, same thing here - also on 10.9.5. Thanks for the hard work Ezra, it is very much appreciated.

  • quick update for those on windows 7 but wanna run beekeep. Iam a total noob on linux and programming in general btw.

    Anyway, i have installed xubuntu alongside windows 7 in dual boot mode. Before that, i tried virtual machine with xubuntu but its kinda draggy and slow on my "abused" win7 laptop for all kinda nonsense except music making.

    To do the dual boot, i used a usb thumbdrive, with UNetbootin (http://unetbootin.sourceforge.net/) and insert xubuntu iso file to create boot disk from the usb stick

    After installing and setting up xubuntu, i use the included firefox browser to download the beekeep file(32bit for my case),

    copy it to my home folder. Next i open terminal emulator window, key in the command mentioned above(either 'chmod +x beekeep-0.6.0-linux-32bit' or 'sudo chmod +x beekeep-0.6.0-linux-32bit') as iam on 32bit. WIth the sudo command, i then key in the password (setup when installing xubuntu).

    Once done, i went back to where i save the beekeep file, right click it and select execute for the file to open!

    One thing to note, if i skip the chmod/sudo chmod step and right click beekeep file, there is no execute option.



  • mac build, second try:
    https://github.com/tehn/aleph/releases/tag/beekeep-0.6.0b-osx

    pango stuff seems ok.

    filesystem handling is a little smarter and you don't have to launch from terminal; instead put .dsc files in ~/aleph or set $ALEPH_DIR to your preference.

    some widget icons are still mysteriously whacked.

  • just downloaded the new mac build and unpacked on my mac with os x 10.10.1
    launches just fine, but when i open a patch from disk, beekeep immediately crashes.
    mind you, i didn't have an aleph connected when doing that. is this a problem.
    anyway, crash log attached.

  • hang on, missed this bit in your post: "instead put .dsc files in ~/aleph or set $ALEPH_DIR to your preference."
    where do i do this?

  • [oops, nevermind]

    ...ok, there are a couple very silly things going on.

    one thing, gtk libs/data as compiled not quite working on yosemite. this shouldn't be crashworthy.

    weirder and sillier, looks like working directory argument is nonsense. crash is symptomatic of missing .dsc file. dumb and i'm not sure whats up with that. try launching from terminal with explicit argument:

    beekeep.app/Contents/MacOs/beekeep-bin /home/me/aleph_dir/

  • @myecholalia, no you don't have to have an aleph connected. you set environment variables in the terminal and/or in ~/.bash_profile , unless apple has changed this lately.
    export ALEPH_DIR=/Users/self/aleph_indeed/

    but i apparently have to fix some stuff first... sorry sorry

  • Any update on mac beekeep? Tried version b and still crashing at app startup.

  • of course i will let everybody know when / if i can update it. again, i am just not a mac user and it would be super cool if someone else would do it. hopefully i can do it soon, real work permitting. until then please use the linux version.

    if you want to tell me about a crash, please at least include what OS version you are running, and a crash log would be nice. i assume it's 10.10 ... which i just can't possibly address right now, my only mac is 10.8.5 and i can't upgrade it, the stuff i need it for doesn't work on yosemite.

    frankly i'm kind of shocked that everyone jumped to the new OSX version so promptly. it doesn't seem ready for action at all, as far as broad application support, especially for OSS ports.

  • thanks for the update, z.
    time for some virtual box / ubuntu.
    will report back if I get this to work (Linux illiterate here.

  • I sent my crash log via the github thread... 10.7 or 8 I think. I also have legacy gear so I can't upgrade my OS yet. No rush, just wondering if there was a solution some clever bugger here might have found.

  • ah ok thanks! which thread do you mean? at a glance, i'm not seeing any updates to open issues on github.com/tehn/aleph.

  • see below, I hit reply by gmail...maybe those haven't reached you guys?

  • Process: sh [13506]
    Path: /Applications/beekeep.app/Contents/MacOS/beekeep
    Identifier: org.monome.beekeep
    Version: ??? (???)
    Code Type: X86-64 (Native)
    Parent Process: launchd [157]

    Date/Time: 2014-12-05 23:05:05.967 -0800
    OS Version: Mac OS X 10.7.5 (11G63)
    Report Version: 9

    Interval Since Last Report: 238455 sec
    Crashes Since Last Report: 1
    Per-App Crashes Since Last Report: 1
    Anonymous UUID: 5329E974-8752-480E-82F0-57EC4D06ECA7

    Crashed Thread: Unknown

    Exception Type: EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes: KERN_INVALID_ADDRESS at 0x00007fff5fc01028

    Backtrace not available

    Unknown thread crashed with X86 Thread State (64-bit):
    rax: 0x0000000000000055 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000
    rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp: 0x0000000000000000 rsp: 0x0000000000000000
    r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x0000000000000000 r11: 0x0000000000000000
    r12: 0x0000000000000000 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000000000000
    rip: 0x00007fff5fc01028 rfl: 0x0000000000010203 cr2: 0x00007fff5fc01028
    Logical CPU: 0

    Binary images description not available


    External Modification Summary:
    Calls made by other processes targeting this process:
    task_for_pid: 1
    thread_create: 0
    thread_set_state: 0
    Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
    Calls made by all processes on this machine:
    task_for_pid: 5212
    thread_create: 0
    thread_set_state: 0

    Model: Macmini3,1, BootROM MM31.0081.B06, 2 processors, Intel Core 2 Duo, 2 GHz, 8 GB, SMC 1.35f0
    Graphics: NVIDIA GeForce 9400, NVIDIA GeForce 9400, PCI, 256 MB
    Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1067 MHz, 0x01BA, 0x202020202020202020202020202020202020
    Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1067 MHz, 0x01BA, 0x000000000000000000000000000000000000
    AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x90), Broadcom BCM43xx 1.0 (5.10.131.36.15)
    Bluetooth: Version 4.0.8f17, 2 service, 18 devices, 1 incoming serial ports
    Network Service: Ethernet, Ethernet, en0
    Serial ATA Device: FUJITSU MHZ2120BH G1, 120.03 GB
    Serial ATA Device: PIONEER DVD-RW DVRTS08

  • ok, installed virtual box, ubuntu (bitcurator, thanks for the recommendation, @bens), and the 64-bit version of beekeep. now need to figure out how the application works.
    one thing i am missing is the "open" button in beekeep that i saw in the mac version. it simply isn't there in the linux one. how do i open existing scenes from file for editing now?

  • @myecholalia:
    give it as an argument when you launch beekeep from the commandline. i'll update the posted linux build.

    you should also be able to build the linux app from source easily, see the README

  • @c1t1zen ok wow, it's... uh... launchd is crashing the shell and our main() is never run. that's extremely weird and again, i just don't have the resources to test it.

    FWIW, i'm not the only one:
    https://github.com/LibreCAD/LibreCAD/issues/435

    much as i hate to say it, i think the best option for mac might just be building from source, since there's realistically no way i can stay on top of all the different OSX versions.

    i made a readme describing how to build with jhbuild (recommended by the GTK group):
    https://github.com/tehn/aleph/blob/master/utils/beekeep/build_osx.md

    however, i later found it's actually a little easier with homebrew, which is also more generally useful as a package manager. so i'll update those instructions.

    [updated.]

  • Thanks for the response...I'll actually have an easier time installing Linux and Beekeep. I do have Homebrew though.