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

事實上『 JACK 』相關的『 Applications 』應用軟體族類眾多︰

‧ Audio File Editors
‧ Control Applications
‧ DJ Software
‧ Effects Processors
‧ Graphics Applications
‧ Live Loopers
‧ Media Players
‧ Metering and Analysis
‧ Mixers
‧ Multi-track sequencers and HDR systems
‧ Music Notation Editors
‧ Programming Libraries
‧ Radio
‧ Simple Recorders
‧ Sound Generators
‧ Streamers
‧ Tuners
‧ Utilities
‧ Video Applications
‧ VOIP
‧ VST

因為文本系列之目的,我們選擇了其中的一小部份。建議讀者自行瀏覽網頁,或許可以找到很多極好的『音樂』軟件。此處我們僅僅介紹兩個已經用過的軟體,導引讀者進入『插頭』的世界而已。

假使你順著『插頭』應用軟件的鏈結走,想要了解那個軟體的用法 ,也許你會訝異所找到的內容。舉例來說︰

【 jaaa 】

Welcome to FA’s LinuxAudio page

Jaaa

Jaaa (JACK and ALSA Audio Analyser, is an audio signal generator and spectrum analyser designed to make accurate measurements.

───

 

【 meterbridge 】

JACK Meterbridge

This is the webpage for a software meterbridge for the UNIX based JACK audio system.

It supports a number of different types of meter, rendered using the SDL library and user-editable pixmaps.

───

 

這裡所擷取的內容,就是那兩個軟體主要的說明了。就像

概念拼圖︰Linux 手冊!》文本所言︰

The Linux Document Project 這個文件計畫始於 1992 年,二十二年過去了,到了今天也有了 WiKi ,雖然已經有了相當多的文件和資料 ,但是對大多數人來說,想要用的資料卻總是『找不到』。也許對許多軟體工程師來講,寫『使用手冊』是非常令人討厭的事,尤其針對快速發展,經常改版的軟體;當然也有很多開源軟體文件寫得很好,例如說功能強大的自由辦公室套件 Libre Office,它的文件就像真的書本一樣。那麼對一些已有『手冊』manual 的命令呢?很多使用過 man 來讀命令手冊的人 ── 比如打 man dmesg ︰dmesg 的 命令手冊 ──,都覺得十分難讀為什麼呢?試著再打一下『 man man 』,你就了解了。然而,為什麼不是呢?最早的『程式設計師』手冊,寫於 1971 年,已經四十多年前了,主撰者包括 了Dennis Ritchie 先生,今天知名的『 C 語言』的創始者。只是那個時代最好的的電腦,功能都比不上今天的一個小微處裡器, 更不會用『叫什麼 troff  』的文書處理程式下指令來寫文件??世界上,或許不只空間會有距離時間也會產生隔閡;也許今天更需要『閱讀過去的辦法了!以前愛因斯坦特別推重『想像力』,他說他想著『騎在光上』而發現了相對論。那麼如果能想像的『設身處地 』,是否能了解不同的『時代』── 無論是『過去』或『未來』──打開時空之門

……

 

此時最好的機會,也許就是『手冊』的了︰

【 man jaaa 】

JAAA(1)                                                                                    General Commands Manual                                                                                    JAAA(1)

NAME
       jaaa — JACK and ALSA Audio Analyser

SYNOPSIS
       jaaa [-h]  [-C nchan]  [-J]  [-A   [-ddevice]    [-rrate]    [-pperiod]    [-nnfraqs] ]

DESCRIPTION
       jaaa is an audio signal generator and spectrum analyser designed to make accurate measurements.

OPTIONS
       -h        Show summary of options.

       -C        Number of channels (1..8) [4

       -J        Use JACK

       -A        Use ALSA (with following options)

       -d device Alsa device [hw:0.0]

       -r rate   Sample frequency [48000]

       -p period Period size [1024]

       -n nfrag  Number of fragments [2]

       Either -J or -A must be given.

INTERACTIVE CONTROL
   Input :
       Select on of the four inputs.

   Frequency and Amplitude :
       These  two  sets  of  buttons  set  the  display view.  One of these six buttons, or 'Bandw', 'Peak', or 'Noise' discussed below, has an orange LED at its left side.  The LED indicates the 'currenty
       selected parameter' that usually can be modified in three ways :

          ·  by typing a new value into the text widget, followed by ENTER

          ·  by using the '<' or '>' buttons to decrement or increment,

          ·  by mouse gestures

   Frequency :
       Buttons 'Min' and 'Max' set the min and max displayed frequencies.  If either of these is selected then

          ·  a horizontal Drag Left changes 'Min'

          ·  a horizontal Drag Right changes 'Max'

       Button 'Cent' is the frequency at the middle of the x-axis.  Button 'Span' is 'Max' - 'Min', changing this value preserves 'Cent'.  If either of these is selected then

          ·  a horizontal Drag Left changes 'Cent'

          ·  a horizontal Drag Right changes 'Span'

       Button 'Cent' can also be set by Clicking in the frequency axis scale.

   Amplitude :
       Button 'Max' is the maximum value on the y-axis.  Button 'Range' is the range of the y-axis.  If either of these is selected then

          ·  a vertical Drag Left changes 'Max'

          ·  a vertical Drag Right changes 'Range'

       So for the last four mouse gestures, a Drag Left will scroll the display, while a Drag Right will zoom in or out.  Maybe I will add and automatic selection of the axis based on the direction of  the
       mouse gesture.

   Analyser :
       The  analyser  is  based on a windowed FFT.  Actually the windowing is performed by convolution after the FFT, and combined with interpolation.  The windowing and interpolation ensure that displayed
       peaks will be accurate to 0.25 dB even if the peak falls between the FFT bins.  More accurate measurements can be made using the markers (see below).

       Button 'Bandw' sets the FFT length, and hence the bandwidth of the analyser.

       Depending on this value, the size of the display and the frequency range, you may sometimes see two traces.

       This happens when the resolution of the analyser is better than the display, so that one pixel contains more than one analyser value.

       In that case, the blue trace is the peak value over the frequency range represented by each pixel, and the gray one is the average value.

       The first one is correct for discrete frequencies, and the latter should be used to read noise densities.

       There is no mouse gesture to change the bandwidth.

       Button 'VidAv' or video average, when switched on, averages the measured energy over time.  This is mainly used to measure noise.  The averaging length increases over time,  to  a  maxumum  of  1000
       iterations.  Changing the input or bandwidth resets and restarts the averaging.

       Button 'Freeze' freezes the analyser, but not the display, so you can still scroll and zoom or use the markers discussed below.

   Markers :
       Markers are used in order to accurately read off values in the display.  There can be up to two markers, set by clicking at the desired frequency inside the display.  When there are two markers, the
       second one will move with each click, while the first remains fixed.  Measured values for the two markers, and their difference in frequency and level are displayed in the upper left corner  of  the
       display.

       Button 'Clear' clears the markers.

       When 'Peak' is selected, clicking inside the display will set a marker at the nearest peak.

       The  exact  frequency  and  level of the peak are found by interpolation, so the frequency can be much more accurate than the FFT step, and the level corresponds to the true peak value regardless of
       display or analyser resolution.

       When 'Noise' is selected, clicking inside the display will set a noise marker.

       The noise density (energy per Hz) is calculated and displayed.

SEE ALSO
       jackd (1)

WWW
       http://www.kokkinizita.net/linuxaudio/

AUTHOR
       This manual page was written by Philippe Coval rzr@gna.org for the Debian system (but may be used by others).  Permission is granted to copy, distribute and/or modify this document under  the  terms
       of the GNU General Public License, Version 2 any later version published by the Free Software Foundation.

       On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.

 

【 man meterbridge 】

METERBRIDGE(1)                                                                             General Commands Manual                                                                             METERBRIDGE(1)

NAME
       meterbridge - meterbridge for Jack Audio Connection Kit

SYNOPSIS
       meterbridge [options] portname [portname] ...

DESCRIPTION
       This manual page documents briefly the meterbridge program.

       This manual page was written for the Debian distribution because the original program does not have a manual page.

       meterbridge  shows the signal values of the audio signals that flow through JACK ports. The possible representations include the classical VU meter, as well as PPM meter, Digital Peak meter and oth‐
       ers.  See the OPTIONS section for more information.

OPTIONS
       A summary of options is included below.

       -r rev-level
              Use rev-level as the reverence level for 0db on the meter.

       -c columns
              number of columns that are used for displaying several meters.

       -n jackname
              Use jackname as identifier with the JACK system.

       -t type
              Use the one of the following meter types:
                   'vu'  - classic moving needle VU meter
                   'ppm' - PPM meter
                   'dpm' - Digital peak meter
                   'jf'  - 'Jellyfish' phase meter
                   'sco' - Oscilloscope meter

EXAMPLES
             test with
                meterbridge -t vu alsa_pcm:capture_1 alsa_pcm:capture_2

             if you want to see what your JACK system is outputting you can use:
                meterbridge -t ppm alsa_pcm:playback_1 alsa_pcm:playback_2

             if you want to start a bridge with unconnected 4 meters:
                meterbridge -t ppm x x x x
             (or any other invalid port names)

SEE ALSO
       jackd(1).

AUTHOR
       This manual page was written by Guenter Geiger <geiger@debian.org>, for the Debian project (but may be used by others).

                                                                                                April 11, 2012

 

『手冊』之結構與『閱讀』的方法,讀者可以參考《概念拼圖︰Linux 手冊!》的介紹。

萬一連『手冊』都沒有,怎麼辦呢?嘗試『錯誤』,發揮『想像』 ,『動手』將之『玩出來』耶!?

……

柯靈烏於《歷史的理念》一書中講︰

基於自然的『人性』,人的『同理心』和『同感心』是否能夠用著『想像力』的翅膀重回『歷史的現場』,再次在心中『重演』那些『歷史事件』,『體驗』事件中人物的『思想』以及『情感』,因此『解讀』歷史事件中的『人性抉擇』之理性『必然性』。

《說文解字》講:游,旌旗之流也戲,三軍之偏也。一曰兵也

600px-Two_baby_game

德國詩人和劇作家席勒提出『遊戲』之理論。席勒說:『只有當人充分是人的時候,他才遊戲;只有當人遊戲的時候,他才完全是人。』。或許人類在生活中勢必受到『精神』與『物質』的雙重『束縛』,因而喪失了『理想』和『自由』。於是人們假借剩下的精力打造一個『自在』的國度,這就是『遊戲』。此種『創造性』活動,源自人類的『本能』。

這些年來,有學者指出『數位遊戲式學習』 Digital game based learning 的好處。經由『遊戲』進行『學習』,達到『寓教於樂』的目的。就像一九九六年,美國喬治亞大學 Hogle J. G. 在《 Considering Games as Cognitive Tools:  In Search of Effective “Edutainment” 》論文中談及遊戲對於學習的諸多優點:

一、提高學習的樂趣,引發內在的動機。

二、故事般情節,能夠強化記憶。

三、可以重複操作,產生回饋。經由多次練習,促進目標的達成。

四、符應人類認知結構之場景,提供高層次的思考機會。

─── 引自《玩遊戲有何不好??λ

 

 

 

 

 

 

 

 

 

 

勇闖新世界︰ 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 的操作既『直覺』又『簡易』,根本無須再說明的乎!!『出』連『入』,『入』接『出』,『入』『出』間流著『聲音數據 』,如是而已矣??!!

 

 

 

 

 

 

 

 

 

 

 

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

固然『插頭』 Jack 並非是為 Sonic π 而設計,由於  Sonic π 相關教育資源越來越豐富,因著此一利益,特別以此為中心來談 Jack 的設定 。同時希望更快的進入主題,這裡的說法也不多作解釋,可算是個『快速開始』 quick start 的吧,隨著接續篇章之開展,再於適當處隨處補講的了。

【使用選單啟動 Sonic π 】

Sonic Pi_啟動

 

【 qjackctl 之啟動】

由於預設的選單中並沒有打開 qjackctl 選項顯示,使用者可以用『主選單』編輯器將之打開,

Main Menu Editor_編輯

 

執行 qjackctl 後,將可見到 Sonic π 起始的 jackd 伺服器。

JACK Audio Connection Kit [(default)] Active.畫面

 

【設定 jackd 】

因為我們運行的環境,是由多種 jack 應用軟體組合而成,故而不宜使用系統預設的『設定值』,以下設定是嘗試後之『參考設定』,建議讀者能夠自行玩玩改改的吧。

Setup - JACK Audio Connection Kit_設定

 

【啟動 jackd meterbridge 之示波器】

這是一個『命令列』的應用程式,需要使用『終端機』來啟動。

啟動示波器

sco bridge-2997_啟動

 

【啟動 jackd jaaa 頻譜分析儀】

可以使用【影聲選單】內之『 jaaa (with JACK support) 』來啟動。

Jack-Alsa Audio Analyser-0.8.4 [jaaa]_啟動

 

【將 Sonic π 的聲音輸出連接到多個裝置】

這也就是『音響插頭』的主旨之一。此處將Sonic π 程式的聲音輸出 ,同時接線到『示波器』、『頻譜分析儀』以及『系統喇叭』。

Connections - JACK Audio Connection Kit_接線

 

【執行 Sonic π 範例測試】

Sonic Pi_範例

 

【示波器顯示】

sco bridge-2275_示波器

 

【頻譜分析儀顯示】

Jack-Alsa Audio Analyser-0.8.4 [jaaa]_頻譜分析

 

此時聽著『耳中之聲音』,看著『儀表之顯示』,再次思索所謂的 M♪o 現象『認知學習』之環境,或許將有不同感觸的乎!!??

 

 

 

 

 

 

 

 

 

 

 

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

提筆望著文章標題,想起過去和『黑傑克』在一起的一段因緣︰

 

【詩經‧魏風‧碩鼠】

碩鼠碩鼠,無食我黍!三歲貫女,莫我肯顧。

逝將去女,適彼樂土 ;樂土樂土,爰得我所。

碩鼠碩鼠,無食我麥!三歲貫女,莫我肯德。

逝將去女,適彼樂國 ;樂國樂國,爰得我直。

 碩鼠碩鼠,無食我苗!三歲貫女,莫我肯勞。

逝將去女,適彼樂郊 ;樂郊樂郊,誰之永號?

這是一首『民歌』, 出自詩經魏風,三章八句用了九個ㄌㄜˋ字,卻得不著陶淵明.桃花源記裡那點世外的『怡然自樂』。想《爾雅》裡的ㄕˊ,又怎麼會跑到百姓的『田裡』,吃的肥肥大大?該是說上位者剝削無厭,雖然已經『多年慣你』── 三歲貫女 ──,你卻不理的照、恩和辛勞;以至於人民不得不想『誓將棄汝』──  逝將去女 ──,去尋找人間聖境的『香格里拉』,以求安居之,擁有自我價,也免於吁歎永號ㄏㄠˊ!

ㄩㄝˋ字的『造字象木架子上有張弦的琴,有人正說唱著旁;而樂器則是凝鑄聲學成為了音樂。美國 Standford 大學有一個『音樂與聲學的計算機研究中心Center for Computer Research in Music and Acoustics,以『 CCRMA 』的簡稱楊名於外,唸作『 karma 』。很久以前就有 Fernando Lopez-Lezcano 先生所編程發行的 Fedora Linux 音樂軟體匯集『 Planet CCRMA at home 』,模寫了在 CCRMA 『咔嗎』ㄎㄚ ㄇㄚ˙ 研究所裡用的大部分的 Linux 環境與軟體。約莫在 2011 年,又有 Wendy Ju 女士和 Edgar Berdahl 先生所創立的『Satellite CCRMA』──

rpiccrma-satelite

咔嗎衛星是一個平台 platform,一個可以建構『嵌入式樂器』和『安置嵌入式藝術』的平台。整合了開源的軟硬體,還有著一些只見於小說的新奇軟件。最重要的是可以『吃著魚釣魚』,提供的範例能讓一個『新手』幾分鐘內就能上手

── 這一個網站。

目前所用的硬件,漸漸的從高貴的米格魯』Beagle,移向好吃的樹莓派』!!

此曲是一部如何黑傑克hijack 掉  “咔嗎衛星” 的講古

─── 引自《咔嗎尋奇 Standford 的 CCRMA!!首部曲

 

如今那『咔嗎衛星』已不見『米格魯』的蹤影,倒是首選增加了 2B 『樹莓派』大餐。世事變化與時遷移,早忘了當時與音樂平台結緣的初衷是什麼的哩︰

next up previous
Next: Installing Planet CCRMA on Up: Planet CCRMA at home Previous: Planet CCRMA at home

What is Planet CCRMA at Home?

Planet CCRMA at Home is a collection of free, open source software packages that you can add to a computer running Fedora 20, 21 or 22 or CentOS 5 to transform it into an audio/video oriented workstation. Here at CCRMA we use a consistent and well defined Linux environment for our daily work in audio and computer music and research. With the Planet CCRMA at Home package collection, you can easily install most of that environment on your own Linux system.

You will only be able to install Planet CCRMA on top of the supported versions of Fedora or CentOS. For other linux distributions see this entry in the FAQs (Frequently Asked Questions).

First pointers to answers to some important questions (that can, of course, be safely skipped 🙂

how was the planet named?
how did it get created?
how old is it?

───

 

卻記得是認識『音響插頭』 Audio Jack 軟體架構的起始︰

JACKJACK Audio Connection Kit遞迴縮寫)是一個專業級的聲音服務守護行程),它為聲音和MIDI資料提供即時的、低延時的連線,有關的程式使用JACK的API

它是由保羅·戴維斯Paul Davis)(他憑著這項工作贏得了2004年的開源獎[3])帶領的一個開源社群開發。自從2002年初以來一直是Linux下的關鍵的基礎設施和事實上的專業音訊軟體標準。這個服務是在GNU GPL協定下的開源軟體,它的庫則採用更寬鬆的GNU LGPL協定。

