Malte Steiner wrote: > You might read this several times, sorry for crossposting. > > In 2007 Karsten Wiese and Malte Steiner resurrected the AMS project to > continue development. > Now we proudly present the first release since 2004, the version 1.8.8 > RC1. Everything runs fine on our computers but we would like AMS users > to try this version and to report, maybe on the ams-user mailing list or > bug tracker at sourceforge, when something is broken or patches sound > suddenly different. > > Alsa Modular Synthesizer is a free open source realtime modular > software synthesizer for Linux without compromises regarding sound > quality. Its Jack compatible and can include LADSPA plugins. I tried it, but it wouldn't start since I don't use the ALSA sequencer modules. I wrote a patch to fix that (attached) - if it can't open the ALSA sequencer device it will simply not use MIDI, otherwise everything should work normally. Also, the JACK compatibility only extends to audio. It would be pretty nice to have sample-synced JACK MIDI support. Another wishlist item: LASH support. --ll
diff -ru ../ams-1.8.8-rc1/m_midiout.cpp ./m_midiout.cpp --- ../ams-1.8.8-rc1/m_midiout.cpp 2003-10-23 11:24:12.000000000 +0200 +++ ./m_midiout.cpp 2007-04-28 12:33:13.000000000 +0200 @@ -92,7 +92,10 @@ } void M_midiout::generateCycle() { - + + if (!synthdata->seq_handle) + return; + int l1, l2, l3, mididata, velocitydata; snd_seq_event_t ev; diff -ru ../ams-1.8.8-rc1/modularsynth.cpp ./modularsynth.cpp --- ../ams-1.8.8-rc1/modularsynth.cpp 2007-04-20 20:53:28.000000000 +0200 +++ ./modularsynth.cpp 2007-04-28 12:26:58.000000000 +0200 @@ -309,8 +309,10 @@ int ModularSynth::go (bool withJack) { - synthdata->seq_handle = open_seq(); - initSeqNotifier(); + if (synthdata->seq_handle = open_seq()) + initSeqNotifier(); + else + fprintf(stderr, "Could not open ALSA sequencer, MIDI will not work!\n"); if (withJack) { @@ -400,7 +402,7 @@ if (snd_seq_open(&seq_handle, "hw", SND_SEQ_OPEN_DUPLEX, 0) < 0) { fprintf(stderr, "Error opening ALSA sequencer.\n"); - exit(1); + return 0; } snd_seq_set_client_name(seq_handle, "AlsaModularSynth"); clientid = snd_seq_client_id(seq_handle); @@ -408,14 +410,16 @@ SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE, SND_SEQ_PORT_TYPE_APPLICATION)) < 0) { fprintf(stderr, "Error creating sequencer port.\n"); - exit(1); + snd_seq_close(seq_handle); + return 0; } for (l1 = 0; l1 < 2; ++l1) { if ((synthdata->midi_out_port[l1] = snd_seq_create_simple_port(seq_handle, "ams", SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ, SND_SEQ_PORT_TYPE_APPLICATION)) < 0) { fprintf(stderr, "Error creating sequencer port.\n"); - exit(1); + snd_seq_close(seq_handle); + return 0; } } qs.sprintf("AlsaModularSynth " AMS_VERSION " - %d:%d - (%d)", clientid, portid, synthdata->poly);
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-user