Commit Graph

664 Commits

Author SHA1 Message Date
Dmitry Vedenko 07187ad789 Fixes MIDI playback on 64 bit Windows
Fix is based https://www.mail-archive.com/media_api@create.ucsb.edu/msg00514.html
2021-06-18 01:21:18 -07:00
Roger Dannenberg 8f41dd7a38 Restore old behavior where Nyquist sound effects replace selection with
arbitrary length computed sound. (So as before, sound after the selection
is shifted in time if the replacement sound is shorter or longer than the
original selection.) If stereo is computed and one channel is shorter than
the other, the shorter channel is extended with zeros to match the length
of the longer one.
2021-06-11 17:58:18 -04:00
Dmitry Vedenko f66381b967 Removes previously vendored libraries from the source tree 2021-05-24 06:53:53 -07:00
Leland Lucius 95bcb08b4b Revert "Cleanup and update FFmpeg support to v4.3.1 (#741)"
Removing until a decision is made on how to handle the required
library upgrade.
2021-05-10 10:33:01 -05:00
Leland Lucius 72c5ed863c
Cleanup and update FFmpeg support to v4.3.1 (#741)
* Cleanup and update FFmpeg support to v4.3.1

* Removing testing leftover
2021-05-05 10:54:36 -05:00
Dmitry Vedenko 770d0b3091 Update SQLite to 3.35.5
This update contains to important features:
1. Improved performance of WAL mode locking primitives in cases where there are hundreds of connections all accessing the same database file at once
2. In WAL mode, if a writer crashes and leaves the shm file in an inconsistent state, subsequent transactions are now able to recover the shm file even if there are active read transactions. Before this enhancement, shm file recovery that scenario would result in an SQLITE_PROTOCOL error.
2021-05-05 18:42:40 +03:00
Roger Dannenberg 91a557d838 This fixes a problem with nyquist's TRIGGER retaining samples (see comment 2, Bug #2698). This version of samples.c was accidentally omitted from an earlier commit. 2021-03-29 16:14:09 -04:00
Leland Lucius 0a085daa92 Fix build 2021-03-29 00:05:44 -05:00
Roger Dannenberg ff60f598f3 Fixes 2 bugs in Nyquist: (1) Bug 2706 probably already has a workaround in place, but the original code called snd-samples with ny:all for the maximum length to retrieve, and now that ny:all is bigger than 32-bits, the value was getting truncated. This change fixes legacy code to be 64-bit-aware. (2) allows sounds to be accessed beyond their stop time even when they stop in the middle of a block of samples. For example, this Nyquist prompt no longer generates garbage or crashes:
(setf idur 5000)
(setf impulse (extract-abs 0 (/ idur *sound-srate*) (cue *track*)))
(mult 0.01 (convolve *track* impulse))
2021-03-28 22:55:36 -04:00
James Crook 7f1705ee71 Fix build (long vs int64_t issues) 2021-03-27 21:55:14 +00:00
Roger Dannenberg ec48931739 I very recently pushed nyx.c thinking it was the same one pushed earlier by Steve. This version has some fundamental changes to keep reading/writing of multiple channels synchronized and insuring that the same number of samples are written to every channel. There are some minor differences like using printf instead of stdputstr and I tried to follow what I found in the nyx.c that has been in use for a long time. 2021-03-27 17:32:02 -04:00
Roger Dannenberg cd79f1099b Changes to allegro fix a bug where property lists are not properly saved/restored for Undo/Redo. Other changes make this code safer and more consistent between 32-bit and 64-bit architectures. 2021-03-27 13:21:01 -04:00
James Crook 14b767b9eb
Fix bad line break in #error directive.
Thanks to Jack L for reporting this.
2021-03-17 22:47:53 +00:00
Leland Lucius e6ec236a39 Fix (workaround) GUI hang on Linux
On second display of LV2 effect using an X11UI, Audacity
would hang due to the glib class not being in the expected
state.

Workaround is to not unload the suil wrapper library. The
unload was already being bypassed on Windows so I'm unsure
why the author didn't do it on the other platforms.
2021-02-26 00:53:45 -06:00
Leland Lucius ecf4727ab1 Add missing min/max 2021-02-16 14:12:18 -06:00
Leland Lucius f52860355d Bug 653 - Metadata: UTF-16 ID3 tags read incorrectly.
The real problem is that whatever created the file mentioned in
the bug report, did not include the Unicode BOM and libid3tag
defaulted to big endian. This commit uses some code from ReactOS
that TRIES to autodetect the endianness.
2021-02-16 13:33:42 -06:00
Leland Lucius 9543dd36c4 Update libsbsms to 2.2.0
Just a minor change that just bumps the libsbsms version.
2021-02-01 13:21:02 -06:00
Leland Lucius 5107c0f350 No longer need header replacement for sbsms.h 2021-02-01 10:35:52 -06:00
Leland Lucius 25ab87168d Actually include the 2.1.0 sbsms library 2021-02-01 10:19:33 -06:00
Leland Lucius a5609e44d0 Use version 2.1.0 of libsbsms
This is actually the exact code we already use, but Clayton has
set up a github repo for the release to make it available to
distros.
2021-02-01 10:12:06 -06:00
Leland Lucius b53d06ed23 Bug 425 - Win/Linux: Nyquist: (vector (aref s 0)(aref s 0)) not returned correctly to track 2021-01-30 02:49:30 -06:00
Leland Lucius 9fee0d1c19 Bug 101 - Nyquist implementation: (dribble [fname]) function 2021-01-29 06:54:49 -06:00
Leland Lucius bcb4bb91c7 Bug 101 - Nyquist implementation: (dribble [fname]) function 2021-01-28 19:54:21 -06:00
Leland Lucius a3a158e56b Bug 101 - Nyquist implementation: (dribble [fname]) function 2021-01-28 14:16:41 -06:00
Leland Lucius a2bcd53418 Record Nyquist upgrade in lib-src/audacity-patches.txt 2021-01-28 02:41:48 -06:00
Leland Lucius f24d42d510 Update Audacity's Nyquist interface for r331 (r3.16+)
This includes converting some types to int64_t to be
compatible with Nyquist's improved 64-bit support.
2021-01-28 02:34:43 -06:00
Leland Lucius 29d35e46e9 Misc changes to get new Nyquist to build 2021-01-28 01:59:04 -06:00
Carlo Bramini 6181f406fd Fix error build with MinGW and CYGWIN (#556)
When compiling, I got this error:

/lib-src/libnyquist/nyquist/nyqsrc/sndread.c: In function 'snd_make_read':
/lib-src/libnyquist/nyquist/nyqsrc/sndread.c:169:30: error: invalid operands to binary | (have 'int' and 'long int *')
  169 |         susp->sf_info.format |= format;
      |                              ^~

I would like to suggest this fix for this error.
2021-01-28 01:00:59 -06:00
Carlo Bramini 3dfc9d6dec Fix build on CYGWIN. (#557)
* [NYQUIST] Fix build on CYGWIN

Cygwin requires to include unistd.h for building without errors.

* [NYQUIST] Fix build on CYGWIN.

Cygwin requires to include endian.h to build without errors.
2021-01-28 01:00:36 -06:00
Leland Lucius 5ba6072bbb Workaround for bug #2264
Reverting back to previous behavior to get proper
escaping.
2021-01-28 00:52:33 -06:00
Leland Lucius d8b878f163 Reapply 5aa70545d5
Author: Paul Licameli <paul.licameli@audacityteam.org>
    Date:   Mon Feb 26 11:18:22 2018 -0500

        Use casts with function pointers to quiet compilation warnings in Nyquist
2021-01-28 00:47:48 -06:00
Leland Lucius cb810e8652 Reapply 5955dbc752
Author: Leland Lucius <github@homerow.net>
    Date:   Wed Oct 2 10:17:00 2019 -0500

        Possible fix for bug #590

        This change reduces the risk of LADSPA plugins referencing
        Audacity symbols by using the RTLD_DEEPBIND flag when loading
        the plugins.

        It also addresses an issue specific to the "blop" plugins where
        they load their own libraries (without RTLD_DEEPBIND).

        A much better solution would be to change Audacity's default
        symbol visibility to "hidden" which would expose ONLY symbols
        specificially marked as visible.
2021-01-28 00:43:08 -06:00
Leland Lucius 1f27ad932c Reapply a3afdf80d0
Author: Paul Licameli <paul.licameli@audacityteam.org>
    Date:   Tue Nov 13 08:36:22 2018 -0500

        lib-src/libnyquist: fix warning about always-false comparison...

        ... but this raises questions about the intention to catch negative values,
        which if they ever happened, were just mis-cast to unsigned at call sites
2021-01-28 00:35:40 -06:00
Leland Lucius 19494d6277 Reapply 2fec472ba2
Author: Paul Licameli <paul.licameli@audacityteam.org>
    Date:   Tue Nov 13 07:50:01 2018 -0500

        lib-src/libnyquist: eliminate register local variables
2021-01-28 00:35:19 -06:00
Leland Lucius 981f41ccf4 Reapply 6b2a219e26
Author: Paul Licameli <paul.licameli@audacityteam.org>
    Date:   Tue Feb 27 13:51:10 2018 -0500

        Changes to make xlisp.h usable in C++ code...

        1) #include guard
        2) "C" linkage for all function declarations
        3) some uses of const
