라이브 코딩

Live coding
A Study in Keith는 Andrew Sorensen의 즉흥곡의 뮤지컬 라이브 코딩 공연이다.

라이브 코딩([1]On-the-fly [2]programming이라고도 함)은 때마침 프로그래밍과 대화형 프로그래밍을 실행 [3]중인 프로그램의 필수적인 부분으로 만듭니다.

그것공연예술의 형태이자 소스 코드 작성과 즉흥적방식의 인터랙티브 프로그래밍 사용에 초점을 맞춘 창의성 기법으로 가장 두드러진다.라이브 코딩은 사운드 이미지 기반 디지털 미디어뿐만 아니라 조명 시스템, 즉흥 댄스 [4][5]및 시를 만드는 데 종종 사용됩니다. 그러나 알고리즘 [6]구성과 결합될 수 있지만, 컴퓨터 음악에서는 특히 즉흥곡으로 널리 퍼져 있습니다.일반적으로 소스코드 작성 과정은 컴퓨터 화면을 청중 공간에 투영함으로써 가시화되며 코드를 활성 연구 [7]분야로 시각화하는 방법이 있다.라이브 코딩 기법은 인터랙티브 아트 [9]설치를 위한 영화용[8] 사운드 제작이나 시청각 작업 등 성능 외에서도 사용됩니다.또, 컴퓨터간의 상호 접속에 의해서, 그룹 단위로 네트워크화된 이 관행을 실현할 수 있다.

라이브 코더의 수치는 라이브 코딩(통상, 「코드를 배우고 싶은 아티스트와 자신을 [10]표현하고 싶은 코더」)을 실행하는 사람, 또는 「프로그래머/퍼포먼스/컴포저」[2]인 Wang & Cook에 의한 것입니다.

라이브 코딩은 프로그래밍 관련 강의나 컨퍼런스 프레젠테이션에서도 점점 더 인기를 끌고 있는 기술로 마크 구즈디얼[11]의해 컴퓨터 과학 강의의 "베스트 프랙티스"로 묘사되어 왔습니다.

기술

라이브 코딩의 목적을 위해 다양한 기법이 개발되고 활용되고 있다.

시간의 표현과 조작

시간 기반 미디어의 구체적인 제공과 코드와의 라이브 상호작용은 프로그래밍 언어 설계에서 많은 새로운 개발과 사용을 이끌어냈다.명령형 서브시스템과 선언형 서브시스템의 상호 임베딩을 통해 SuperCollider[12] 런타임에 다시 [13]쓸 수 있는 불완전하고 잠정적인 사양을 허용하는 라이브러리를 구축할 수 있게 되었습니다.

ChucK 언어는 2002년에 "강력한 시간" 프로그래밍에 대한 접근방식을 도입하여 간결한 구문을 통해 정확한 타이밍을 제어 흐름에 포함시켰다.

"임시적 재귀"는 즉흥 프로그래밍 환경과 관련하여 처음 만들어진 용어입니다.프로그래밍 환경 내의 기술 요소가 압축기와 재귀 솔루션을 계속 찾지만 타이밍이 주요 문제였습니다.시간 경과에 따른 비동기 함수 재귀인 시간 재귀의 일반적인 형태는 어떤 이벤트 구동 시스템에서도 사용할 수 있는 반면, 즉석에서는 이 특정 설계 [14]패턴에 특히 중점을 두고 있으며, 이 패턴은 해당 플랫폼에서 동시성 아키텍처의 중심 부분이 됩니다.시간적 재귀는 SuperCollider에서 반복적으로 사용되었으며, 이후 플럭서스 환경에서 구현되었습니다.

시간 표현에 대한 또 다른 기능적 접근법은 Tidal 패턴 [15]DSL에 나타나 있는데, 이것은 기능적 반응형 [16]프로그래밍의 기술과 유사하게 시간에 따라 작동하는 조합기로 패턴을 나타냅니다.

다중 사용자 프로그래밍 및 공유 메모리

