登陸研究的領域 – iNDIEVOX 智慧電台參上!
















古典音樂是一個含義廣泛的術語,廣義的西洋古典音樂是指那些從西方中世紀開始至今的、在歐洲主流文化背景下創作的音樂,或者指植根於西方傳統禮拜式音樂和世俗音樂,其範圍涵蓋了約公元9世紀至今的全部時期。主要因其複雜多樣的創作技術和所能承載的厚重內涵而有別於通俗音樂和民間音樂。在地理上,這些音樂主要創作於歐洲和美洲,這是相對於非西方音樂而言的。另外,西洋古典音樂主要以樂譜記錄和傳播,和大多數民間音樂口傳心授的模式不同。
亦有人認為[誰?]「古典」是對應於「流行」而言的,因為這些音樂經得起時間的考驗,能夠引起不同時代聽眾的共鳴,故認為應當稱之為「經典」(classic)的音樂。
但如果細究古典一詞,本意可以理解為古代留傳下來堪稱經典的音樂作品(古代+經典),但是一般來說,古典音樂是具有規則性本質的音樂,具有平衡、明 晰的特點,注重形式的美感,被認為具有持久的價值,而不僅僅是在一個特定的時代流行。這也體現於「古典」(classical)與「經 典」(classic)的不同。
古典音樂(classical music)本來是專指德奧在1750—1830年間以海頓、莫扎特、貝多芬為代表的音樂,即所謂「維也納古典樂派」的音樂(或翻譯為「維也納古典主義音樂」)。這就是狹義的古典音樂。
從這個狹義的古典音樂概念出發,我們可以向前追溯到巴赫、韓德爾,乃至更早的天主教、基督教的宗教音樂,向後延伸到浪漫主義、民族樂派,以及20世紀西方的現代音樂。這些都是廣義的古典音樂,也就是基於這個傳統的,無論是繼承和發揚這個傳統,還是試圖以創新來突破這個傳統的音樂創作嘗試,都可以歸入古典音樂之內。而在這個傳統外獨立發展的音樂,雖然有借鑒和影響古典音樂創作的,但是一般也不歸入古典音樂之內,比如爵士樂、搖滾樂,以及東方一些民族的音樂。
因此對於廣義的「古典音樂」這個詞來說,歐洲藝術音樂的定義更加準確。
歐洲藝術音樂與其他的非歐洲音樂和流行音樂體系的主要區別是記譜法有所不同,其規則大約源自於16世紀便開始使用的記譜法。在西方記譜法中,作曲者 給演奏者規定了音調、格律、速度,獨特的節奏和對於一同段音樂準確的演奏方式。這種即興演奏發揮空間很小的記譜法模式,極大的不同於非歐洲藝術音樂(相對 於傳統的日本音樂和印度音樂)和流行音樂。
古典音樂作為音樂中類別的稱呼,是相對於輕音樂、通俗音樂等類別而存在,它本身並沒有嚴格明確的解釋或者定義。在輕音樂範圍裏,有時也採用「古典」的概念來指某些經過時間檢驗,被人們奉為楷模的輕音樂作品,如古典輕歌劇、古典爵士樂等,這裡的 classical 理解為「古代+經典」,似乎更為合適一些。
藍調(英文:Blues,解作「藍色」,又音譯為布魯斯)是一種基於五聲音階的聲樂和樂器音樂,它的另一個特點是其特殊的和聲。藍調起源於過去美國黑人奴隸的讚美歌、勞動歌曲、叫喊和聖歌。藍調中使用的「藍調之音」和啟應的演唱方式都顯示了它的西非來源。藍調對後來美國和西方流行音樂有非常大的影響,拉格泰姆、爵士樂、藍草、節奏藍調、搖滾樂、鄉村音樂和普通的流行歌曲,甚至現代的古典音樂中都含有藍調的因素或者是從藍調發展出來的。[1]在詩歌裡這個詞常被用來描寫憂鬱情緒。
藍調一詞是與「藍色魔鬼」(Blue devils)一致的意思,意思是情緒低調、憂傷、憂鬱。早在1798年喬治·科曼就寫過一部名為《藍色魔鬼,一幕滑稽戲》的滑稽戲。19世紀這個詞被用來表示震顫譫妄和警察。在美國黑人音樂中這個詞的應用可能更老。1912年孟菲斯威廉·克里斯多福·漢迪的《孟菲斯藍調》是這個詞在音樂中最早的書面紀錄。[2]
另類搖滾(alternative rock,也稱為 alternative music[1],或是簡稱 alternative)是搖滾樂中的一種類型,最早在1980年內出現,在1990年代開始廣泛流行。「alternative」這個單字的本意「可選擇的」,在1980年代也被用來指在獨立唱片廠牌旗下的龐克搖滾風格樂團,他們和當時的主流音樂類型並不相同。[2]作為一種特定的音樂類型,另類搖滾自1980年代以來集合了許多獨立音樂(indie music)的子類型,例如油漬搖滾、獨立搖滾、英式搖滾、哥德搖滾等。
在之前所介紹過的排序方法,都是屬於「比較性」的排序法,也就是每次排序時 ,都是比較整個鍵值的大小以進行排序。
這邊所要介紹的「基數排序法」(radix sort)則是屬於「分配式排序」(distribution sort),基數排序法又稱「桶子法」(bucket sort)或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些「桶」中,藉以達到排序的作用,基數排序法是屬於穩定性的排序,其時間複雜度為O (nlog(r)m),其中r為所採取的基數,而m為堆數,在某些時候,基數排序法的效率高於其它的比較性排序法。
基數排序的方式可以採用LSD(Least sgnificant digital)或MSD(Most sgnificant digital),LSD的排序方式由鍵值的最右邊開始,而MSD則相反,由鍵值的最左邊開始。
以LSD為例,假設原來有一串數值如下所示:
首先根據個位數的數值,在走訪數值時將它們分配至編號0到9的桶子中:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 81 | 65 | 39 | |||||||
| 43 | 14 | 55 | 28 | ||||||
| 93 | |||||||||
| 22 | 73 |
接下來將這些桶子中的數值重新串接起來,成為以下的數列:
接著再進行一次分配,這次是根據十位數來分配:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 28 | 39 | ||||||||
| 14 | 22 | 43 | 55 | 65 | 73 | 81 | 93 |
接下來將這些桶子中的數值重新串接起來,成為以下的數列:
這時候整個數列已經排序完畢;如果排序的對象有三位數以上,則持續進行以上的動作直至最高位數為止。
LSD的基數排序適用於位數小的數列,如果位數多的話,使用MSD的效率會比較好,MSD的方式恰與LSD相反,是由高位數為基底開始進行分配,其他的演 算方式則都相同。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int data[10] = {73, 22, 93, 43, 55, 14, 28, 65, 39, 81};
int temp[10][10] = {0};
int order[10] = {0};
int i, j, k, n, lsd;
k = 0;
n = 1;
printf("\n排序前: ");
for(i = 0; i < 10; i++)
printf("%d ", data[i]);
putchar('\n');
while(n <= 10) {
for(i = 0; i < 10; i++) {
lsd = ((data[i] / n) % 10);
temp[lsd][order[lsd]] = data[i];
order[lsd]++;
}
printf("\n重新排列: ");
for(i = 0; i < 10; i++) {
if(order[i] != 0)
for(j = 0; j < order[i]; j++) {
data[k] = temp[i][j];
printf("%d ", data[k]);
k++;
}
order[i] = 0;
}
n *= 10;
k = 0;
}
putchar('\n');
printf("\n排序後: ");
for(i = 0; i < 10; i++)
printf("%d ", data[i]);
return 0;
}
public class RadixSort {
public static void sort(int[] number, int d) {
int k = 0;
int n = 1;
int[][] temp = new int[number.length][number.length];
int[] order = new int[number.length];
while(n <= d) {
for(int i = 0; i < number.length; i++) {
int lsd = ((number[i] / n) % 10);
temp[lsd][order[lsd]] = number[i];
order[lsd]++;
}
for(int i = 0; i < number.length; i++) {
if(order[i] != 0)
for(int j = 0; j < order[i]; j++) {
number[k] = temp[i][j];
k++;
}
order[i] = 0;
}
n *= 10;
k = 0;
}
}
public static void main(String[] args) {
int[] data =
{73, 22, 93, 43, 55, 14, 28, 65, 39, 81, 33, 100};
RadixSort.sort(data, 100);
for(int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
}
}