Kara-Moon Forum
April 29, 2024, 02:04:34 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: You can go back to the main site here: Kara-Moon site
 
   Home   Help Search Login Register  
Pages: [1] 2
  Print  
Author Topic: First release: LinuxBand 12.02 Beta  (Read 19637 times)
noseka1
Jr. Member
*
Posts: 7


« on: February 12, 2012, 08:33:09 PM »

Hi all,

just to introduce myself. I'm a developer mainly in C++ and Java on Linux platform. In my free time I like to play jazz guitar. To accompany my improvisation practicing I has been using MIDI files generated by MMA. To facilitate writing of MMA files and playing them back I created LinuxBand. I hope you'll enjoy it.

Ales

LinuxBand is a GUI front-end for MMA (Musical MIDI Accompaniment). Type in the chords, choose the groove and LinuxBand will play a musical accompaniment for you.
It’s an open source alternative to Band-in-a-Box featuring:

Easy to use graphical interface
Open and well-documented data format
Output to JACK Midi to facilitate co-operation with other audio applications

Home page: http://linuxband.org/
Project page: https://github.com/noseka1/linuxband
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #1 on: February 12, 2012, 08:57:47 PM »

Okay, this is completely out of the blue! I'll have to look at it later. Looks like a very cool project.

Guess, this will be similar to lemma (I ask having not tried it out yet)?
Logged

My online life: http://www.mellowood.ca
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #2 on: February 12, 2012, 09:11:58 PM »

I think I've been away from C for too long Smiley

I did a clean ./configure but make really complains:

bob$ make
cc -o target/linuxband-player  -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include   -pthread -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include    -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include   -I.   -lglib-2.0   -pthread -lgthread-2.0 -lrt -lglib-2.0   -ljack   -lsmf -lm -lglib-2.0   src/main/c/linuxband-player.c src/main/c/midi.c src/main/c/remote_control.c
/tmp/ccjGvEFC.o: In function `warning_async':
linuxband-player.c:(.text+0x110): undefined reference to `g_log'
/tmp/ccjGvEFC.o: In function `warn_from_jack_thread_context':
linuxband-player.c:(.text+0x130): undefined reference to `g_idle_add'
/tmp/ccjGvEFC.o: In function `nframes_to_ms':
linuxband-player.c:(.text+0x145): undefined reference to `jack_get_sample_rate'
/tmp/ccjGvEFC.o: In function `ms_to_nframes':
   <and lots more>

I suspect I'm missing yet-another-dev-library.


Logged

My online life: http://www.mellowood.ca
noseka1
Jr. Member
*
Posts: 7


« Reply #3 on: February 12, 2012, 09:47:42 PM »

After successful ./configure the compilation should not fail. I'll have to fix it.

However, your compilation line seems very similar to my:
cc -o target/linuxband-player  -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I.   -lglib-2.0   -pthread -lgthread-2.0 -lrt -lglib-2.0   -ljack -lpthread -lrt   -lsmf -lm -lglib-2.0   src/main/c/linuxband-player.c src/main/c/midi.c src/main/c/remote_control.c

And the required symbols are in those libraries:
nm -D /lib/libglib-2.0.so.0 | grep g_log
000000000004dc40 T g_log

As I see i386-linux-gnu directories in your output. Can't it be that for some reason you compile for 32-bit arch but try to link against 64-bit libs, or the other way round?
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #4 on: February 12, 2012, 10:08:33 PM »

I don't have any 64 bit stuff on the machine.

This is Ubuntu 11.10.

I think I have the needed "dev" packages. If not, it should be found in the configure.

Isn't g_log a macro? So it should be defined in a header file? Could that be missing?

But, if I look for the g_log you are using:

[03:07 PM /usr/include/glib-2.0] bob$ grep -ir g_log_set_default_handle *
glib/gmessages.h:GLogFunc        g_log_set_default_handler (GLogFunc      log_func,

So, that one (and I assume the others) are there.

Let me log in/out and try again.
Logged

My online life: http://www.mellowood.ca
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #5 on: February 12, 2012, 10:17:29 PM »

Okay, I' lost Smiley

I double checked the dep list:

apt-get install libjack-dev
apt-get install libsmf-dev
apt-get install python-gtk2
apt-get install python-gtksourceview2

All were okay, except that the first line deleted my existing libjack2 stuff and installed libjack1.

No differences in the compile. Next?
Logged

My online life: http://www.mellowood.ca
noseka1
Jr. Member
*
Posts: 7


« Reply #6 on: February 12, 2012, 10:33:34 PM »

Now, let's check that your linker is linking against correct libraries. On my machine -lglib-2.0 would cause linking the /lib/libglib-2.0.so.0.2800.8 library file because the symbolic link /lib/libglib-2.0.so.0 points to it.

So I replace all occurences of -lglib-2.0 with /lib/libglib-2.0.so.0.2800.8 and try the resulting compilation command:

cc -o target/linuxband-player  -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I.  /lib/libglib-2.0.so.0.2800.8   -pthread -lgthread-2.0 -lrt /lib/libglib-2.0.so.0.2800.8   -ljack -lpthread -lrt   -lsmf -lm /lib/libglib-2.0.so.0.2800.8   src/main/c/linuxband-player.c src/main/c/midi.c src/main/c/remote_control.c

This way, the linuxband-player.c:(.text+0x110): undefined reference to `g_log' error should disappear because the symbol is there as checked using grep before.
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #7 on: February 12, 2012, 11:30:35 PM »