멀티유저 프로그래밍은 그룹 음악 제작의 맥락에서 발전해 왔으며, 이는 네트워크 밴드인 PowerBooks [17]Unplugged의 멤버들에 의해 개발되고 채용된 Republic 시스템의 오랜 발전을 통해 이루어졌습니다.Republic은 SuperCollider 언어에 내장되어 있어 참가자는 컴퓨터 네트워크에 배포된 라이브 코드를 공동으로 작성할 수 있습니다.즉석 [18]언어에서 사용되는 분산된 태플 공간 등 다른 언어에서도 유사한 노력이 있습니다.또한 Overtone, Imposed 및 Extempore는 임의의 수의 프로그래머가 특정 런타임 [19]프로세스에서 네트워크를 개입할 수 있는 다중 사용자 세션을 지원합니다.그룹 내 코드 작성 작업은 로컬 네트워크를 통해 같은 방에서 수행하거나 공통 서버에 액세스하는 원격 위치에서 수행할 수 있습니다.노트북 밴드, 노트북 오케스트라, 공동 라이브 코딩 또는 집단 라이브 코딩과 같은 용어는 로컬 또는 원격 방식으로 네트워크 라이브 코딩 관행을 구성하는 데 사용됩니다.

단체들

TOPLAP(Temporary Transnational Trastraffic Transdimensional) Organization of Live(Algorithm Audio Artistic) Programming은 라이브 코딩 환경을 중심으로 형성된 다양한 커뮤니티를 하나로 모으기 위해 2004년 2월에 결성된 비공식 조직입니다.[20]TOPLAP 매니페스토는 TOPLAP 준거 퍼포먼스에 대한 몇 가지 요건을 주장하고 있습니다.특히, 출연자의 화면을 투사하고 [21]숨기지 않도록 해야 합니다.

온 더 플라이는 2020년부터 라이브 코딩 연습을 촉진합니다.이는 크리에이티브 유럽 프로그램이 공동 출자한 프로젝트로 Hangar, ZKM, Ljudmila, Creative Code Utrecht에서 [22]운영되고 있습니다.

조사.

라이브 코딩을 탐구하기 위해 수많은 연구 프로젝트와 연구 그룹이 만들어졌으며, 종종 인문학과 과학을 연결하는 학문적 접근법을 취한다.라이브 코딩 시스템을 개발하고 보다 넓은 이론적 맥락에 새로운 분야를 포함시키기 위한 첫 번째 노력은 2005년부터 2008년까지 독일 연구 [23]재단의 자금 지원을 받아 연구 프로젝트인 Artistic Interactivity in Hybrid Networks에서 이루어졌습니다.

또한 라이브 코딩 연구 네트워크는 2014년 2월부터 2년간 영국 인문 예술 연구 위원회로부터 자금을 지원받아 심포지엄, 워크숍, 국제 라이브 코딩 회의(ICLC)[24]라는 연례 국제 회의를 포함한 다양한 활동을 지원하고 있습니다.

라이브 코딩 환경의 예

「 」를 참조해 주세요.

  • Algorave - 알고리즘에서 음악 및/또는 비주얼이 생성되는 이벤트(일반적으로 라이브 코딩됨)
  • 데모센—시청각 프레젠테이션(데모) 코딩에 관한 하위 문화
  • 탐색적 프로그래밍—요건과 구조를 이해하기 위한 방법으로 소프트웨어를 구축하는 관행
  • 인터랙티브 프로그래밍—소프트웨어 개발 시 라이브 코딩 사용 프로그래밍 관행
  • NIME - 음악 테크놀로지의 진보에 관한 학술적, 예술적 컨퍼런스. 때로는 라이브 코딩 퍼포먼스와 연구 프레젠테이션이 특징입니다.

