|
From: | Justin |
Subject: | Re: [fluid-dev] Trouble building/using fluidsynth |
Date: | Mon, 24 Dec 2018 20:35:13 -0500 |
-ni: fluidsynth_exec/fluidsynth: /home/linuxbrew/.linuxbrew/lib/ld.so: bad ELF interpreter: No such file or directory[INFO] 2018-12-24T21:13:45.687Z caf3eeba-07c0-11e9-b529-973f6e240519 In CatchAllExceptionHandler
[ERROR] 2018-12-24T21:13:45.687Z caf3eeba-07c0-11e9-b529-973f6e240519 Command '['fluidsynth_exec/fluidsynth', '-ni', 'fluidsynth_exec/sf.sf2', 'some_midi.mid', '-F', 'some_wav.wav', '-r', '44100']' returned non-zero exit status 126.Traceback (most recent call last):File "/var/task/ask_sdk_runtime/dispatch.py", line 118, in dispatchoutput = self.__dispatch_request(handler_input)File "/var/task/ask_sdk_runtime/dispatch.py", line 183, in __dispatch_requesthandler_input=handler_input, handler=request_handler)File "/var/task/ask_sdk_runtime/dispatch_components/request_components.py", line 433, in executereturn handler.handle(handler_input)File "/var/task/lambda_function.py", line 229, in handletest_file = TestScript().test_script()File "/var/task/test_script.py", line 151, in get_filesubprocess.check_call(fluidsynth_command, shell=True)File "/var/lang/lib/python3.7/subprocess.py", line 341, in check_callraise CalledProcessError(retcode, cmd)subprocess.CalledProcessError: Command '['fluidsynth_exec/fluidsynth', '-ni', 'fluidsynth_exec/sf.sf2', 'some_midi.mid', '-F', 'some_wav.wav', '-r', '44100']' returned non-zero exit status 126.END RequestId: caf3eeba-07c0-11e9-b529-973f6e240519
but using the executable made from this (in the src folder) failed as well in the same way. I don't think that my attempt to compile the executable as statically-linked actually did anything different, since the binary that was produced was 53kb, just like the original.make SHARED=0 CC='gcc -static'
Hi!The easiest might be to skip cross compiling and build it natively. So either on an AWS instance, or on a virtual machine on your Mac. On the VM, just install the built-essential libsndfile-dev, libglib-dev and cmake packages (or whatever they are called on the distro you are using), build it and then copy the compiled executive, libfluidsynth.so* and libsndfile.so* to your AWS.Cheers,Marcus_______________________________________________Am Mo., 24. Dez. 2018, 06:54 hat Justin <address@hidden> geschrieben:Thanks for the quick reply! Installing the dependencies via homebrew fixed my issue, and fluidsynth can now do the conversion for me locally!However, I'm facing another issue now, which probably comes from the fact that I compiled the code on my mac, and I'm trying to run it on AWS lambda (which I think runs Amazon Linux):The (python) code which raises this error is as follows:File "/var/lang/lib/python3.7/subprocess.py", line 1516, in _execute_childraise child_exception_type(errno_num, err_msg, err_filename)OSError: [Errno 8] Exec format error: 'fluidsynth_exec/fluidsynth'fluidsynth_command = ['fluidsynth_exec/fluidsynth', '-ni', tmp_sf2_file_name, tmp_mid_file_name, '-F', tmp_wav_file_name, '-r', '44100']subprocess.check_call(fluidsynth_command)This code works locally for me, so I guess I need to cross-compile fluidsynth to work on AWS lambda. Do you have any experience with this? Unfortunately, most of the literature I'm finding on cmake and cross-compilation seems really opaque, and I can't even find anything that mentions how to make it work for Amazon Linux. I'm especially uncertain about doing this cross compilation, since it'll need to rely on libsndfile, which presumably is built for mac osx on my machine.Thanks,Justin_______________________________________________On Sun, Dec 23, 2018 at 7:09 PM Marcus Weseloh <address@hidden> wrote:Hi Justin,you probably compiled Fluidsynth without libsndfile support, so the resulting audio is a raw 16-bit signed dual-channel float audio file (so not a .wav file with proper headers). You can either convert this raw file to wav using some tool, or install libsndfile-dev (or whatever it's called in your distribution) before building fluidsynth.Cheers,Marcus_______________________________________________Am So., 23. Dez. 2018 um 23:34 Uhr schrieb Justin <address@hidden>:_______________________________________________Hello, I'm trying to compile a fluidsynth binary. For my application, I need a way to convert from midi to mp3 on an AWS lambda, and I thought that using fluidsynth would be the best way. These are the steps I took:
- Clone fluidsynth from here: https://github.com/FluidSynth/fluidsynth
- Created build directory and ran 'cmake ..' from build directory
- Ran 'make fluidsynth' from build directory. This seemed to create a binary file called 'fluidsynth' in build/src directory
- Downloaded a sound font file from https://github.com/urish/cinto/blob/master/media/FluidR3%20GM.sf2 (renamed to sf.sf2 for convenience
Running the binary gave the following output:> fluidsynth -ni sf.sf2 some_midi.mid -F output.wav -r 44100FluidSynth runtime version 2.0.2
Copyright (C) 2000-2018 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.
Rendering audio to file 'output.wav'..
However, when I tried to play the output.wav file that was generated, it just gave a short loud click/pop.
I'm not sure what I'm doing wrong. Could someone give me some advice for how to figure out how to get this working? Or is there a better way for me to get fluidsynth to work on AWS lambda?
Thanks!
Justin
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev
[Prev in Thread] | Current Thread | [Next in Thread] |