Annotation of Examples/SoundAndMusic/SoundKit/SoundEditor/README.rtf, revision 1.1.1.1

1.1       root        1: {\rtf0\ansi{\fonttbl\f0\fnil Times-Roman;\f1\ftech Symbol;\f3\fmodern Courier;}
                      2: \paperw12000
                      3: \paperh9000
                      4: \margl120
                      5: \margr120
                      6: {\colortbl;\red0\green0\blue0;}
                      7: \pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\f0\b\i0\ulnone\fs36\fc0\cf0 SoundEditor
                      8: \b0\fs24 \
                      9: \
                     10: 
                     11: \fs28 This programming example illustrates how easy it is to use the three SoundKit classes � Sound, SoundView, and SoundMeter.  Multiple sounds can be open at the same time, with full cut, copy and paste functionality, using the mouse to select portions of the sound waveform.    A control panel, consisting of a SoundMeter and Play, Stop, Pause, and Record Buttons, operates on whichever sound is in the current key window.  \
                     12: \
                     13: The  
                     14: \b SoundDocument
                     15: \b0  class manages a single window containing a 
                     16: \b ScrollingSound
                     17: \b0 , which is simply a subclass of ScrollView that contains a SoundView.   The ScrollingSound is contained in SoundDocument.nib, which is loaded for each new window.  As with most of the NeXT programming examples, it's as instructive to explore the .nib files as to read the source code.  Note that this .nib file's owner is of class SoundDocument.    \
                     18: \
                     19: The 
                     20: \b SoundController
                     21: \b0  class manages communication between the SoundDocuments and the rest of the interface (the menus and the control panel).  Every time the user requests a new window with the New or Open... commands, the SoundController creates a new instance of SoundDocument.   SoundDocument in its 
                     22: \b init
                     23: \b0  method then loads in a new SoundDocument.nib, which displays the window with the ScrollingSound.  To create the SoundMeter in the control panel, we created a custom view, dragged the icon of /usr/include/soundkit/SoundMeter.h from Workspace  into IB's Classes suitcase, and used the Inspector to change the view's class.\
                     24: \
                     25: You can use this simple example as a basis for many useful extensions � for example, zooming, mixing, filtering, changing sound format, etc.   If you're interested in a more full-function editor,  there is at least one commercial product (SoundWorks
                     26: \f1 �
                     27: \f0  from Metaresearch), as well as some public-domain editors available with source code on the Internet archive servers.\
                     28: \
                     29: 
                     30: \b\fs32\fc1\cf1 Changes for Release 3.0
                     31: \fs36 \
                     32: \
                     33: 
                     34: \b0\fs28\fc0\cf0 Features have been added to illustrate use of the new Audio Transform Compression (ATC) format, various new supported format conversions, and miscellaneous new API in the Sound Kit. \
                     35: \
                     36: A 
                     37: \b SaveTo
                     38: \b0  panel has been added which supports \
                     39: \
                     40:        (1) changing the data format on save to linear, mu-law, or ATC compressed, \
                     41:        (2) converting  mono to stereo, or stereo to mono, and \
                     42:        (3) converting sampling rates among the three commonly used on NeXT computers.   \
                     43: \
                     44: Many other format and sampling-rate conversions are now supported by the Sound object's upgraded 
                     45: \b convertToFormat:
                     46: \b0 ... method (see the Sound release notes and on-line documentation for details);  the cases illustrated here are only the most generally useful.  Compression and decompression are carried out using the DSP, so they operate faster than real time for all standard sampling rates.  Sampling-rate conversion does not use the DSP, so it is typically slower than real time.\
                     47: \
                     48: In the 
                     49: \b SoundDocument
                     50: \b0  class, if the soundfile format cannot be displayed by SoundView, (e.g. because it is compressed),  the format is converted to LINEAR_16 on input.  This is detected by the SoundView object returning 
                     51: \b nil
                     52: \b0  in response to its 
                     53: \b setSound:
                     54: \b0  method when the sound is not displayable.  (Empty sounds are defined as displayable in this context.  To be undisplayable, the sound must contain data in a format not supported by SoundView.) \
                     55: \
                     56: The new SoundView
                     57: \b  
                     58: \b0 method
                     59: \b  isPlayable
                     60: \b0  is illustrated.  When the play button is pressed, the current sound is send the isPlayable message.  If the method returns nil, the system beep is played instead of attempting to play the sound.\
                     61: 
                     62: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.