<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/funatti/">
    <title>funatti&#039;s toybox</title>
    <link>http://w.atwiki.jp/funatti/</link>
    <atom:link href="https://w.atwiki.jp/funatti/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>funatti&#039;s toybox</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-01-31T21:54:02+09:00</dc:date>
    <utime>1233406442</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/43.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/42.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/41.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/40.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/39.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/38.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/37.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/36.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/35.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/funatti/pages/34.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/43.html">
    <title>音楽ファイルの波形を表示</title>
    <link>https://w.atwiki.jp/funatti/pages/43.html</link>
    <description>
      *実行結果
-[[player2.zip&gt;http://www20.atwiki.jp/funatti/?cmd=upload&amp;act=open&amp;page=音楽ファイルの波形を表示&amp;file=player2.zip]]

**操作方法
+ZIPファイルを解凍したら、index.htmlを実行してください。
+アプレットを実行すると、音楽が流れます。
+アプレット上に再生中の部分の波形が表示されます。
+フォルダに入っているmusic.mp3を変更すると、音楽が変わります。

**解説
minimライブラリをインポートして、[[音楽再生]]を実現しています。

*ソースコード
#include(player2)

----    </description>
    <dc:date>2009-01-31T21:54:02+09:00</dc:date>
    <utime>1233406442</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/42.html">
    <title>player2</title>
    <link>https://w.atwiki.jp/funatti/pages/42.html</link>
    <description>
      //java

import ddf.minim.*;
 
Minim minim;
AudioPlayer music;
 
void setup(){
  size(512, 200, P3D);
  minim = new Minim(this);
  music = minim.loadFile(&quot;music.mp3&quot;);
  music.loop();
}
 
void draw(){
  background(0);
  stroke(255);
  for ( int i = 0; i &lt; music.bufferSize() - 1; i++ ){
    float x1 = map(i, 0, music.bufferSize(), 0, width);
    float x2 = map(i+1, 0, music.bufferSize(), 0, width);
    line(x1, height/4 - music.left.get(i)*50, x2, height/4 - music.left.get(i+1)*50);
    line(x1, 3*height/4 - music.right.get(i)*50, x2, 3*height/4 - music.right.get(i+1)*50);
  }
}
 
void stop(){
  music.close();
  minim.stop();
 
  super.stop();
}    </description>
    <dc:date>2009-01-31T21:51:29+09:00</dc:date>
    <utime>1233406289</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/41.html">
    <title>音楽再生</title>
    <link>https://w.atwiki.jp/funatti/pages/41.html</link>
    <description>
      *実行結果
-[[player1.zip&gt;http://www20.atwiki.jp/funatti/?cmd=upload&amp;act=open&amp;page=音楽再生&amp;file=player1.zip]]

**操作方法
+ZIPファイルを解凍したら、index.htmlを実行してください。
+アプレットを実行すると、音楽が流れます。
+フォルダに入っているmusic.mp3を変更すると、音楽が変わります。

**解説
minimライブラリをインポートして、音楽再生を実現しています。

*ソースコード
#include(player1)

----    </description>
    <dc:date>2009-01-31T21:35:54+09:00</dc:date>
    <utime>1233405354</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/40.html">
    <title>player1</title>
    <link>https://w.atwiki.jp/funatti/pages/40.html</link>
    <description>
      //java

import ddf.minim.*;
 
Minim minim;
AudioPlayer in;
 
void setup(){
  size(512, 200);
  minim = new Minim(this);
  in = minim.loadFile(&quot;music.mp3&quot;);
  in.play();
}

void draw(){
}
 
void stop(){
  in.close();
  minim.stop();
  super.stop();
}    </description>
    <dc:date>2009-01-31T21:25:23+09:00</dc:date>
    <utime>1233404723</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/39.html">
    <title>剛性のある弦の振動</title>
    <link>https://w.atwiki.jp/funatti/pages/39.html</link>
    <description>
      *実行結果
-[[stick3.jar&gt;http://www20.atwiki.jp/funatti/?cmd=upload&amp;act=open&amp;page=剛性のある弦の振動&amp;file=stick3.jar]]

**操作方法
+JARファイルを実行したら、表示されている弦の近くをクリックします。
+クリックするとそこに力が加わり、弦が振動を始めます。
+さらにクリックを続けると、どんどん力を加えることができます。

**解説
剛性のある弦の振動（横波＋曲げ波）をシミュレートしています。ただし断面積は1、ヤング率はかなり大きめに設定し、弦の張力は視覚的にわかりやすいように調整しています。

*ソースコード
#include(stick3)

*参考文献
-楽器の物理学(N.H.フレッチャー、T.D.ロッシング)

----    </description>
    <dc:date>2009-01-31T20:51:50+09:00</dc:date>
    <utime>1233402710</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/38.html">
    <title>stick3</title>
    <link>https://w.atwiki.jp/funatti/pages/38.html</link>
    <description>
      //java

int fRate = 30;
float dt = 1.0/(float)fRate;

float T = 0.001; // tense
float E = 0.2; // Young&#039;s modulus [Pa]
float r = 0.01; // radius
float K = r*0.5; // moment of inertia
float rho = 0.1; // density[kg/m^3]
final int N = 200; // number of section
float dx = 0.1; // length of section

float[] y = new float[N];
float[] y_temp = new float[N];
float[] dy = new float[N];

void setup(){
  frameRate(fRate);
  size(500,400);
  noFill();
  stroke(100,50,20);
  strokeWeight(4);
  
  //initial condition
  for(int i=0;i&lt;N;i++){
    y[i] = 0;
    dy[i] = 0;
    y_temp[i] = 0;
  }
}

void draw(){
  int n=0;
  while(n++&lt;50){
    calc();
  }
  
  background(255);
  
  beginShape();
  for(int i=0;i&lt;N;i++){
    curveVertex(i*2 + 20,y[i]*10 + 200);
  }
  endShape();
}

// calculation of powers
void calc(){
  for(int i=2;i&lt;N-2;i++){
    dy[i] = dy[i] - (y[i-2] -4*y[i-1] + 6*y[i] - 4*y[i+1] + y[i+2])
      *E*K*K*dt*dt/(rho*dx*dx*dx*dx)
          </description>
    <dc:date>2009-01-31T20:45:21+09:00</dc:date>
    <utime>1233402321</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/37.html">
    <title>棒の振動2</title>
    <link>https://w.atwiki.jp/funatti/pages/37.html</link>
    <description>
      *実行結果
-[[stick2.jar&gt;http://www20.atwiki.jp/funatti/?cmd=upload&amp;act=open&amp;page=棒の振動2&amp;file=stick2.jar]]

**操作方法
+JARファイルを実行したら、表示されている棒の近くをクリックします。
+クリックするとそこに力が加わり、棒が縦波を始めます。
+さらにクリックを続けると、どんどん力を加えることができます。

**解説
棒の&#039;&#039;曲げ波&#039;&#039;をシミュレートしています。ただし断面積は1、ヤング率はかなり大きめ、曲げ波以外の波は発生しないことを仮定しています。

*ソースコード
#include(stick2)

*参考文献
-楽器の物理学(N.H.フレッチャー、T.D.ロッシング)

----    </description>
    <dc:date>2009-01-31T20:52:49+09:00</dc:date>
    <utime>1233402769</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/36.html">
    <title>stick2</title>
    <link>https://w.atwiki.jp/funatti/pages/36.html</link>
    <description>
      //java

int fRate = 30;
float dt = 1.0/(float)fRate;

float E = 1.0; // Young&#039;s modulus [Pa]
float r = 0.01; // radius
float K = r*0.5; // moment of inertia
float rho = 0.1; // density[kg/m^3]
final int N = 200; // number of section
float dx = 0.1; // length of section

float[] y = new float[N];
float[] y_temp = new float[N];
float[] dy = new float[N];

void setup(){
  frameRate(fRate);
  size(500,400);
  noFill();
  stroke(100,50,20);
  strokeWeight(8);
  
  //initial condition
  for(int i=0;i&lt;N;i++){
    y[i] = 0;
    dy[i] = 0;
    y_temp[i] = 0;
  }
}

void draw(){
  int n=0;
  while(n++&lt;200){
    calc();
  }
  
  background(255);
  
  beginShape();
  for(int i=0;i&lt;N;i++){
    curveVertex(i*2 + 20,y[i] + 200);
  }
  endShape();
}

// calculation of powers
void calc(){
  for(int i=2;i&lt;N-2;i++){
    dy[i] = dy[i] - (y[i-2] -4*y[i-1] + 6*y[i] - 4*y[i+1] + y[i+2])
      *E*K*K*dt*dt/(rho*dx*dx*dx*dx);
    y_temp[i] = y[i] + dy[i];
  }    </description>
    <dc:date>2009-01-31T17:08:21+09:00</dc:date>
    <utime>1233389301</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/35.html">
    <title>棒の振動1</title>
    <link>https://w.atwiki.jp/funatti/pages/35.html</link>
    <description>
      *実行結果
-[[stick1.jar&gt;http://www20.atwiki.jp/funatti/?cmd=upload&amp;act=open&amp;page=棒の振動1&amp;file=stick1.jar]]

**操作方法
+JARファイルを実行したら、表示されている棒の近くをクリックします。
+クリックするとそこに力が加わり、棒が縦波を始めます。
+さらにクリックを続けると、どんどん力を加えることができます。

**解説
棒の縦波をシミュレートしています。ただし断面積は1、ヤング率はかなり大きめ、縦波以外の波は発生しないことを仮定しています。

*ソースコード
#include(stick1)

----    </description>
    <dc:date>2009-01-31T14:31:07+09:00</dc:date>
    <utime>1233379867</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/funatti/pages/34.html">
    <title>stick1</title>
    <link>https://w.atwiki.jp/funatti/pages/34.html</link>
    <description>
      //java

int fRate = 20;
float dt = 1.0/(float)fRate;

float E = 1.0; //Young&#039;s modulus [Pa]
float dm = 0.01; // mass [kg]
final int N = 100; //number of section

float[] e = new float[N]; //distortions(of x)
float[] e_temp = new float[N]; //distortions(of x)
float[] de = new float[N]; //distortions(of x)

void setup(){
  frameRate(fRate);
  size(500,200);
  noStroke();
  
  //initial condition
  for(int i=0;i&lt;N;i++){
    e[i] = 0;
    de[i] = 0;
    e_temp[i] = 0;
  }
}

void draw(){
  calc();
  
  background(255);
  
  for(int i=0;i&lt;N;i++){
    fill(e[i]*100+100,50,20);
    rect(i*4 + 20,100,4,8);
  }
}

// calculation of powers
void calc(){
  for(int i=1;i&lt;N-1;i++){
    de[i] = de[i] + (e[i-1] + e[i+1] - 2*e[i])*E*dt*dt/dm;
    e_temp[i] = e[i] + de[i];
  }
  
  for(int i=0;i&lt;N;i++){
    e[i] = e_temp[i];
  }
  
  //boundary condition
  e[0] = e[1];
  e[N-1] = e[N-2];
}

// mousePressed Event
void mousePressed(){
  if(mouseX&gt;=20     </description>
    <dc:date>2009-01-31T14:35:59+09:00</dc:date>
    <utime>1233380159</utime>
  </item>
  </rdf:RDF>
