勇闖新世界︰ W!o《卡夫卡村》變形祭︰品味科學‧教具教材‧ Hi-Jack‧簡介

『插頭』 jack 概念之淵源久遠,早在那個『接線生』 Operator 尚為專業的『電話』時代,就操作著『通話配線板』

A telephone switchboard is a telecommunications system used in the public switched telephone network or in enterprises to interconnect circuits of telephones to establish telephone calls between the subscribers or users, or between other exchanges. The switchboard was an essential component of a manual telephone exchange, and was operated by one or more persons, called operators who either used electrical cords or switches to establish the connections.

The electromechanical automatic telephone exchange, invented by Almon Strowger in 1888, gradually replaced manual switchboards in central telephone exchanges starting in 1919 when the Bell System adopted automatic switching, but many manual branch exchanges remained operational during the last half of the 20th century in offices, hotels, or other enterprises. Later electronic devices and computer technology gave the operator access to an abundance of features. In modern businesses, a private branch exchange (PBX) often has an attendant console for the operator, or an auto-attendant, which bypasses the operator entirely.

1280px-Offutt_Air_Force_Base_operator

 

,完成『收發』兩方之『通訊』。其後或許因為時代進步,也許是教育發達,那個專業也變成了『直覺』而且『簡易』的了!於是乎應用範圍日增漸廣,其中最主要的應用,還是用在『音響設備』之『連接』上︰

Phone connector (audio)

In electronics, a phone connector, also known as phone jack, audio jack or jack plug, is a common family of connector typically used for analog signals, primarily audio. It is cylindrical in shape, typically with two, three or four contacts. Three-contact versions are known as TRS connectors, where T stands for “tip”, R stands for “ring” and S stands for “sleeve”. Similarly, two- and four-contact versions are called TS and TRRS connectors respectively.

The phone connector was invented for use in telephone switchboards in the 19th century and is still widely used. In its original configuration, the outside diameter of the “sleeve” conductor is 14 inch (exactly 6.35 mm). The “mini” connector has a diameter of 3.5 mm (approx. 18 inch) and the “sub-mini” connector has a diameter of 2.5 mm (approx. 332 inch).

 

TS_0.25inch_mono_plug

A pair of phone connectors: A phone plug (right) is inserted in a phone socket (left). For terms, see section Other connectors, other terms.

A 6.35 mm (14 inch) two-contact phone connector used for various signals including electric guitar, loudspeaker, microphone and line-level audio.

220px-Jack-plug--socket-switch

 

如此當可理解 JACK 這個專業級的『聲音伺服器』,之所以用著『反覆』之詞自名的哩!

JACK Audio Connection Kit

Introduction

JACK is a low-latency audio server, written for any operating system that is reasonably POSIX compliant. It currently exists for Linux, OS X, Solaris, FreeBSD and Windows. It can connect several client applications to an audio device, and allow them to share audio with each other. Clients can run as separate processes like normal applications, or within the JACK server as “plugins”.

JACK was designed from the ground up for professional audio work, and its design focuses on two key areas: synchronous execution of all clients, and low latency operation.

See also:
<http://jackaudio.org>

JACK Overview

Traditionally it has been hard if not impossible to write audio applications that can share data with each other. In addition, configuring and managing audio interface hardware has often been one of the most complex aspect of writing audio software.

JACK changes all this by providing an API that does several things:

1. provides a high level abstraction for programmers that removes the audio interface hardware from the picture and allows them to concentrate on the core functionality of their software.

2. allows applications to send and receive audio data to/from each other as well as the audio interface. There is no difference in how an application sends or receives data regardless of whether it comes from/goes to another application or an audio interface.

For programmers with experience of several other audio APIs such as PortAudio, Apple’s CoreAudio, Steinberg’s VST and ASIO as well as many others, JACK presents a familiar model: your program provides a “callback” function that will be executed at the right time. Your callback can send and receive data as well as do other signal processing tasks. You are not responsible for managing audio interfaces or threading, and there is no “format negotiation”: all audio data within JACK is represented as 32 bit floating point values.

For those with experiences rooted in the Unix world, JACK presents a somewhat unfamiliar API. Most Unix APIs are based on the read/write model spawned by the “everything is a file” abstraction that Unix is rightly famous for. The problem with this design is that it fails to take the realtime nature of audio interfaces into account, or more precisely, it fails to force application developers to pay sufficient attention to this aspect of their task. In addition, it becomes rather difficult to facilitate inter-application audio routing when different programs are not all running synchronously.

Using JACK within your program is very simple, and typically consists of just:

  • calling jack_client_open() to connect to the JACK server.
  • registering “ports” to enable data to be moved to and from your application.
  • registering a “process callback” which will be called at the right time by the JACK server.
  • telling JACK that your application is ready to start processing data.

There is a lot more that you can do with JACK’s interfaces, but for many applications, this is all that is needed. The simple_client.c example demonstrates a complete (simple!) JACK application that just copies the signal arriving at its input port to its output port. Similarly, inprocess.c shows how to write an internal client “plugin” that runs within the JACK server process.

───

 

。同時曉得 JACK 的操作既『直覺』又『簡易』,根本無須再說明的乎!!『出』連『入』,『入』接『出』,『入』『出』間流著『聲音數據 』,如是而已矣??!!