I needed to change your example cc line to:

cc -o target/linuxband-player -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/lib/glib-2.0/include -I. /lib/i386-linux-gnu/libglib-2.0.so.0 -pthread -lgthread-2.0 -lrt /lib/i386-linux-gnu/libglib-2.0.so.0 -ljack -lpthread -lrt -lsmf -lm /lib/i386-linux-gnu/libglib-2.0.so.0 src/main/c/linuxband-player.c src/main/c/midi.c src/main/c/remote_control.c

But, that gives the same errors as before Smiley

Code:
/tmp/ccGhZH7T.o: In function `warning_async':
linuxband-player.c:(.text+0x110): undefined reference to `g_log'
/tmp/ccGhZH7T.o: In function `warn_from_jack_thread_context':
linuxband-player.c:(.text+0x130): undefined reference to `g_idle_add'
/tmp/ccGhZH7T.o: In function `nframes_to_ms':
linuxband-player.c:(.text+0x145): undefined reference to `jack_get_sample_rate'
/tmp/ccGhZH7T.o: In function `ms_to_nframes':
linuxband-player.c:(.text+0x1da): undefined reference to `jack_get_sample_rate'
/tmp/ccGhZH7T.o: In function `send_all_sound_off':
linuxband-player.c:(.text+0x2a3): undefined reference to `jack_midi_event_reserve'
/tmp/ccGhZH7T.o: In function `process_midi_output':
linuxband-player.c:(.text+0x331): undefined reference to `jack_port_get_buffer'
linuxband-player.c:(.text+0x36c): undefined reference to `jack_midi_clear_buffer'
linuxband-player.c:(.text+0x430): undefined reference to `jack_transport_query'
linuxband-player.c:(.text+0x499): undefined reference to `jack_transport_query'
linuxband-player.c:(.text+0x4b1): undefined reference to `jack_last_frame_time'
linuxband-player.c:(.text+0x511): undefined reference to `jack_last_frame_time'
linuxband-player.c:(.text+0x569): undefined reference to `smf_peek_next_event'
linuxband-player.c:(.text+0x594): undefined reference to `smf_event_is_metadata'
linuxband-player.c:(.text+0x5aa): undefined reference to `smf_event_decode'
linuxband-player.c:(.text+0x5df): undefined reference to `g_log'
linuxband-player.c:(.text+0x623): undefined reference to `g_log'
linuxband-player.c:(.text+0x65c): undefined reference to `smf_get_next_event'
linuxband-player.c:(.text+0x751): undefined reference to `smf_get_next_event'
linuxband-player.c:(.text+0x7aa): undefined reference to `jack_midi_event_reserve'
linuxband-player.c:(.text+0x824): undefined reference to `jack_midi_event_reserve'
/tmp/ccGhZH7T.o: In function `sync_callback':
linuxband-player.c:(.text+0x99f): undefined reference to `g_log'
linuxband-player.c:(.text+0xa17): undefined reference to `g_log'
/tmp/ccGhZH7T.o: In function `timebase_callback':
linuxband-player.c:(.text+0xa6e): undefined reference to `smf_peek_next_event'
linuxband-player.c:(.text+0xa92): undefined reference to `smf_get_tempo_by_pulses'
/tmp/ccGhZH7T.o: In function `connect_to_input_port':
linuxband-player.c:(.text+0xd9c): undefined reference to `jack_port_disconnect'
linuxband-player.c:(.text+0xdc1): undefined reference to `g_log'
linuxband-player.c:(.text+0xdd8): undefined reference to `jack_port_name'
linuxband-player.c:(.text+0xdf1): undefined reference to `jack_connect'
linuxband-player.c:(.text+0xe1d): undefined reference to `g_log'
linuxband-player.c:(.text+0xe47): undefined reference to `g_log'
/tmp/ccGhZH7T.o: In function `init_jack':
linuxband-player.c:(.text+0xe7b): undefined reference to `jack_client_open'
linuxband-player.c:(.text+0xea5): undefined reference to `g_log'
linuxband-player.c:(.text+0xece): undefined reference to `jack_set_process_callback'
linuxband-player.c:(.text+0xef3): undefined reference to `g_log'
linuxband-player.c:(.text+0xf25): undefined reference to `jack_set_sync_callback'
linuxband-player.c:(.text+0xf4a): undefined reference to `g_log'
linuxband-player.c:(.text+0xf73): undefined reference to `jack_on_shutdown'
linuxband-player.c:(.text+0x103f): undefined reference to `jack_port_register'
linuxband-player.c:(.text+0x107a): undefined reference to `g_log'
linuxband-player.c:(.text+0x10af): undefined reference to `jack_activate'
linuxband-player.c:(.text+0x10cf): undefined reference to `g_log'
/tmp/ccGhZH7T.o: In function `show_version':
linuxband-player.c:(.text+0x1175): undefined reference to `smf_get_version'
/tmp/ccGhZH7T.o: In function `main':
linuxband-player.c:(.text+0x1203): undefined reference to `g_thread_init'
linuxband-player.c:(.text+0x1217): undefined reference to `g_log_set_default_handler'
linuxband-player.c:(.text+0x12c2): undefined reference to `g_log'
linuxband-player.c:(.text+0x1362): undefined reference to `g_log'
linuxband-player.c:(.text+0x1389): undefined reference to `smf_load'
linuxband-player.c:(.text+0x13bd): undefined reference to `g_log'
linuxband-player.c:(.text+0x13df): undefined reference to `smf_decode'
linuxband-player.c:(.text+0x13ff): undefined reference to `g_log'
linuxband-player.c:(.text+0x1436): undefined reference to `g_log'
linuxband-player.c:(.text+0x145c): undefined reference to `g_timeout_add'
linuxband-player.c:(.text+0x14b0): undefined reference to `g_log'
linuxband-player.c:(.text+0x14e3): undefined reference to `jack_transport_locate'
linuxband-player.c:(.text+0x14f0): undefined reference to `jack_transport_start'
linuxband-player.c:(.text+0x1506): undefined reference to `jack_frame_time'
linuxband-player.c:(.text+0x1535): undefined reference to `g_main_loop_new'
linuxband-player.c:(.text+0x153d): undefined reference to `g_main_loop_run'
/tmp/cciKwDoK.o: In function `show_track':
midi.c:(.text+0x1c7): undefined reference to `g_log'
midi.c:(.text+0x1db): undefined reference to `smf_event_decode'
midi.c:(.text+0x205): undefined reference to `g_log'
midi.c:(.text+0x21b): undefined reference to `smf_track_get_event_by_number'
/tmp/cciKwDoK.o: In function `show_smf':
midi.c:(.text+0x237): undefined reference to `smf_decode'
midi.c:(.text+0x257): undefined reference to `g_log'
midi.c:(.text+0x281): undefined reference to `smf_get_track_by_number'
/tmp/cciKwDoK.o: In function `find_song_end':
midi.c:(.text+0x2ad): undefined reference to `smf_event_is_metadata'
midi.c:(.text+0x2bc): undefined reference to `smf_event_decode'
midi.c:(.text+0x2f0): undefined reference to `smf_get_next_event'
/tmp/cciKwDoK.o: In function `find_bar_end':
midi.c:(.text+0x34c): undefined reference to `smf_event_is_metadata'
midi.c:(.text+0x35b): undefined reference to `smf_event_decode'
midi.c:(.text+0x39e): undefined reference to `smf_get_next_event'
/tmp/cciKwDoK.o: In function `find_bar_num':
midi.c:(.text+0x3fa): undefined reference to `smf_event_is_metadata'
midi.c:(.text+0x409): undefined reference to `smf_event_decode'
midi.c:(.text+0x452): undefined reference to `smf_get_next_event'
/tmp/cciKwDoK.o: In function `find_bar_num_seconds':
midi.c:(.text+0x49e): undefined reference to `smf_rewind'
/tmp/cciKwDoK.o: In function `get_bar_offsets':
midi.c:(.text+0x4cc): undefined reference to `smf_rewind'
/tmp/cciKwDoK.o: In function `copy_event':
midi.c:(.text+0x534): undefined reference to `smf_event_new_from_pointer'
/tmp/cciKwDoK.o: In function `copy_events':
midi.c:(.text+0x54f): undefined reference to `smf_seek_to_pulses'
midi.c:(.text+0x5a0): undefined reference to `smf_get_track_by_number'
midi.c:(.text+0x5ce): undefined reference to `smf_track_add_event_pulses'
midi.c:(.text+0x5d9): undefined reference to `smf_get_next_event'
/tmp/cciKwDoK.o: In function `create_marker':
midi.c:(.text+0x629): undefined reference to `smf_event_new'
/tmp/cciKwDoK.o: In function `create_empty_smf':
midi.c:(.text+0x6aa): undefined reference to `smf_new'
midi.c:(.text+0x6c2): undefined reference to `smf_set_ppqn'
midi.c:(.text+0x703): undefined reference to `smf_set_format'
midi.c:(.text+0x73e): undefined reference to `smf_track_new'
midi.c:(.text+0x753): undefined reference to `smf_add_track'
/tmp/cciKwDoK.o: In function `copy_smf_bars':
midi.c:(.text+0x7c9): undefined reference to `smf_rewind'
midi.c:(.text+0x7dc): undefined reference to `smf_get_track_by_number'
midi.c:(.text+0x7f2): undefined reference to `smf_get_track_by_number'
midi.c:(.text+0x854): undefined reference to `smf_event_decode'
midi.c:(.text+0x888): undefined reference to `smf_track_add_event_pulses'
midi.c:(.text+0x893): undefined reference to `smf_track_get_next_event'
midi.c:(.text+0x944): undefined reference to `smf_track_add_event_pulses'
/tmp/cciKwDoK.o: In function `loop_smf':
midi.c:(.text+0x95b): undefined reference to `smf_rewind'
midi.c:(.text+0x99f): undefined reference to `smf_rewind'
midi.c:(.text+0xa50): undefined reference to `smf_get_track_by_number'
midi.c:(.text+0xaa5): undefined reference to `smf_track_add_event_pulses'
/tmp/cciKwDoK.o: In function `load_smf_data':
midi.c:(.text+0xac3): undefined reference to `smf_load_from_memory'
midi.c:(.text+0xae8): undefined reference to `g_log'
midi.c:(.text+0xaf5): undefined reference to `smf_decode'
midi.c:(.text+0xb15): undefined reference to `g_log'
/tmp/ccZtLD3A.o: In function `open_pipes':
remote_control.c:(.text+0xda): undefined reference to `g_log'
remote_control.c:(.text+0xf8): undefined reference to `g_log'
remote_control.c:(.text+0x14a): undefined reference to `g_log'
remote_control.c:(.text+0x19c): undefined reference to `g_log'
/tmp/ccZtLD3A.o:remote_control.c:(.text+0x1c1): more undefined references to `g_log' follow
/tmp/ccZtLD3A.o: In function `loop_song':
remote_control.c:(.text+0x334): undefined reference to `smf_peek_next_event'
remote_control.c:(.text+0x385): undefined reference to `g_log'
remote_control.c:(.text+0x3a0): undefined reference to `smf_seek_to_pulses'
remote_control.c:(.text+0x3d8): undefined reference to `smf_peek_next_event'
/tmp/ccZtLD3A.o: In function `check_event':
remote_control.c:(.text+0x445): undefined reference to `g_log'
/tmp/ccZtLD3A.o: In function `partial_seek':
remote_control.c:(.text+0x480): undefined reference to `smf_peek_next_event'
remote_control.c:(.text+0x4aa): undefined reference to `smf_rewind'
remote_control.c:(.text+0x4b5): undefined reference to `smf_peek_next_event'
remote_control.c:(.text+0x4fb): undefined reference to `g_log'
remote_control.c:(.text+0x51c): undefined reference to `smf_get_next_event'
remote_control.c:(.text+0x554): undefined reference to `smf_peek_next_event'
remote_control.c:(.text+0x59a): undefined reference to `g_log'
remote_control.c:(.text+0x5dc): undefined reference to `g_log'
/tmp/ccZtLD3A.o: In function `loop_seek':
remote_control.c:(.text+0x633): undefined reference to `g_log'
/tmp/ccZtLD3A.o: In function `free_smf':
remote_control.c:(.text+0x6ea): undefined reference to `smf_delete'
/tmp/ccZtLD3A.o: In function `start_playback':
remote_control.c:(.text+0x729): undefined reference to `g_log'
remote_control.c:(.text+0x73f): undefined reference to `jack_transport_start'
remote_control.c:(.text+0x74e): undefined reference to `jack_frame_time'
/tmp/ccZtLD3A.o: In function `command_load':
remote_control.c:(.text+0x7b9): undefined reference to `g_log'
remote_control.c:(.text+0x81d): undefined reference to `g_log'
remote_control.c:(.text+0x842): undefined reference to `g_log'
remote_control.c:(.text+0x858): undefined reference to `smf_delete'
/tmp/ccZtLD3A.o: In function `command_stop':
remote_control.c:(.text+0x8a9): undefined reference to `jack_transport_stop'
/tmp/ccZtLD3A.o: In function `command_play':
remote_control.c:(.text+0x928): undefined reference to `smf_rewind'
remote_control.c:(.text+0x96b): undefined reference to `jack_transport_locate'
/tmp/ccZtLD3A.o: In function `command_play_from_bar':
remote_control.c:(.text+0x9d8): undefined reference to `g_log'
remote_control.c:(.text+0xa34): undefined reference to `smf_rewind'
remote_control.c:(.text+0xa6c): undefined reference to `g_log'
remote_control.c:(.text+0xaab): undefined reference to `jack_transport_locate'
remote_control.c:(.text+0xabf): undefined reference to `smf_seek_to_seconds'
/tmp/ccZtLD3A.o: In function `command_play_bars':
remote_control.c:(.text+0xbe0): undefined reference to `smf_rewind'
remote_control.c:(.text+0xc23): undefined reference to `jack_transport_locate'
/tmp/ccZtLD3A.o: In function `command_pause':
remote_control.c:(.text+0xc72): undefined reference to `jack_transport_stop'
remote_control.c:(.text+0xc9d): undefined reference to `jack_transport_start'
/tmp/ccZtLD3A.o: In function `command_intro_length':
remote_control.c:(.text+0xd21): undefined reference to `g_log'
/tmp/ccZtLD3A.o: In function `command_finish':
remote_control.c:(.text+0xd47): undefined reference to `jack_client_close'
/tmp/ccZtLD3A.o: In function `jack_shutdown':
remote_control.c:(.text+0xd75): undefined reference to `g_log'
/tmp/ccZtLD3A.o: In function `remote_control_loop':
remote_control.c:(.text+0xdd6): undefined reference to `g_log'
remote_control.c:(.text+0xe02): undefined reference to `g_log'
remote_control.c:(.text+0xe28): undefined reference to `g_log'
remote_control.c:(.text+0xe54): undefined reference to `g_log'
/tmp/ccZtLD3A.o:remote_control.c:(.text+0xe80): more undefined references to `g_log' follow
collect2: ld returned 1 exit status