Linux_kernel_and_daemons_with_exclusive_access.svg

Like PulseAudio, JACK daemon is an “audio daemon”, i.e. it does hardware mixing. For this it assumes to have exclusive access to the kernel’s audio sub-system.

 

當下再探,實驚訝於數千個日子的流逝,文件依舊稀有,說明仍然撲朔,宛如人煙稀少之花園的耶?數數官網上一大系列的應用軟體 ,竟然有二百多個,真叫人疑惑得很啊!!看來,有如初相遇一般 ,不得不再次從 jackd『手冊』 man 開始,重新咀嚼一大堆『術語 』,嘗試各種伺服器的『設定 』,以期能夠得到在樹莓派上可以接受之『聲音輸出』的『品質』的了!!??

 

 

 

 

 

 

 

 

 

 

 

勇闖新世界︰ W!o《卡夫卡村》變形祭︰品味科學‧教具教材‧安裝篇‧下

為了清楚說明 M♪o 之『學習』『遞迴觀』,也許簡單的辦法是用她自身的『學習』歷程來詮釋︰

 

派生碼訊

辰 龍

遯:亨,小利貞。

彖曰:遯亨,遯而亨也。 剛當位而應,與時行也。 小利貞,浸而長也。遯之時義大矣哉 !

象曰:天下有山,遯﹔君子以遠小人,不惡而嚴。

