2023年9月28日
空閒生活除了追劇讀雜書慢跑,好像也得來搞個什麼看起來很正經高尚的活動,才麻痺自我感覺良好地過得不至於太廢。經過幾年摸索,有二件事可能最適合孤僻的我:一是學樂器二是學電腦程式語言,而且一年四季的時間分配剛好是以冬春/夏秋為界。無法同時並行是因為能力天賦有限,在幾番來回試驗實作後的推論是:溽熱夏季適合學習程式;舒爽冬天則宜與音符為伴。
話說去年夏天嘗試著再度挑戰 CS50 ,最終止步在第八週左右(特別是習題寫不出來)。不過今年夏被在練琴又遇上瓶頸之際,自 7月底又重來再試著學 python。這回感覺自己比之去年還是稍有進步,不必全部重頭來過,因此在挑選線上課程時,決定從中級程度入手。
一開始上的是《Intermediate Python for Non-Programmers 》,講師借由複習 python OOP, try exception, function, file read/write 等子題的重點複習,引領進行 API, Web Scrapping, Todo App 等實作,我覺得受益不少,也建立出興趣和信心。
再接下來是開始利用 codewars 反覆練習各種基本技巧,一個月下來大概等級 7~ 8 kyu 的習題都能攻克,但對更進一步的難度則反映出自己在演算法知識、程式安排設計觀念經驗的不足。因此從九月份開始註冊學習 Udemy 上頗受好評的 Python 中級課程 —— Python 3 Deep Dive 。
這套線上課程看起來叫好叫座,除了 Part One 還有另外三部曲,全部加起來近百支講座影片時間估計要花上 150小時,實在讓人有點卻步。目前上了二週左右,進度來到 Part One Section Three,它的課程內容偏向介紹底層的 python 結構原理,協助學員了解釐清許多資料類型與功能運用異同之美。相較坊間大多數課程重在讓學習者急忙速成地模仿弄出”實作”的東西,Deep Dive 則反覆深入地討論為什麼會這樣為什麼會那樣。例如我以前很不解為什麼要知道 memory allocation,解題用最樸素土法就好了,反正運算過程是電腦去跑,答案結果正確就OK了,時間長速度慢不要緊吧?但隨著 codewars 習題越作越多,再觀摩別人的解法,開始意識到:不行,我必須想辦法升級功力,不然始終只能停留 7~ 8 kyu 無法進步。
過去自己在練習程式問題時,往往會為符合答案甚致為了”遷就”各種極端案例,代碼寫得很支零破碎歪七扭八。但這兩三週接觸 Deep Dive 下來,慢慢有點體會到代碼執行結果會和自己原本預期之間落差的原因到底是什麼,有些是 python 本身底層設計的邊界,有些是電子位元0與1的區間,當然更多是自己的天真無知。如果一直是半調子地不理解不知道這東西,寫出來的東西當然就會東洴西湊改來改去。
後來發現有台灣網友召集糾伙一起學習,還有人好心地分享自己的上課筆記
https://vip.studycamp.tw/c/python-deep-dive/98
且看自己這回能堅持多久。
September 9, 2023
去年買入仿樹莓機山寨版的香橙派單板機小電腦 ,老實說其使用頻率很低,主因還是硬體過於低端效能不佳,尤其裝了圖像化桌面環境,單板機跑起來很是吃力,久而就一如樹莓派 2 宿命,早早被打入冷宫晾在一邊。
上個月開始再重新第 n+1 次學習 python,方知有一款強化版的互動式直譯器 bpython 非常好用,簡直可取代 python documentation 來查找一些模組,函數的使用方法。因為 bpython 不易安裝在 windows,於是把腦筋動到了 orangepi pc。
原本在 orangepi PC 使用的是第三方開發作業程式帶 XCEF 桌面環境的 Armbian,其進入 GUI 再開啟 terminal 使用體驗上還算勉強可接受。但既然只會用到 terminal,不如乾脆捨棄桌面環境,改安裝純文字指令 CLI 作業系統。Armbian 23.8 Bookworm 純文字版雖有帶 python 3.10,但在安裝 pip, venv 之後,還是無法安裝 bpython,也對 ipython 束手無策(後者好像是什麼路徑錯誤問題,則前者則似乎是根本不支援 armbian ?)。若在 venv 開發擬環境則可以成功安裝 ipython 。當然 ipython 也可為作為 bpython 替代品,而且在 ipython 底下可以直接使用某些 linux 指令還蠻方便的。
不過因為想使用 bpython 是我重新拾回 orangepi pc 理由,被執念佔領心神就會讓放下正事去搞些有的沒的週邊。同樣也試著在樹莓派 P2 Mode B PiOS Lite 純文字指令作業系統試著安裝 bpython 亦告失敗。原本都快死心了,才回過神意識到 armbian 不過是 oranepi PC 的第三方作業系統開發者,其自家早有製作 ubuntu, debian 版本作業系統。樹莓派官方也有 32位元的 ubuntu server 作業系統給老舊機款。(ubuntu desktop 則只限 raspberry ¾ 才可安裝)。趕緊下載 ubuntu 20.4 focal server for orangepi pc 燒錄到 micro SD card。
第一次在orangepi PC 進入 ubuntu server,預設的 username/ password 皆為: orangepi, 可利用指令($ sudo passwd username)來更改密碼。若要更改系統預設的用戶名 orangepi 則改由 root 帳號登入並參考本篇指令 來修改。如果想改成自己常用的 username 建議先做好這步,再去進行更新或軟體下載,否則次序顛倒容易發生軟體找不到原有路徑的麻煩。
接下來 update/ upgrade 來更新軟體套件。orangepi 官方設定的鏡像下載站點為中國清華大學,方便讓牆內用戶不必翻牆,但牆外用戶反而無法順利連接,因此需更改 /etc/apt/sources.list 的 apt 鏡像下載資訊為 http://ports.ubuntu.com/ubuntu-ports 才順利完成更新與升級。在 ubuntu server 20.4 for orangepi pc 的 python 版本為 3.8.10 可順利直接安裝 bpython/ ipython。而樹莓派 pi 2 的官方 ubuntu server 32 bit 版則已支援到 ubuntu 23.4 版,安裝與設定也更比香橙派直覺方便,可以在使用 rasp imager 燒錄 sd 記憶卡時直接設定用戶名稱和登入密碼,否則則為系統預設的 ubuntu/ ubuntu 。
純文字指令環境無法使用滑鼠,也沒有 Ctrl+C V 複製貼上的功能,可以說是非常單純乾淨的學習環境。玩了兩三天又不甘寂莫地想找出更多玩法,除了使用 bython,還可以用 nano 編輯器寫簡單的代碼作業,於是想著怎樣把單板機上的資料能在不同設備之間共用分享。
最方便的方法應是透過 githbu repo 的來同步分享追踪。ubuntu 自帶 git 無需另行下載,不過比較頭疼的是如何把 ssh public key 加到自己的 github 帳戶底下,以便更輕鬆地在不同電腦之間進行代碼筆記更新。後來找到的方式是直接把 micro-sd 取出來在 linux 桌機或筆電上來取讀 ssh key 內容後貼到 github,之後就可以輕鬆地同步 python 學習記錄了。
所以這台小型廉價電腦不只可作為學習 python 的輔助工具,同時也可用來熟練 git 功能操作XD。
2023年5月8日
今年三年中旬開始在 crowdin 翻譯平台投入 Privacy Guides 正體中文在地化,歷經八週努力終於完成初步工作。
回首 2016年投入 Privacytools 的翻譯推廣,慢慢在2021年 燃燼熱情,原本以為再也不必為這個網站傷神 —– 尤其是在 2022 年的某一天重訪 privacytools.io 主站卻發現”人事已非”,也就更能心安理得忘記這回事吧。
然後在今年三月初,原參與 privacytools.io 如今另起爐灶的新團隊成員之一 Daniel 發信給我,簡單地說明新網站的狀況,並提供如何參與在地化翻譯的方式。剛好自己這段時間也閒著,就開始默默一個人作正體中文的翻譯。
除了原始的英文版,在 Crowdin 已近乎完成的語言有: 義、繁中、法、荷、西、希伯來語六組,不過網站目前所放入的僅四個語系,想來應是最早有志工投入且完成度最高的幾種語言。今年三月起才有人加入的義大利語和繁體中文,在過去兩個月陸續快速地迎頭趕上,希望新語言版本可以很快地被放入官網。
是說 privacyguides.org 主站利用 MkDocs 打造,團隊的開發日誌說,除了直接支援 markdown 語法,使網站文件結構更清楚,便於協作的更新修改,更可以支援多語系的頁面展示轉化。
本次翻譯的工作平台 crowdin,一開始還在摸索熟悉它的介面與流程,作為商用付費平台,其勝出於 transifex 的地方大概是它的機器翻譯引擎(machine translation)除了接合 google translate/ Microsoft Translator,也會根據真實參與者的人工翻譯作建議。所以這次的翻譯過程,自己大部份扮演校閱者角色,確認這些由機器所翻譯的字串,我覺得機器翻譯品質真的是”智能”學習不斷地迭代進步越來越好。而對人腦而言就算只是校閱任務, 還是蠻累心力,但也只有人類有”權力”可以按下確認的發送鍵。
待 privacyguides.org 把正體中文放入官網後,原中文版的 privacytools.twngo.xyz 也會成功身退,我會把 DNS 指向 privacyguides.org。也歡迎各位有心者在 privacyguides 論壇或是加入 crowdin 提出翻譯建議。
2023年4月14日
總算慢慢地走到這支新手練習曲的最後一段旋律,這一路花了近四個月的時間。程度好演奏者順順把這十二段旋律從頭到尾彈過一遍所花的時間大概是10分鐘左右 ,由我來彈的十多分鐘恐怕還是二二六六,離可以端上台面還有一段未知的距離,更別説把曲子練到入耳悅耳。所以「台上一分鐘台下十年功」這句話還是有幾分重量。
這段 C大調一小節有二拍,常常要在二拍之內處理完八個十六分,一開始我搭配節拍器來練習右手部。前面八小節還算簡單,但是從第九開始的八個小節有點吃到苦頭,怎麼練習都不太順,還擔心若加入左手部豈不爆炸。結果沒想到後來加入左手一起練,反而有助於抓拍子把節奏感練出來,雙手彈奏反而更容易。這才發現在整支〈Twelve very easy and melodious studies for piano〉作品中,作者之前並沒有安排這類和弦伴奏規律(有點類似下方的華爾滋曲式)
另外,這段旋律相較於前十一段練習的一處差異是,它的”主題”安排(或曰”完全重複的小節”)並不明顯。雖然前八個小節再次出現於第十七小節,但是前面十一段旋律的主題安排往往是以主題開始、再以主題收尾。而這段旋律對主題的安排卻像是帶出中段的變化與後段的收尾。
原來鋼琴練習曲不只是熟練彈奏技巧與音符節拍和弦搭配,體察旋律的走向安排也是學習的課題。
# Streabbog
2023年3月29日
最近練琴時間與密度減少,但還是會利用出門前十多分鐘的時間作點練習,就這樣慢慢地走到了這支作品的倒數第二段旋律。
初次看到這兩頁旋律時心裏有點打退堂鼓,因為每小節出現多次的十六分休止符(帶二個尾巴)讓整個樂譜看起來非常”凌亂”,就算右手部的音程安排多半是”疊疊樂”(就是每一拍都是同一個音重覆彈兩次, 第一個為半拍八分長度第二次為十六分長度),背記簡單但困難點在於掌握正確的拍子節奏。
用電子琴/電鋼琴練習了三四年,最近才學會使用它們內建的節拍器功能。把練習的 BPM 調為 100 左石,不知道要怎麼算十六分的拍子,於是變成了搶在第二拍之前完成二個疊音(外加一個十六分休止),跟著節拍器每小節四拍的提示聲來下疊音的第一個音。這樣練習下來,久而久之就會習慣(大至正確的)曲子節拍。
熟悉了節拍後,右手部旋律另一個要克服的難點習慣了”疊疊樂”小節後,”非疊疊樂”的音符(第二頁彎紅色框起來的三個小節,即是只是相鄰的琴鍵音程)反而不會彈了,這時候當然只能死命反覆地培養肌肉記憶吧。
作為 G 大調旋律,其左手部的伴奏出現了: G, D, D7, a, A, A7 等和弦,且需以斷奏(staccato)來表現,這時候才注意到原來右手部的”疊疊樂”第一音也有斷奏符號,但第二拍沒有...呃,反正十六分音符有沒有斷奏(對我)都差不多吧???
# Streabbog
2023年3月7日
2023年自春節過後,練琴積極度又再次放緩,其中有一部份的精力拿去研究 DAW 數位音樂工作站軟體 ,有一部份則是自我麻醉地以為”長假”(兩天以上)期間再來練習,結果事實證明放假時摸琴的次數與時間反而更少。但想想,這一支12段旋律的入門練習曲好歹也橕到了後半段,總是要再加把勁地爬到終點吧。
第10段旋律的標題為”Disappointment”,二頁樂譜乍看並不困難,它沒有任何昇降標記一開始誤以為是C大調,但進一步查看旋律中最常出現的是 A minor, D minor,方知它應是與 C大調共享相同昇降標記的 A小調旋律。小調旋律的應用也呼應了其標題”Disappointment”,帶有灰暗陰沈的感受。如下圖,A 小調的主要和弦伴奏 primary chords 家族組成為 A minor(i)、D minor(iv)、E/E7(V)。
我覺得這段旋律最困難的地方在於”節拍”的練習,尤其是每小節第二拍會出現的三連音,從默念到大聲數拍: 1~~2223~~4~~ 或 1~~2223344 或 1~~2223~~444 等幾種音符數量安排。
# Streabbog
2023年2月20日
一個半月前試著摸索Ardour 仍不得其門而入,不過之後陸續玩其它一些簡單的合成器音序器等聲音製作軟體並一邊學習基礎聲學物理,現在感覺 Ardour 的介面應該也不至於太可怕,週末剛好有時間就再打開來研究一番。
之前已經知道了如何透過外接式 midi keyboard 來接收輸入的音符訊號: 先加入一軌新的 midi track
再把滑鼠移到此 track 點擊左鍵後出現小視窗以調整其相關設定,例如下方的 hardwares 就是詢要是接收哪一個鍵盤的輸入訊號(可複選),keyboard 彈的音就會透過 Ardour 內建預設合成器軟體作成聲音後再 output (電腦喇叭或耳機)
雖然 Ardour 已能成功地接收 midi keyboard 輸入音符訊號,但要把音符與聲音錄製下來,則需要開啟”錄音”功能。經幾番試驗,必須要把音軌自身的錄音鍵與主程式工具選單上的二處紅色圓形的錄音鍵同時按下開啟,才能成功地錄下音符。本來一直找不到 piano roll 的選項,後來方知只需把該條音軌往下拉寛,piano roll 就會自動顯示出來。
除了外接 midi keyboard、麥克風接收音符訊號與聲音外,Ardour 也可以滙入 audio / video 類型的檔案。但我試著滙入的是 midi 格式檔案,Ardour 會依照 midi 記錄的音軌數量、樂器種類將音樂記號(音符、音色)滙進來。找不到如何改變音軌樂器音色的方法(也還不會改合成器軟體),看來 Ardour 的功能著重於”audio” 型檔案的特效後製,而樂器樣本與內建(預設)合成器音色則普普通通,真的比較像昇級版的 audacity。
如此看來,Ardour 比較適合用在聲音檔的錄製後製,例如傳統類比樂器的錄音(講究一點的話還要加上收音麥克風與錄音介面等硬體)、 podcast。而我個人目前比較需要的音樂製作軟體,大概是音序器(sequencers) 就可以滿足的。
# DAW
2023年2月17日
之前第一次接觸 Ableton live learning synths 教學 系列,讓我非常驚豔於在瀏覽器不只可以當作合成器軟體操作環境,還支援外接 midi 鍵盤。今日網頁開發的進步早已遠超過我的想像,Ableton 應用的也不是獨家技術,網路上還有更多網頁版的數位音樂製作工具可探索。例如HipHop Maker 所整理的系列:
35 FREE Online Synthesizers to Play in Your Browser (2023)
27 Best FREE Online Sequencers to Play Online! (2023)
12 Best FREE Online DAWs for Making Music! (2023)
我試用其中二款無須註冊即可立即使用的開源音序器: onlinesequencer 、signal ,兩者都可支援外接 midi keyboard(需使用 Chrome)。但至少音序器支援多重音軌與數種基本管絃、鍵盤樂器,馬上就可以製作出幾小節簡單旋律。
至於更複雜的 DAW 即便免費無料,也都要求用戶先註冊帳號。因為之前已安裝過 BandLab for android,有了現成的帳號故先試試這款工具在桌機筆電網頁版的表現如何。
BandLab 桌機瀏覽器版的介面與使用方式和行動裝置版似乎沒什麼差異,可以滙入音樂檔案格式(audio 或 midi),也可從無到有地利用它提供的虛擬樂器輸入音符(input notes)或是直接透過麥風克一軌一軌地把樂器人聲錄進去。比之大部份的音序器軟體僅能編排音符旋律次序,DAW 除結合了 Synthesizers /Sequencers 兩者功能外,再加上 audacity 的外部聲音錄製,以及進一步地對音色進行調製( modulation )與特效 Fx effects。
我覺得這一類線上型的音樂製作網站最有趣的地方應該是它的”社群化”,許多素人或玩家級的創作者不只利用線上工具創作音樂,還可以直接在該網站上發佈向他人分享,更可以 fork 別人公開的音樂專案進行重製改編,簡直就像音樂版的 github。哦對了,現在還可以和從沒見過面的網友在網站上認識組樂團,利用 zoom 、jamulus 線上練團等等玩法,讓用戶在 BandLab,除了自己玩 DAW外,追蹤訂閱各式各類的音樂作品,找到氣味相投的同好者組團交流,讓尚未出名的創作人多一個曝光的管道。
DAW 網頁版資源這麼豐富,覺得可以把閒置已久的~~ Chrome~~ Chromium OS 再拿出來玩。
# DAW
2023年2月13日
曆舊年前,用不到二千元台幣購入一台 Worlde Orca 25 Midi 鍵盤,以稍平息自己過新年想要買玩具的消費欲。
較之發展至少有四五十年以上的歐美日電子音樂設備主流大廠,這家 Worlde 相對年輕,創業至今 20多年。作為世界工廠的中國, Worlde 與Medeli 大概是(我所知道)少數幾家試圖在代工之外企圖發展自家品牌形象與產品自主設計的中國電子樂器廠商。
這兩家中國電子樂器製造商中,Worlde 規模與知名度大不如 Medeli美得理,但其產品線種類似乎不輸後者。光是以動物命名的 midi 鍵盤系列 Panda, Tuna, Blue Whale, Whale, Orca 就各自有25鍵 48鍵 61鍵 88鍵等產品可選。
在價位上,Worlde 售價大約是美日廠牌同等規格品 ½~1/3 ,其主打市場應為消費能力較低的開發中國家(東南亞、拉美、東歐等)。至於設計感與產品品質嘛,因為沒見識過其它專業知名品牌 Nord, Roland, KurZweil ...等貴桑桑的鍵盤, 沒有比較就沒有傷害,我用這種等級的就很滿足開心了。
midi keyboard 直接透過 USB type B 接口連接電腦或手機平板(供電與接受input訊號),無需驅動程式,都可以順利地在linux mint, ubuntu, windows , Android(LineageOS), iOS 等作業系統中使用,至於感應力度觸感,我個人是覺得還好啦(其實是分辨不出來)。
至於學習玩DAW 是否真的需要用到外接的 midi keyboard ?答案: 非必要,但有也不錯。很厲害的玩家可能要求更高等級更多黑白鍵(25/32 大抵是他們外出旅行備用的臨時款)、更多片節奏板的器材以方便輸入,但高手大概用電腦鍵盤就可以在 DAW 演奏即興。至於弱弱的肉腳新手呢?買個 25 鍵/ 16 pad midi keyboard 偶而當個玩具試試也就差不多到此為止,畢竟沒什麼天賦也不認真練習,再好再貴的器材都派不上用場啦。
# DAW , # littlethings
2023年2月8日
第9 段旋律再次使用 F 大調,故再回顧這支作品中前一段同為 F大調 No.7 之練習筆記。
由於前一段 F大調的旋律中並未出現 E 和弦,所以並未注意到 F 大調家族的第七度音是 E dim,重新再去翻教科書〈The Complete Book of Scales Chords Arpeggios Cadences 〉查查是否所有大調家族的第七度音和弦都要變為 diminished,果不其然之前還真被我疏忽了。
所謂的 diminished chords 就是把大三和弦中的第二音與第三音都降半音(或者也可以看作小三和弦的第三音降半音)。我翻了翻教科書卻沒看到任何文字說明為什麼大調音階的第七音和弦(vii)要採 diminished ?? 姑且把它視為某種約定成俗的和弦變化習慣吧。
本段F大調家族和弦除了主要和弦(F, Bb, C)之外,還運用 G minor(ii), D minor(vi), A minor(iii) 還出現一個 Em7(b5) ? 或許是自己正在練習背記各式和絃而過敏,但作者根本沒注意 到第四小節 E(G)BbD 的組合是Em7b5 吧。
Streabbog N.63 作品一路彈下來,大概可以察覺作曲者某種曲式結構的安排,就如同許多電子音樂工作站軟體DAW 中有所謂的 pattern(一小節或數小節),patterns ( 複數)可能會在曲子中重複出現在不同的”段落”,這也是為什麼又有”Sequencer” 音序器來編排 patterns 。在(古典)音樂中,作曲家就如同寫文章一樣也會有起承轉合 (但文章比較不會出現完全一模一樣的文字段落啦,除了”詩”)
本段旋律中,第 1 ~8 小節為 pattern 1 ,而這個模式又重覆地出現在第 33~40 小節。第 9~12 小節與下一行(第 13~16小節),有著很相近的音符但在後二小節又有輕微不同,以讓第 16 小節去承接 17 ~24 小節的變化。而 17 ~24 小節的變化會讓我懷疑它根本不是 F 大調而是 D 小調。然後 25~32 小節又可把這八小節拆成二段,當作另一個 pattern 2 之重覆,於我這是謎之右手部的同一小節八次重覆(二拍子的三連音與八分音+半拍休止符也沒想像中那麼輕鬆就是了),再接回 pattern 1 。而最後的四小節標示了 “dimin e rall” 不知道這和上頭 F 大調家族的第七度音是 E dim 有沒有什麼關係? (想太多了 )
# Streabbog