Updates from 7월, 2012 댓글 스레드 토글 전환 | 키보드 단축키

  • punkt68 July 9, 2012 4:47 pm 퍼머링크 | 응답  

    MacBook a1181 무료대여해 드립니다. 

    MacBook a1181 무료대여해 드립니다.

    CPU: 1.83 GHz intel core Duo

    Ram: 1GB 667 MHz DDR2 SDRAM (창균사마 하사품)

    HDD: 60GB

    color LCD resolution: 1280 * 800

    OS: leopard (snow leopard도 설치가 될겁니다. 아마도…)

    작업용으로는 좀 빡쎄지만 전시용으로는 무난할거예요.

     

    대여비는 기본적으로 무료지만 영수증처리가 된다면 굳이 사양치 않습니다. ㅋ

    쓰다가 파손되도 변상하지 않으셔도 됩니다.   파손되면 곧바로 은퇴

    Advertisements
     
    • 정해종 7월 16, 2012 7:51 오전 퍼머링크 | 응답

      제가 대여해도 될까요? 맥북 잠시 쓸일이 있어서….o1o-4234-칠육구륙으로 연락주시면 고맙겠습니다.

      • punkt68 7월 16, 2012 11:55 오후 퍼머링크 | 응답

        아 넵. 저희 커뮤니티 내의 지인 중에 자비로 전시 하는경우에 빌려 드린다는 얘기 였지만. 어떤 분이신지? 어떤 용도로 쓰시려는지 여쭤봐도 될까요?

  • mortp April 26, 2012 2:47 pm 퍼머링크 | 응답
    태그: , ,   

    백년만의 글쓰기 

    이병무 선생님 특강때의 두서없는 필기를 공유합니다.

    제대로 알고있지 못했던 것 등, 개인적으로 필요했던 부분만 적어두었습니다.

    특강은 개인적으로 너무 좋았구요.

    그러나, 전혀 정리되어 있지 않으니 섣불리 스크롤하지 마세요!

     

    ================================================

    20120421

    <이병무 선생님 특강>

     

    <array와 list의 차이> : 둘 모두 순서가 중요한 collection

    ~ar = Array.new(3);

    ~ar.add(1); //넣을 수 있는 요소의 수에 제한이 있다

     

    ~ls = List.new;

    ~ls.add(1); //List는 원래 요소의 수에 제한이 없다.

     

    *array를 list처럼 쓰는 방법

    ~ar = ~ar.add(1);

     

    처음부터 갯수를 정해놓을 때에는 .newClear; 를 쓰는 것이 좋다.

     

     

    <반복과 관련된 메소드>

    그 중에 .do

    3.do({“hi”.postln}); //postln은 postln의 ‘receiver를 post 창에 줄바꿔 찍어라’는 명령

    3.do{| idx | idx.postln;}; //0, 1, 2까지 찍어주고, 마지막으로 receiver인 3을 찍는다.

     

     

    <반복을 이용한 소리만들기>

    Server.local.boot;

     

    {SinOsc.ar(440, mul: 0.3)}.play(s);

    {SinOsc.ar(440, mul: 0.3)}.play(Server.local);

    10.do{| idx | {SinOsc.ar(400*(idx+1), mul: 0.03)}.play;};

    [0, 1, 4, 7].do{| i, j | i.postln; j.postln;}; // i는 0, 1, 4, 7. j는 0, 1, 2, 3

     

    FreqScope.new(400, 300);

    s.scope;

     

    <Dictionary>: 순서가 없는 collection

     

    d = {“hi dic”.postln}

    a = Dictionary[\a -> d, \b -> 20];

    a.at(\a).value;

    \a가 숫자일 수도 있지만 거대한 펑션일 수도 있다.

     

     

    IdentityDictionary

    : Environment는 IdentityDictionary의 subclass다.

     

    Event

    : Environment의 subclass다. 소리를 내기 위한 속성들을 지니고 있는 일종의 IdentityDictionary.

    (freq: 1000, amp: 0.5).play; //고로 이것도 dictionary의 속성을 물려받았다.

     

     

    <Server 만들기>

     

    a = Server.new(“jongro”, NetAddr(“127.0.0.1”, 10000)) //port number는 아무거나 써도 좋지만 두 가지는 예약되어 있다.

    server port : 57110

    Server.internal.addr.port; //0

    Server.local.addr.port; //local host 는 주소가 있으나, internal 은 주소가 없다. 외부에서 명령을 주어 소리를 만드는 등의 일은 모두 localhost 서버에서 이루어 져야 한다.

    lang port : 57120

    NetAddr.langPort; //57120. 이것은 재부팅시마다 달라질 수 있다.

     

    Other applications sending messages to SuperCollider should distinguish between sending messages to the server or the language. Server messages are documented in the Server Command Reference and should be sent to the server’s port – s.addr.port – which is 57110 by default. Messages sent to the server will not be processed by any OSCresponder in the language.

    Messages from external clients that should be processed by OSCresponders must be sent to the language port, 57120 by default. Use NetAddr.langPort to confirm which port the SuperCollider language is listening on.

     

    외부에서 sc로 오는 메시지는 그것이 server(scsynth)로 가는 것인지, client(sclang)로 가는 것인지 구분되어야 한다. server로 직접 보내지는 메시지는 57110포트를 통해서, internal 이 아닌 localhost 서버로 보내지며, 이는 Server command 형태가 되어야 한다. 반면 client(sclang)으로 보내지는 메시지는 57120포트를 통해서 보내지며 이 둘(scsynth와 sclang)은 메시지를 주고받는 객체로서는 서로 영향받지 않는다.

     

    OSCresponder

    a.makeWindow; //서버 창을 만든다.

     

     

    *internal 서버에서 p를 누르면 노드의 상태를 보여주는 창이 뜬다.(3.5버전에서 추가된 훌륭한 기능)

    s.queryAllNodes; //같은 역할

     

    <Node>

    g = Group(s); //group 만들기

    r = Group(g); //group 안에 group 만들기

    {SinOsc.ar(mul: 0.5)}.play(target: g); //group g에 synth만들기

    {SinOsc.ar(mul: 0.5)}.play(target: r); //group r에 synth만들기

    nodeId로 synth를 제거하려면, s.sendMsg(\n_free, nodeId);

     

    <Bus>

    {In.ar(8, 1)}.play; // feedback!!!

    하드웨어에 연결된 버스(8 + 8) 이후 번호는 private bus라고 한다.

     

    {SinOsc.ar(mul: 0.5)}.play(s, 100);

    s.scope(2, 100); //number of channes, index

    {In.ar(100, 1) * SinOsc.ar(440, mul: 0.5)}.play(addAction: \addToTail);

    시그널은 head 에서 tail로 흐른다. 따라서 소스가 되는것이 위에, 그것을 받는것이 아래에 깔려야 한다.

     

    이 순서를 맞추기 위해서는,

    1) 실행 순서를 조절하거나,

    2) addAction의 속성을 주거나,

    3) head쪽, tail 쪽 그룹을 만들어 두고 소스는 head쪽 그룹에, 받는 쪽은 tail쪽 그룹에 넣어 생성하는 방법

    등이 있다.

     

     

    (크게보아서)<소리를 내는 두 가지 방법>

    1) 오실레이터 이용

    2) 버퍼에 녹음된 소리를 이용

    *오실레이터 역시 버퍼안에 특정 시그널 주기를 넣어두고 재생하는 것

     

    Buffer.freeAll; //존재하는 모든 버퍼를 free시킨다.

    b = Buffer.alloc(s, s.sampleRate * 4, 1);

    b.read(Platform.resourceDir +/+ “sounds/a11wlk01-44_1.aiff”, action:{|buf| {buf.plot}.defer; buf.play});

    b.plot;

     

    BufRateScale – samplerate converting의 역할

     

    <멀티 채널 셋팅>

    {[SinOsc.ar(300, mul: 0.4), SinOsc.ar(1000, mul: 0.2)]}.play;

    {SinOsc.ar([300, 1000], mul: 0.4)}.play;

    배열의 형태로 간단히 멀티 채널의 셋팅을 달리 할 수 있다.

    ({

    var sig;

    sig = PlayBuf.ar(1, b, BufRateScale.kr(b)*[0.5, -1], loop:1);

    LPF.ar(sig, 500);

    }.play;)

     

    <action, completionMsg>

    action은 function형식으로 써도 되지만, completionMsg는 Msg 형태로 주어야 한다.

    *function형태로 적되, .read 를 .readMsg 로 쓰면, function을 msg 타입으로 알아서 바꾸어 적용해 준다.

     

    a = Buffer.alloc(s, s.sampleRate * 2.0, 1, {| buf | buf.read(Platform.resourceDir +/+ “sounds/a11wlk01-44_1.aiff”)}); //안된다. function

    a = Buffer.alloc(s, s.sampleRate * 2.0, 1, {| buf | buf.readMsg(Platform.resourceDir +/+ “sounds/a11wlk01-44_1.aiff”)}); //된다. msg

    a = Buffer.alloc(s, s.sampleRate * 2.0, 1, [\b_read, a.bufnum, Platform.resourceDir +/+ “sounds/a11wlk01-44_1.aiff”]); //된다. msg

    a.free;

    a.plot;

    Buffer.freeAll

     

     

    <루틴>

    기본적으로 stream을 만들어 준다.

    (

    r = Routine{

     

    “first”.postln;

    1.yield;

     

    “second”.postln;

    2.yield;

     

    “third”.postln;

    3.yield;

     

    }

    )

     

    (

    q = Routine{

     

    “1st”.postln;

    1.yield;

     

    “2nd”.postln;

    2.yield;

     

    “3rd”.postln;

    3.yield;

     

    }

    )

     

     

    r.reset;

    r.next;  //Routine은, .next를 받으면 처음 .yield까지만, 다음 .next를 받으면 다음 yield까지만 일하는 스트림.

    r.play; //.play를 받으면 자동으로 처음부터 끝까지 진행한다. 그러나 .yield, .wait 의 receiver 만큼의 시간동안 중간에서 기다린다.

    *스트림(Stream) : .next를 받았을 때 값을 내보내는 연속적인 오브젝트. 아주 특별한 형태의 배열

     

    r.postln;

    r.asArray.at(1);

     

     

    <클럭(Clock)>

    sc에는 세 가지의 시계가 있다.

    SystemClock, AppClock, TempoClock

     

    SystemClock가 가장 정확하다.

    그러나 GUI에서는 AppClock이 시계로 쓰여야만 한다.

     

    *SystemClock, AppClock은 인스턴스를 만들 수 없다. 따라서 클래스 메소드를 이용해 사용한다.

     

    SystemClock.sched(0.0, {“hi”.postln}); //바로

    SystemClock.sched(2.0, {“hi”.postln}); //2초 후에

     

    (

    SystemClock.sched(0.0, {

    r.play;

    “first routine start”.postln;

    });

     

    SystemClock.sched(2.0, {

    q.play;

    “second routine start”.postln;

    });

    )

     

    r.reset; q.reset; //루틴 reset

     

    TempoClock은 인스턴스를 만들 수 있다.

    ->인스턴스를 만들어야 한다.

    t = TempoClock(2); //2는 1의 두 배 속도

     

    (

    t.sched(0.0, {

    r.play;

    “first routine start”.postln;

    });

     

    t.sched(5.0, {

    q.play;

    “second routine start”.postln;

    });

    )

    r.reset; q.reset;

    *GUI interface는 PD에서, 소리합성은 SC에서 하는 것을 연습해보자.

     
  • mortp February 22, 2012 8:50 pm 퍼머링크 | 응답
    태그: , diyebow,   

    동기부여가 될 지 모르겠지만, 

    이보우, 아주 잘 됩니다.

     
  • mortp February 12, 2012 2:38 am 퍼머링크 | 응답
    태그: FunSelfTech, opencv   

    혼자놀기 테크놀로지 

    심심하실까봐

    (후니다님 저는 예습 다 끝냈어요)

     
    • changgyun 2월 13, 2012 12:25 오전 퍼머링크 | 응답

      저도 조만간 합류!!! 함께해요!!! ㅎㅎㅎ

  • mortp January 6, 2012 10:51 am 퍼머링크 | 응답
    태그: ambiguous, , boxes, noise, ,   

    클로징 영상 입니다. 

    실은 철수하는 날 아침에 혼자 다시 한 번 찍었어요;;

    그냥 가기 아쉽기도 하고 전날 찍은 영상이 빛도 잘 안가려 지고 해서.

    흑흑

     
  • mortp January 4, 2012 11:57 am 퍼머링크 | 응답
    태그: , , ,   

    전시 클로징 티저입니다. 

    슈콜로 프로세싱을 컨트롤 해서, 그걸로 박스들을 트리거 합니다.

    공연 전체로 봐서는 사실 어떤 분들과 어떤 식으로 이루어 질지 저도 짐작이 잘 안되는;;;

    여유가 있으시다면 놀러오세요.

    7시 시작입니다.

     
    • ohnena 1월 5, 2012 4:16 오후 퍼머링크 | 응답

      뒤에 이루어진 즉흥 연주가 흥미로웠지만,

      강일님 공연이 너무 급하게 묻힌 것 같아 아쉬웠어요. ㅜ

  • meetceros December 29, 2011 1:12 am 퍼머링크 | 응답  

    근황까지는 아니지만 

    요즘 NodeJS라는 걸 공부중입니다. NodeJS는 서버사이드에서 작업가능한 자바스크립트인데요..(조금 과장해서 말하면.. 예전에 브라우져에서 경고창이나 띄우던 자바스크립트를 가지고 서버단에서까지 똑같은 언어로 쉽게 작업이 가능해졌다는 뜻입니다.)
    NodeJS는 처음에 아듀이노-웹 통신 관련해서 검색을 하다 알게 되었는데요..(아래 영상보시면 됩니다.) 이미 web개발 쪽에서는 많은 개발자들이 있더군요..

    아 그래서 본론으로 들어가면  NodeJS, OSC를 이용해서 web에서 supercollider와 통신을 해보려구요..

    • 사운드작업은 supercollider,
    • server-web 인터페이스는 NodeJS, OSC 이런식으로요..

    현재 상황은 NodeJS로 HelloWorld, 브라우져 간 채팅 정도는 이것저것 찾아가며 성공했는데 OSC가 들어가니 먼가 정신이 없습니다.

    본론이 너무 빈약하네요 ㅎㅎ  일단 이렇게 글이라도 써야 진행이 될거 같아서요 ㅎ

    앞으로 진행이 좀 되면 모임때나 글로 또 말씀 드릴께요~

     

     

     
  • mortp December 24, 2011 11:15 pm 퍼머링크 | 응답  

    다음주 화요일, 저녁 6시 소박한 오픈입니다. 

     

    장소는 6호선 상수역과 합정역 사이의 갤러리 요기가 입니다.

    소박하지만 재밌을 것 있는 전시였으면 좋겠습니다.

    ….

     

    ps, 12월 26일 돌아오는 월요일 저는 그곳에서 하루종일 설치를 하고 있을 텐데요,

    혹시 노력 품앗이를 조금 해주실 여유가 있으신 분이 계시다면 연락주세요ㅠㅜ

     

    어쨌든, 메리크리스마스!

     
    • joynimm 12월 26, 2011 5:58 오후 퍼머링크 | 응답

      아 오늘 일이 있어서 도와주지도 못했군요. 수고하시고 전시는 꼭 보러 가겠습니다.

  • mortp December 15, 2011 11:59 am 퍼머링크 | 응답  

    홍보활동 

     
    • joynimm 12월 15, 2011 4:28 오후 퍼머링크 | 응답

      커버 사진도 강일이형..
      프로세싱도 제일 앞이네요..
      최고…

      페북에도 올려요…

      최태맨씬가요? 그분은?

    • ohnena 12월 19, 2011 6:22 오후 퍼머링크 | 응답

      아..못간게 아쉽네요
      이제야 시험이 끝나서..T.T

  • mortp December 10, 2011 12:56 pm 퍼머링크 | 응답  

    pcb 

     

    으  pcb가 왔어요.

    개인적인 경사입니다.

    작동도 적당히 잘 됩니다만, 빵판에서도 그랬는데 특정 부위가 노이즈에 취약하네요.

    접지 같은것을 해주어야 할 것 같은데 어떻게 하면 될까요?

     
    • joynimm 12월 10, 2011 3:20 오후 퍼머링크 | 응답

      으 축하… 한가해지시면 제작기를 올려주시면 좋겠군요

      • mortp 12월 11, 2011 11:11 오후 퍼머링크 | 응답

        네 내년 1월 극초반에 올리겠습니다.

    • hoonida 12월 10, 2011 7:25 오후 퍼머링크 | 응답

      어 이글하실 줄아시거? 저도 분발해야겠군요..

      • morogado 12월 10, 2011 8:27 오후 퍼머링크 | 응답

        이글 정말 대중적이라서 정말 좋네요. 모두에게 희망을 주는 도구

        • mortp 12월 11, 2011 1:10 오전 퍼머링크

          이글은 대중적이나 pcb 제작 비용은 반대중적 인것 같아요 ㅜㅜ

      • mortp 12월 11, 2011 11:12 오후 퍼머링크 | 응답

        정환님과 1:1로 전화상담을 몇 번 했더니;;

c
새 글 작성
j
다음 글/다음 댓글
k
이전 글/이전 댓글
r
응답
e
편집
o
댓글 표시/숨기기
t
상위로 가기
l
로그인하기
h
도움말 표시/숨기기
shift + esc
취소