︰《 易 》易曰︰

六二,執之用黃牛之革,莫之勝說。

象曰:執用黃牛,固志也。

山 山高侵昊 天 天,時 厲 厲,難與行。何德能嘉遯?志固執用黃牛革。傲來有石 猴 猴,獨尊是佛陀,如來血脈一滴傳,因而敢登唯我峰。臨 事 事心踟躕,意緒無處寄

晚晴》李商隱

深居俯夾城,春去夏猶清。
天意憐幽草,人間重晚晴。
並添高閣迥,微注小窗明。
越鳥巢乾後,歸飛體更輕。

,總是時到時擔當。

派︰突然停課,吹嚮了《加百利之號角!!》︰

500px-GabrielHorn

傳說中大天使加百利之號角 Gabriel’s Horn 一旦響起,就是審判日 Judgment Day 的到來。然而卻沒有任何人見過這個號角?這也許正是義大利數學家埃萬傑利斯塔‧托里拆利 Evangelista Torricelli 想像創造托里拆利小號之原因︰它是一個表面積無限大但卻體積有限的三維物體,或許該是用著第五元素乙太才能構成的吧!!

羊角螺旋

Cornu_Spiral.svg

龍捲風

比方說︰『事實就是發生過了的事』? 如果曾經有一隻猴子真的敲打出了莎士比亞的哈姆雷特,那麽這是那隻猴子它自己能知道的事實嗎?假使連它自己都不能知道,人們會認為這是件發生過的事實嗎? 又假使歷史上根本沒有莎士比亞的哈姆雷特,然而未來將會有□□的○○,到那時有隻猴子曾使這事成真的了,難道真的可以歸結說過去曾經有一隻猴子真的敲打出 了□□的○○的嗎?