Is there a logging lib that I might be missing?
Logged

My online life: http://www.mellowood.ca
Oren
Moderators Views
Kara-Moon Master
********
Posts: 5444


...just looking for clues...


« Reply #8 on: February 13, 2012, 03:44:40 AM »

You guys amaze me! Shocked
(finally Bob has someone who can hold his/her own in the MMA sandbox - other than Alexis) wOO
« Last Edit: February 13, 2012, 03:46:11 AM by Oren » Logged

noseka1
Jr. Member
*
Posts: 7


« Reply #9 on: February 13, 2012, 08:33:04 AM »

Finally, here is the fix for the compilation problem. Apply the attached patch and make again:
patch < Makefile.in.diff.txt
make

* Makefile.in.diff.txt (0.51 KB - downloaded 382 times.)
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #10 on: February 13, 2012, 04:43:27 PM »

That fixed it ... reminds me why I don't miss programming in C Smiley

But, there seems to be a problem with linuxband finding my lib, etc. I have a link /usr/local/share/mma which points to my main mma tree and mma in /usr/local/bin.

Yes, I did a make install on linuxband.

The last few lines it prints to the terminal might help:

Traceback (most recent call last):
  File "/usr/local/share/linuxband/linuxband/midi/mma2smf.py", line 38, in check_mma_syntax
    mma = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1239, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