2021-01-28 00:34:50 -06:00
Leland Lucius 9b77109eff Reapply e6d069787b
and a1dc8305f0

    Author: Paul Licameli <paul.licameli@audacityteam.org>
    Date:   Thu Feb 22 01:02:15 2018 -0500

        Fix mistake in commit a1dc830 and add a comment

    Author: Paul Licameli <paul.licameli@audacityteam.org>
    Date:   Wed Feb 21 15:46:18 2018 -0500

        A function to extend XLisp's table of function bindings dynamically
2021-01-28 00:34:28 -06:00
Leland Lucius 9d61ee437a Reapply 016919a53b
Author: James Crook <james.k.crook@gmail.com>
   Date:   Sun Jun 26 08:35:19 2016 +0100

       Bug1223: (correction).  Fix new potential crash in following pointer.

       With recent changes to the Nyquist code for freeing blocks, the pointer 'next' could be uninitialised when 'list' points to the zero chain.  So Audacity would follow a rogue pointer.  We'd get away with it if the uninitialised value happened to be zero.
2021-01-28 00:29:58 -06:00
Leland Lucius 7e083b6ba1 Reapply ecc2138c5c
Author: Mojca Miklavec <mojca.miklavec.lists@gmail.com>
    Date:   Fri Feb 26 15:11:55 2016 +0100

        comment out extra tokens at end of #endif directive to avoid compiler warnings [-Wextra-tokens]