學習就像是個『羊角螺旋』的軌跡,一再的一次又一次覆裹著中心的主題,每次的回歸 ,總是帶著新的知識與舊的記憶。自古以來人類一直想方設法希望解開大自然的奧秘,也許終將能有一天,這個思想螺旋成了『龍捲風』,大到能含括天地萬物。

這樣的一個學習者將會如何建造自己知識之金字塔的呢?他會不會用『想像的實驗』去釐清『基本概念』之糾葛的呢?還是用『推導歸謬』的邏輯,去探測一個『自明假設』之深遠結論的呢?又或者會將在大自然中發現的方程式求解,然後『畫圖』與『演示』這個解之意義的呢?……

如果從人類的創造發明史來看,那樣的學習者終將使用當時之最好的『學習工具』,打造自己的『學習工具箱』,甚至會創新『既有之工具』。就現今來講,除了使用電腦的一般應用軟體之外 ── 比方說文書處理等等 ──,最重要的就是能掌握 『程式語言』與『數學語言』的工具。或許這正是樹莓派基金會一開始打造樹莓派時所想的重要原因,讓學習者能有學習的工具!!
……

─── 引自《 M♪o 之學習筆記本《辰》組元︰【䷠】黃牛之革

 

這是一條經『生澀』過『熟巧』的道路。或許因此可以知『經驗』之『粹練』如何型塑了一個人的『理解』︰