09:39:46 ERROR export_midi_callback Failed to compile MMA file. Fix the errors and try the export again.

I suspect a path issue?

Logged

My online life: http://www.mellowood.ca
alexis
Jr. Member
*
Posts: 62


« Reply #11 on: February 13, 2012, 06:23:14 PM »

Quote
(finally Bob has someone who can hold his/her own in the MMA sandbox - other than Alexis) wOO
Cheesy Grin

I could compile your program (I run Ubuntu 10.10  - 64 bits). Looks good!

A few points, though:
  • It looks very much like Lemma => http://welltemperedstudio.wordpress.com/code/lemma/.
  • I think the name (LinuxBand) and the choice of Jackd makes it to restrictive. It should run on Windows, too.
  • I'd appreciate Alsa or/and Pulse Audio support. Beginners can't easily setup Jackd.
  • We definitively need a graphical groove editor. It would make MMA less daunting for newbies (Yes Bob, I know: with a UI, one can't exploit all the power of MMA. However,...). To be considered for next versions.

Thanks.

Alexis
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #12 on: February 13, 2012, 06:57:55 PM »

You guys amaze me! Shocked
(finally Bob has someone who can hold his/her own in the MMA sandbox - other than Alexis) wOO

I've always been of the opinion that my time is best spent in worrying about the parser and the file creation bits of mma. And it is trivial (yeah, right) to add a gui front end to the program. So, I really do welcome programs like linuxband!

Let's get more people using mma ... which, I keep hoping, will lead to better libraries and better sounding backing tracks.

Logged

My online life: http://www.mellowood.ca
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #13 on: February 13, 2012, 06:59:03 PM »


  • We definitively need a graphical groove editor. It would make MMA less daunting for newbies (Yes Bob, I know: with a UI, one can't exploit all the power of MMA. However,...). To be considered for next versions.


Ahh, but you forget that there has always been a GUI for mma. It's called emacs Smiley
Logged

My online life: http://www.mellowood.ca
noseka1
Jr. Member
*
Posts: 7


« Reply #14 on: February 13, 2012, 08:33:03 PM »

You can set path to MMA in View/Settings (or Preferences). Default is /usr/bin/mma.
Logged
Pages: [1] 2
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.059 seconds with 19 queries.