2013년 7월 26일 금요일

intelliJ에서 actionscript3 사용시 외부 파일 문제.

source code 안에서 [Embed]를 사용하는 방법도 있지만
리소스를 실시간으로 로딩하여 초기 기동시간을 앞당기고 싶어서
Loader를 사용하여 swf를 실시간 로딩하였으나
데스크탑에뮬/iOS/Android가 각각 다르게 작동.

    private var stageLoader:Loader;
..
    stageLoader = new Loader();
    stageLoader.load(new URLRequest("NoiseInfoSession01.swf"));

이런식으로 로드를 하려고 했더니

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.

오류 나신다.

Project structure 에서 source를 추가했다.

기본은 src 폴더만 잡혀있는데 오른쪽 tree에서 loader에서 부를 swf가 있는 경로인 flash를 찍고 상단에 그 상단에 Sources 라고 써있는 부분을 클릭하면 Source Folders에 추가된다.

하지만 이게 전부가 아니다.
이 상태로는 장치에서 돌렸을때 역시 누락이 발생해서 URL오류가 난다.
URL 경로가 잘못되었나 싶어서 봤더니 아니다. 아예 패키징할때 빠지는 현상이다.
Android 와 iOS 탭 각각에 똑같이 추가할 파일들을 Path to file or folder 목록에 넣어주자.
iPhone 5 대응용 Default-568h@2x.png 스플래시 파일도 동일한 요령으로 추가하면 된다.

보통 gitignore 할때 *.iml을 빼주곤 하는데
as3를 할땐 그래선 안된다. 위의 설정이 iml 파일안에 들어가므로 반드시 git 목록에 추가해놓자.

요약
1. 외부 파일은 Modules에서 Android/iOS 각각 추가
2. 데스크탑 에뮬을 위해 해당 폴더를 Sources에도 추가
3. iml도 형상관리

2013년 7월 3일 수요일

Renoise로 바닥부터 Sound Design (No Sample/No VST)

Renoise는 Ableton Live Standard 버전처럼 기본적으로 아무 악기가 없고 달랑 샘플러 하나가 전부인데 그마나 다행인건 멀티레이어라고나 할까.
샘플러만 있으면 사실 다 되지. 아날로그 웨이브 테이블을 최소단위로 넣어서 루프를 돌리면  되니까.
근데 그러면 무조건 폴리포니가 되어서 구조적으로 모노 신스는 구현이 불가능하다.
그것도 방법이 없는 건 아닌데 Bend 라든가 Glide 등등으로 하면 되니까.
그래도 모노 신스가 있었으면 좋겠는데 방법이 있더라.
http://forum.renoise.com/index.php?/topic/27225-renoise-native-monophonic-synthesiser/ 이 글을 보고 약간 충격을 받음.

이펙터만 있으면 역시 소리를 만들 수 있구나!
바로 시도에 들어감.

처음은 이런 상태. 나는 누군가. 여긴 어딘가.
키보드를 눌러도 아무 소리가 안난다.
ESC 눌러서 첫번째 트랙 맨위에 Z(C-4 00) 하나 눌러 놓고 일단 플레이.
일단 이렇게 해놓고 소리가 날 수 있게 한단 말이지.

그럼 먼저 제네레이터.
일단 1byte짜리라도 뭐가 있어야 시작을 할 수 있으니 빈 샘플을 만들자.
1byte 짜리 빈 샘플을 만든다.
당연히 소리가 안난다.

DC Offset을 만들어 00 인 상태를 바꿔보자.
퍽하고 클릭음이 생기면서 Master Scope 에 변화가 생겼다.
Meter도 생겼다.
그런데 이건 소리라고 할 수 없다.
RingMod(Ring Modulator)를 추가해보자.
오오 소리가 난다.
0인 경우엔 Ring Modulator를 적용해도 0으로 소용이 없지만 DC Offset으로 값을 변경한 후부터 Oscillator에 따라 파형이 생긴다.
기본적으로 440Hz의 음을 들을 수 있다.
무에서 유를 만들기는 했는데
Pitch도 Volume도 없다.

일단 Pitch부터 해보자.


Key Tracker로 Destination을 RingMod에 Frequency로 주면 피치가 변한다.
하지만 음계가 맞지 않는다.
당연하다. 12음계가 주파수대에 골고루 분포해 있는 건 아니니까.
후우. 이 부분이 노가다였나보다.
그래서 LFO로 한번 더 거쳐서 Custom 모드로 0~119(C-0~B-9:12x10)까지 매핑을 해보자.
A 4->440hz 기준으로 해서 한땀한땀 작업한다.
http://www.phy.mtu.edu/~suits/notefreqs.html
이야 근데 이걸 어떻게 입력했지;;;;
xml 열어서 입력했나 - -);;
뭐 그렇게 입력할 수 있긴하지.
이 단계는 뭔가 Lua Script Editor 같은 걸로도 될텐데 어쨌든 테이블이 있어야 되니까 노가다는 마찬가지.

마무리로 Velocity 하나 있으면 좋겠다.
Ring Mod 의 Amount 값을 Tracking 하면 된다.
Velocity Tracker를 꺼내자.
Range가 00~7F인 점에 유의. 왜냐면 MIDI Velocity가 0~127까지니까.
Square가 부우우웅 올라온다 ㅋㅋㅋㅋㅋㅋㅋ
난 역시 Square가 좋아.
누가 들어도 난 이 세상에 없는 기계소리야 라고 말하는 것 같은 뚜렷한 정체성이 느껴지거든. 게다가 싸구려 같고.