1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-11 17:13:37 +02:00
Paul Licameli 6eac877de6 The great object-oriented rewrite of TrackPanel event handling! ...
... and some parts of drawing too (snap lines and zoom boxes)

Many new source files

No UI changes intended, except:

   small changes in drawing zoom boxes (hide narrow enough boxes)
   update display of selection as you drag the selected label (not just at
      mouse up)
   status bar preview messages for clicks on cutlines or clip boundaries
   ESC key is implemented for all drags -- including now those which would
      make new Undo items if they completed -- and in all cases, "should"
      restore the state of the project as it was at button-down, though some
      details are not yet right for restoring the set of selected tracks

A TrackPanelCell abstract class dispatches keystroke and mousewheel events;
subclasses for vertical rulers, track control panels, and tracks provide
overrides.

TrackPanelCell also has a hit test routine that returns a status message,
a preview cursor, and an object that inherits from abstract class UIHandle.

UIHandle in turn implements policies for click, drag, release, ESC key,
drawing of extra decorations during drag, and cursor and status message changes
during drag.

There are eighteen (immediate) subclasses of UIHandle, for:

   Note track channel buttons
   Other pushbuttons (close, menu, mute, solo, minimize)
   Sliders (pan, gain, velocity)
   Note track stretch
   Selections (new, extended with Shift, spectral)
   Envelope editing
   Sample editing
   Zoom tool
   Time shift
   Wave track vertical ruler clicks and drags
   Note track vertical ruler clicks and drags
   Clicking a cutline or clip boundary
   Dragging or stretching a label
   Clicking a label box and selecting text within it
   Other clicks on Label track
   Resizing a track or channels of a stereo track
   Clicking TCP to select and dragging to rearrange tracks
   Click on the empty area, to deselect all tracks

A few of these have effects at button-down; others not until button up, and
such have ESC key implemented.

Perhaps it would be better that all clicking actions are consistently delayed
until button up?
2017-06-15 08:55:00 -04:00
2017-04-27 15:16:05 +01:00
2017-04-27 15:16:05 +01:00
2015-06-19 14:15:59 +01:00
2017-06-15 08:55:00 -04:00
2017-04-27 15:16:05 +01:00
2017-04-02 23:07:13 +01:00
2017-03-31 12:51:15 -04:00
2017-03-31 12:51:15 -04:00
2017-03-19 13:59:19 +00:00
2016-11-23 17:49:53 +00:00

Audacity(R): free, open source, cross-platform audio software for 
multi-track recording and editing: http://www.audacityteam.org/ . 

User suppport is provided on Audacity Forum:
http://forum.audacityteam.org/ .

We welcome feedback on Audacity, suggestions for new or improved features, 
and bug reports at feedback@audacityteam.org .

Audacity is copyright (c) 1999-2017 by Audacity Team. This copyright 
notice applies to all documents in the Audacity source code archive, 
except as otherwise noted (mostly in the lib-src subdirectories). 
"Audacity" is a registered trademark of Dominic Mazzoni. 

The Audacity documentation is licensed under the Creative Commons
Attribution 3.0 license: http://creativecommons.org/licenses/by/3.0/legalcode .

Compilation instructions for Audacity are provided in the source code:
* Windows: win\compile.txt
* macOS: mac/Build.txt
* GNU/Linux: INSTALL . 

You can ask for help with compilation problems at:
http://forum.audacityteam.org/viewforum.php?f=19 .

If you want to suggest some simple text change in our code, please submit a 
pull request on https://github.com/audacity/audacity/pulls . It's usually 
best to discuss functional code changes with us first on audacity-devel: 
https://lists.sourceforge.net/lists/listinfo/audacity-devel . 


Version 2.1.3 

Contents of this README:

1.  Licensing
2.  Changes since version 2.1.2 
3.  Known Issues at Release
4.  Source Code, Libraries and Additional Copyright Information

--------------------------------------------------------------------------------

1. Licensing

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. The program source code is also freely
available as per Section 4 of this README.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
License for more details.

You should have received a copy of the GNU General Public License
along with this program (in a file called LICENSE.txt); if not, go
to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html or write to

  Free Software Foundation, Inc.
  59 Temple Place - Suite 330
  Boston, MA 02111-1307 USA


-------------------------------------------------------------------------------

2. Changes since version 2.1.2: 

