avoidノート

ジャズで気をつけて使う(使えないという意味ではない)音にコードの4度の音があるのですが、対位法でも4度は不協和とされています。 ところが、実際は3度より協和度が高い(倍音を含めた協和度を計算するとそうなるようです)。 もしかして増4度も協和?とか思って調べると流石に増4は不協和度が高いようで、これは安心ですw

3度中心の文脈(音脈?)では、完全4度は不協和ということにしておかないと、鍵盤の並び的に宜しくない様です。かと言って4度の和音のシステムではおそらく3度ほど豊かな体型はできなかったというのが20世紀でしょう。

ベートーヴェン交響曲9番、4楽章より

またもや某所で上げた分析の転載。

f:id:biones:20180104141659p:plain

この楽章の主調はDmajorで、長くてあまり好きじゃなかった(最初のポリフォニックな弦の主題以外)。 規模も長さもどう見てもデカすぎだし、音速はあまり早くないので、オケに合唱まで入ると物理的に広がりすぎて誰がどうやろうと、音楽の質は下がる。迫力は出るけど、この流れで一番才能を無駄にしてしまった作曲家がマーラーなのかなとか思ったり。後々謝罪するかもしれないですけど・・・。

6拍子に変わってB♭での合唱の後、弦での3連符の歓喜細胞の展開がものすごく好きで、再び主調Dでの合唱が入る前の休憩所。 Dへの3度転調を意識したhで、主題のレミファ、が重要なモチーフ(aと書く)で、h(短3度下)でソプラノが半音上昇しつつⅤで半終止、賢者モード、aとともに+Ⅰに着地,aをマイナー化した-Ⅰで対比、「同じもの」を明暗で対比して聞かせる手筋はbeethovenが大好きみたいで、私もよく使います。 +Ⅰの所では低音の響きからⅠ楽章の冒頭を想起するのは考え過ぎですかね。

そして、マイナー化したbmを主調DのⅥと読み替えてⅠの2転、バスで経過的に一瞬導音を出すくらいで(Ⅴ→Ⅰ感を弱めて)、合唱でのテーマに入る。

ここ数ヶ月ソナタを作曲していて、やたらベートーヴェンと対話していてその流れでコレもちょくちょく見ていたので書いてみました。

mozartと音のモチーフ

某bookで書いたので、ついで。

ベートーヴェンほど徹底してはいないが、モチーフを潜ませる事はしている。 f:id:biones:20171105171408j:plain

