Sema는 신호 합성, 기계 학습 및 기계 청취를 위한 라이브 코딩 미니 언어를 빠르게 프로토타입할 수 있는 놀이터입니다.
Sema는 추상적인 고급 언어와 보다 강력한 저급 언어를 모두 설계하기 위한 온라인 통합 환경을 제공하는 것을 목표로 합니다.
Sema는 일련의 핵심 설계 원칙을 구현합니다.
통합 신호 엔진 – 언어 및 신호 엔진 통합 측면에서 개념적 분할이 없습니다. 모든 것은 신호입니다. 그러나 모듈성, 재사용성 및 건전한 아키텍처를 위해 sema의 신호 엔진은 sema-engine 라이브러리로 구현됩니다.
단일 샘플 신호 처리 – 물리적 모델링, 반향 및 IIR 필터링과 같은 피드백 루프를 사용하는 기술을 지원하기 위한 샘플별 사운드 처리입니다.
샘플 속도 변환 – 하나의 주요 샘플 속도인 오디오 속도를 사용하여 신호 처리를 수행하는 것이 더 간단합니다. 종속 개체의 다양한 샘플링 속도 요구 사항은 변환기를 사용하여 업샘플링 및 다운샘플링을 통해 해결할 수 있습니다. 변환기 개념을 사용하면 단일 엔진 내에서 다양한 샘플링 속도(비디오, 스펙트럼 속도, 센서, ML 모델 추론)로 다양한 프로세스를 수용할 수 있습니다.
최소 추상화 – 신호 엔진에는 버스, 신디사이저, 노드, 서버 또는 언어 비계와 같은 높은 수준의 추상화가 없습니다. 이러한 추상화는 최종 사용자 언어 설계 공간 내에 있습니다.
Sema를 사용하려면 다음 종속성을 설치해야 합니다.
실행하려면 Sema를 Supabase 백엔드 에 대한 프로젝트 URL 및 API 키와 연결해야 합니다 .
npm
사용하여 sema를 빌드하기로 결정한 경우 다음 명령 목록을 따를 수 있습니다.
$ cd sema
$ npm install
$ npm run build
$ npm run dev
대신 Yarn 패키지 관리자를 사용하기로 결정한 경우 다음 명령 목록을 사용할 수 있습니다.
원사를 사용하려면:
$ cd sema
$ yarn
$ yarn build
$ yarn dev
노드 애플리케이션으로 sema를 실행하고 나면 브라우저의 다음 포트에서 이를 로드할 수 있습니다.
하드웨어 가속은 Tensorflow.js 모델 훈련 속도에 큰 영향을 미칩니다.
Chrome에서 활성화하려면 다음 단계를 따르세요.
Firefox에서 활성화하려면:
about:preferences
로 이동하세요.Sema는 Web Audio API Audio Worklets를 사용합니다. 그들의 성능은 CPU 전력 규모에 매우 민감한 것으로 보입니다. 음질 문제가 발생하는 경우 CPU 거버너를 성능 모드로 설정해 보세요. 예를 들어 우분투에서는
$ cpupower frequency-set --governor performance
Sema의 내부 문서는 사용자 학습 경험을 지원하는 것을 목표로 합니다. 이는 애플리케이션 내에 통합되어 있으며 다음 섹션으로 구성됩니다.
시작하기
운동장
라이브 코딩
기계 학습
언어 창조
Sema의 Wiki 문서는 기여를 지원하는 것을 목표로 합니다. Sema의 설계 및 구축 방법에 중점을 둡니다.
Sema의 아키텍처는 무엇입니까?
Sema는 웹 서비스를 어떻게 구현하고 사용합니까?
내 웹 서버에 Sema를 설정하는 방법은 무엇입니까?
Sema에 새 ML 라이브러리를 어떻게 추가하나요?
Sema에 새 위젯을 어떻게 만들고 추가하나요?
Sema에 내 문서를 어떻게 추가하나요?
Sema의 Svelte 매장은 어떻게 운영되나요?
Sema는 오픈 소스 프로젝트이며 기본 비전, 목표 및 구조가 여러분이 Sema에 기여하도록 동기를 부여할 수 있기를 바랍니다. 다음을 확인하세요.
Sema에 어떻게 기여하나요?
기여 중.md
개발을 위한 준비
세마 디버깅
디자인 가이드
베르나르도, F., 키퍼, C., 마그누손, T. (2021). 라이브 코딩 기계 학습을 위한 놀이터의 창의성 지원 평가, In: Baalsrud Hauge J., CS Cardoso J., Roque L., Gonzalez-Calero PA(eds) 엔터테인먼트 컴퓨팅 – ICEC 2021. ICEC 2021. 컴퓨터 강의 노트 Science, vol 13056. Springer, Cham. https://doi.org/10.1007/978-3-030-89394-1_38
베르나르도, F., 키퍼, C., 마그누손, T. (2020). 라이브 코딩 언어 생태계를 위한 신호 엔진, J. Audio Eng. Soc., vol. 68, 아니. 10, pp. 756-766. 도이: https://doi.org/10.17743/jaes.2020.0016
베르나르도, F., 키퍼, C., 마그누손, T. (2020). Sema를 사용하여 다원적이고 사용자 친화적인 라이브 코드 언어 생태계를 설계합니다. 제5회 라이브 코딩 국제 컨퍼런스, University of Limerick, 아일랜드 리머릭
베르나르도, F., 키퍼, C., 마그누손, T. (2019). 라이브 코딩 언어 생태계를 위한 AudioWorklet 기반 신호 엔진. 웹 오디오 컨퍼런스 2019 간행물, 노르웨이 과학기술대학교(NTNU), 노르웨이 트론헤임(웹 오디오 컨퍼런스 2019 최우수 논문상)