diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py index 3582a6eb..5c357f1b 100644 --- a/src/ocrmypdf/_exec/ghostscript.py +++ b/src/ocrmypdf/_exec/ghostscript.py @@ -166,6 +166,7 @@ class GhostscriptFollower: def generate_pdfa( pdf_pages, output_file: os.PathLike, + *, compression: str, pdf_version: str = '1.5', pdfa_part: str = '2', @@ -195,10 +196,11 @@ def generate_pdfa( "-dAutoFilterGrayImages=true", ] + strategy = 'LeaveColorUnchanged' # Older versions of Ghostscript expect a leading slash in # sColorConversionStrategy, newer ones should not have it. See Ghostscript # git commit fe1c025d. - strategy = 'RGB' if version() >= '9.19' else '/RGB' + strategy = ('/' + strategy) if version() < '9.19' else strategy if version() == '9.23': # 9.23: added JPEG passthrough as a new feature, but with a bug that diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py index 46e810c7..7f7c06a4 100644 --- a/src/ocrmypdf/_exec/tesseract.py +++ b/src/ocrmypdf/_exec/tesseract.py @@ -221,6 +221,7 @@ def _generate_null_hocr(output_hocr, output_text, image): def generate_hocr( + *, input_file: Path, output_hocr: Path, output_text: Path, diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py index 5798ed55..5226326d 100644 --- a/src/ocrmypdf/_exec/unpaper.py +++ b/src/ocrmypdf/_exec/unpaper.py @@ -69,7 +69,7 @@ def _setup_unpaper_io(tmpdir: Path, input_file: Path) -> Tuple[Path, Path]: def run( - input_file: Path, output_file: Path, dpi: DecFloat, mode_args: List[str] + input_file: Path, output_file: Path, *, dpi: DecFloat, mode_args: List[str] ) -> None: args_unpaper = ['unpaper', '-v', '--dpi', str(round(dpi, 6))] + mode_args @@ -114,6 +114,7 @@ def validate_custom_args(args: str) -> List[str]: def clean( input_file: Path, output_file: Path, + *, dpi: DecFloat, unpaper_args: Optional[List[str]] = None, ): @@ -130,4 +131,4 @@ def clean( ] if not unpaper_args: unpaper_args = default_args - run(input_file, output_file, dpi, unpaper_args) + run(input_file, output_file, dpi=dpi, mode_args=unpaper_args) diff --git a/src/ocrmypdf/_graft.py b/src/ocrmypdf/_graft.py index 33d18e13..41db5e5e 100644 --- a/src/ocrmypdf/_graft.py +++ b/src/ocrmypdf/_graft.py @@ -6,22 +6,31 @@ import logging +import uuid from contextlib import suppress from pathlib import Path from typing import Optional import pikepdf +from pikepdf.objects import Dictionary, Name log = logging.getLogger(__name__) MAX_REPLACE_PAGES = 100 -def _update_page_resources(*, page, font, font_key, procset): - """Update this page's fonts with a reference to the Glyphless font""" +def _ensure_dictionary(obj, name): + if name not in obj: + obj[name] = pikepdf.Dictionary({}) + return obj[name] - if '/Resources' not in page: - page['/Resources'] = pikepdf.Dictionary({}) - resources = page['/Resources'] + +def _update_resources(*, obj, font, font_key, procset): + """Update this obj's fonts with a reference to the Glyphless font. + + obj can be a page or Form XObject. + """ + + resources = _ensure_dictionary(obj, '/Resources') try: fonts = resources['/Font'] except KeyError: @@ -32,7 +41,8 @@ def _update_page_resources(*, page, font, font_key, procset): # Reassign /ProcSet to one that just lists everything - ProcSet is # obsolete and doesn't matter but recommended for old viewer support - resources['/ProcSet'] = procset + if procset: + resources['/ProcSet'] = procset def strip_invisible_text(pdf, page): @@ -169,13 +179,13 @@ class OcrGrafter: """ page0 = self.pdf_base.pages[0] - _update_page_resources( - page=page0, font=self.font, font_key=self.font_key, procset=self.procset + _update_resources( + obj=page0, font=self.font, font_key=self.font_key, procset=self.procset ) # We cannot read and write the same file, that will corrupt it # but we don't to keep more copies than we need to. Delete intermediates. - # {interim_count} is the opened file we were updateing + # {interim_count} is the opened file we were updating # {interim_count - 1} can be deleted # {interim_count + 1} is the new file will produce and open old_file = self.output_file.with_suffix(f'.working{self.interim_count - 1}.pdf') @@ -210,6 +220,7 @@ class OcrGrafter: pdf_text_fonts = pdf_text.pages[0].Resources.get('/Font', {}) except (AttributeError, IndexError, KeyError): return None, None + pdf_text_font = None for f in possible_font_names: pdf_text_font = pdf_text_fonts.get(f, None) if pdf_text_font is not None: @@ -279,17 +290,29 @@ class OcrGrafter: # finally move the lower left corner to match the mediabox ctm = translate @ rotate @ scale @ untranslate @ corner - pdf_text_contents = ( - b'q %s cm\n' % ctm.encode() + pdf_text_contents + b'\nQ\n' + base_resources = _ensure_dictionary(base_page, '/Resources') + base_xobjs = _ensure_dictionary(base_resources, '/XObject') + text_xobj_name = Name('/' + str(uuid.uuid4())) + xobj = self.pdf_base.make_stream(pdf_text_contents) + base_xobjs[text_xobj_name] = xobj + xobj.Type = Name.XObject + xobj.Subtype = Name.Form + xobj.FormType = 1 + xobj.BBox = mediabox + _update_resources( + obj=xobj, font=font, font_key=font_key, procset=[Name.PDF] ) - new_text_layer = pikepdf.Stream(self.pdf_base, pdf_text_contents) + pdf_draw_xobj = ( + (b'q %s cm\n' % ctm.encode()) + (b'%s Do\n' % text_xobj_name) + b'\nQ\n' + ) + new_text_layer = pikepdf.Stream(self.pdf_base, pdf_draw_xobj) if strip_old_text: strip_invisible_text(self.pdf_base, base_page) base_page.page_contents_add(new_text_layer, prepend=True) - _update_page_resources( - page=base_page, font=font, font_key=font_key, procset=procset + _update_resources( + obj=base_page, font=font, font_key=font_key, procset=procset ) diff --git a/src/ocrmypdf/_pipeline.py b/src/ocrmypdf/_pipeline.py index 329a2cc0..fd8d3ac1 100644 --- a/src/ocrmypdf/_pipeline.py +++ b/src/ocrmypdf/_pipeline.py @@ -483,7 +483,12 @@ def preprocess_deskew(input_file: Path, page_context: PageContext): def preprocess_clean(input_file: Path, page_context: PageContext): output_file = page_context.get_path('pp_clean.png') dpi = get_page_square_dpi(page_context.pageinfo, page_context.options) - unpaper.clean(input_file, output_file, dpi.x, page_context.options.unpaper_args) + unpaper.clean( + input_file, + output_file, + dpi=dpi.x, + unpaper_args=page_context.options.unpaper_args, + ) return output_file @@ -627,9 +632,9 @@ def render_hocr_page(hocr: Path, page_context: PageContext): dpi = get_page_square_dpi(page_context.pageinfo, options) debug_mode = options.pdf_renderer == 'hocrdebug' - hocrtransform = HocrTransform(hocr, dpi.x) # square + hocrtransform = HocrTransform(hocr_filename=hocr, dpi=dpi.x) # square hocrtransform.to_pdf( - output_file, + out_filename=output_file, image_filename=None, show_bounding_boxes=False if not debug_mode else True, invisible_text=True if not debug_mode else False, diff --git a/src/ocrmypdf/api.py b/src/ocrmypdf/api.py index 9bce5352..65ab910b 100644 --- a/src/ocrmypdf/api.py +++ b/src/ocrmypdf/api.py @@ -48,6 +48,7 @@ class Verbosity(IntEnum): def configure_logging( verbosity: Verbosity, + *, progress_bar_friendly: bool = True, manage_root_logger: bool = False, plugin_manager=None, diff --git a/src/ocrmypdf/hocrtransform.py b/src/ocrmypdf/hocrtransform.py index ea75f51e..6c64bcff 100755 --- a/src/ocrmypdf/hocrtransform.py +++ b/src/ocrmypdf/hocrtransform.py @@ -77,7 +77,7 @@ class HocrTransform: {'ff': 'ff', 'ffi': 'ffi', 'ffl': 'ffl', 'fi': 'fi', 'fl': 'fl'} ) - def __init__(self, hocr_filename: Union[str, Path], dpi: float): + def __init__(self, *, hocr_filename: Union[str, Path], dpi: float): self.dpi = dpi self.hocr = ElementTree.parse(os.fspath(hocr_filename)) @@ -182,6 +182,7 @@ class HocrTransform: def to_pdf( self, + *, out_filename: Path, image_filename: Optional[Path] = None, show_bounding_boxes: bool = False, @@ -433,10 +434,10 @@ if __name__ == "__main__": parser.add_argument('outputfile', help='Path to the PDF file to be generated') args = parser.parse_args() - hocr = HocrTransform(args.hocrfile, args.resolution) + hocr = HocrTransform(hocr_filename=args.hocrfile, dpi=args.resolution) hocr.to_pdf( - args.outputfile, - args.image, - args.boundingboxes, + out_filename=args.outputfile, + image_filename=args.image, + show_bounding_boxes=args.boundingboxes, interword_spaces=args.interword_spaces, ) diff --git a/src/ocrmypdf/optimize.py b/src/ocrmypdf/optimize.py index a26057f4..038e454d 100644 --- a/src/ocrmypdf/optimize.py +++ b/src/ocrmypdf/optimize.py @@ -34,7 +34,7 @@ from ocrmypdf._concurrent import Executor, SerialExecutor from ocrmypdf._exec import jbig2enc, pngquant from ocrmypdf._jobcontext import PdfContext from ocrmypdf.exceptions import OutputFileAccessError -from ocrmypdf.helpers import deprecated, safe_symlink +from ocrmypdf.helpers import safe_symlink log = logging.getLogger(__name__) @@ -62,10 +62,6 @@ def jpg_name(root: Path, xref: Xref) -> Path: return img_name(root, xref, '.jpg') -def tif_name(root: Path, xref: Xref) -> Path: - return img_name(root, xref, '.tif') - - def extract_image_filter( pike: Pdf, root: Path, image: Object, xref: Xref ) -> Optional[Tuple[PdfImage, Tuple[Name, Object]]]: @@ -523,81 +519,6 @@ def transcode_pngs( _transcode_png(pike, filename, xref) -@deprecated -def rewrite_png_as_g4(pike: Pdf, im_obj: Object, compdata) -> None: # pragma: no cover - im_obj.BitsPerComponent = 1 - im_obj.Width = compdata.w - im_obj.Height = compdata.h - - im_obj.write(compdata.read()) - - log.debug(f"PNG to G4 {im_obj.objgen}") - if Name.Predictor in im_obj: - del im_obj.Predictor - if Name.DecodeParms in im_obj: - del im_obj.DecodeParms - im_obj.DecodeParms = Dictionary( - K=-1, BlackIs1=bool(compdata.minisblack), Columns=compdata.w - ) - - im_obj.Filter = Name.CCITTFaxDecode - return - - -@deprecated -def rewrite_png(pike: Pdf, im_obj: Object, compdata) -> None: # pragma: no cover - # When a PNG is inserted into a PDF, we more or less copy the IDAT section from - # the PDF and transfer the rest of the PNG headers to PDF image metadata. - # One thing we have to do is tell the PDF reader whether a predictor was used - # on the image before Flate encoding. (Typically one is.) - # According to Leptonica source, PDF readers don't actually need us - # to specify the correct predictor, they just need a value of either: - # 1 - no predictor - # 10-14 - there is a predictor - # Leptonica's compdata->predictor only tells TRUE or FALSE - # 10-14 means the actual predictor is specified in the data, so for any - # number >= 10 the PDF reader will use whatever the PNG data specifies. - # In practice Leptonica should use Paeth, 14, but 15 seems to be the - # designated value for "optimal". So we will use 15. - # See: - # - PDF RM 7.4.4.4 Table 10 - # - https://github.com/DanBloomberg/leptonica/blob/master/src/pdfio2.c#L757 - predictor = 15 if compdata.predictor > 0 else 1 - dparms = Dictionary(Predictor=predictor) - if predictor > 1: - dparms.BitsPerComponent = compdata.bps # Yes, this is redundant - dparms.Colors = compdata.spp - dparms.Columns = compdata.w - - im_obj.BitsPerComponent = compdata.bps - im_obj.Width = compdata.w - im_obj.Height = compdata.h - - log.debug( - f"PNG {im_obj.objgen}: palette={compdata.ncolors} spp={compdata.spp} bps={compdata.bps}" - ) - if compdata.ncolors > 0: - # .ncolors is the number of colors in the palette, not the number of - # colors used in a true color image. The palette string is always - # given as RGB tuples even when the image is grayscale; see - # https://github.com/DanBloomberg/leptonica/blob/master/src/colormap.c#L2067 - palette_pdf_string = compdata.get_palette_pdf_string() - palette_data = pikepdf.Object.parse(palette_pdf_string) - palette_stream = pikepdf.Stream(pike, bytes(palette_data)) - palette = [Name.Indexed, Name.DeviceRGB, compdata.ncolors - 1, palette_stream] - cs = palette - else: - # ncolors == 0 means we are using a colorspace without a palette - if compdata.spp == 1: - cs = Name.DeviceGray - elif compdata.spp == 4: - cs = Name.DeviceCMYK - else: # spp == 3 - cs = Name.DeviceRGB - im_obj.ColorSpace = cs - im_obj.write(compdata.read(), filter=Name.FlateDecode, decode_parms=dparms) - - def optimize( input_file: Path, output_file: Path, diff --git a/tests/cache/2400dpi/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin b/tests/cache/2400dpi/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin index 86270f49..023d341f 100644 Binary files a/tests/cache/2400dpi/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/2400dpi/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin differ diff --git a/tests/cache/3small/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin b/tests/cache/3small/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin index 1617a5b9..edfe4b01 100644 Binary files a/tests/cache/3small/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/3small/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin differ diff --git a/tests/cache/3small/__-l__eng__000002_ocr.png__000002_ocr_tess__pdf__txt/pdf.bin b/tests/cache/3small/__-l__eng__000002_ocr.png__000002_ocr_tess__pdf__txt/pdf.bin index 71e9d0fd..22b7068b 100644 Binary files a/tests/cache/3small/__-l__eng__000002_ocr.png__000002_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/3small/__-l__eng__000002_ocr.png__000002_ocr_tess__pdf__txt/pdf.bin differ diff --git a/tests/cache/3small/__-l__eng__000003_ocr.png__000003_ocr_tess__pdf__txt/pdf.bin b/tests/cache/3small/__-l__eng__000003_ocr.png__000003_ocr_tess__pdf__txt/pdf.bin index 71ee3be3..0bb07c30 100644 Binary files a/tests/cache/3small/__-l__eng__000003_ocr.png__000003_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/3small/__-l__eng__000003_ocr.png__000003_ocr_tess__pdf__txt/pdf.bin differ diff --git a/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin b/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin index d9e82eb8..4a5241fc 100644 --- a/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin +++ b/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin @@ -9,7 +9,7 @@
-
diff --git a/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin b/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin
index 4601a610..a0e93b41 100644
Binary files a/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/aspect/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin differ
diff --git a/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin b/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin
index ac662824..51333eae 100644
--- a/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin
+++ b/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin
@@ -9,7 +9,7 @@
-
diff --git a/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin b/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin
index ec8b419e..394e7bbd 100644
Binary files a/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/cardinal/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin differ
diff --git a/tests/cache/cardinal/__-l__eng__000002_ocr.png__000002_ocr_hocr__hocr__txt/hocr.bin b/tests/cache/cardinal/__-l__eng__000002_ocr.png__000002_ocr_hocr__hocr__txt/hocr.bin
index b8ce17c6..23a18626 100644
--- a/tests/cache/cardinal/__-l__eng__000002_ocr.png__000002_ocr_hocr__hocr__txt/hocr.bin
+++ b/tests/cache/cardinal/__-l__eng__000002_ocr.png__000002_ocr_hocr__hocr__txt/hocr.bin
@@ -9,1054 +9,1054 @@
-
-
- The
- LinnSequencer
+
+
+ The
+ LinnSequencer
-
- 32
- Track
- MIDI
- Sequence
- Recorder
+
+ 32
+ Track
+ MIDI
+ Sequence
+ Recorder
-
- The
- LinnSequencer
- is
- a
- state-of-the-art
- composition
- and
- performance
- tool
- for
- the
- professional
- musician.
- It
- is
+
+
+ The
+ LinnSequencer
+ is
+ a
+ state-of-the-art
+ composition
+ and
+ performance
+ tool
+ for
+ the
+ professional
+ musician.
+ It
+ is
-
- extremely
- powerful,
- yet
- amazingly
- simple
- to
- learn
- and
- use.
- It’s
- many
- remarkable
- features
- include:
+
+
+ extremely
+ powerful,
+ yet
+ amazingly
+ simple
+ to
+ learn
+ and
+ use.
+ It’s
+ many
+ remarkable
+ features
+ include:
-
- ¢
- Operation
- is
- similar
- to
- multi-track
- tape
- recorder
- with
- PLAY,
- STOP,
- RECORD,
- FAST
+
+
+ ¢
+ Operation
+ is
+ similar
+ to
+ multi-track
+ tape
+ recorder
+ with
+ PLAY,
+ STOP,
+ RECORD,
+ FAST
-
- FORWARD,
- REWIND,
- and
- LOCATE
- controls.
+
+ FORWARD,
+ REWIND,
+ and
+ LOCATE
+ controls.
-
- e
- Each
- of
- the
- 100
- sequences
- contains
- 32
- simultaneous,
- polyphonic
- tracks.
- Each
- track
- may
+
+
+ e
+ Each
+ of
+ the
+ 100
+ sequences
+ contains
+ 32
+ simultaneous,
+ polyphonic
+ tracks.
+ Each
+ track
+ may
-
- be
- assigned
- to
- one
- of
- 16
- MIDI
- channels.
- Simultaneously
- plays
- up
- to
- 16
- polyphonic
+
+ be
+ assigned
+ to
+ one
+ of
+ 16
+ MIDI
+ channels.
+ Simultaneously
+ plays
+ up
+ to
+ 16
+ polyphonic
-
- synthesizers!
+
+
+ synthesizers!
-
- ¢
- Ultra-fast
- 3%”
- disk
- drive
- stores
- complex
- songs
- in
- seconds
- and
- holds
- over
- 110,000
- notes
+
+
+ ¢
+ Ultra-fast
+ 3%”
+ disk
+ drive
+ stores
+ complex
+ songs
+ in
+ seconds
+ and
+ holds
+ over
+ 110,000
+ notes
-
- per
- disk!
+
+
+ per
+ disk!
-
- ¢
- One
- or
- all
- tracks
- may
- be
- TRANSPOSED
- at
- the
- touch
- of
- a
- key.
+
+
+ ¢
+ One
+ or
+ all
+ tracks
+ may
+ be
+ TRANSPOSED
+ at
+ the
+ touch
+ of
+ a
+ key.
-
- e
- Exclusive
- real-time
- ERASE
- function
- makes
- editing
- FAST.
+
+ e
+ Exclusive
+ real-time
+ ERASE
+ function
+ makes
+ editing
+ FAST.
-
- *
- Exclusive
- REPEAT
- function
- automatically
- repeats
- any
- held
- notes
- at
- a
- pre-selected
+
+ *
+ Exclusive
+ REPEAT
+ function
+ automatically
+ repeats
+ any
+ held
+ notes
+ at
+ a
+ pre-selected
-
- rhythmic
- value.
+
+
+ rhythmic
+ value.
-
- ¢
- TIMING
- CORRECTION
- works
- during
- playback
- and
- operates
- without
- ‘chopping’
- notes.
+
+
+ ¢
+ TIMING
+ CORRECTION
+ works
+ during
+ playback
+ and
+ operates
+ without
+ ‘chopping’
+ notes.
-
- ¢
- Optional
- SMPTE
- time
- code
- synchronization.
+
+
+ ¢
+ Optional
+ SMPTE
+ time
+ code
+ synchronization.
-
- ©
- Optional
- remote
- control.
+
+
+ ©
+ Optional
+ remote
+ control.
-
- Recording
- a
- Sequence
+
+
+ Recording
+ a
+ Sequence
-
- To
- record
- a
- sequence,
- simply
- press
- RECORD
- and
- PLAY,
+
+
+ To
+ record
+ a
+ sequence,
+ simply
+ press
+ RECORD
+ and
+ PLAY,
-
- then
- play
- your
- MIDI
- keyboard
- in
- time
- to
- the
- Sequencer’s
+
+ then
+ play
+ your
+ MIDI
+ keyboard
+ in
+ time
+ to
+ the
+ Sequencer’s
-
- click
- track.
- When
- the
- sequence
- loops
- back
- around
- to
- bar
- 1,
+
+ click
+ track.
+ When
+ the
+ sequence
+ loops
+ back
+ around
+ to
+ bar
+ 1,
-
- you’
- ll
- hear
- what
- you
- played—only
- all
- timing
- errors
- will
- be
+
+ you’
+ ll
+ hear
+ what
+ you
+ played—only
+ all
+ timing
+ errors
+ will
+ be
-
- corrected!
- (Timing
- correction
- may
- be
- adjusted
- or
- defeated).
+
+
+ corrected!
+ (Timing
+ correction
+ may
+ be
+ adjusted
+ or
+ defeated).
-
- Any
- additional
- notes
- played
- will
- be
- added
- into
- the
- track
+
+
+ Any
+ additional
+ notes
+ played
+ will
+ be
+ added
+ into
+ the
+ track
-
- —
- existing
- notes
- are
- not
- erased
- while
- recording!
+
+ —
+ existing
+ notes
+ are
+ not
+ erased
+ while
+ recording!
-
- FAST
- FORWARD,
- REWIND,
- and
- LOCATE
- controls
+
+
+ FAST
+ FORWARD,
+ REWIND,
+ and
+ LOCATE
+ controls
-
- may
- be
- used
- at
- any
- time
- to
- quickly
- access
- any
- location
- in
+
+ may
+ be
+ used
+ at
+ any
+ time
+ to
+ quickly
+ access
+ any
+ location
+ in
-
- your
- sequence
- for
- spot-recording.
- To
- overdub
- a
- new
- part,
+
+ your
+ sequence
+ for
+ spot-recording.
+ To
+ overdub
+ a
+ new
+ part,
-
- select
- a
- different
- track
- and
- start
- recording—while
- you
+
+ select
+ a
+ different
+ track
+ and
+ start
+ recording—while
+ you
-
- record,
- the
- first
- track
- will
- play
- in
- perfect
- sync
- (unless
- you
+
+ record,
+ the
+ first
+ track
+ will
+ play
+ in
+ perfect
+ sync
+ (unless
+ you
-
- MUTE
- it,
- or
- SOLO
- another
- track).
- In
- this
- way,
- up
- to
- 32
+
+ MUTE
+ it,
+ or
+ SOLO
+ another
+ track).
+ In
+ this
+ way,
+ up
+ to
+ 32
-
- tracks
- may
- be
- overdubbed!
- All
- MIDI
- effects
- are
- recorded
+
+ tracks
+ may
+ be
+ overdubbed!
+ All
+ MIDI
+ effects
+ are
+ recorded
-
- including
- pitch
- bend,
- modulation,
- velocity,
- aftertouch,
+
+ including
+ pitch
+ bend,
+ modulation,
+ velocity,
+ aftertouch,
-
- sustain
- pedal,
- and
- program
- changes!
+
+ sustain
+ pedal,
+ and
+ program
+ changes!
-
- Editing
+
+
+ Editing
-
- To
- erase
- a
- wrong
- note,
- simply
- hold
- ERASE
- and
- press
+
+
+ To
+ erase
+ a
+ wrong
+ note,
+ simply
+ hold
+ ERASE
+ and
+ press
-
- the
- note
- to
- be
- erased
- just
- before
- it
- plays
- in
- the
- sequence—
+
+ the
+ note
+ to
+ be
+ erased
+ just
+ before
+ it
+ plays
+ in
+ the
+ sequence—
-
- when
- played
- back,
- it
- will
- be
- gone.
- Notes
- may
- also
- be
+
+ when
+ played
+ back,
+ it
+ will
+ be
+ gone.
+ Notes
+ may
+ also
+ be
-
- added,
- erased,
- or
- changed
- using
- the
- SINGLE
- STEP
- func-
+
+
+ added,
+ erased,
+ or
+ changed
+ using
+ the
+ SINGLE
+ STEP
+ func-
-
- tion.
- To
- overdub
- notes
- at
- specific
- points
- within
- a
- sequence,
+
+ tion.
+ To
+ overdub
+ notes
+ at
+ specific
+ points
+ within
+ a
+ sequence,
-
- Additional
- Features
+
+
+ Additional
+ Features
-
- simply
- use
- LOCATE,
- FAST
- FORWARD,
- or
- REWIND
- to
+
+
+ simply
+ use
+ LOCATE,
+ FAST
+ FORWARD,
+ or
+ REWIND
+ to
-
- find
- the
- desired
- bar
- number,
- then
- start
- recording.
+
+ find
+ the
+ desired
+ bar
+ number,
+ then
+ start
+ recording.
-
- The
- INSERT/COPY
- function
- allows
- you
- to
- move
- bars
+
+
+ The
+ INSERT/COPY
+ function
+ allows
+ you
+ to
+ move
+ bars
-
- from
- one
- location
- to
- another—in
- the
- same
- sequence
- or
- a
+
+ from
+ one
+ location
+ to
+ another—in
+ the
+ same
+ sequence
+ or
+ a
-
- different
- one.
- For
- example,
- you
- might
- insert
- a
- copy
- of
- the
+
+ different
+ one.
+ For
+ example,
+ you
+ might
+ insert
+ a
+ copy
+ of
+ the
-
- first
- verse
- between
- the
- second
- chorus
- and
- the
- bridge.
+
+ first
+ verse
+ between
+ the
+ second
+ chorus
+ and
+ the
+ bridge.
-
- DELETE
- BARS
- operates
- the
- same
- way
- to
- remove
+
+ DELETE
+ BARS
+ operates
+ the
+ same
+ way
+ to
+ remove
-
- unwanted
- sections,
+
+ unwanted
+ sections,
-
- Creating
- a
- Song
+
+
+ Creating
+ a
+ Song
-
- One
- way
- to
- create
- a
- song
- is
- to
- record
- each
- track
- all
- the
+
+
+ One
+ way
+ to
+ create
+ a
+ song
+ is
+ to
+ record
+ each
+ track
+ all
+ the
-
- way
- through
- (up
- to
- 999
- bars).
- Another
- way
- is
- to
- record
+
+ way
+ through
+ (up
+ to
+ 999
+ bars).
+ Another
+ way
+ is
+ to
+ record
-
- each
- basic
- section
- (verse,
- chorus,
- etc.)
- in
- individual
+
+ each
+ basic
+ section
+ (verse,
+ chorus,
+ etc.)
+ in
+ individual
-
- sequences,
- then
- use
- the
- CREATE
- SONG
- function
- to
- “chain”
+
+ sequences,
+ then
+ use
+ the
+ CREATE
+ SONG
+ function
+ to
+ “chain”
-
- them
- together.
- CREATE
- SONG
- will
- then
- automatically
+
+ them
+ together.
+ CREATE
+ SONG
+ will
+ then
+ automatically
-
- copy
- all
- the
- parts
- into
- a
- new
- sequence.
- If
- desired,
- you
- can
+
+ copy
+ all
+ the
+ parts
+ into
+ a
+ new
+ sequence.
+ If
+ desired,
+ you
+ can
-
- even
- set
- the
- last
- few
- bars
- to
- repeat
- infinitely,
- for
- a
- fadeout.
+
+ even
+ set
+ the
+ last
+ few
+ bars
+ to
+ repeat
+ infinitely,
+ for
+ a
+ fadeout.
-
- Composition
- Without
- Compromise
+
+
+ Composition
+ Without
+ Compromise
-
- The
- technology
- you
- use
- should
- never
- be
- so
- complex
- that
+
+
+ The
+ technology
+ you
+ use
+ should
+ never
+ be
+ so
+ complex
+ that
-
- it
- interferes
- with
- the
- creative
- process.
- That’s
- precisely
- why
+
+ it
+ interferes
+ with
+ the
+ creative
+ process.
+ That’s
+ precisely
+ why
-
- the
- LinnSequencer
- is
- designed
- to
- let
- you
- compose,
- record
+
+ the
+ LinnSequencer
+ is
+ designed
+ to
+ let
+ you
+ compose,
+ record
-
- and
- edit
- while
- devoting
- your
- undivided
- attention
- to
- your
+
+ and
+ edit
+ while
+ devoting
+ your
+ undivided
+ attention
+ to
+ your
-
- music.
- See
- your
- Linn
- dealer
- today
- for
- a
- demonstration!
+
+ music.
+ See
+ your
+ Linn
+ dealer
+ today
+ for
+ a
+ demonstration!
-
- *
- Simple,
- easy
- to
- learn
- operation—the
- 32
- character
- LCD
- display
- clearly
- guides
- you
- through
- all
- operations.
- If
- needed,
- the
+
+
+ *
+ Simple,
+ easy
+ to
+ learn
+ operation—the
+ 32
+ character
+ LCD
+ display
+ clearly
+ guides
+ you
+ through
+ all
+ operations.
+ If
+ needed,
+ the
-
- HELP
- button
- displays
- additional
- explanations.
+
+
+ HELP
+ button
+ displays
+ additional
+ explanations.
-
- *
- Non-destructive
- recording—existing
- notes
- are
- not
- erased
- while
- recording.
+
+
+ *
+ Non-destructive
+ recording—existing
+ notes
+ are
+ not
+ erased
+ while
+ recording.
-
- ¢
- Two
- FOOTSWITCH
- INPUTS
- may
- be
- assigned
- to
- remotely
- control
- many
- of
- the
- commonly
- used
- functions,
- including
+
+ ¢
+ Two
+ FOOTSWITCH
+ INPUTS
+ may
+ be
+ assigned
+ to
+ remotely
+ control
+ many
+ of
+ the
+ commonly
+ used
+ functions,
+ including
-
- ERASE,
- REPEAT,
- PLAY/STOP,
- or
- LOCATE.
+
+
+ ERASE,
+ REPEAT,
+ PLAY/STOP,
+ or
+ LOCATE.
-
- ¢
- Iwo
- TRIGGER
- OUTPUTS
- may
- be
- programmed
- to
- output
- pulses
- at
- any
- selected
- note
- value.
+
+
+ ¢
+ Iwo
+ TRIGGER
+ OUTPUTS
+ may
+ be
+ programmed
+ to
+ output
+ pulses
+ at
+ any
+ selected
+ note
+ value.
-
- ©
- Will
- sync
- to
- standard
- LinnDrum
- or
- Linn
- 9000
- sync
- tone.
+
+
+ ©
+ Will
+ sync
+ to
+ standard
+ LinnDrum
+ or
+ Linn
+ 9000
+ sync
+ tone.
-
- ®
- Utilizes
- ultra
- high-speed,
- 8
- MHz
- 80186
- 16
- bit
- computer
- internally
- for
- FAST
- operation.
+
+
+ ©
+ Utilizes
+ ultra
+ high-speed,
+ 8
+ MHz
+ 80186
+ 16
+ bit
+ computer
+ internally
+ for
+ FAST
+ operation.
-
- *
- TEMPO
- may
- be
- specified
- in
- BEATS-PER-MINUTE
- or
- FRAMES-PER-BEAT
- at
- 24,
- 25,
- or
- 30
- frames
- per
- second,
+
+ *
+ TEMPO
+ may
+ be
+ specified
+ in
+ BEATS-PER-MINUTE
+ or
+ FRAMES-PER-BEAT
+ at
+ 24,
+ 25,
+ or
+ 30
+ frames
+ per
+ second,
-
- (even
- drop
- frame!)
+
+
+ (even
+ drop
+ frame!)
-
- ¢
- TEMPO
- may
- be
- entered
- numerically,
- adjustable
- in
- tenths
- of
- a
- Beat-Per-Minute
- increments,
- or
- by
- tapping
- quarter
- notes
+
+
+ ¢
+ TEMPO
+ may
+ be
+ entered
+ numerically,
+ adjustable
+ in
+ tenths
+ of
+ a
+ Beat-Per-Minute
+ increments,
+ or
+ by
+ tapping
+ quarter
+ notes
-
- on
- the
- TAP
- TEMPO
- button.
+
+
+ on
+ the
+ TAP
+ TEMPO
+ button.
-
- ¢
- TEMPO
- CHANGES
- may
- be
- programmed
- into
- a
- sequence,
- with
- smooth
- transitions
- if
- desired.
+
+
+ ¢
+ TEMPO
+ CHANGES
+ may
+ be
+ programmed
+ into
+ a
+ sequence,
+ with
+ smooth
+ transitions
+ if
+ desired.
-
- ¢
- Any
- TIME
- SIGNATURE
- may
- be
- used,
- and
- may
- be
- changed
- within
- a
- song.
+
+ ¢
+ Any
+ TIME
+ SIGNATURE
+ may
+ be
+ used,
+ and
+ may
+ be
+ changed
+ within
+ a
+ song.
-
- nn
+
+
+ linn
+
+
+ Linn
+ Electronics,
+ Inc.
-
- Linn
- Electronics,
- Inc.
+
+
+ 18720
+ Oxnard
+ Street,
+ Tarzana,
+ CA
+ 91356
-
- 18720
- Oxnard
- Street,
- Tarzana,
- CA
- 91356
-
-
- (818)
- 708-8131
- TELEX
- #298949
- LINN
- UR
+
+ (818)
+ 708-8131
+ TELEX
+ #298949
+ LINN
+ UR
-
- 2A
- NNI‘I
- 6F6867#
- XATALL
- IE18-80L
- (818)
+
+
+ The
+ LinnSequencer
+
+
+ 32
+ Track
+ MIDI
+ Sequence
+ Recorder
-
- 9SEI6
- VO
- “BUBZIRY,
- “J0aNS
- PIPUXO
- OZLEI
-
-
- “Uy
- ‘soTUOMOI,q
- UUrT
-
-
-
- uut]
-
-
-
- “‘SUOS
- B
- UIJIM
- pasueyo
- oq
- ABU
- pue
- ‘posn
- oq
- AWW
- AYN
- IVNOIS
- AWLL
- AUV
-
-
- “parlsop
- Jr
- SUOTIISUBI}
- YIOOUIS
- YIM
- “BoueNbas
- eB
- OJUI
- pourtueIZOId
- 9q
- ABU
- SFONWHO
- OdINAL
- e
-
-
-
- ‘uonng
- OdNAL
- dV
- L
- 9)
- uO
-
-
-
- sojou
- Jayienb
- Suiddy}
- Aq
- 10
- ‘syUSTIOIOUI
- oINUTIAI-J8g-Jesg
- &
- JO
- sys}
- UL
- ofquisn(pe
- ‘ATTeouIAUINU
- paiajus
- oq
- ABU
- OdINALL
- e
-
-
-
- (jouer
- doup
- u3a9)
-
-
-
- “puooes
- Jed
- souely
- O€
- 10
- “SZ
- “pz
- 18
- [LVAG-MAd-SHN
- VU
- 10
- ALOANIWAAd-SLVAd
- U!
- patyoeds
- aq
- kewl
- OAL
- «
-
-
- ‘uoTe1odo
- [SVx
- JO}
- Aj[eusoyUT
- JoyndUIOd
- 11g
- 9]
- 98108
- ZHI
- 8g
- ‘poeds-ysry
- Bann
- soz]
- e
-
-
-
- "9U0}
- DUAS
- 0006
- UUL]
- Jo
- wNIqUUr]
- prepue}s
- 0}
- OUAS
- [ITAA
- ©
-
-
-
- “ONYBA
- 9}OU
- poloapes
- Aue
- Je
- sas—nd
- jndyno
- 07
- pewureigold
- 3q
- ACW
- SL
- Ad
- LNO
- YADONAL
- OML
-
-
-
- "ALVOOT
- 10
- GOLS/AV
- 1d
- ‘LWddad
- “ASV
-
-
-
- SUIpNpoUr
- ‘suOTIOUN]
- posn
- A[UOUILUOS
- 94]
- JO
- AUBUT
- [O1]UOD
- AJ9]OWIAI
- 0}
- PousIsse
- oq
- ACUI
- ST
- AdNI
- HOLIMSLOO
- OME
- «
-
-
- “SUIPIONAI
- I[IYM
- P2sesd
- JOU
- Iv
- $3}OU
- BUTISIXO—ZUIPIOIA
- SATON.ASOP-UON
-
-
-
- ‘suoneurldxa
- peuoyippe
- sdeydsip
- uowng
- g1TqH
-
-
-
- oy]
- ‘pepsau
- JI
- ‘suoneiodo
- [ye
- yYsnosy]
- NOA
- sapins
- ApIespo
- Avfdsip
- QO]
- Joey
- Z7¢
- 9y3—uoeIodo
- Urea]
- 0}
- Ased
- ‘aus
- «
-
-
-
- jUorel]suowtap
- &
- IO}
- Aepol
- Jayeap
- uur’]
- INOA
- dag
- ‘dISHUL
-
-
- INOA
- 0}
- UONUS}]¥
- PaplAIPUN
- INOA
- SUTJOASp
- ITY
- ps
- pue
-
-
- p1osai
- ‘asoduod
- no
- Jay
- 0}
- pausisap
- st
- 1s0uenbesuur’]
- oy)
-
-
- Aum
- Aposiooid
- $,Jeu],
- ‘SS9d0Id
- SATTBS1D
- OY}
- YIM
- SOIOJIOIUT
-
-
- yey)
- xo]dwWI0d
- Os
- dq
- JOA9U
- P[NoUsS
- osn
- NOA
- AZopOuYdE}
- oy
-
-
-
- ISTUMOIAUIO?)
- NOAA
- UOHISOdWIO)
-
-
-
- "NOSpr]
- B
- Oy
- ‘AONUTJUT
- yada
- 0}
- seq
- Maz
- Se]
- BY]
- Jas
- UdAd
-
-
- uvd
- NOA
- ‘palisap
- JJ
- ‘souanbes
- Mou
- ¥B
- OVUT
- sjied
- ou]
- [Te
- Adoo
-
-
- ATesrewO
- Ne
- WI)
- [IM
- ONOS
- ALVAAO
- JeyIe80}
- wey}
-
-
- ,deyd,,
- 0}
- UOTOUNJ
- ONOS
- ALVA
- ou]
- asn
- usy]
- ‘saouanbes
-
-
- JENPIAIpUt
- UI
- (“949
- ‘snJOYD
- ‘aS1OA)
- UOTIDIS
- JIseq
- Yes
-
-
- Pl0da1
- OF
- ST
- ABM
- JOuIOUY
- “(812g
- 666
- 01
- dn)
- ysnory)
- ABM
+
+
+ The
+ LinnSequencer
+ is
+ a
+ state-of-the-art
+ composition
+ and
+ performance
+ tool
+ for
+ the
+ professional
+ musician.
+ It
+ is
-
- dU}
- [fe
- YORI]
- YORs
- p10991
- 0}
- ST
- SUOS
- B
- 9789I9
- 0}
- ABM
- SUG,
-
-
-
- SUOS
- &
- SUTVAID
-
-
-
- *suoT}oes
- poJUBMUN
+
+
+ extremely
+ powerful,
+ yet
+ amazingly
+ simple
+ to
+ learn
+ and
+ use.
+ It’s
+ many
+ remarkable
+ features
+ include:
-
- SAOUIOI
- 0}
- ABM
- SWS
- dU}
- SoyeIodo
- SUV
- ALATAaG
+
+
+ ¢
+ Operation
+ is
+ similar
+ to
+ multi-track
+ tape
+ recorder
+ with
+ PLAY,
+ STOP,
+ RECORD,
+ FAST
+
+
+ FORWARD,
+ REWIND,
+ and
+ LOCATE
+ controls.
+
+
+
+ e
+ Each
+ of
+ the
+ 100
+ sequences
+ contains
+ 32
+ simultaneous,
+ polyphonic
+ tracks.
+ Each
+ track
+ may
+
+
+ be
+ assigned
+ to
+ one
+ of
+ 16
+ MIDI
+ channels.
+ Simultaneously
+ plays
+ up
+ to
+ 16
+ polyphonic
+
+
+
+ synthesizers!
+
+
+
+ ¢
+ Ultra-fast
+ 3%”
+ disk
+ drive
+ stores
+ complex
+ songs
+ in
+ seconds
+ and
+ holds
+ over
+ 110,000
+ notes
+
+
+
+ per
+ disk!
+
+
+
+ ¢
+ One
+ or
+ all
+ tracks
+ may
+ be
+ TRANSPOSED
+ at
+ the
+ touch
+ of
+ a
+ key.
+
+
+ e
+ Exclusive
+ real-time
+ ERASE
+ function
+ makes
+ editing
+ FAST.
+
+
+ *
+ Exclusive
+ REPEAT
+ function
+ automatically
+ repeats
+ any
+ held
+ notes
+ at
+ a
+ pre-selected
+
+
+
+ rhythmic
+ value.
+
+
+
+ ¢
+ TIMING
+ CORRECTION
+ works
+ during
+ playback
+ and
+ operates
+ without
+ ‘chopping’
+ notes.
+
+
+
+ ¢
+ Optional
+ SMPTE
+ time
+ code
+ synchronization.
+
+
+
+ ©
+ Optional
+ remote
+ control.
+
+
+
+ Recording
+ a
+ Sequence
-
- “OBPLIq
- dy}
- PUB
- SNIOY
- PUOdAS
- dT]]
- Ud9MIAQ
- SIDA
- ISI
+
+
+ To
+ record
+ a
+ sequence,
+ simply
+ press
+ RECORD
+ and
+ PLAY,
+
+
+ then
+ play
+ your
+ MIDI
+ keyboard
+ in
+ time
+ to
+ the
+ Sequencer’s
+
+
+ click
+ track.
+ When
+ the
+ sequence
+ loops
+ back
+ around
+ to
+ bar
+ 1,
+
+
+ you’
+ ll
+ hear
+ what
+ you
+ played—only
+ all
+ timing
+ errors
+ will
+ be
+
+
+
+ corrected!
+ (Timing
+ correction
+ may
+ be
+ adjusted
+ or
+ defeated).
+
+
+
+ Any
+ additional
+ notes
+ played
+ will
+ be
+ added
+ into
+ the
+ track
+
+
+ —
+ existing
+ notes
+ are
+ not
+ erased
+ while
+ recording!
-
- ay)
- Jo
- Adoo
- B
- JJasuT
- WYSE
- NOAA
- ‘afdwexs
- 10.f
- ‘UO
- JUSIN]JIP
+
+
+ FAST
+ FORWARD,
+ REWIND,
+ and
+ LOCATE
+ controls
+
+
+ may
+ be
+ used
+ at
+ any
+ time
+ to
+ quickly
+ access
+ any
+ location
+ in
+
+
+ your
+ sequence
+ for
+ spot-recording.
+ To
+ overdub
+ a
+ new
+ part,
+
+
+ select
+ a
+ different
+ track
+ and
+ start
+ recording—while
+ you
+
+
+ record,
+ the
+ first
+ track
+ will
+ play
+ in
+ perfect
+ sync
+ (unless
+ you
+
+
+ MUTE
+ it,
+ or
+ SOLO
+ another
+ track).
+ In
+ this
+ way,
+ up
+ to
+ 32
+
+
+ tracks
+ may
+ be
+ overdubbed!
+ All
+ MIDI
+ effects
+ are
+ recorded
+
+
+ including
+ pitch
+ bend,
+ modulation,
+ velocity,
+ aftertouch,
+
+
+ sustain
+ pedal,
+ and
+ program
+ changes!
+
+
+
+ Editing
-
- B
- IO
- aouaNbas
- sues
- OY}
- UI—JOY
- OUP
- 0}
- UOTIEIO]
- 9UO
- WOT]
+
+
+ To
+ erase
+ a
+ wrong
+ note,
+ simply
+ hold
+ ERASE
+ and
+ press
-
- $1Bq
- JAOUI
- OF
- NOA
- sMOTIe
- WOTIOUNS
- AdOO/IMASNI
- OULL
+
+ the
+ note
+ to
+ be
+ erased
+ just
+ before
+ it
+ plays
+ in
+ the
+ sequence—
+
+
+ when
+ played
+ back,
+ it
+ will
+ be
+ gone.
+ Notes
+ may
+ also
+ be
+
+
+
+ added,
+ erased,
+ or
+ changed
+ using
+ the
+ SINGLE
+ STEP
+ func-
+
+
+ tion.
+ To
+ overdub
+ notes
+ at
+ specific
+ points
+ within
+ a
+ sequence,
+
+
+
+ Additional
+ Features
+
+
+
+ simply
+ use
+ LOCATE,
+ FAST
+ FORWARD,
+ or
+ REWIND
+ to
+
+
+ find
+ the
+ desired
+ bar
+ number,
+ then
+ start
+ recording.
-
- ‘SUIPIONAI
- JIVIS
- Udy)
- “OQuINU
- eq
- porisop
- ay}
- puy
+
+
+ The
+ INSERT/COPY
+ function
+ allows
+ you
+ to
+ move
+ bars
+
+
+ from
+ one
+ location
+ to
+ another—in
+ the
+ same
+ sequence
+ or
+ a
+
+
+ different
+ one.
+ For
+ example,
+ you
+ might
+ insert
+ a
+ copy
+ of
+ the
+
+
+ first
+ verse
+ between
+ the
+ second
+ chorus
+ and
+ the
+ bridge.
+
+
+ DELETE
+ BARS
+ operates
+ the
+ same
+ way
+ to
+ remove
+
+
+ unwanted
+ sections,
+
+
+
+ Creating
+ a
+ Song
-
- 0}
- CNIMAY
- 10
- ‘CYVM
- Od
- LSWA
- “AEVOOT
- esn
- Apduns
+
+
+ One
+ way
+ to
+ create
+ a
+ song
+ is
+ to
+ record
+ each
+ track
+ all
+ the
+
+
+ way
+ through
+ (up
+ to
+ 999
+ bars).
+ Another
+ way
+ is
+ to
+ record
+
+
+ each
+ basic
+ section
+ (verse,
+ chorus,
+ etc.)
+ in
+ individual
+
+
+ sequences,
+ then
+ use
+ the
+ CREATE
+ SONG
+ function
+ to
+ “chain”
+
+
+ them
+ together.
+ CREATE
+ SONG
+ will
+ then
+ automatically
+
+
+ copy
+ all
+ the
+ parts
+ into
+ a
+ new
+ sequence.
+ If
+ desired,
+ you
+ can
+
+
+ even
+ set
+ the
+ last
+ few
+ bars
+ to
+ repeat
+ infinitely,
+ for
+ a
+ fadeout.
-
- sainjeay
- [PUOHIPPY
-
-
-
- ‘gouanbas
- &
- UTYIIM
- s]UTOd
- a1y1dads
- 3¥
- $9100
- QnPIOAO
- OL
- "UOT}
-
-
- -ouns
- dALLS
- ATONIS
- 24)
- Suisn
- pasueyo
- Jo
- ‘pasesa
- ‘pappe
-
-
- aq
- osye
- ABUT
- S9]ON
- ‘U0
- 9q
- ]IIM
- 1
- “yoeq
- podeyd
- uayM
-
-
- —aouanbas
- oy]
- ul
- skeyd
- 71
- a10J9q
- Isnf
- posers
- oq
- 0}
- d]0U
- ayy
-
-
- ssaid
- pue
- ASvwug
- ploy
- Aydunis
- ‘jou
- Suomm
- &
- aseso
- OL
-
-
-
- sunipa
-
-
-
- jsesdueyo
- ureisoid
- pue
- ‘fepod
- ureysns
-
-
- ‘yonoplalje
- ‘AWOOTOA
- ‘UOTyeTNpow
- ‘pusg
- youd
- Surpnyour
-
-
- pep10del
- are
- $199JJ2
- TCTIN
- [WV
- iPeqqnpseao
- aq
- Aeur
- syoen
-
-
- Ze
- 07
- dn
- ‘Kem
- sie
- Uy
- *(foeI}
- JOyOUR
- OJOS
- 10
- ALLAN
-
-
- NOA
- ssofum)
- duAS
- yOaysod
- ul
- Avy
- [[IM
- Yow]
- ISI
- 93
- “prooar
-
-
- NOA
- 3[IYM—SUIPIOIA
- LIBIS
- PU
- YORI)
- TUdIOTJIP
- B
- JOaTas
-
-
- *y1ed
- MOU
- B
- QNPIsA0
- OL,
- “SuIps0daJ-jods
- 10}
- aouanbes
- mno0k
-
-
- UI
- UOHBIO]
- Aue
- ssad0e
- ATYOIND
- 0}
- owt}
- Aue
- ye
- pasn
- aq
- AvUE
-
-
- SJONUOD
- FLIVOOT
- pur
- ‘ANIMA
- ‘CYVMaYOd
- LSVd
-
-
- {SUIPIOSAI
- {IY
- posesa
- JOU
- se
- So]OU
- SuTsTXO—
-
-
- yous}
- 3U}
- OUT
- poppe
- aq
- JIM
- poteyd
- sajou
- yeuonippe
- Auy
-
-
-
- *(povesjap
- 10
- poysn{pe
- oq
- ABW
- UOTIIII0D
- BUTUTT])
- j{paqoeLI09
-
-
-
- 2q
- ][IM
- S1OLIe
- Sur
- [fe
- ATUO—patey]d
- nod
- Jey
- Jedy
- ]],NOA
+
+
+ Composition
+ Without
+ Compromise
-
- ‘]
- req
- 0]
- punose
- yoeq
- sdoo]
- sduanbas
- ay]
- Udy
- AA
- “YOu
- Yor
+
+
+ The
+ technology
+ you
+ use
+ should
+ never
+ be
+ so
+ complex
+ that
-
-
- §,sa0uaNbas
- at}
- O]
- SUIT)
- UI
- preogday
- [IW]
- INO
- Avy
- usy3
+
+ it
+ interferes
+ with
+ the
+ creative
+ process.
+ That’s
+ precisely
+ why
-
- AV'1d
- pue
- (YOON
- ssoid
- Ayduus
- ‘aousnbes
- &
- p1o09es
- OF,
+
+ the
+ LinnSequencer
+ is
+ designed
+ to
+ let
+ you
+ compose,
+ record
+
+
+ and
+ edit
+ while
+ devoting
+ your
+ undivided
+ attention
+ to
+ your
+
+
+ music.
+ See
+ your
+ Linn
+ dealer
+ today
+ for
+ a
+ demonstration!
-
- g0uaNbas
- &
- SUIP10I0y]
+
+
+ *
+ Simple,
+ easy
+ to
+ learn
+ operation—the
+ 32
+ character
+ LCD
+ display
+ clearly
+ guides
+ you
+ through
+ all
+ operations.
+ If
+ needed,
+ the
-
- ‘JONWOD
- s}JouNaI
- TeuONdGO
- e
+
+
+ HELP
+ button
+ displays
+ additional
+ explanations.
-
- "UOTJEZIUOIYUAS
- OPOS
- UIT}
- FLAWS
- [euondo
- e
+
+
+ *
+ Non-destructive
+ recording—existing
+ notes
+ are
+ not
+ erased
+ while
+ recording.
+
+
+ ¢
+ Two
+ FOOTSWITCH
+ INPUTS
+ may
+ be
+ assigned
+ to
+ remotely
+ control
+ many
+ of
+ the
+ commonly
+ used
+ functions,
+ including
-
- ‘sou
- .sulddoys,
- noyyM
- sayelodo
- pue
- yoegdvyd
- ZuLINp
- S¥IOM
- NOLLOANNYOO
- ONIWILL
- e
+
+
+ ERASE,
+ REPEAT,
+ PLAY/STOP,
+ or
+ LOCATE.
-
- ‘onqea
- ory
- AY
+
+
+ ¢
+ Iwo
+ TRIGGER
+ OUTPUTS
+ may
+ be
+ programmed
+ to
+ output
+ pulses
+ at
+ any
+ selected
+ note
+ value.
-
- pojoojes-oid
- &
- ye
- sajou
- pyoy
- Aue
- syeadas
- ATTeONewWO
- Ne
- UOTOUNS
- [WAdAY
- OAISNOX
- e
-
-
- ‘LSVJ
- SUnIpS
- soyeu
- UOTOUN
- ASV
- UA
- OUlN-[eal
- SAISNIOXY
- e
-
-
- ‘Koy
- B
- JO
- YONO}
- 941
- 12
- CASOdSNVALL
- 0g
- ABU
- Syde]
- [Te
- 10
- 9UC
- e
+
+
+ ©
+ Will
+ sync
+ to
+ standard
+ LinnDrum
+ or
+ Linn
+ 9000
+ sync
+ tone.
-
- i
- ASIP
- Jed
+
+
+ ©
+ Utilizes
+ ultra
+ high-speed,
+ 8
+ MHz
+ 80186
+ 16
+ bit
+ computer
+ internally
+ for
+ FAST
+ operation.
+
+
+ *
+ TEMPO
+ may
+ be
+ specified
+ in
+ BEATS-PER-MINUTE
+ or
+ FRAMES-PER-BEAT
+ at
+ 24,
+ 25,
+ or
+ 30
+ frames
+ per
+ second,
-
- S9}0U
- OOO‘OTT
- JOA
- SpfOy
- puv
- SpUOdeS
- UT
- SBUOS
- Xa[AUIOD
- So10}S
- DALIP
- YSIP
- ,
- 74
- €
- ISCJ-CNIN
+
+
+ (even
+ drop
+ frame!)
-
- jSIOZISOUJUAS
+
+
+ ¢
+ TEMPO
+ may
+ be
+ entered
+ numerically,
+ adjustable
+ in
+ tenths
+ of
+ a
+ Beat-Per-Minute
+ increments,
+ or
+ by
+ tapping
+ quarter
+ notes
-
- stuoydAjod
- of
- 0}
- dn
- skeyd
- A[snoourynuls
- ‘spouueYd
- [IW
- 9T
- JO
- duo
- 0}
- pousisse
- oq
-
-
- ABUL
- YORI]
- YOR
- ‘syous)
- oruoydAjod
- ‘snoouelnurs
- 7¢
- SuTeJUOS
- ssouUaNbas
- QO]
- OY}
- JO
- YORA
- e
+
+
+ on
+ the
+ TAP
+ TEMPO
+ button.
-
- ‘SJONUOS
- ATWOOT
- pur
- ‘GNIMAY
- ‘GaVM
- OA
+
+
+ ¢
+ TEMPO
+ CHANGES
+ may
+ be
+ programmed
+ into
+ a
+ sequence,
+ with
+ smooth
+ transitions
+ if
+ desired.
-
- LSVd
- ‘GYOOde
- AOLS
- ‘AV
- Td
- YIM
- Jopsocas
- ade}
- Yowsj-N[NU
- O}
- eps
- st
- UOTLISdO
- @
-
-
- LOPNOUT
- SaINjeoy
- s[quyIeUlss
- AUB
- S.JJ
- ‘OSN
- pue
- UIes]
- 0}
- o[duns
- A[suIzeUe
- JOA
- ‘PnJsomod
- APOUIOITXO
-
-
- St
- 1]
- “UeIOIsNUL
- feUOIssajoid
- oY}
- 10
- JOO}
- soUBULIOJIJAd
- pue
- UOTIsOduIOS
- 11e-dY1-JO-9}e)s
- B
- SI
- IONUANbDaguUT]
- ay
+
+ ¢
+ Any
+ TIME
+ SIGNATURE
+ may
+ be
+ used,
+ and
+ may
+ be
+ changed
+ within
+ a
+ song.
-
- JOps1odady
- soUINbIS
- [GTI
- YVAL
- ZE
+
+
+ linn
-
- Jgouanbaguury
- oy
+
+ Linn
+ Electronics,
+ Inc.
+
+
+
+ 18720
+ Oxnard
+ Street,
+ Tarzana,
+ CA
+ 91356
+
+
+ (818)
+ 708-8131
+ TELEX
+ #298949
+ LINN
+ UR
-
- 2A
- NNI‘I
- 6F6867#
- XATALL
- IE18-80L
- (818)
+
+
+ The
+ LinnSequencer
+
+
+ 32
+ Track
+ MIDI
+ Sequence
+ Recorder
-
- 9SEI6
- VO
- “BUBZIRY,
- “J0aNS
- PIPUXO
- OZLEI
-
-
- “Uy
- ‘soTUOMOI,q
- UUrT
-
-
-
- uu
-
-
-
- “‘SUOS
- B
- UIJIM
- pasueyo
- oq
- ABU
- pue
- ‘posn
- oq
- AWW
- AYN
- IVNOIS
- AWLL
- AUV
-
-
- “parlsop
- Jr
- SUOTIISUBI}
- YIOOUIS
- YIM
- “BoueNbas
- eB
- OJUI
- pourtueIZOId
- 9q
- ABU
- SFONWHO
- OdINAL
- e
-
-
-
- ‘uonng
- OdNAL
- dV
- L
- 9)
- uO
-
-
-
- sojou
- Jayienb
- Suiddy}
- Aq
- 10
- ‘syUSTIOIOUI
- oINUTIAI-J8g-Jesg
- &
- JO
- sys}
- UL
- ofquisn(pe
- ‘ATTeouIAUINU
- paiajus
- oq
- ABU
- OdINALL
- e
-
-
-
- (jouer
- doup
- u3a9)
-
-
-
- “puooes
- Jed
- souely
- O€
- 10
- “SZ
- “pz
- 18
- [LVAG-MAd-SHN
- VU
- 10
- ALOANIWAAd-SLVAd
- U!
- patyoeds
- aq
- kewl
- OAL
- «
-
-
- ‘uoTe1odo
- [SVx
- JO}
- Aj[eusoyUT
- JoyndUIOd
- 11g
- 9]
- 98108
- ZHI
- 8g
- ‘poeds-ysry
- Bann
- soz]
- e
-
-
-
- "9U0}
- DUAS
- 0006
- UUL]
- Jo
- wNIqUUr]
- prepue}s
- 0}
- OUAS
- [ITAA
- ©
-
-
-
- “ONYBA
- 9}OU
- poloapes
- Aue
- Je
- sas—nd
- jndyno
- 07
- pewureigold
- 3q
- ACW
- SL
- Ad
- LNO
- YADONAL
- OML
-
-
-
- "ALVOOT
- 10
- GOLS/AV
- 1d
- ‘LWddad
- “ASV
-
-
-
- SUIpNpoUr
- ‘suOTIOUN]
- posn
- A[UOUILUOS
- 94]
- JO
- AUBUT
- [O1]UOD
- AJ9]OWIAI
- 0}
- PousIsse
- oq
- ACUI
- ST
- AdNI
- HOLIMSLOO
- OME
- «
-
-
- “SUIPIONAI
- I[IYM
- P2sesd
- JOU
- Iv
- $3}OU
- BUTISIXO—ZUIPIOIA
- SATON.ASOP-UON
-
-
-
- ‘suoneurldxa
- peuoyippe
- sdeydsip
- uowng
- g1TqH
-
-
-
- oy]
- ‘pepsau
- JI
- ‘suoneiodo
- [ye
- yYsnosy]
- NOA
- sapins
- ApIespo
- Avfdsip
- QO]
- Joey
- Z7¢
- 9y3—uoeIodo
- Urea]
- 0}
- Ased
- ‘aus
- «
-
-
-
- jUorel]suowtap
- &
- IO}
- Aepol
- Jayeap
- uur’]
- INOA
- dag
- ‘dISHUL
-
-
- INOA
- 0}
- UONUS}]¥
- PaplAIPUN
- INOA
- SUTJOASp
- ITY
- ps
- pue
-
-
- p1osai
- ‘asoduod
- no
- Jay
- 0}
- pausisap
- st
- 1s0uenbesuur’]
- oy)
-
-
- Aum
- Aposiooid
- $,Jeu],
- ‘SS9d0Id
- SATTBS1D
- OY}
- YIM
- SOIOJIOIUT
-
-
- yey)
- xo]dwWI0d
- Os
- dq
- JOA9U
- P[NoUsS
- osn
- NOA
- AZopOuYdE}
- oy
-
-
-
- ISTUMOIAUIO?)
- NOAA
- UOHISOdWIO)
-
-
-
- "NOSpr]
- B
- Oy
- ‘AONUTJUT
- yada
- 0}
- seq
- Maz
- Se]
- BY]
- Jas
- UdAd
-
-
- uvd
- NOA
- ‘palisap
- JJ
- ‘souanbes
- Mou
- ¥B
- OVUT
- sjied
- ou]
- [Te
- Adoo
-
-
- ATesrewO
- Ne
- WI)
- [IM
- ONOS
- ALVAAO
- JeyIe80}
- wey}
-
-
- ,deyd,,
- 0}
- UOTOUNJ
- ONOS
- ALVA
- ou]
- asn
- usy]
- ‘saouanbes
-
-
- JENPIAIpUt
- UI
- (“949
- ‘snJOYD
- ‘aS1OA)
- UOTIDIS
- JIseq
- Yes
-
-
- Pl0da1
- OF
- ST
- ABM
- JOuIOUY
- “(812g
- 666
- 01
- dn)
- ysnory)
- ABM
+
+
+ The
+ LinnSequencer
+ is
+ a
+ state-of-the-art
+ composition
+ and
+ performance
+ tool
+ for
+ the
+ professional
+ musician.
+ It
+ is
-
- dU}
- [fe
- YORI]
- YORs
- p10991
- 0}
- ST
- SUOS
- B
- 9789I9
- 0}
- ABM
- SUG,
-
-
-
- SUOS
- &
- SUTVAID
-
-
-
- *suoT}oes
- poJUBMUN
+
+
+ extremely
+ powerful,
+ yet
+ amazingly
+ simple
+ to
+ learn
+ and
+ use.
+ It’s
+ many
+ remarkable
+ features
+ include:
-
- SAOUIOI
- 0}
- ABM
- SWS
- dU}
- SoyeIodo
- SUV
- ALATAaG
+
+
+ ¢
+ Operation
+ is
+ similar
+ to
+ multi-track
+ tape
+ recorder
+ with
+ PLAY,
+ STOP,
+ RECORD,
+ FAST
+
+
+ FORWARD,
+ REWIND,
+ and
+ LOCATE
+ controls.
+
+
+
+ e
+ Each
+ of
+ the
+ 100
+ sequences
+ contains
+ 32
+ simultaneous,
+ polyphonic
+ tracks.
+ Each
+ track
+ may
+
+
+ be
+ assigned
+ to
+ one
+ of
+ 16
+ MIDI
+ channels.
+ Simultaneously
+ plays
+ up
+ to
+ 16
+ polyphonic
+
+
+
+ synthesizers!
+
+
+
+ ¢
+ Ultra-fast
+ 3%”
+ disk
+ drive
+ stores
+ complex
+ songs
+ in
+ seconds
+ and
+ holds
+ over
+ 110,000
+ notes
+
+
+
+ per
+ disk!
+
+
+
+ ¢
+ One
+ or
+ all
+ tracks
+ may
+ be
+ TRANSPOSED
+ at
+ the
+ touch
+ of
+ a
+ key.
+
+
+ e
+ Exclusive
+ real-time
+ ERASE
+ function
+ makes
+ editing
+ FAST.
+
+
+ *
+ Exclusive
+ REPEAT
+ function
+ automatically
+ repeats
+ any
+ held
+ notes
+ at
+ a
+ pre-selected
+
+
+
+ rhythmic
+ value.
+
+
+
+ ¢
+ TIMING
+ CORRECTION
+ works
+ during
+ playback
+ and
+ operates
+ without
+ ‘chopping’
+ notes.
+
+
+
+ ¢
+ Optional
+ SMPTE
+ time
+ code
+ synchronization.
+
+
+
+ ©
+ Optional
+ remote
+ control.
+
+
+
+ Recording
+ a
+ Sequence
-
- “OBPLIq
- dy}
- PUB
- SNIOY
- PUOdAS
- dT]]
- Ud9MIAQ
- SIDA
- ISI
+
+
+ To
+ record
+ a
+ sequence,
+ simply
+ press
+ RECORD
+ and
+ PLAY,
+
+
+ then
+ play
+ your
+ MIDI
+ keyboard
+ in
+ time
+ to
+ the
+ Sequencer’s
+
+
+ click
+ track.
+ When
+ the
+ sequence
+ loops
+ back
+ around
+ to
+ bar
+ 1,
+
+
+ you’
+ ll
+ hear
+ what
+ you
+ played—only
+ all
+ timing
+ errors
+ will
+ be
+
+
+
+ corrected!
+ (Timing
+ correction
+ may
+ be
+ adjusted
+ or
+ defeated).
+
+
+
+ Any
+ additional
+ notes
+ played
+ will
+ be
+ added
+ into
+ the
+ track
+
+
+ —
+ existing
+ notes
+ are
+ not
+ erased
+ while
+ recording!
-
- ay)
- Jo
- Adoo
- B
- JJasuT
- WYSE
- NOAA
- ‘afdwexs
- 10.f
- ‘UO
- JUSIN]JIP
+
+
+ FAST
+ FORWARD,
+ REWIND,
+ and
+ LOCATE
+ controls
+
+
+ may
+ be
+ used
+ at
+ any
+ time
+ to
+ quickly
+ access
+ any
+ location
+ in
+
+
+ your
+ sequence
+ for
+ spot-recording.
+ To
+ overdub
+ a
+ new
+ part,
+
+
+ select
+ a
+ different
+ track
+ and
+ start
+ recording—while
+ you
+
+
+ record,
+ the
+ first
+ track
+ will
+ play
+ in
+ perfect
+ sync
+ (unless
+ you
+
+
+ MUTE
+ it,
+ or
+ SOLO
+ another
+ track).
+ In
+ this
+ way,
+ up
+ to
+ 32
+
+
+ tracks
+ may
+ be
+ overdubbed!
+ All
+ MIDI
+ effects
+ are
+ recorded
+
+
+ including
+ pitch
+ bend,
+ modulation,
+ velocity,
+ aftertouch,
+
+
+ sustain
+ pedal,
+ and
+ program
+ changes!
+
+
+
+ Editing
-
- B
- IO
- aouaNbas
- sues
- OY}
- UI—JOY
- OUP
- 0}
- UOTIEIO]
- 9UO
- WOT]
+
+
+ To
+ erase
+ a
+ wrong
+ note,
+ simply
+ hold
+ ERASE
+ and
+ press
-
- $1Bq
- JAOUI
- OF
- NOA
- sMOTIe
- WOTIOUNS
- AdOO/IMASNI
- OULL
+
+ the
+ note
+ to
+ be
+ erased
+ just
+ before
+ it
+ plays
+ in
+ the
+ sequence—
+
+
+ when
+ played
+ back,
+ it
+ will
+ be
+ gone.
+ Notes
+ may
+ also
+ be
+
+
+
+ added,
+ erased,
+ or
+ changed
+ using
+ the
+ SINGLE
+ STEP
+ func-
+
+
+ tion.
+ To
+ overdub
+ notes
+ at
+ specific
+ points
+ within
+ a
+ sequence,
+
+
+
+ Additional
+ Features
+
+
+
+ simply
+ use
+ LOCATE,
+ FAST
+ FORWARD,
+ or
+ REWIND
+ to
+
+
+ find
+ the
+ desired
+ bar
+ number,
+ then
+ start
+ recording.
-
- ‘SUIPIONAI
- JIVIS
- Udy)
- “OQuINU
- eq
- porisop
- ay}
- puy
+
+
+ The
+ INSERT/COPY
+ function
+ allows
+ you
+ to
+ move
+ bars
+
+
+ from
+ one
+ location
+ to
+ another—in
+ the
+ same
+ sequence
+ or
+ a
+
+
+ different
+ one.
+ For
+ example,
+ you
+ might
+ insert
+ a
+ copy
+ of
+ the
+
+
+ first
+ verse
+ between
+ the
+ second
+ chorus
+ and
+ the
+ bridge.
+
+
+ DELETE
+ BARS
+ operates
+ the
+ same
+ way
+ to
+ remove
+
+
+ unwanted
+ sections,
+
+
+
+ Creating
+ a
+ Song
-
- 0}
- CNIMAY
- 10
- ‘CYVM
- Od
- LSWA
- “AEVOOT
- esn
- Apduns
+
+
+ One
+ way
+ to
+ create
+ a
+ song
+ is
+ to
+ record
+ each
+ track
+ all
+ the
+
+
+ way
+ through
+ (up
+ to
+ 999
+ bars).
+ Another
+ way
+ is
+ to
+ record
+
+
+ each
+ basic
+ section
+ (verse,
+ chorus,
+ etc.)
+ in
+ individual
+
+
+ sequences,
+ then
+ use
+ the
+ CREATE
+ SONG
+ function
+ to
+ “chain”
+
+
+ them
+ together.
+ CREATE
+ SONG
+ will
+ then
+ automatically
+
+
+ copy
+ all
+ the
+ parts
+ into
+ a
+ new
+ sequence.
+ If
+ desired,
+ you
+ can
+
+
+ even
+ set
+ the
+ last
+ few
+ bars
+ to
+ repeat
+ infinitely,
+ for
+ a
+ fadeout.
-
- sainjeay
- [PUOHIPPY
+
+
+ Composition
+ Without
+ Compromise
+
+
+
+ The
+ technology
+ you
+ use
+ should
+ never
+ be
+ so
+ complex
+ that
+
+
+ it
+ interferes
+ with
+ the
+ creative
+ process.
+ That’s
+ precisely
+ why
+
+
+ the
+ LinnSequencer
+ is
+ designed
+ to
+ let
+ you
+ compose,
+ record
+
+
+ and
+ edit
+ while
+ devoting
+ your
+ undivided
+ attention
+ to
+ your
+
+
+ music.
+ See
+ your
+ Linn
+ dealer
+ today
+ for
+ a
+ demonstration!
-
- ‘gouanbas
- &
- UTYIIM
- s]UTOd
- a1y1dads
- 3¥
- $9100
- QnPIOAO
- OL
- "UOT}
-
-
- -ouns
- dALLS
- ATONIS
- 24)
- Suisn
- pasueyo
- Jo
- ‘pasesa
- ‘pappe
-
-
- aq
- osye
- ABUT
- S9]ON
- ‘U0
- 9q
- ]IIM
- 1
- “yoeq
- podeyd
- uayM
-
-
- —aouanbas
- oy]
- ul
- skeyd
- 71
- a10J9q
- Isnf
- posers
- oq
- 0}
- d]0U
- ayy
-
-
- ssaid
- pue
- ASvwug
- ploy
- Aydunis
- ‘jou
- Suomm
- &
- aseso
- OL
+
+
+ *
+ Simple,
+ easy
+ to
+ learn
+ operation—the
+ 32
+ character
+ LCD
+ display
+ clearly
+ guides
+ you
+ through
+ all
+ operations.
+ If
+ needed,
+ the
-
- sunipa
+
+
+ HELP
+ button
+ displays
+ additional
+ explanations.
-
- jsesdueyo
- ureisoid
- pue
- ‘fepod
- ureysns
+
+
+ *
+ Non-destructive
+ recording—existing
+ notes
+ are
+ not
+ erased
+ while
+ recording.
-
- ‘yonoplalje
- ‘AWOOTOA
- ‘UOTyeTNpow
- ‘pusg
- youd
- Surpnyour
-
-
- pep10del
- are
- $199JJ2
- TCTIN
- [WV
- iPeqqnpseao
- aq
- Aeur
- syoen
-
-
- Ze
- 07
- dn
- ‘Kem
- sie
- Uy
- *(foeI}
- JOyOUR
- OJOS
- 10
- ALLAN
-
-
- NOA
- ssofum)
- duAS
- yOaysod
- ul
- Avy
- [[IM
- Yow]
- ISI
- 93
- “prooar
-
-
- NOA
- 3[IYM—SUIPIOIA
- LIBIS
- PU
- YORI)
- TUdIOTJIP
- B
- JOaTas
-
-
- *y1ed
- MOU
- B
- QNPIsA0
- OL,
- “SuIps0daJ-jods
- 10}
- aouanbes
- mno0k
-
-
- UI
- UOHBIO]
- Aue
- ssad0e
- ATYOIND
- 0}
- owt}
- Aue
- ye
- pasn
- aq
- AvUE
-
-
- SJONUOD
- FLIVOOT
- pur
- ‘ANIMA
- ‘CYVMaYOd
- LSVd
-
-
- {SUIPIOSAI
- {IY
- posesa
- JOU
- se
- So]OU
- SuTsTXO—
-
-
- yous}
- 3U}
- OUT
- poppe
- aq
- JIM
- poteyd
- sajou
- yeuonippe
- Auy
-
-
- *(povesjap
- 10
- poysn{pe
- oq
- ABW
- UOTIIII0D
- BUTUTT])
- j{paqoeLI09
-
-
- 2q
- ][IM
- S1OLIe
- Sur
- [fe
- ATUO—patey]d
- nod
- Jey
- Jedy
- ]],NOA
-
-
- ‘]
- req
- 0]
- punose
- yoeq
- sdoo]
- sduanbas
- ay]
- Udy
- AA
- “YOu
- Yor
-
-
- §,sa0uaNbas
- at}
- O]
- SUIT)
- UI
- preogday
- [IW]
- INO
- Avy
- usy3
-
-
- AV'1d
- pue
- (YOON
- ssoid
- Ayduus
- ‘aousnbes
- &
- p1o09es
- OF,
+
+ ¢
+ Two
+ FOOTSWITCH
+ INPUTS
+ may
+ be
+ assigned
+ to
+ remotely
+ control
+ many
+ of
+ the
+ commonly
+ used
+ functions,
+ including
-
- g0uaNbas
- &
- SUIP10I0y]
+
+
+ ERASE,
+ REPEAT,
+ PLAY/STOP,
+ or
+ LOCATE.
-
- ‘JONWOD
- s}JouNaI
- TeuONdGO
- e
+
+
+ ¢
+ Iwo
+ TRIGGER
+ OUTPUTS
+ may
+ be
+ programmed
+ to
+ output
+ pulses
+ at
+ any
+ selected
+ note
+ value.
-
- "UOTJEZIUOIYUAS
- OPOS
- UIT}
- FLAWS
- [euondo
- e
+
+
+ ©
+ Will
+ sync
+ to
+ standard
+ LinnDrum
+ or
+ Linn
+ 9000
+ sync
+ tone.
-
- ‘sou
- .sulddoys,
- noyyM
- sayelodo
- pue
- yoegdvyd
- ZuLINp
- S¥IOM
- NOLLOANNYOO
- ONIWILL
- e
+
+
+ ©
+ Utilizes
+ ultra
+ high-speed,
+ 8
+ MHz
+ 80186
+ 16
+ bit
+ computer
+ internally
+ for
+ FAST
+ operation.
+
+
+ *
+ TEMPO
+ may
+ be
+ specified
+ in
+ BEATS-PER-MINUTE
+ or
+ FRAMES-PER-BEAT
+ at
+ 24,
+ 25,
+ or
+ 30
+ frames
+ per
+ second,
-
- ‘onqea
- ory
- AY
+
+
+ (even
+ drop
+ frame!)
-
- pojoojes-oid
- &
- ye
- sajou
- pyoy
- Aue
- syeadas
- ATTeONewWO
- Ne
- UOTOUNS
- [WAdAY
- OAISNOX
- e
-
-
- ‘LSVJ
- SUnIpS
- soyeu
- UOTOUN
- ASV
- UA
- OUlN-[eal
- SAISNIOXY
- e
-
-
- ‘Koy
- B
- JO
- YONO}
- 941
- 12
- CASOdSNVALL
- 0g
- ABU
- Syde]
- [Te
- 10
- 9UC
- e
+
+
+ ¢
+ TEMPO
+ may
+ be
+ entered
+ numerically,
+ adjustable
+ in
+ tenths
+ of
+ a
+ Beat-Per-Minute
+ increments,
+ or
+ by
+ tapping
+ quarter
+ notes
-
- i
- ASIP
- Jed
+
+
+ on
+ the
+ TAP
+ TEMPO
+ button.
-
- S9}0U
- OOO‘OTT
- JOA
- SpfOy
- puv
- SpUOdeS
- UT
- SBUOS
- Xa[AUIOD
- So10}S
- DALIP
- YSIP
- ,
- 74
- €
- ISCJ-CNIN
+
+
+ ¢
+ TEMPO
+ CHANGES
+ may
+ be
+ programmed
+ into
+ a
+ sequence,
+ with
+ smooth
+ transitions
+ if
+ desired.
+
+
+ ¢
+ Any
+ TIME
+ SIGNATURE
+ may
+ be
+ used,
+ and
+ may
+ be
+ changed
+ within
+ a
+ song.
-
- jSIOZISOUJUAS
+
+
+ linn
+
+
+ Linn
+ Electronics,
+ Inc.
-
- stuoydAjod
- of
- 0}
- dn
- skeyd
- A[snoourynuls
- ‘spouueYd
- [IW
- 9T
- JO
- duo
- 0}
- pousisse
- oq
+
+
+ 18720
+ Oxnard
+ Street,
+ Tarzana,
+ CA
+ 91356
-
- ABUL
- YORI]
- YOR
- ‘syous)
- oruoydAjod
- ‘snoouelnurs
- 7¢
- SuTeJUOS
- ssouUaNbas
- QO]
- OY}
- JO
- YORA
- e
-
-
-
- ‘SJONUOS
- ATWOOT
- pur
- ‘GNIMAY
- ‘GaVM
- OA
-
-
- LSVd
- ‘GYOOde
- AOLS
- ‘AV
- Td
- YIM
- Jopsocas
- ade}
- Yowsj-N[NU
- O}
- eps
- st
- UOTLISdO
- @
-
-
- LOPNOUT
- SaINjeoy
- s[quyIeUlss
- AUB
- S.JJ
- ‘OSN
- pue
- UIes]
- 0}
- o[duns
- A[suIzeUe
- JOA
- ‘PnJsomod
- APOUIOITXO
-
-
- St
- 1]
- “UeIOIsNUL
- feUOIssajoid
- oY}
- 10
- JOO}
- soUBULIOJIJAd
- pue
- UOTIsOduIOS
- 11e-dY1-JO-9}e)s
- B
- SI
- IONUANbDaguUT]
- ay
-
-
-
- JOps1odady
- soUINbIS
- [GTI
- YVAL
- ZE
-
-
- Jgouanbaguury
- oy
+
+ (818)
+ 708-8131
+ TELEX
+ #298949
+ LINN
+ UR
@@ -29,7 +29,7 @@
The
- LinnSequencer
+ LinnSequencer
is
a
state-of-the-art
@@ -39,7 +39,7 @@
tool
for
the
- professional
+ professional
musician.
It
is
@@ -209,7 +209,7 @@
- rhythmic
+ rhythmic
value.
- ©
+ ©
Optional
remote
control.
@@ -300,8 +300,8 @@
1,
- you’
- ll
+ you’
+ ll
hear
what
you
@@ -361,7 +361,7 @@
REWIND,
and
LOCATE
- controls
+ controls
may
@@ -400,9 +400,9 @@
record,
- the
- first
- track
+ the
+ first
+ track
will
play
in
@@ -412,11 +412,11 @@
you
- MUTE
- it,
+ MUTE
+ it,
or
SOLO
- another
+ another
track).
In
this
@@ -518,13 +518,13 @@
tion.
To
- overdub
+ overdub
notes
at
specific
points
- within
- a
+ within
+ a
sequence,
- ¢
- Iwo
+ ¢
+ Iwo
TRIGGER
- OUTPUTS
+ OUTPUTS
may
be
programmed
@@ -887,7 +887,7 @@
at
any
selected
- note
+ note
value.
-
- ©
- Utilizes
- ultra
+
+ ©
+ Utilizes
+ ultra
high-speed,
8
MHz
- 80186
- 16
+ 80186
+ 16
bit
computer
internally
@@ -960,18 +960,18 @@
- ¢
+ ¢
TEMPO
may
- be
+ be
entered
numerically,
- adjustable
- in
+ adjustable
+ in
tenths
of
- a
- Beat-Per-Minute
+ a
+ Beat-Per-Minute
increments,
or
by
diff --git a/tests/cache/ccitt/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin b/tests/cache/ccitt/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin
index 13d33a38..88bb9fc9 100644
Binary files a/tests/cache/ccitt/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/ccitt/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin differ
diff --git a/tests/cache/francais/__-l__deu__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin b/tests/cache/francais/__-l__deu__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin
index 462735e4..750ad232 100644
Binary files a/tests/cache/francais/__-l__deu__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/francais/__-l__deu__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin differ
diff --git a/tests/cache/graph_ocred/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin b/tests/cache/graph_ocred/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin
index ca4e1323..74e98d6d 100644
Binary files a/tests/cache/graph_ocred/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin and b/tests/cache/graph_ocred/__-l__eng__000001_ocr.png__000001_ocr_tess__pdf__txt/pdf.bin differ
diff --git a/tests/cache/jbig2/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin b/tests/cache/jbig2/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin
index 2e64e637..946585c5 100644
--- a/tests/cache/jbig2/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin
+++ b/tests/cache/jbig2/__-l__eng__000001_ocr.png__000001_ocr_hocr__hocr__txt/hocr.bin
@@ -9,459 +9,467 @@
-
-
- 41st
- CONGRESS;
- |
- SENATE.
+
+
+ 4ist
+ ConGREss,
+ }
+ SENATE.
+ {
+ Ex.
+ Doc,
-
- 3d
- Session.
- }
+
+ 3d
+ Session.
+ No.
+ 25.
-
- MESSAGE
+
+
+ MESSAGE
-
- OF
- THE
+
+
+ OF
+ THE
-
- PRESIDENT
- OF
- THE
- UNITED
- STATES,
+
+
+ PRESIDENT
+ OF
+ THE
+ UNITED
+ STATES,
-
- COMMUNICATING
+
+
+ COMMUNICATING
-
- A
- copy
- of
- regulations
- for
- the
- consular
- courts
- of
- the
- United
- States
- in
- Japan,
+
+
+ A
+ copy
+ of
+ regulations
+ for
+ the
+ consular
+ courts
+ of
+ the
+ United
+ States
+ in
+ Japan,
-
- decreed
- and
- issued
- by
- the
- minister
- of
- the
- United
- States
- in
- that
- country.
+
+ decreed
+ and
+ issued
+ by
+ the
+ minister
+ of
+ the
+ United
+ States
+ in
+ that
+ country.
-
- January
- 27,
- 1871,—Read,
- referred
- to
- the
- Committee
- on
- Commerce,
- and
- ordered
- to
- be
+
+
+ JANUARY
+ 27,
+ 1871,—Read,
+ referred
+ to
+ the
+ Committee
+ on
+ Commerce,
+ and
+ ordered
+ to
+ be
-
- printed.
+
+ printed.
-
- To
- the
- Senate
- and
- House
- of
- Representatives
- :
+
+
+ To
+ the
+ Senate
+ and
+ House
+ of
+ Representatives
+ :
-
- I
- transmit
- herewith,
- for
- the
- consideration
- of
- Congress,
- a
- report
- from
+
+