ちなみに、下段は有名なラシドーラシドーシラソへ発展する。 やはり類似性、規則性やそこから出てくる対比があるから一曲なのだと思う。名楽節を繋げても名楽節にはならないのです( ー`дー´)キリッ

ちなみに私も

www.youtube.com

ソナタでかなりしつこく部分モチーフを使っています。

レッスン生募集します。詳しくは

飯島聡のウエブサイト - レッスン

羽毛布団

実家から持ってきたヤツを3月ごろに穴が空いたまま洗濯してしまって、必要な時期になったので調査。

日本には、西川マザーグース教団というのがあるっぽくて、下は1万、上は100万くらいまで幅がある。 実店舗に行って20と10万のものを触って比較したが、わからず、店主もわからないと言っていた。※かけてはいない。

羽毛が優れているのは「温かい」事で、それ以外の評価基準になるモノを探したが、レビューを見ても、ふとん屋の人の記事なんかを見ても出てこない。「快適」な温度、湿度に保つ性能なんかもそうだけど、それについてのコメントも異常に少ない。

温かいです♪ もう、幸せです♪

こんなのばかりw

羽毛布団が温かい理由は、空気の熱伝導率が低い(熱抵抗が高い)く、それを溜め込む事ができるからで

oshiete.goo.ne.jp

に理由と温度差の式が書いてあります。

gooseとduckの比較は

http://etheses.whiterose.ac.uk/9268/1/The%20structure%20and%20properties%20of%20down%20feathers%20and%20their%20use%20in%20the%20outdoor%20industry%20final%20edit2.pdf

より f:id:biones:20171021211808p:plain (横軸は詰めた量、縦軸は熱抵抗(TOGと同じ))

みたいな感じで、一般的な意見と大分違って 大して差がなくて有意でもなく(下に書いてある)、fill power(DP)と熱抵抗の比較はなかったが、 gooseのメリットは大してないと思われる。 ちなみに浮力による「軽さ」も、440dp VS 400dpで20g/1m2程度なので、軽いのは高い商品を使っている人の心なのかもしれない。

劣化度合いとか他にも気になる項目はあるけど、消費者の頭のレベルと鴨(DUCK)にしやすい環境が整いすぎているので、 やはり教団の陰謀というのが今のところの感想。

Apple製品の寿命

ワイヤレスキーボードが壊れた。 2013年のモデルの付属なので4年弱。 前回は同じく2013年に壊れて買い換えたKBで(amazonで同じものが倍弱になっていた!)、1年くらい前に完璧に使えないキーが出てきた。 最初が2010年なので、全て3年程度ということになる。 ちなみに、代理品も少なく、ロジクールのやつを買ってしのぐことに。

そのほか、iPad Air2のマイク(1年)、2010年iMacのHDD(3年)。

明らかにピンピンしている部品がある状態で捨てるのは辛いし、修理代も高い。 情報弱者向けの税金的なものもかってるだろうし、徐々に脱Appleしていきたいと思う。

音楽系のソフトがlinuxで使えれば話は簡単なのだけど・・・。

ワインの質の予測

有名なwine qualityでなくて、値段や国、地域、コメントと質のデータを上げている人がkaggleにいて(URL貼らないので探して下さい)、売り場で参考にするならこちらの方が良いので、3000yen以下のヤツを適当に値段、regionと品種を説明変数にして、線形回帰してみて、web上で見れるようにしてみた。

https://biones.herokuapp.com/wine

f:id:biones:20170712200352p:plain モノの値段と質は直線的というより、ロジスティック曲線みたいな上限があるようなイメージだけど、概ねそんな感じですかね? 3000yenくらいまではコスパよく上がるという予測も概ね当たりかと。

今週のお題:目標を達成する手順は何通り?

ちょっと気力を使ったので・・・。

https://codeiq.jp/challenge/3302

例えば、横に m マス、縦に n マスの格子状のマスを左上から右下に移動するための手順を考える、という例があります。 使用可能な操作は「前に進む」「左を向く」「右を向く」の3つです。 このマスの外側には移動できず、最短の経路である必要はありません。

なお、右下のマスに着くとその時点で終了とします。 (つまり、右下のマスでは「左を向く」「右を向く」の操作はできません。)

m = 3, n = 2で、右向きに開始するとき、以下の4回の操作で左図のように移動できます。 1. 前に進む 2. 前に進む 3. 右を向く 4. 前に進む

イメージ

では、左上から右下に5回の操作で移動させるにはどうすればよいでしょうか?

状態をmn4方向の3次元行列で表現する。添字のスライスの仕方がnumpy風にいかずデバッグが難航。 表示は大切。 使う盤面をステップ毎にコピーするとO(Nmn)になり、1つのケースだけ間に合わないので、 2種類の盤面を交互に使いまわすが、新しい盤面をreturnして古い盤面に参照渡ししてしまっていて、 ハマった。

import numpy as np

def is_inner(x):
    global m,n

    if 1<=x[0] and x[0]<=m and 1<=x[1] and x[1]<=n:
        return True
    return False

def mdist(i,j,a,b):
    global m,n
    return np.abs(i-a)+np.abs(j-b)

def generatenext(states,nstates):
    global m,n,N,step

    count=0
    for i in range(1,m+1):
        for j in range(max(1,n-(N-step)+np.abs(m-i)-1),min(step-np.abs(i-1)+3,n+1)):
            if i==m and j==n:
                if step<N-2:
                    continue

            statesback=states[i][j][:]
            nstates[i][j][0]=states[i-1][j][0]
            nstates[i][j][1]=states[i][j-1][1]
            nstates[i][j][2]=states[i+1][j][2]
            nstates[i][j][3]=states[i][j+1][3]

            for k in range(4):
                nstates[i][j][(k-1)%4]+=statesback[k]
                nstates[i][j][(k+1)%4]+=statesback[k]

    return nstates,states


n,m,N=list(map(int,input().split(" ")))

states=[[[0 for k in range(4)] for j in range(n+2)] for i in range(m+2)]
nstates=[[[0 for k in range(4)] for j in range(n+2)] for i in range(m+2)]

for k in range(4):
    states[1][1][k]=1

for k in range(N):
    step=k
    if k%2==0:
        nstates,states=generatenext(states,nstates)
    else:
        states,nstates=generatenext(nstates,states)

    if step==N-2:
        if k%2==1:
            count=states[m-1][n][0]+states[m][n-1][1]
        else:
            count=nstates[m-1][n][0]+nstates[m][n-1][1]

print(count)