'Programming/C++'에 2개의 글이 있습니다.

[MFC] 리듬 액션 게임 자동 노트 생성

posted-at2012.11.12 13:07 :: posted-inProgramming/C++ :: posted-byNarrL

리듬 액션 게임 자동 노트를 생성하면서..
bass24 라이브러리를 사용하였고, 그 중에서도 특히 bass_fx를 사용하였다.

bass_fx는 bpm이나 beat등을 얻어오는데 사용하기 좋다.

BASS_FX_BPM_BeatDecodeGet를 주력으로 사용했으며, 
http://www.bass.radio42.com/help/html/7799e7ea-d193-3521-02af-6a3f9a3d3833.htm 
페이지에 자세히 나와있다.

wav파일의 파형을 그리는 부분은 bass라이브러리의 custloop 샘플을 참조하면 좋고
곡의 길이를 얻어오는 부분은 plugins를 참조하면 좋다.

공부한 부분을 상세히 적고 싶은데 너무 졸리다.. 언젠가 쓰겠지 -_-aa


출처 : http://roter.pe.kr/

로터와 프로그래밍

  1. guest icon안녕하세요2013.06.07 18:09

    5월 중에 이 티스토리를 알게 되어 다양한 정보 잘 읽고 있습니다.
    저도 요즘 BASS24를 이용하여 노트를 자동 생성하는데 흥미가 생겨
    열심히 코딩중에 있습니다. 그런데 그냥 BASS_FX_BPM_BeatDecodeGet만을 쓰니 동요는 그럭저럭 만족할 만한 노트를 얻을 수 있었으나 최신가요에서는 엉뚱한 노트가 나와 곤란을 겪고 있습니다. 혹시 조언 좀 얻을 수 있을까 코멘트 답니다...

[ffmpeg] Visual Studio에서 ffmpeg 사용하는 방법

posted-at2012.11.12 13:05 :: posted-inProgramming/C++ :: posted-byNarrL

Window환경에서 ffmpeg을 사용하기 위해 얼마나 삽질했던가...

 

아래는 ffmpeg shared library를 직접 컴파일 한것..(2012년 9월 16일 현재 최신 버전) + 에러나는 부분 조금 수정한 것.. int64니 뭐니 해서 에러 나는 헤더파일들을 좀 수정해줬다. 컴파일 하는건 msys, mingw등등 여러가지 써서 직접 했음..

 ffmpeg.zip

 

사용 법은.. C++에서 사용할때는 아래와 같이.. C에서 사용할 땐 extern "C"를 제거하고 사용 하면 된다.

 

#define inline _inline //이걸 제일 위에 써줘야 한다. 

 

extern "C" {
#include "include/libswscale/swscale.h"
#include "include/libavformat/avformat.h"
#include "include/libavcodec/avcodec.h"
}
#pragma comment( lib, "avcodec.lib");
#pragma comment( lib, "avformat.lib");
#pragma comment( lib, "avutil.lib");
#pragma comment( lib, "swscale.lib");

 

이를 위에 쓰고 컴파일 해주면 된다.

lib파일은 소스파일이 있는 경로에 같이 넣어주면 된다.

 

inttypes.h는 vs의 기본 include폴더에 넣어주면 됨.

 

extern "C" 생각 안하고 그냥 쓸려다가 1주일 삽질 한것 생각하면 맘이 아프다...ㅜㅜ


컴파일 시 ''UINT64_C': identifier not found'라고 뜬다면 아래의 구문을 common.h의 상단에 추가해야 한다.

#ifndef INT64_C

#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif

 

 

추가:

최신버전은 예전거랑 좀 다른 것 같다..

예전에는 av_open_input_file 이었던 메소드가 avformat_open_input 으로 바뀌어 있음..

이런게 꽤 되는 것 같다.. avcodec_init()도 사용 안되는 것 같고.. 흐음 공부할게 많구만.


출처 : http://roter.pe.kr/

로터와 프로그래밍