……

, 真真是,夏日午後雷雨多,把我們當『鴨子』,叫我們『聽雷』的哩!雖是這麼想,那裡頭還彷彿真有『名堂』的ㄟ,即使聽無,就當是異地觀光!!

☆ 編者言說明

自『卯』的首篇 ䷁ 起, M♪o 學習筆記之篇章序次,改成了『十二爻辰』, 或許是因應課綱變了,不宜再用『五行序』。十二爻辰又稱作『十二消息卦』,是一年四季流轉,天地給予『消息』。所謂『八月有凶』,蓋指『臨』䷒ 經過『泰』䷊ ,而後『否』䷋ ,再到『觀』 ䷓ ,中有八個月。由『臨』月始一,八月入『否』。此篇可苦了編者,九天九地,收尋《庫文》《網文》以應其《 數 》數。

 

生 ︰同學們,要深入理解『入出針』,必須確實明白『取樣原理』, 《 技 》技講︰

Sampling (signal processing)

Signal_Sampling

In signal processing, sampling is the reduction of a continuous signal to a discrete signal. A common example is the conversion of a sound wave (a continuous signal) to a sequence of samples (a discrete-time signal).

A sample is a value or set of values at a point in time and/or space.

A sampler is a subsystem or operation that extracts samples from a continuous signal.