Changes and Improvements:
   
 * Interface:  
   * (macOS) Support for horizontal scroll on Magic Mouse / Trackpad and for
     Trackpad pinch/expand zoom gestures.
   * Pinned option on waveform makes waveform move and recording/playing head
     stay still.
   * Timer Record options to save/export/exit after recording.
   * Scrub Ruler and optional Scrub Toolbar.
   * New shortcuts ALT+RIGHT and ALT+LEFT (move to labels without editing). 
   
 * Effects:
   * Effects no longer grayed out when paused.
   * New Distortion effect (replaces Leveller).
   * SBSMS (higher quality but slower) option on Change Tempo / Change Pitch 
     effects.
   * New Rhythm Track generator (replaces Click Track). 
   * New Generator for Sample Data Import.
   * Nyquist effects now significantly faster.
   
 * Other Changes:   
   * Upgraded the PortAudio library to v19 rev r1966.  This gives Audacity 
     Windows 10 support.
   * (Windows) DirectSound now records 24-bit samples. 
   * (macOS) Audacity.app now has its resources inside it rather than in a
     separate folder, so installation to /Applications/ is cleaner.
   * (macOS) Audacity 2.1.3 provides partial support for Sierra. Details at 
     http://wiki.audacityteam.org/wiki/Partial_Support_for_Mac_Sierra_in_2.1.3 .

Bug fixes:

 Over 60 bugs fixed, including five longstanding bugs.
 
-------------------------------------------------------------------------------

3. Known Issues in 2.1.3:

For known issues at release of 2.1.3 please see:
  http://wiki.audacityteam.org/wiki/Release_Notes_2.1.3#known .


-------------------------------------------------------------------------------

4.  Source Code, Libraries and Additional Copyright Information

Source code to this program is always available; for more information visit
our web site at:

  http://audacityteam.org/download/source

Audacity is built upon other free libraries; some of these libraries may have
come with Audacity in the lib-src directory.  Others you are expected to install
first if you want Audacity to have certain capabilities.  Most of these libraries
are not distributed under the terms of the GPL, but rather some other free,
GPL-compatible license.  Specifically:

  expat: BSD-like license.
    Provides XML parsing.  Included with Audacity.

  FFmpeg: GPL or LGPL (according to how you obtain/configure it)
    Provides decoding/encoding of additional formats. Optional separate
    download.

  libid3tag: GPL
    Reads/writes ID3 tags in MP3 files.  Optional
    separate download as part of libmad.

  libflac: Xiph.Org BSD-like licence (the parts we use)
    Decodes and Encodes Free Lossless Audio Codec files. Optional separate
    download.

  libmad: GPL
    Decodes MP3 files.  Optional separate download.

  libnyquist: BSD-like license.
    Functional language for manipulating audio; available
    within Audacity for effects processing.

  libogg: BSD-like license.
    Optional separate download, along with libvorbis.

  libsndfile: LGPL
    Reads and writes uncompressed PCM audio files.
    Included with Audacity.

  libsoxr: LGPL
    The SoX Resampler library performs one-dimensional sample-rate conversion.

  libvamp: new-style BSD
    Plug-in interface and support library for audio analysis plug-ins.
    Included with Audacity.

  libvorbis: BSD-like license.
    Decodes and encodes Ogg Vorbis files.  Optional
    separate download.

  lv2: a merging of the lilv (ISC license), lv2 (LGPL), msinttypes, serd (ISC), 
    sord, sratom, and suil libraries to support LV2 plug-ins. 

  portsmf: BSD-like license.
    library for reading and writing midi files. Included with Audacity

  sbsms: GPL v2
    Pitch and tempo changing library. Included in Audacity

  SoundTouch: LGPL
    Changes tempo without changing pitch and vice versa.
    Included in audacity

  Twolame: LGPL
    Encodes MPEG I layer 2 audio (used in DVDs and Radio). Optional separate
    download.

  wxWidgets: wxWindows license (based on LGPL)
    Cross-platform GUI library - must be downloaded and
    compiled separately.


For more information, see the documentation inside each library's
source code directory.

--------------------------------------------------------------------------------
Additional copyright information:
--------------------------------------------------------------------------------

Nyquist

Copyright (c) 2000-2002, by Roger B. Dannenberg
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions of source code must retain the copyright notice, the
list of conditions, and the disclaimer, all three of which appear below under
"COPYRIGHT AND LICENSE INFORMATION FOR XLISP."

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

Redistributions in binary form must reproduce the copyright notice, the
list of conditions, and the disclaimer, all three of which appear below under
"COPYRIGHT AND LICENSE INFORMATION FOR XLISP," in the documentation
and/or other materials provided with the distribution.

Neither the name of Roger B. Dannenberg, Carnegie Mellon University, nor the
names of any contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

COPYRIGHT AND LICENSE INFORMATION FOR XLISP (part of Nyquist):

Copyright (c) 1984-2002, by David Michael Betz
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

Neither the name of David Michael Betz nor the names of any contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Description
No description provided
Readme 341 MiB
Languages
C++ 56.3%
C 34.4%
Common Lisp 4.3%
CMake 1.6%
Python 1%
Other 2.2%