2021-01-28 00:29:22 -06:00
Leland Lucius f678aa44f9 Reapply 132173badf
Author: Julien Nabet <serval2412@yahoo.fr>
   Date:   Sat Nov 7 22:47:34 2015 +0100

       cppcheck: fix 2 reports

       [lib-src/libnyquist/nyquist/nyqsrc/f0.cpp:137]: (error) Mismatching allocation and deallocation: results
2021-01-28 00:27:43 -06:00
Leland Lucius 15b9bb96cd Update nyquist to SVN r331 (r3.16+)
------------------------------------------------------------------------
   r331 | rbd | 2020-10-13 12:40:12 -0500 (Tue, 13 Oct 2020) | 2 lines

   Also forgot to install NyquistWords.txt

   ------------------------------------------------------------------------
   r330 | rbd | 2020-10-13 12:34:06 -0500 (Tue, 13 Oct 2020) | 2 lines

   Forgot to move nyquistman.pdf from docsrc/s2h to release

   ------------------------------------------------------------------------
   r329 | rbd | 2020-10-13 11:32:33 -0500 (Tue, 13 Oct 2020) | 2 lines

   Updated some version numbers for 3.16.

   ------------------------------------------------------------------------
   r328 | rbd | 2020-10-13 11:20:52 -0500 (Tue, 13 Oct 2020) | 2 lines

   Fixed NyquistIDE antialiasing for plot text, fix format of message.

   ------------------------------------------------------------------------
   r327 | rbd | 2020-10-12 21:01:53 -0500 (Mon, 12 Oct 2020) | 2 lines

   Fixed a couple of format problems in manual. This version of Nyquist has been tested wtih macOS, Linux, 32&64-bit Windows.

   ------------------------------------------------------------------------
   r326 | rbd | 2020-10-12 20:21:38 -0500 (Mon, 12 Oct 2020) | 1 line

   Modified WIN32 32-bit XLisp to use 64-bit FIXNUMs. This allows XLisp and Nyquist to handle big sounds even on 32-bit machines. Probably at some cost, but inner loops are mostly float and int32, and the Nyquist release is 64-bit anyway. Maybe we'll have to run some benchmarks on Audacity, which is still 32-bit on Windows.
   ------------------------------------------------------------------------
   r325 | rbd | 2020-10-12 13:16:57 -0500 (Mon, 12 Oct 2020) | 1 line

   Win64 passes bigfiletest.lsp now. This version should work on all 64-bit systems now. These changes untested on Linux and macOS.
   ------------------------------------------------------------------------
   r324 | rbd | 2020-10-11 21:31:53 -0500 (Sun, 11 Oct 2020) | 2 lines

   I couldn't free enough space on my linux box, so I adjusted the bigfiletest to write 8-bit ulaw. It's still >4GB and >4G samples. Works on Linux.

   ------------------------------------------------------------------------
   r323 | rbd | 2020-10-11 19:41:25 -0500 (Sun, 11 Oct 2020) | 2 lines

   Missing file from last commit.

   ------------------------------------------------------------------------
   r322 | rbd | 2020-10-11 19:36:08 -0500 (Sun, 11 Oct 2020) | 1 line

   Found another case where WIN64 needs int64_t instead of long for sample count.
   ------------------------------------------------------------------------
   r321 | rbd | 2020-10-11 19:33:25 -0500 (Sun, 11 Oct 2020) | 3 lines

   Fixed s-save to	handle optional	and keyword parameters (which should never have	been mixed in the first	place).	Documentation cleanup - should be final for this version.

   ------------------------------------------------------------------------
   r320 | rbd | 2020-10-11 14:44:37 -0500 (Sun, 11 Oct 2020) | 2 lines

   Fixes to handle IRCAM sound format and tests for big file io working on macOS.

   ------------------------------------------------------------------------
   r319 | rbd | 2020-10-10 21:31:58 -0500 (Sat, 10 Oct 2020) | 2 lines

   Changes for linux and to avoid compiler warnings on linux.

   ------------------------------------------------------------------------
   r318 | rbd | 2020-10-10 20:50:23 -0500 (Sat, 10 Oct 2020) | 1 line

   This is the test used for Win64 version.
   ------------------------------------------------------------------------
   r317 | rbd | 2020-10-10 20:34:34 -0500 (Sat, 10 Oct 2020) | 1 line

   This version works on Win64. Need to test changes on macOS and linux.
   ------------------------------------------------------------------------
   r316 | rbd | 2020-10-10 19:59:15 -0500 (Sat, 10 Oct 2020) | 2 lines

   PWL changes to avoid compiler warning.

   ------------------------------------------------------------------------
   r315 | rbd | 2020-10-10 19:34:04 -0500 (Sat, 10 Oct 2020) | 2 lines

   A few more changes for 64-bit sample counts on Win64

   ------------------------------------------------------------------------
   r314 | rbd | 2020-10-10 13:19:42 -0500 (Sat, 10 Oct 2020) | 2 lines

   Fixed int64_t declaration in gate.alg

   ------------------------------------------------------------------------
   r313 | rbd | 2020-10-10 12:07:40 -0500 (Sat, 10 Oct 2020) | 2 lines

   Fixes to gate for long sounds

   ------------------------------------------------------------------------
   r312 | rbd | 2020-10-10 11:47:29 -0500 (Sat, 10 Oct 2020) | 2 lines

   Fixed sound_save types for intgen

   ------------------------------------------------------------------------
   r311 | rbd | 2020-10-10 11:09:01 -0500 (Sat, 10 Oct 2020) | 2 lines

   Fixed a 64-bit sample count problem in siosc.alg

   ------------------------------------------------------------------------
   r310 | rbd | 2020-10-10 11:03:12 -0500 (Sat, 10 Oct 2020) | 2 lines

   Fixed sndmax to handle 64-bit sample counts.

   ------------------------------------------------------------------------
   r309 | rbd | 2020-10-10 10:57:04 -0500 (Sat, 10 Oct 2020) | 2 lines

   Forgot to re-translate all tran/*.alg files with fix for int64 cast to int32. This version compiles on macOS and ready for test on Win64.

   ------------------------------------------------------------------------
   r308 | rbd | 2020-10-10 10:16:05 -0500 (Sat, 10 Oct 2020) | 2 lines

   Everything seems to compile and run on macOS now. Moving changes to Windows for test.

   ------------------------------------------------------------------------
   r307 | rbd | 2020-10-10 09:23:45 -0500 (Sat, 10 Oct 2020) | 1 line

   Added casts to avoid compiler warnings and to review changes to support 64-bit sample counts on Windows. Still not complete, and waiting to regenerate and compile tran directory code after updates to translation code that will insert more casts.
   ------------------------------------------------------------------------
   r306 | rbd | 2020-10-09 21:55:15 -0500 (Fri, 09 Oct 2020) | 2 lines

   Rebuilt seqfnint.c from header files.

   ------------------------------------------------------------------------
   r305 | rbd | 2020-10-09 21:53:33 -0500 (Fri, 09 Oct 2020) | 1 line

   Changed some FIXNUMS to LONG to avoid compiler warnings in seqfnint.c
   ------------------------------------------------------------------------
   r304 | rbd | 2020-10-09 21:44:03 -0500 (Fri, 09 Oct 2020) | 2 lines

   I discovered forgotten regression-test.lsp and added test that requires 64-bit sample counts to pass. Fixed a few bugs revealed by running the type-checking regression tests.

   ------------------------------------------------------------------------
   r303 | rbd | 2020-10-09 12:28:58 -0500 (Fri, 09 Oct 2020) | 2 lines

   Changes for 64-bit sample counts broke mult-channel s-save. Fixed in the commit for macOS.

   ------------------------------------------------------------------------
   r302 | rbd | 2020-10-09 10:03:39 -0500 (Fri, 09 Oct 2020) | 2 lines

   Changed snd-play to return samples computed and used that to make a test for computing long sounds that would overflow 32-bit length counts.

   ------------------------------------------------------------------------
   r301 | rbd | 2020-10-09 09:11:26 -0500 (Fri, 09 Oct 2020) | 2 lines

   corrected mistake in delaycv.alg and re-translated

   ------------------------------------------------------------------------
   r300 | rbd | 2020-10-09 09:09:06 -0500 (Fri, 09 Oct 2020) | 2 lines

   Fix to delaycv.alg -- "s" changed to "input" to avoid matching "s" in "sample_type".

   ------------------------------------------------------------------------
   r299 | rbd | 2020-10-09 09:03:33 -0500 (Fri, 09 Oct 2020) | 4 lines

   To avoid compiler warnings, XLisp interfaces to C int and long are now
   specified as LONG rather than FIXNUM, and the stubs that call the C
   functions cast FIXNUMs from XLisp into longs before calling C functions.

   ------------------------------------------------------------------------
   r298 | rbd | 2020-10-08 22:20:26 -0500 (Thu, 08 Oct 2020) | 2 lines

   This commit has many more fixes to handle long (64-bit) sounds, including a lot of fixes for warnings by Visual Studio assigning int64_t to long (works on macOS, doesn't work on VS). This was compiled and tested on macOS, and even computed a 27.1-hour sound using OSC, LP, SUM and MULT (haven't tested I/O yet).

   ------------------------------------------------------------------------
   r297 | rbd | 2020-10-07 13:04:02 -0500 (Wed, 07 Oct 2020) | 2 lines

   This is a major cleanup. It started with the goal of changing long to int64_t for sample counts so that on 64-bit windows, where long is only 32-bits, the sample counts would nevertheless be 64-bit allowing long sounds, which was a limitation for long recordings in Audacity. Since I was using compiler warnings to track possible loss-of-precision conversions from 64-bit sample counts, and there were *many* warnings, I started cleaning up *all* the warnings and ended up with a very large set of changes, including "modernizing" C declarations that date back to XLisp and CMU MIDI Toolkit code and were never changed. This version runs all the examples.sal code on macOS, but will surely have problems on Windows and Linux given the number of changes.

   ------------------------------------------------------------------------
   r296 | rbd | 2020-10-06 13:34:20 -0500 (Tue, 06 Oct 2020) | 2 lines

   More changes from long to int64_t for sample counts.

   ------------------------------------------------------------------------
   r295 | rbd | 2020-10-06 11:53:49 -0500 (Tue, 06 Oct 2020) | 2 lines

   More work on using 64-bit sample counts. Changed MAX_STOP from 32-bit to 64-bit limit.

   ------------------------------------------------------------------------
   r294 | rbd | 2020-10-06 11:48:05 -0500 (Tue, 06 Oct 2020) | 2 lines

   Made some changes so that sample counts are int64_t (for windows) instead of long to support sample counts above 31 bits.

   ------------------------------------------------------------------------
   r293 | rbd | 2020-10-04 21:30:55 -0500 (Sun, 04 Oct 2020) | 2 lines

   Fixed a few minor things for Linux and tested on Linux.

   ------------------------------------------------------------------------
   r292 | rbd | 2020-10-04 21:00:28 -0500 (Sun, 04 Oct 2020) | 2 lines

   Update extensions: all are minor changes.

   ------------------------------------------------------------------------
   r291 | rbd | 2020-09-24 13:59:31 -0500 (Thu, 24 Sep 2020) | 2 lines

   New implementation of seq and seqrep, added get-real-time, documented get-real-time, fixed examples.sal and examples.lsp which are now in lib rather than extensions (so they are now back in the basic installation), other cleanup.

   ------------------------------------------------------------------------
   r290 | rbd | 2020-08-16 16:24:52 -0500 (Sun, 16 Aug 2020) | 2 lines

   Fixed bug in snd-gate, revised GATE and NOISE-GATE to handle multi-channel sound. RMS now handles multi-channel input. S-AVG added to take multichannel input (but not used, because RMS could not be written without making SND-SRATE convert multichannel sound to vector of floats. That seems to be going toward a fully vectorized model. Not going there for now.

   ------------------------------------------------------------------------
   r289 | rbd | 2020-07-09 16:27:45 -0500 (Thu, 09 Jul 2020) | 2 lines

   Added GET-REAL-TIME function to XLISP. May not work yet on Windows. Various fixes for compiler warnings. I noticed FLAC doesn't work (I guess it never did) and I cannot figure out how this even links because flac_min seems to be undefined. Something to look at later.
2021-01-27 23:45:25 -06:00
Leland Lucius 428193920f Bug 2209 - Nyquist: Audacity crashes when running seq-write-smf
Used upstream fix instead.  Really need to update to Nyquist
release 3.16 for many more 64-bit fixes/enhancements.
2021-01-27 10:38:10 -06:00
Leland Lucius 20fb3b24bf Bug 2209 - Nyquist: Audacity crashes when running seq-write-smf 2021-01-27 00:34:21 -06:00
freddii 534359de6c
Fix minor typos (#720)
Co-authored-by: freddii <https://freddii@github.com>
2021-01-12 11:56:09 +00:00
freddii 2593a84d56 Fix some spelling mistakes. 2021-01-12 09:55:31 +00:00
Leland Lucius 3cd04a5ebf Revert "Bug 2381 - Mac: Export to Opus (OggOpus) is not available on Mac - Opus import fails on Mac"
This reverts commit 743585fb4b.
2020-08-19 05:54:41 -05:00
Leland Lucius 7de814ff2c Revert "Missed a few files..."
This reverts commit 8c2ac04828.
2020-08-19 05:54:24 -05:00
Leland Lucius 8c2ac04828 Missed a few files... 2020-08-18 23:51:13 -05:00
Leland Lucius 743585fb4b Bug 2381 - Mac: Export to Opus (OggOpus) is not available on Mac - Opus import fails on Mac 2020-08-18 22:39:19 -05:00
Leland Lucius 72032d6a2a Bug 2492 - Linux: Crash when applying or previewing Sliding Stretch effect on stereo track 2020-08-06 00:46:23 -05:00
Leland Lucius 2fbfd3e0a5 AUP3: Add SQLite to the project 2020-07-01 01:13:37 -05:00