A theoretical ideal sampler produces samples equivalent to the instantaneous value of the continuous signal at the desired points.

Theory

Sampling can be done for functions varying in space, time, or any other dimension, and similar results are obtained in two or more dimensions.

For functions that vary with time, let s(t) be a continuous function (or “signal”) to be sampled, and let sampling be performed by measuring the value of the continuous function every T seconds, which is called the sampling interval.[1]  Then the sampled function is given by the sequence:

s(nT),   for integer values of n.

The sampling frequency or sampling rate, fs, is the average number of samples obtained in one second (samples per second), thus fs = 1/T.

Reconstructing a continuous function from samples is done by interpolation algorithms. The Whittaker–Shannon interpolation formula is mathematically equivalent to an ideal lowpass filter whose input is a sequence of Dirac delta functions that are modulated (multiplied) by the sample values. When the time interval between adjacent samples is a constant (T), the sequence of delta functions is called a Dirac comb. Mathematically, the modulated Dirac comb is equivalent to the product of the comb function with s(t). That purely mathematical abstraction is sometimes referred to as impulse sampling.[2]

Most sampled signals are not simply stored and reconstructed. But the fidelity of a theoretical reconstruction is a customary measure of the effectiveness of sampling. That fidelity is reduced when s(t) contains frequency components whose periodicity is smaller than 2 samples; or equivalently the ratio of cycles to samples exceeds ½ (see Aliasing). The quantity ½ cycles/sample × fs samples/sec = fs/2 cycles/sec (hertz) is known as the Nyquist frequency of the sampler. Therefore s(t) is usually the output of a lowpass filter, functionally known as an anti-aliasing filter. Without an anti-aliasing filter, frequencies higher than the Nyquist frequency will influence the samples in a way that is misinterpreted by the interpolation process.[3]
……

