import org.jfugue.Player
import org.jfugue.Pattern

def player = new Player()
def pattern = null

pattern = player.loadMidi( new File("d:/work/midi/canon.mid"))

def list = pattern.toString().split()

(0..3).each {
    println list[it]

'Groovy/Grails' 카테고리의 다른 글

Cloud Foundry Community  (0) 2011.05.12
[Groovy] MD5 생성하기  (0) 2010.06.04
[Grails] HQL dynamic finder 사용법  (0) 2010.06.03
[Grails] 시작 포트 변경 방법  (0) 2010.06.03
[Groovy] URL encode/decode  (0) 2010.05.26
[MIDI] JFugue로 미디 플레이하기  (0) 2010.05.18
[MusicXML] 파일 읽어서 연주하기  (0) 2010.05.18


import java.security.MessageDigest

String getMD5( String msg) {
    def md5 = MessageDigest.getInstance("MD5")
   
    md5.update(msg.getBytes())
    byte[] md5sum = md5.digest()
   
    def ret = ""
   
    md5sum.each {
        ret += Integer.toHexString(it).toUpperCase()
    }
   
    return ret
}

println getMD5("gilbird")

  • Grails에서 생성한 GORM에 대한 쿼리는 dynamic finder로 원하는 데이터를 얻을 수 있다.
  • 아래 메소드들은 콘솔을 띄워서 연습하면 효과적이다.
    • grails console
  • 관련 메소드
    • find()
    • findAll()
    • findAll( query, param)
      • ex) User.findAll( “FROM User u WHERE u.id=:user_id”, [user_id:‘gilbird’])
    • findBy*()
    • findAllBy*()
      • LessThan, LessThanEqual
      • GreaterThan, GreaterThanEqual
      • Like, Ilike
      • NotEqual
      • Between
      • IsNotNull, IsNull
      • And, Or
    • list( option_list)
      • max, sort, order, ignoreCase, fetch, offset
    • listOrderBy*()
    • countBy*()
    • 복잡한 쿼리는 도메인 클래스의 withCriteria 클로저로 작성하면 된다.
      (참고: http://www.grails.org/doc/latest/guide/single.html#5.4.2 Criteria)

grails 프로젝트를 시작하면 포트번호가 디폴트로 8080이 된다.
값을 변경하는 방법으로 세가지가 있다.

  • 시작할 때 포트번호를 옵션으로 넘긴다.
    • grails –Dserver.port=9090 run-app
  • 프로젝트 혹은 시스템 설정을 변경한다.
    • /grails-app/conf/BuildConfig.groovy에 코드 추가
    • $HOME/.grails/settings.groovy에 코드 추가
      • grails.server.port.http=9090
println URLDecoder.decode( "%EA%BA%84%EC%98%A4")
println URLEncoder.encode( "꺄오")

import org.jfugue.*

def p = new Player()
def pattern = p.loadMidi( new File("d:/work/midi/canon.mid"))

p.play(pattern)

import org.jfugue.*

class MyAdaptor extends ParserListenerAdapter {
    Player myPlayer
    public MyAdaptor( Player p) {
        myPlayer = p
    }
    void keySignatureEvent( KeySignature keySig) {
        //myPlayer.play("C4")
        myPlayer.play(keySig.getMusicString())
        println keySig.getMusicString()
    }
}

def xml = new org.jfugue.MusicXmlParser()
xml.addParserListener(new MyAdaptor( new Player()))
xml.parse( new File( "d:/work/midi/elite.xml"))

+ Recent posts