레퍼런스

  1. ^ Collins, N., McLean, A., Rohuber, J. & Ward, A. (2003), "Live Coding in Laptop Performance", Organized Sound 8 (3) : 321 ~ 30 . doi : 10 . 1017 / S1355771803 000 30 X
  2. ^ a b Wang G. & Cook P. (2004) "온 더 플라이 프로그래밍: 코드를 표현형 악기로 사용(Using Code as a Expressive Musical Instruments), 2004년 NIME(New York: NIME, 2004년)에 관한 새로운 인터페이스에 관한 국제회의의 진행 중.
  3. ^ Alan Blackwell, Alex McLean, James Noble, Jochen Otto 및 Julian Rohrhuber, "라이브 코딩을 통한 협업과 학습 (Dagsthul 세미나 13382)", Dagsthul Reports 3 (2014), No. 9, 130–168.
  4. ^ 매그너슨, T. (2013년)뇌사경. 라이브 코딩 공연을 위한 음악 작품.라이브 2013에서제1회 라이브 프로그래밍 국제 워크숍
  5. ^ "Tech Know: Programming, meet music". BBC News. 2009-08-28. Retrieved 2010-03-25.
  6. ^ 콜린스, N. (2003) "2014-05-14 Wayback Machine에서 아카이브된 Generative Music and Laptop Performance", 컨템포러리 뮤직 리뷰 22(4):67-79.
  7. ^ 맥린, A., 그리피스, D., 콜린스, N. 및 위긴스, G. (2010).라이브 코드 시각화'Electronic Visualization and Arts London 2010.
  8. ^ Rohrhuber, Julian (2008). Artificial, Natural, Historical in Transdisciplinary Digital Art. Sound, Vision and the New Screen (PDF). Springer Berlin Heidelberg. pp. 60–70.
  9. ^ "Communion by Universal Everything and Field.io: interview". Retrieved 5 February 2013.
  10. ^ Bell, Sarah. "Live coding brings programming to life - an interview with Alex McLean". Retrieved 2 March 2016.
  11. ^ Guzdial, Mark (August 2011). "What students get wrong when building computational physics models in Python: Cabellero thesis part 2". Retrieved 5 February 2013.
  12. ^ James McCartney(1996), SuperCollider: 새로운 실시간 합성 언어, ICMC Proceedings, 1996.
  13. ^ Julian Rohrhuber, Alberto de Campo 및 Renate Wieser(2005) 알고리즘 - Just In Time Programming, International Computer Music Conference(바르셀로나), 2005, 페이지 455~458.
  14. ^ Sorensen, A & Gardner, H (2010) "시간을 가진 프로그래밍: ACM 스플래시 컨퍼런스 2010 진행 중"
  15. ^ McLean, Alex (2014). "Making programming languages to dance to: Live Coding with Tidal". In proceedings of the 2nd ACM SIGPLAN International Workshop on Functional Art, Music, Modelling and Design (PDF). Gothenburg.
  16. ^ McLean, Alex (2013-08-02). "Tidal homepage".
  17. ^ Rohrhuber, J., A. de Campo, R.Wieser, J.K. van Kampen, E. Ho 및 Hölzl(2007).편지 및 배포자 2016-03-03 웨이백 머신에 보관.2007년 지구촌 컨퍼런스의 음악.
  18. ^ 소렌센, A. (2010)네트워크 라이브 코딩 성능을 위한 분산 메모리입니다.2010년 국제 컴퓨터 음악 회의의 진행.
  19. ^ 소렌센, A. (2005)즉흥: 작곡과 연주를 위한 인터랙티브 프로그래밍 환경, 2005 호주 컴퓨터 음악 컨퍼런스 진행 중
  20. ^ Ward, A., Rohurber, J., Olofsson, F., McLean, A., Griffiths, D., Collins, N. 및 A. (2004)라이브 알고리즘 프로그래밍과 그 프로모션을 위한 임시 조직.Goriunova, O. 및 Shulgin, A. 편집자 read_me - 소프트웨어 예술과 문화.
  21. ^ "ManifestoDraft". Toplap.org.
  22. ^ "On-the-flly project". onthefly.space.
  23. ^ [1][데드링크]
  24. ^ "Live Coding Network". Gtr.ukri.org.

추가 정보

외부 링크