ㄚ˙ㄏㄚˋ,AHHA 過去本不是『白老鼠』,焉知 ── 莊子 ──,焉不知 ── 惠施 ──『魚出游』的『感覺』?!

果然然,『拔茅茹,以其夤,』但求『征吉。』??

碼 ︰研 習 。 今天時候晚了,不實作,就研習一點什麼是『取樣』之概念。何謂『平』與『陂』的呢?如果從螞蟻和大象的『觀點』來看,能夠一樣嗎??光以『相對大小』來 講,大象以為『平』的,對螞蟻來說,可以『陂』陡的不得了。再說螞蟻的一步『小』,大象的足距『大』,要是用幾何上的『曲線』比喻,螞蟻『沿』著曲線走, 大象一『踏』就一段。如此螞蟻的『足跡』即使是『離散』也較『符合』那條『曲線』,大象『疏闊』之『步履』恐不存那條『曲線』之形的了。此《 圖

debouce-graph

的精義,就是表達開關『兩態取值』之『取樣』觀。不同的取樣『速度』 ── 頻率 ──,所讀到的『情況』可以不同。『高』頻的似『螞蟻』,『低』頻的如『大象』。若是忽略了『彈跳』的暫態現象,恐會引發『開』或『關』狀態之『誤判』,不可不慎。

同學們可以參考下面程式

pi@raspberrypi ~ $ sudo -s
root@raspberrypi:/home/pi# python3
Python 3.2.3 (default, Mar  1 2013, 11:53:50) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
>>> from time import sleep
>>> GPIO.setmode(GPIO.BCM)
>>> 
>>> 按鍵一 = 23
>>> 頻率 = 100
>>> 數據列 = []
>>> 
>>> def 等入高針按鍵取值(針碼, 取值列, 頻率=100, 資料=100):
...     GPIO.setup(針碼, GPIO.IN, pull_up_down = GPIO.PUD_UP)
...     while True:
...         if GPIO.input(針碼) == 0:
...             for i in range(資料):
...                 取值列.append(GPIO.input(針碼))
...                 sleep(1.0/頻率)
...             break
... 
>>> 等入高針按鍵取值(按鍵一, 數據列)
>>> 數據列
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> len(數據列)
100
>>> 測試列=[]
>>> 等入高針按鍵取值(按鍵一, 測試列, 頻率=500, 資料=500)
>>> len(測試列)
500
>>> 數據列
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>>

,試著探討『彈跳現象』。

行 ︰豈可『妄自菲薄』,定要『發憤圖強』。☿

訊 ︰☿ 今方知所謂『無平不陂』矣。

─── 引自《 M♪o 之學習筆記本《卯》基件︰【䷊】無平不陂

 

所以可以將 M♪o 之『學習』『遞迴觀』詮釋為萬事萬物『理解』的『定點』,一再『回歸地』『認識』那個『事物』,終至能達該個『事物』之『理解』。這是『過程』與『結果』間『契合』的共鳴﹐可能也是『理解』之可以『理解』,『生命』『認知』不假外求的『絕待』。然後明白了解,現象『認知學習』之環境的『主旨』就是『生命』之『理解』的『途徑』罷了!!

 

【 JACK 環境安裝】

sudo apt-get install jaaa jack-capture jack-keyboard jack-mixer jack-rack jack-stdio jack-tools jackeq jnoise meterbridge freqtweak 

sudo apt-get install lilypond rosegarden kmidimon

sudo apt-get install qjackctl qsynth

sudo apt-get install puredata

sudo apt-get install brp-pacu japa

sudo apt-get install x42-plugins

sudo apt-get install alsaplayer-gtk alsaplayer-jack alsaplayer-text

sudo pip3 install JACK-Client