åçããç´ æ°ãæåèªèããã¢ããªä½ã£ãã
ä½ã£ããã®
ç®ã«ããæ°åãç´ æ°ãã©ããã£ã¦æ°ã«ãªã£ã¦ãããããªãã§ãããããããªããã§ãã«ã¡ã©ã§æ®å½±ããç»åä¸ã®æ°åãèªèãã¦ç´ æ°ãã©ããå¤å®ããã¢ããªãä½ãã¾ããã
使ãæ¹
ãã¡ã¤ã«é¸æãã¿ã³ãæ¼ãã¦å¤å®ãããã®æ°åãåã£ã¦ããåçãæå®ãã¾ãããã®ã¨ããåçãæ®ãããé¸ã¶ã¨ã«ã¡ã©ã§æ®å½±ããç»åãä¿åããã«ãã®ã¾ã¾ä½¿ããã¨ãã§ãã¾ããä¾ã¨ãã¦ãæªèªã¡ã¼ã«æ°åã表示ããã¦ããã¹ããã®ã¹ã¯ãªã¼ã³ã·ã§ããç»åã使ã£ã¦ã¿ã¾ãã
ã
ç»åãé¸æãããããã«ãµã¼ãã«éä¿¡ããæ°ç§ã§çµæãè¿ãã¾ãã1129ã83ãç´ æ°ã§ããï¼æ¥å¹´ã¯è¯ãå¹´ã«ãªããããã»ãã«ãæè¨ã®æ°åãè»ã®ãã³ãã¼ãæ®å½±ãã¦ããã£ã¨ãã¤ã§ãç´ æ°å¤å®ãããã¨ãã§ãã¾ãã便å©ã
ã ã
ã
ã
使ã£ãæè¡
ä¾ã«ãã£ã¦Reactã¨Cloud Vision APIã§ãã æ£ããå¤å®ã§ããæ大å¤ã¯9007199254740991 (Number.MAX_SAFE_INTEGER)ãç´ æ°å¤å®ã¯ãã¡ãã®check-primeã使ã£ã¦ãã¾ããã·ã³ãã«ãªè©¦ãå²ãæ³ã§ãããããã¤ã試ããä¸ã§ä»åã®ç¨éã«ã¯ãã£ã¨ãå®å®ãã¦ãã¦é度ãååã§ããã
ããã¾ãã
ã Â
ç´ æ°ã¬ã³ãºãGithub ã
åçããé»è©±çªå·ãæåèªèããã¢ããªä½ã£ãã
ä½ã£ããã®
ã«ã¡ã©ã§æ®å½±ããé»è©±çªå·ç»åãèªèãã¦é»è©±ããããããã¹ããç¨Webã¢ããªã§ãã
使ãæ¹
ãã¡ã¤ã«é¸æãã¿ã³ãæ¼ãã¦é»è©±çªå·ã®æ°åãåã£ã¦ããåçãæå®ãã¾ãããã®ã¨ããåçãæ®ãããé¸ã¶ã¨ã«ã¡ã©ã§æ®å½±ããç»åãä¿åããã«ãã®ã¾ã¾ä½¿ããã¨ãã§ãã¾ãã
ã
ç»åãé¸æãããããã«ãµã¼ãã«éä¿¡ããæ°ç§ã§çµæãè¿ãã¾ããç»åã®ä¸ã«é»è©±çªå·ã¨è§£éã§ããæååãããã°ç»é¢ä¸ã«ãªã³ã¯ã¨ãã¦è¡¨ç¤ºããã¾ãããã¾ãã¾ãªãã©ã³ããææ¸ãæåãããã¨ããæãã«èªèãã¾ãã
ã
ãªã³ã¯ãã¿ããããã¨çºä¿¡ãã¤ã¢ãã°ãåºã¦é»è©±ãããããã¾ã*1ãã¾ãã¯ç¡æã試ãã»ããããã
ã
ã
ã
ç»é¢ä¸ã®å
±æãã¿ã³ãã¿ãããã¦ããã¼ã ç»é¢ã«è¿½å ãã§ã¢ã¤ã³ã³ãä½ã£ã¦ããã¨ãã¤ãã£ãã¢ããªã®ããã«ããèµ·åã§ãã¦ä¾¿å©ã
Â
ã¦ã¼ã¹ã±ã¼ã¹
ãã¨ãã°ããªãã®æ´æ¿¯æ©ãå¤ä¸ã«æ°´æ¼ãããã¨ãããããããµãã¼ãæ¥è ã®é»è©±åä»ã¯10æ-17æãªã®ã ãããã§ããªãã¯ã¨ããããé£çµ¡å ã®é»è©±çªå·ãã¡ã¢ä»£ããã«åçã«æ®ã£ã¦ããã
ç¿æ¥ãå¤åå ã§ç©ºãæéã«æ¥è ã¸é»è©±ãããããã¨ãã¦ãããªãã¯ã¯ãã¨å°ãããªãã¨é©ãã¹ããã¨ã«ãiPhoneã¯åçã©ã¤ãã©ãªãè¦ãªããé»è©±ãããããã¨ãã§ããªãã®ã ãæè¿ã®iPadã®ããã«2ç»é¢åå²ãããã¨ãã§ãããã©ããªãã¨ããããã¨é»è©±ã®ãã¼ãããã表示ããã¨åçãé ãã¦ãã¾ãããããåé«ããã¥ã¼ãã³ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ãã©ã¤ã³ãããããä¸çã®é¸æãã人çã«ç²ããããªãã¯å¤©ãä»°ããæãã¤ãéãåªè©ã®è¨èãå«ã³ç¶ãããã¨ã ããã ã
ã
åçã«æ®ã£ãé»è©±çªå·ã«ããããå ´é¢ã¯ããã¨ããããã«æãã¾ããä¸è¨ã®ãããªå¤§å家é»ã®ãµãã¼ããèªè²©æ©ã§ååãåºã¦ããªããã©ãã«ã移åä¸ã«æ°ã«ãªãçæ¿åºåãè¦ãããã¨ãããã¬ãCMã®é»è©±çªå·ãªã©ãããããä½ãã®äºæ
ã§ãã®å ´ã§ã¯é»è©±ã§ãããã«ã¡ã©ã§ã¡ã¢ãã¦ããã¦å¾ã§é£çµ¡ãããããªç¶æ³ã§ããããã¦ãããã¯1åãããããã¶ããã使ããªããé»è©±å¸³ã«ç»é²ããã«ã¯ã¡ãã£ã¨èºèºãããããªçªå·ã§ãã
以åãå°ãæã¦ã¦ãã¤ãã¿ã¼ã§ä½ãè¯ãæ¹æ³ããªããåã£ã¦ã¿ã¾ããã
ãç·©åãiPhoneã§ãé»è©±çªå·ãæ¸ãããç´ã®åçãè¦ãªããé»è©±ãããæ¹æ³ã
â aike (@aike1000) 2018å¹´10æ12æ¥
ãã®ã¨ãçµå浩ããããããã ããã¢ã¤ãã¢ã¯ãå ¬å¼ã¡ã¢ã¢ããªã«é»è©±çªå·ãæ¸ãã¨èªåã§ãªã³ã¯ã«ãªããã¨ãå©ç¨ãã¦ãã¡ã¢ã«è²¼ãä»ããåçãè¦ãªããçªå·ãã¿ã¤ããããã¨ãããã®ã§ããã
ã§ãã¾ãããåçããã·ã§ã¢ã¡ãã¥ã¼ã§ãã¡ã¢ã«è¿½å ããã¦ãã¡ã¢å¸³ã«ç§»ã£ã¦ãåçè¦ãªããã¿ã¤ããããã¦çªå·ãã¿ããã
â çµå浩 (@hyuki) 2018å¹´10æ12æ¥
ãã®æ¹æ³ã§ããã°10æ¡ç¨åº¦ã®æ°åãçæè¨æ¶ããå¿
è¦ããªãã®ã§ããªã楽ã«ãªãã¾ããã¨ã¯ãããå
¨æ¡æã¡ç´ãã®ã¯ããå°ããªãã¨ããªããªããã®ãã
ã
ã
æè¿è©±é¡ã®Googleã¬ã³ãºã¯ãã«ã¡ã©æ åãåçããããã¹ããã¯ããããªãé«åº¦ãªå種æ
å ±ã®ç»åèªèãããããã§ããiPhoneã§ãGoogleãã©ãã¢ããªã®ä¸æ©è½ã¨ãã¦ä½¿ããã¿ããã§ãããã ããã®ããã«iOSæ¨æºã¨ã¯ç°ãªãåçã©ã¤ãã©ãªç®¡çã¢ããªãå
¥ããã®ã大仰ãªæ°ããã¾ãã*2
ã
ã
ã¤ã¾ããã¼ãããã»ããã®ã¯é»è©±çªå·ã ãèªèããGoogleã¬ã³ãºã®åæ©è½çãªã®ã§ãããããªããã§ãé»è©±çªå·å°ç¨Googleã¬ã³ãºãã©ãï¼æãããããªã®ã§ä»®ç§°ï¼ããç¥ãã¦ãé»è©±ã¬ã³ãºï¼ä»®ï¼ããä½ãã¾ããã
ã
ã
ã
使ã£ãæè¡
Reactã¯ãã¾ããªãã¨ãããåå¼·ä¸ãªã®ã§ã¨ãããã使ã£ã¦ã¿ãæããæ©è½ã追å ãããã³ã«è¤éã«ãªã£ã¦ããã¢ããªããDOMã£ã½ãåä½ã§ã³ã³ãã¼ãã³ãåãããã¨ã§èãããã¨ãã·ã³ãã«ã«ä¿ã¤ãã¨ãã§ããã®ã¯æ £ããã¨å¿«é©ã§ãããæ £ããã¾ã§ã«3å¹´ãããã¾ãããã
Cloud Vision APIã¯ãGoogleã®æ©æ¢°å¦ç¿æè¡ã§ç»åã«ä½ãåã£ã¦ããããèªèãã¦ããããã¡ããã¡ããããAPIãä»åã®ã¢ããªã¯Cloud Vision APIã«ã¬ã¯ãã¤ããã ãã®200è¡ãããã®ã·ã³ãã«ãªããã°ã©ã ã§ãã APIã«éãå¦çã¯ãã®è¾ºã®è¨äºãåèã«ã³ãããã¼ãã®äººçã ãããã³ããã Â
let body = { requests: [ {image: {content: base64string}, features: [{type: 'TEXT_DETECTION'}]} ] }; let xhr = new XMLHttpRequest(); const url = 'https://vision.googleapis.com/v1/images:annotate?key='+key; xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/json'); const p = new Promise((resolve, reject) => { xhr.onreadystatechange = () => { if (xhr.readyState !== XMLHttpRequest.DONE) return; if (xhr.status >= 400) return reject({message: `Failed with ${xhr.status}:${xhr.statusText}`}); resolve(JSON.parse(xhr.responseText)); }; }) xhr.send(JSON.stringify(body));
ã
èªèçµæã¯JSONã§è¿ã£ã¦ãã¾ããæççãªè¨èã®åã端ãå¤ãã®ã§ãããããæå³ã®ããåèªãè¦ã¤ãåºãã®ãè ã®è¦ãã©ããã§ããããã§ã¯ãæåã«æ£è¦è¡¨ç¾ã使ã£ã¦ãæ°åããã¤ãã³ãã«ãã³ãã¹ãã¼ã¹ã並ãã§ãããé»è©±çªå·ã£ã½ãæååã¨å¤æãã¦æ½åºãã¦ã次ã«æ½åºããæååããããã«æ°åã ãæãåºãã¦10ã11æ¡ãªãé»è©±çªå·ã¨æçµå¤æãã¦ãã¾ãã
const arr_annotations = json.responses[0].textAnnotations; const tel_numbers = []; arr_annotations.forEach((item) => { // é«éåã®ããã«çãããæååã¯ããã§ç¡è¦ãã if (item.description.length >= 10) { const str = item.description; // æ°åããã¤ãã³ãã«ãã³ãã¹ãã¼ã¹ã®é£ç¶ãé»è©±çªå·ã¨ã¿ãªã const match_str = str.match(/[\d\-() ]+/g); // é»è©±çªå·ãåå¨ããã if (match_str !== null) { // é»è©±çªå·ãè¤æ°åå¨ããå ´åãèæ ®ãã¦ã«ã¼ã match_str.forEach((item) => { // ãã¤ãã³ãã«ãã³ãã¹ãã¼ã¹ãåé¤ãã¦æ°åã®ã¿ãå¾ã const num = item.replace(/[-() ]/g, ''); // æ°åã®ã¿ã§10ã11æ¡ã®ãã®ãé»è©±çªå·ã¨ãã¦é åã«ãã if ((num.length >= 10) && (num.length <= 11)) { tel_numbers.push({str:item, num:num}); } }); } } });
ã
æ°åã®é ã«âtel:"ã¨ããæååããã£ã¤ãã¦ãªã³ã¯ã«ããã¨é»è©±ãããããªã³ã¯ã«ãªãã¾ãã
const hash = {}; tel_numbers.forEach(item => { // éè¤ãã§ã㯠if (!hash[item.num]) { hash[item.num] = true; const parent = document.querySelector('#resultarea'); const li = document.createElement('li'); const a = document.createElement('a'); a.innerText = item.str; a.href = 'tel:' + item.num; li.appendChild(a); parent.appendChild(li); } });
ããã¾ãã
ã Â
é»è©±ã¬ã³ãºãGithub ã
ã¯ã½ã¢ã㪠Advent Calendar 2018
ã
ã
ã
ã
- åºç社/ã¡ã¼ã«ã¼: 5pb.
- çºå£²æ¥: 2018/09/20
- ã¡ãã£ã¢: Video Game
- ãã®ååãå«ãããã°ãè¦ã
*1:é£ç¶ãã¦å©ç¨ããã¨ããã®Webãµã¤ãããèªåçã«é»è©±ãããããã¨ã¯ç¦æ¢ããã¦ãã¾ããã¨ãããã¤ã¢ãã°ãåºããã¨ãããã¾ããããã®å ´åã¯ãé話ã許å¯ãããã°çºä¿¡ã§ãã¾ã
*2:追è¨ï¼ãã®è¨äºãæ稿ãã3æ¥å¾ã«iOSåãGoogleã¬ã³ãºã®æä¾ãéå§ããã¨å ¬å¼ã¢ãã¦ã³ã¹ãããã¾ãã https://japan.cnet.com/article/35130001/ é å¼µã£ã¦ä½ã£ãã¢ããªã3æ¥ã§å½¹ç®ãçµããæ°æã¡ãçããã¡ãã£ã¨ã§ããã®ã§æ³åãã¦ã¿ã¦ãã ãã
ãã³ã¯ãã³ã§ãä½ã®åãã«ãããªã3Dãã³ãã§ã¼ãã
WebAudio Web MIDI API Advent Calendar 2016ã®19æ¥ç®ã§ãã
ã
ãã£ãã¡ãªäººã®ããã®ãã¢ãã¼ã¸ãªã³ã¯ãã¹ããï¼ã¤ã¤ãã³ã§èãã¦ã°ã«ã°ã«æ©ãåã£ã¦ãã ããã
http://aikelab.net/apan/
ã
Web Audio APIã§ã¯ã左右ã ãã§ãªã3Dã®ãã³ãç¨æããã¦ãã¾ããã¤ã¾ãé³ã®å®ä½ãä¸æ¬¡å
çã«é
ç½®ãããã¨ãã§ãã¾ãã
ãã¦ããã£ãã3Dãã³ãªã®ã§ãã¹ããã®å é度ã»ã³ãµã¼ã使ã£ã¦ãè´ã人ã®ä½ã®åãã«ããã空éçã«é³ãé
ç½®ãããããã«ãã¦ã¿ã¾ããããã¤ã¾ãããã¨ãã°ã¤ã¤ãã³ã§é³æ¥½ãè´ããªãã横ãåãã¨ãããã¾ã§å·¦å³ããèããã¦ããé³ãåå¾ããèããã¦ãããã¨ãããããªãã¨ã§ãã
ã
ソースコードã¯ãããªæãã«ãªãã¾ãã
ã¾ãä½ã¯ãªãã¨ããªã¼ãã£ãªã³ã³ããã¹ãã®ä½æã
var ctx = new (window.AudioContext || window.webkitAudioContext)();
Playerã¯èªä½ã®BufferSourceNodeã©ããã¼ã§ãã詳ããã¯player.jsãè¦ã¦ãã ããã
var player = new Player(ctx, 'sound/apan.mp3');
ãã£ã³ãã«ã¹ããªãã¿ã¼ãã¼ãã§ã¹ãã¬ãªã½ã¼ã¹ã®å·¦chã¨å³chãå¥ã ã«åãåºãã¾ãã
var splitter = ctx.createChannelSplitter(2);
ãã³ãã¼ãã¼ãã§å·¦chã®é³ã¨å³chã®é³ãä¸æ¬¡å 空éã«é ç½®ãã¾ãã
var panL = ctx.createPanner(); panL.panningModel = "HRTF"; panL.setPosition(-1, 0, 0); var panR = ctx.createPanner(); panR.panningModel = "HRTF"; panR.setPosition(1, 0, 0);
ãã¼ãå士ã®æ¥ç¶ã¯ãããªæãã
// player ----splitter // ---- PanL ---- destination // ---- PanR ---- destination player.connect(splitter); splitter.connect(panL, 0); splitter.connect(panR, 1); panL.connect(ctx.destination); panR.connect(ctx.destination);
ãã³å転ç¨ã®setAngleé¢æ°ã§ããè§åº¦ãã©ã¸ã¢ã³ã§åãåã£ã¦ãã³ãã¼ãã¼ãã®ä½ç½®ãY軸ãä¸å¿ã«å転ãã¾ãã
var setAngle = function(theta) { var sn = Math.sin(theta); var cs = Math.cos(theta); panL.setPosition(-cs, 0, sn); panR.setPosition(cs, 0, -sn); }
å é度ã»ã³ãµã¼ã®ã¤ãã³ãå¦çãå é度ã»ã³ãµã¼ã¯alphaãbetaãgammaã®ï¼ã¤ã®å¤ã§è¡¨ç¾ãããã¹ããã縦æã¡ããã¨ãã®Y軸å転ã¯alphaã«å¯¾å¿ãã¾ããå é度ã»ã³ãµã¼ã®å¤ã¯åº¦ãªã®ã§ã©ã¸ã¢ã³ã«å¤æãã¦ããåè¿°ã®setAngleé¢æ°ã«æ¸¡ãã¦ãã¾ãã
window.addEventListener("deviceorientation", function(e){ if (e.alpha) { setAngle(e.alpha * Math.PI / 180); } });
ã
ãã¢ãã¼ã¸ã¯ãã¡ãã§ãã
http://aikelab.net/apan/
ã¹ããï¼ã¤ã¤ãã³ã§åçãã¾ãã
ãããªå§¿å¢ã§ã¹ãããæã£ãã¾ã¾ã°ã«ã°ã«æ©ãåã£ã¦ãã ããã
ã½ã¼ã¹ã³ã¼ãã¯ãã¡ãã
https://github.com/aike/AcceleroPanner
ã¡ã¼ã´ã§åé£è¡å ·ã®ããã¸ã§ã¯ãã«åå ãã話
ãã¡ã¼ã´ã§ãè¦ã«ãããã¨æã£ãã®ã¯ã2014å¹´ã®å¤ã5å¹´å¤ããä¼ç¤¾ãè¾ãã¦ããã¦ããããã©ãããããã¨ããã¨ãã ã£ããå
«è°·å彦ããã®OpenSkyããã¸ã§ã¯ããåæµ·éã§åãã¦å
¬éãã¹ãé£è¡ããããªãã¨ãããã¨ãèãã¦ãç¹æ¥ã¹ã¼ãã¼ã«ã ã¤ã«ä¹ã£ã¦ãããããã¹ã«ã¤ãã¼ã¯ã¾ã§ãããã¨ã«ãããã¨ããããç¾å°ã«å°çããããããã天åããããããã®æ¥ã®ãã©ã¤ãã¯ä¸æ¢ã«ãªã£ããéãã¤ãã¦ããªãã
ã
ããã®ä»£ããå±ç¤ºãããæ©ä½ãéè¿ã§ã¤ã¶ãã«è¦³å¯ãããã¨ãã§ãããM-02Jã¨ããæ£å¼å称ããã®ã¨ãç¥ã£ããé¢ããã¨ããããè¦ãã¨ç½ããªããããªæ©ä½ã®æ²ç·ã«ç®ã奪ããããã®ã®ãç´°é¨ã¯ãã¼ã ã»ã³ã¿ã¼ã«ãããããªé¨æã ã£ãããèªè»¢è»ç¨ã®ãã¼ãã®ãããªãã®ããã«ã¯ããè£ä¿®ãã¼ãã§ãããã¤ããç¡éª¨ãããã¦ã·ã«ã¨ãããããã©ã¡ããã¨ããã¨ããã¯ãã¦ã«ã ãã¢ã¯ã»ã«å¶å¾¡ã«ããã£ã¦ã¯é³æ¥½ç¨ãããµã¼ã®ãã§ã¼ãã¼ã§ã0dBã¾ã§ä¸ããã¨ã¸ã§ããã¨ã³ã¸ã³ãå ãããæ代è証ãç¡è¶è¦è¶ãªãã¯ããã¸ã¼ã®å¡ã ã£ãã
ã
ã
ã
ãï¼é±éå¾ãå
«è°·ããããã¡ãã»ã¼ã¸ãå±ããã
ãå
æ¥ã®ã«ã¡ã©ãæ©ä½ã«åãä»ãã¦æ®å½±ãã¾ãããï¼ã
ãå
¬éé£è¡ããããªãããã¯ãã ã£ãæ¥ã空ã®ç«¯ããç¾ãã¦å対å´ã®ç©ºã¸æ¶ãã¦ããM-02Jãæ®å½±ãããã¨ãç¹æ®ãªå
¨å¤©çåç»ã«ã¡ã©ãæã£ã¦ãã£ãã®ã ããããå°ä¸ããã§ã¯ãªãæ©ä¸ããæ®å½±ã§ããã¨ã¯ã
ã
ãæ©éã次ã®é±ãã¼ã ã«åæµãããæ7æãã¡ã³ãã¼å
¨å¡ãéãã¦ããªã¼ãã£ã³ã°ãé©ãããã¨ã«ããã«æ©ä½ã®ç§»åè£å©ãé£è¡è¨é²ã¨ãã£ã責任ããå½¹å²ãã¾ãããããå¾ããç¥ã£ããã¨ã ããä»ã®ã¡ã³ãã¼ãååå ã2åç®ãªã©ãå¤ãã£ãããã ã
ãããªã¼ãã£ã³ã°ãçµããã¨æ¬¡ã¯ã¨ã³ã¸ã³ã®è©¦åãä¸ãä¸ã®ã¨ãã®ããã«ãå°ãé¢ããã¨ããããæ¶ç«å¨ãæã«å¾
æ©ãããã¢ãã¡èª¿ã®æ©ä½ããç°çãªçç¼é³ãé¿ããæ®æ®µã¯ã°ã©ã¤ãã¼ã¨ãããã©æ©ããããªããã®ã©ããªé£è¡å ´ã§ãã¸ã§ããã¨ã³ã¸ã³ã¯ç°æ¬¡å
ã®é³ã ãå°é³´ãã®ãããªãµãã½ããã¯ã¨é«éå転ããéå±é³ãã¤ã¤ã¼ããããã¦ãã¦ãé è骨ã«é¿ããããé³ã«æèããã£ããé ã®ãã¦ãããããªæ°åã«ãªãããã¾ã ã«å®æã®ããã¥ããå
æ¯ãããã¾ã£ã¦ç¾å®ã¨SFã¨ãå°ããã¤èãã¦ãããããªæè¦ãå³ãã£ã¦ããã
ã
ã
ããã£ã2å¹´åãªã®ã«å
¨å¤©çåç»æ®å½±ç°å¢ã¯ä»ã¨ããªãç°ãªããå°ç¨ã®ã«ã¡ã©ãªã©ã§ã¯ãªãã6å°ã®GoProã«ã¡ã©ã3Dããªã³ã¿ã§è£½ä½ãããªã°ã§åºå®ãããã®ã ãããããWi-Fiæ¥ç¶ã®ãªã¢ã³ã³ããæä½ãããããã¦ãã²ã¨ã¤ãããé»æ³¢ãå±ãããªã¢ã³ã³ã«åå¿ããªãã®ã§ç®è¦ç¢ºèªãã¦æåã§é²ç»éå§ãããæ°ãéãããã¡ã«ãæé¡ã使ã£ã¦ç¢ºèªããããæ ç»ç¨ã®ã«ãã³ã³ã¢ããªã§åå³ãå
¥ããããã¨ãã¦ãã¦ããã¾ã£ã¦ããã
ã
ãæ®å½±ããæ åã¯ãã®æ¥ã®ãã¡ã«ã¹ãã£ããã³ã°ããã¹ãé£è¡ã¯æ9æã«ã¯çµããã®ã§ãæ¼ã®ç©ºãæéãå°±å¯åã®å¤éã6æ¬ã®åç»ãå°ç¨ã½ããã§ã²ã¨ã¤ã«åæãããä½æ¥ãã¦ããã£ããã¨ã ããè¤æ°ã«ã¡ã©æ åã®åæå å·¥ã¯ãè³è¿è·é¢ããå°å¹³ç·ã¾ã§æ ãè¾¼ã空æ®ã«ã¯ãã¾ãåãã¦ããªãããã ããã¤ãããã«åããã¦åæããã¨é ãæ¯è²ã®è¼ªéãããã¦ãã¾ãããã¨ãã£ã¦é è·é¢ãåãããã¨ä»åº¦ã¯ç¿¼ç«¯ã®æ åããããããã£ã¨ãã¤ãªãããç®ç«ããªããã¤ã³ããæéãããã¦æ¢ãã¦ãããå
¨ãã©ã¤ãåãç¿æ¥ã«ç¢ºèªã§ããããä½æ¥ãããã¨ãªãã¨ãã£ããå¿ããã
ã
ãåç»ã®ç¢ºèªããã¼ãPCã§è¦ãã ãã§ã¯ååä¼ãããªãã®ã§ãããã¨ãã¯Oculus Riftãæã¡è¾¼ã¿ãããã¨ãã¯ãã³ã¹ã³ã¨èªä½ã¢ããªã§å³æ¥ç¢ºèªã§ããããã«ããã
ã
ãã
ããã®ã·ã¼ãºã³ã®æçµæ¥ãããã¼ã³ã®æ縦ãä»»ããããããã¼ã³æ®å½±ã¯ãã¼ã ã¨ãã¦ãåãã¦ã ã£ãã®ã§ãã¾ãå¹çããæ®å½±ãããã¨ã¯ã§ããªãã£ãããããã§ãã¯ã³ã«ãããM-02Jãé£ã³ç«ã¤æ§åãä¸ç©ºããã¨ããããã¨ãã§ããã*1
ã
ããã®ããã¸ã§ã¯ãã«åå ããä¸ãã¨ã¦ãèå³æ·±ãè¦ã¦ããã®ã¯ãå
«è°·ããã®ããã¸ã§ã¯ãéå¶ããã¼ã éå¶æ¹æ³ã ã£ãããã©ã³ãã£ã¢ãã¼ã¹ã®ã³ãã¥ããã£ã¨ãããã¨ã§ããªã¼ãã³ã½ã¼ã¹ããã¸ã§ã¯ãã®ãããªããããã¤ãªããã«è¿ããã¨ã¯ããããªã«ããèªç©ºæ©ãªã®ã§å¤§ããªãéãåãããã¹ããã£ãã人ãæ»ã¬ããããã£ãä½æ¥ã®ä¸ç«¯ããåãã¦ä¼ã£ãã°ããã®å¤§å¦çã«ãã©ãã©ãæ
å½ããã¦ããã
ããã©ã³ãã£ã¢ãã¼ã¹ã ã¨ã¹ãã«ã¿å¼ã«ã¯ãããªããä¸å¯§ãªè¨èã§æ確ã«æ示ããããæä¹å§¿å¢ã«ãªã£ãå¾ã¯ç´°ããæ示ã¯åºããªãã®ã§ãã¡ã³ãã¼ããããèªå¾çã«åãå¿
è¦ããããããã«ã¯700mã»ã©é¢ãããã¤ã¯ãªãå´ã¨ã©ã³ãã£ã³ã°å´ã§ï¼ã¤ã®ãã¼ã ãç¬ç«ãã¦æ£ããæ©è½ããå¿
è¦ããããå
«è°·ããã¯ãã¡ã³ãã¼ã®ã¹ãã«ãè¦æ¥µããä¸ã§å
¨é¢çã«ä¿¡é ¼ãã¦æ
å½ãä¾é ¼ãããããã§ãçµé¨ãæµ
ãã¨ãã¹ã¯ããã®ã§ãè¦æã«ã¯é¢æ±ããå¼ãã ããã©ã³ã¹ã¿ãããé
ç½®ãããã
ãã¾ããå©ç¨ããã¦ãããå種æ½è¨ãã³ã©ãã¬ã¼ã·ã§ã³å
ã¨ä»ãåãã¨ãããä¸æ¹çãªç«å ´ã«ãªãã®ã§ã¯ãªããç¸æå´ã«ãã¡ãªããã®ããããã«ãã¦ãè¯ãé¢ä¿ãé·ãç¶ããããããã«ãããå¨ãã®äººãã¡ã¨ãäºãã«ãªã¹ãã¯ãããé¢ä¿æ§ããããããªæéã§å®ã«ããã¿ã«ä½ãä¸ãã¦ãã£ã¦ãã¾ãããã®ãããã®ç«ã¡åãæ¹ã®ç§å¯ã«ã¤ãã¦ä½åº¦ãæ¬äººã«èãã¦ã¿ãã®ã ããå¶ç¶ãã¨ãããåºä¼ãã大åã«ãã¨ãããã¤ãæ®éã®è¨èã§ããããã¦ãã¾ããããããã絶対æ®éã®ã¹ãã«ã§ã¯ãªãã¨æãããã¶ãããããã§ããã°ä»é ã¿ããªã空ãé£ãã§ãã
ã
ãM-02Jã¯å°é¢ã«æ ãå½±ãéç¾å®çãªãããç¾ããããã®å½±ãè¦ãéããå
«è°·ããã¯å®å
¨ã«é³¥ã ãåããã®ããã¸ã§ã¯ãã«åå ãã¦æ®å½±ããå
¨å¤©çæ åã¯ããã³ã¹ã³ã¢ããªã®ããã¿ã¯ãã2ãã§è¦ããã¨ãã§ããã®ã§ããã²èªåã®ç®ã§ç¢ºèªãã¦ã»ããã
ããããªOpenSkyããã¸ã§ã¯ãã§ãããã2015年以éã¯åå ã§ãã¦ããªããæéçã«é½åãã¤ããªãã£ããã¨ããã®ãç´æ¥çãªçç±ã§ã¯ãããæ¬å½ã®çç±ã¯ãå «è°·ãããè¦ã¦ããªã«ãã²ã¨ã¤èªåã®å¤§ããªããã¸ã§ã¯ããå§ããããªã£ã¦ãã¾ã£ãããã ã人éã¨ã³ã³ãã¥ã¼ã¿ãèãåãSFãå®ç¾ããããã¸ã§ã¯ãããã®ããã«åããªãã大å¦é¢ã«å ¥ããªãããåæ¥ã¯ãã¹ã¦ç 究ã®æéã«ãã¦ãããã«ããããªã«ãããææ¢ãã®ç¶æ ãªã®ã§ã10年以ä¸ããããããããªãã
ã
ãOpenSkyããã¸ã§ã¯ãã®æ¹ã¯ãä»å¹´ç¡äºç®æ¨ã ã£ãå ´å¨é£è¡ãæåããã¦ãããã¯ã©ã¦ããã¡ã³ãã£ã³ã°æ¯æ´è åãã®ãã¹ããã©ã¤ãå ±åä¼ãéããããã®ä¼å ´ã§ä¹ ãã¶ãã«å «è°·ããã¨ãä¼ããããã¨ãã§ãããããã¸ã§ã¯ãã¯åãåå ãã¦ããã¨ãã«ããã¹ã¦ãããã«å éãã¦ãããã¨ã³ã¸ã³åºåãåã«ãªãããã£ã¨éè§ã«ä¸æãã¦ããããã¦ã·ã«ã®ãã¼ãæ²ã®çæ¼å¥ã«ä¹ãã¦ãç³ç©å¹³éã®ã¯ããä¸ç©ºã§å «è°·ããã¯èªç±èªå¨ã«é£ãã§ããã
ã
ã
- ä½è : å «è°·å彦,çªè°·åé¦,ãããããã¨ã
- åºç社/ã¡ã¼ã«ã¼: å¹»å¬è
- çºå£²æ¥: 2013/09/12
- ã¡ãã£ã¢: åè¡æ¬
- ãã®ååãå«ãããã° (9件) ãè¦ã
*1:H ZETTRIOã®MVãWonderful Flightãã§ä½¿ããã¦ããããã¼ã³æ åã¯ãã®ã¨ãæ®å½±ãããã®ã ããã§ã https://www.youtube.com/watch?v=-mlI_hZAS6U
ãã©ã¦ã¶ã§MMLãæ¼å¥ããChromeæ¡å¼µä½ã£ã
ãã©ã¦ã¶ã§MML(Music Macro Language)ã®æååãé¸æãã¦Ctrl-Cãæ¼ãã¨é³æ¥½ãæµããChromeæ¡å¼µãä½ãã¾ããã
Googleã¦ã§ãã¹ãã¢ããã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
https://goo.gl/0UJQcT
ã½ã¼ã¹ã¯ãã¡ã
https://github.com/aike/TSSCCjs
å®è¡ä¾
http://youtube.com/watch?v=o-IzrXaqIbM
ä»ãã10å¹´ãããåããããã®æ²ç¤ºæ¿ä¸ã§MMLã«ããé³æ¥½ãçãä¸ãã£ããã¨ãããã¾ãããæ·»ä»ãã¡ã¤ã«ãªã©ã§ã¯ãªããæ²ç¤ºæ¿ã®ããã¹ãã¨ãã¦ç´æ¥è²¼ããã10è¡ç¨åº¦ã®MMLã§ãé©ãã»ã©ãªãããªæ¥½æ²ãåç¾ã§ãããããããã«çãMMLã§ãªã¢ã«ãªé³æ¥½ã表ç¾ããããæè¡ã®ç«¶ãåãã®ãããªæåãçã¾ãã¦ãã¾ããã
ã
å½æãåçãã¼ã«ã¨ãã¦ä½¿ããã¦ããã®ããkeimãããä½ãããTSS Clipboard Player(TSSCPã¾ãã¯TCP)ã¨ããWindowsç¨MMLãã¬ã¤ã¤ã¼ã§ããããã¯ãã¨ããã¾ããå¶ä½ã®T'SoundSystem(TSS)ã¨ãããPSGããã¡ãã³ã³ãMSXãFMé³æºãªã©ã®é³ãåç¾ã§ãããµã¦ã³ããã©ã¤ããå©ç¨ãããã®ã§ãããCtrl-Cã§ã¯ãªãããã¼ãã«MMLãã³ãã¼ããã ãã§ããã«é³æ¥½ãåçãããTSSCPã®ãã¾ãã®ä½¿ããããã¨ãTSSã®é³ã®è¯ãã«æ¯ãããã¦ãæ²ç¤ºæ¿ä¸ã®MMLã¯å¤§å¤çãä¸ãã£ãããã§ããï¼èªåã¯å¾ããç¥ã£ãå£ãªã®ã§ãå½äºè ã§ã¯ãªããã§ããï¼
ã
ãã®å¾ãå¥ã®æ¹ã«ããå½TCPã¨ãããã¼ã«ãåºãããã¾ããããåºæ¬çã«TSSCPã®MMLãããã¡ã¯ãã¹ã¿ã³ãã¼ãã¨ãªã£ã¦ããã®ä¸ã«æ¡å¼µæ©è½ã追å ãããã®ã«ãªã£ã¦ãã¾ãã
ã
ææ¥ã¯æµã2016å¹´ãWeb Musicハッカソン#5ã§ããã¾ãWeb Audio/Web MIDIã®ãã¼ãã³ã§ãããã¨ããã¾ããã«ãä¼ããããã¨ãã§ããã®ã§ã
ãTSSã®Web Audioçã£ã¦ãªãã®ï¼ã
ã¨èãã¦ã¿ããã
ãあるよã
ã¨ã®ãã¨ãã¤ã¾ããOSã«ããããããã©ã¦ã¶ã®JavaScriptã§MMLãåçã§ããï¼
ã
ãããããã¯ãªãããã¼ãAPIã§MMLæ¼å¥ãããã¼ã«ãããã®ï¼ã
ãMMLã®æ¹è¨ãããããéãããããã¯ã¾ã ãªãã¦â¦â¦ã
ãããããªã®ï¼ãMMLã®æ¹è¨ããããªãã¨ããªãã§ãããã£ã¦ãã¨ã§ä½ãã¯ãããã®ããã®ãã¼ã«ã§ããã¤ã¾ãTSSCPã®Webçã¯ãã¼ã³ã§ãã
ã
å®è£
ãã¦ã¿ãããæå¤ã¨å¤§å¤ã§ããã©ã¦ã¶ã®ã¯ãªãããã¼ãAPIã¯ã»ãã¥ãªãã£ã®ããã«ãã³ãã¼æä½æç¹ã§ã®ã¯ãªãããã¼ãã®å
容ãåå¾ã§ããªããã¨ãå¤æããã¬ã¬ã
ã¾ãããã¼æä½ã¨é¸ææåã¯åããã®ã§ãCtrl-Cãæ¼ãããã¨ãã«é¸æããã¦ããæåãåå¾ããã°åããã¨ã¯ã§ãããã*1
ã
MMLãé£é¢ã§ãã
ããã¹ããã¨ã¯TSSCPå½¢å¼ã®MMLãTSSå½¢å¼ã®MMLã«å¤æãã¦TSSã«æ¸¡ãã ãã ããã©ããMMLã®æ¹è¨ã¨ãã£ã¦ããä¸çå·ã®åãã¨ããããªç¨åº¦ã ããã¨æã£ã¦ããå
¨ç¶éãã¾ãããTSSCPã®MMLã¯å§ç¸®å¹çãéè¦ãããã¾ãã¾ãªæ¡å¼µãããã¦ãã¦ãè¡ã®çµç«¯ã¯æ¹è¡ã§ã¯ãªãã»ãã³ãã³ã#A〜#Zã¾ã§ãã¯ãå®ç¾©ã#FMãã¯ãã§FMã¢ã«ã´ãªãºã ã®æè»ãªå®ç¾©ãã¨ãã£ãTSSã«ãªãæ©è½ãæã£ã¦ãã¾ãã
ã
ãã¨ãã°TSSCPã®MMLã¯ä»¥ä¸ã®ãããªãã®ã§ãã
#TITLE <sample>;t150;#A=%3v15o5cdefg;#FMB(A);A;A;
ããããTSSã§åçã§ããããã«ããã«ã¯ä»¥ä¸ã®ãããªMMLã«å¤æããå¿ è¦ãããã¾ãã#FMãã¯ãã¯ãMMLã®ä¸ã§ãããã«å¥ã®ã·ã³ã¿ãã¯ã¹ãæã£ãè¨èªã¨èããããå°ç¨ã®ãã¼ãµãå¥éç¨æããå¿ è¦ãããã¾ããã
#TITLE <sample> #CHANNEL 3 #A t150 #B %3 @i0,0@o1,0v15o5cdefg #C %3 @i3,0@o0,0v15o5cdefg
ã
ã¾ããé常ã®ãã¯ãããA(7)ã¨ããã¨ã5度(7ã»ããã¼ã³)ä¸ã«ç§»èª¿ãã¦ãã¯ãå±éãããªã©ãé«åº¦ãªæ©è½ããããããããå¿ å®ã«å®è£
ããªãã¦ã¯å½æã®MMLãåãé³ã§åçãããã¨ãã§ãã¾ããã
ããã«ãå½TCPã®æ¡å¼µå½ä»¤ãé£é¡ã§ããããã¯TSSã§ã¯åçä¸å¯è½ãªæ©è½ãå®è£
ãã¦ãããããã®ã§æ¡å¼µã³ãã³ããç¡è¦ãããããªãã®ã§ãããMMLã¯å½ä»¤å士ãã»ãã¬ã¼ã¿ã§åå²ããã¦ããããã¾ãå½ä»¤ã®æåæ°ã1〜æ°æåã¨ã¾ã¡ã¾ã¡ã§ãããããç¡è¦ããã«ãã¦ããããããããã¾ã§ãæ¡å¼µã³ãã³ããã¨ããããã«èªèããå¿
è¦ãããã¾ãã
ã
çµå±ãç°¡æçãªæååå¦çã§ã¯ãªãããã£ãããã¼ã¹ãã¦æ½è±¡æ§ææ¨ãçæãã¦ããå¤æããã¡ãã£ã¨ãããã©ã³ã¹ãã¤ã©ã®ããã°ã©ã ã«ãªãã¾ããã
ã
ã ãããããã¾ã§ã§ãå½æã®MMLã¯åçã§ããããã«ãªãã¾ããããã¾ã åãé³è²ã«ãªãã¾ããããã調ã¹ã¦ã¿ãã¨ãJSçTSSã®ãã°ã§çºé³æ°å¶éããã£ãããJSçã§ã¯mlã³ãã³ãããµãã¼ãããã¦ããªãã£ãããã¨ãããã¨ãã£ãã®ã§ãJSçTSSã®ã½ã¼ã¹ã«æãå ¥ãã¦èª¿æ´ããçµæãã»ã¼åãé³ãåºãããã«ãªãã¾ããã*2
ã
éäºæé¨åã¯ä»¥ä¸ã®ã¨ããã§ãã
ã»å½TCPã®æ¡å¼µã³ãã³ãã¯é対å¿
ã»JSçTSSã§ã¯åºå®æ³¢å½¢ãã¼ãã«é³æºãæªå®è£
ã®ããã%5ã®é³æºã¯ç¡é³ã«ãªã
ã»oã³ãã³ããlã³ãã³ããæªæå®æã®å¤ãéãã£ã½ã
ã»Panãå·¦å³éãã
ã»ææ³ã¨ã©ã¼ã®ããMMLã®è§£é
ã
åç確èªç¨ã®ãµã³ãã«MMLãæ¸ãã¦ã¿ãã®ã§ãChromeæ¡å¼µãã¤ã³ã¹ãã¼ã«ãã¦èãã¦ã¿ã¦ãã ããã
#TITLE <TSSCCjs's Theme by aike CC-BY>; t165;#A=l4dr8d16e16f2.r8gf8e8f8e.d.ec.d.efr8f16g16a2.r8b-a8g8d8fr8fr8fgr8gr8 ;#B=d.a2r8g.c+2r8c+.d.ef2.rd.a2r8g.c2r8c+.g.df2.r;#C=l4ar8a16g16a2.r8ga<d8c. >a.<c>a.a+.<c>a.b-16<c16d2.r8c.>a+ar8ar8a;#D=a.d8>a8.<d8.f8er8e8e8ef8g.a8a+8 ga+8;#E=dgfdgdfd>a<fd>a<f>a<d>a<cgecgcec>a<ec>a<e>a<c>a<dgfdgdfdcgecgcec>b-< fd>b-<f>b-<d>b-;#F=fgfde.f8g.r8efg8aa+8ac+defgfde.f8g.r8efg8aa+8d2.r;#G=l4d. >a.<d>b-r8b-.<dc.>g.<c>ar8ar8a<d.>a.<dcr8cr8c>b-r8b-r8b-a16r16a16r16a16r16a1 6r16<e>a<;#H=l16[dagfdfga][c+agfc+fga][eagfefga][dagfdfga];#I=[4arararar]<[d rdrdrdr]frfrfrfrgrgrgrgr;#J=AeAa+BB;#K=C<cr8cr8c>C<c+r8c+r8c+Da2.rDa.d2r8Da2 .rDa.d2r8;#L=l8Ea<ec>a<e>a<c>a<Ea<ec+>a<e>a<c+>al4<FF>;#M=GGHHHH;#N=l8[8r1]I [16r1];#O=%3v10ml3q6s5;#P=%3v10mp1,4,1,2,0k1q6s5;#Q=%3q10s3;#FMC3(B2(A));Oo6 $J;Po6$J;Qp1o6v6$J;#FMC3(B2(A));Oo5p2$K;Po5p2$K;Qp2o5v6p2$K;#FMC3(B2(A));Oo5 $L;Po5$L;Qo5v4$L;#FMC4(B2(A));%3o4l4v15$q0s1o3M;%3o4l4v13$q0s3o3M;%3o4l4v4$q 13s1o3M;o6v4q4s4$N;o6v4q4s4k5$N;o6v2q4s4r8.$N;o6v2q4s4k5r8.$N;o8%2q0s50l16v8 $[16arararaaarararaa][16araaaraaaraaaraa];#R=[7rara]ral16s20;%2q0l4o3s12,18v 8$Rarrraaaal4s12Raaaaaaaal4s12Rarrraaaal4s12Raaaaaaaal4s12;%3o4v15s1,-15q1l1 6$[16crrrrrcrcrrrrrcr][16crccrcrccrccrcrc];
Unityã§ãµã¤ããã§ã¼ã³ãã¦SEã¨BGMã®èªåãã©ã³ã¹èª¿æ´ãã話
æè¿ã®Unityã¯é³æ¥½å¶ä½ç¨DAWã®ãããªæ©è½ãå
å®ãã¦ã¦ã試ãã«ãµã¤ããã§ã¼ã³ã§ããã調ã¹ããã§ããã®ã§ã¡ã¢ã
ã
ãµã¤ããã§ã¼ã³ã¨ããã®ã¯é³å§ä¸ããªãã¨æ»ã¬ç
ã®äººãã¡ãçºæããé³æ¥½ç¨ã³ã³ãã¬ããµã¼ã®ä½¿ãæ¹ã§ãããã¯ï¼ãã¹ãã©ã ï¼ã®é³ãé³´ã£ãç¬éããã以å¤ã®ã·ã³ã»ããã¼ã¹ãªã©ã®é³éãèªåçã«ä¸ãããã¨ãããã®ã§ããããã«ããé³å§ãã®ãªã®ãªã¾ã§ä¸ãã¤ã¤ãããã¯ã®é³ããã£ããç®ç«ãããããã¯ã®é³ã«ãã³ãã¢ãã³ãã¢ãã¨ãããªãºã ãçã¿åºãã¨ããä¸ç²ã§ä¸åº¦ç¾å³ããã¯ã¶ã§ãã
ã
ã²ã¼ã å¶ä½ã§ããã¨ãSEãã»ãªãã®é³ãé³´ãã¨ãã«BGMãèªåçã«ä¸ããã¨ãããããªãããããç¶æ³ã«å¿ç¨ã§ãã¾ãã
ã
æ©éãã£ã¦ã¿ã¾ãããã
ã
Unityã®Windowã¡ãã¥ã¼ããAudio Mixerãé¸æãã¾ãã大ä¸å¤«ãããªãã®Personal(ç¡å)çã§ãã§ãã¾ãããã
ã
å
¨ç¶ãããµã¼ã£ã½ããªã表示ãåºã¦è¥å¹²ä¸å®ã«ãªãã¾ãããåæ°ãåºãã¦ãï¼ãå°ãã¯ãªãã¯ãããããµã¼åãå
¥åãã¾ããã¼ãã¯ããã¾ã§ã®äººçã§ãããµã¼ã«ååãã¤ãããããªçµé¨ã¯ä¸åº¦ããããã¨ããªãã£ãã®ã§å°ãã¨ã¾ã©ãã¾ããããç¡é£ã«ãmixerãã¨ãã¾ããã
ä¸æ©åé²ãã¾ãããã§ãã¾ã ãããµã¼ã£ã½ããªãã®ã§Groupsã®Masterãé¸æããç¶æ ã§ãï¼ããã¯ãªãã¯ãã¦ãã©ãã¯ã追å ãã¾ãããã©ãã¯åã¯ã¤ãããã¨ãããã®ã§è¿·ãã¾ããããSEãã¨ãBGMãã«ãã¾ããã
Audio Sourceããµãã¤ä½ãã¾ããAudioClipã¨ãã¦ã¯æ°å°ç¯åã®ããã¯ã®ãµã³ããªã³ã°ã¨ã·ã³ã»ã®ãµã³ããªã³ã°ã«ã¼ããç¨æãã¾ãããµã³ããªã³ã°ã«ã¼ãã¯èªåã§ä½ãã¨å¤§å¤ãªã®ã§è²·ã£ã¦ãã¾ããããéã£ã¦ä¾¿å©ã
ã
ããã¯ã®æ¹ã¯OutputããSE(mixer)ãã«ãã·ã³ã»ã®æ¹ã¯OutputããBGM(mixer)ãã«ãã¾ãã
ã
ãµã¤ããã§ã¼ã³ããããã«ãã®ã¾ã¾æ··ãã¦é³´ããã¨ãããªæãã«ãªãã¾ãããµã¼ãã
ã
ãµã¤ããã§ã¼ã³ã®ç»å ´ã§ãã
ãã©ãã¯ã®ä¸ã®æ¹ã®ãAdd ..ããã¯ãªãã¯ããSEã¯ãSendããBGMã¯ãDuck Volumeããé¸æãã¾ãããããµã¼ã£ã½ããªã£ã¦ããã
ã
Sendã®ReceiveããBGM\Duck VolumeããSend levelãæ大ã®ã0.00 dBãã«è¨å®ãã¾ãã
ã
Duck Volumeã®ThresholdãRelease Timeããããªæãã«è¨å®ãã¾ããThresholdã¯å·¦ã®æ¹ã«ããã»ã©å¼·ããããã®ã§ãæåã¯å¼·ãã«ãã¦å¹æãè³ã§ç¢ºããã¦ããä¸åº¦ããã¨ããã¾ã§ä¸ãã¦ããã¨åãããããããããã¾ããã
ã
ãµã¤ããã§ã¼ã³ãããã¦é³´ããã¨ãããªæããããã¯ããã£ããèããã¦ãã·ã³ã»ãã³ãã¢ãã³ãã¢ãã§ããã
ã
次ã«å¥ã®é³ãããªã¬ã¼ã«ãã¦ã¿ã¾ãã
ユニティちゃんã®ãã¤ã¹ãå
¬å¼ãµã¤ããããã¦ã³ãã¼ããã¦ãã¾ããã
ã
æ®éã«æ··ããã¨ãããªæããããããã
© Unity Technologies Japan/UCL
ãã
ãããããã¯ã¨åãããã«OutputããSE(mixer)ãã«ãã¾ãã
ã
Duck Volumeã®Thresholdã¯ãã£ãããå¼·ããã¦ããã£ã¡ãããä¸è¨ããã¹ããã³ã«ã³ãã¢ãã£ã¦ãªããªãããã«Release Timeã¯é·ãã«ãã¾ãã
© Unity Technologies Japan/UCL
ã
ãï¼ç°¡åã§ããã
OSCãMacãWindowsãLinuxãRasPiããéãã·ã³ãã«ãã¼ã«ä½ã£ã
OSC(Open Sound Control)ãæ°è»½ã«éããããªããã¨ã£ã¦ãããããªãã§ãããã©ãºããªã¼ãã¤ããPCã¸ç°¡åãªéç¥ãéã£ããã¨ããã©ãã®ã家åºã«ããã雰囲気メガネãå
ããããã¨ãã¨ãã
ã
ã§ããªããªãã·ã³ãã«ãªãã¼ã«ãè¦ã¤ãããªãã¦ãéçºç°å¢å
¥ãã¦ã³ã³ãã¤ã«ããå¿
è¦ããã£ãããé³æ¥½ãæ åãæ±ã大ããªã½ããã®ä¸æ©è½ã ã£ãããã¦ãã¡ãã£ã¨æ°è»½ãªæããããªããã®ã°ããã§ããããªããã§ãã³ã³ãã¤ã«ä¸è¦ã§å®è¡ãã¡ã¤ã«ã²ã¨ã¤ã ãã§OSCã¡ãã»ã¼ã¸ãéããã³ãã³ããä½ãã¾ããã
ã
http://github.com/aike/oscer
ã
使ãæ¹ã¯ç°¡åãã³ãã³ãåã®å¾ã«ãã¹ãåããã¼ãçªå·ãOSCã¡ãã»ã¼ã¸ãæå®ããã ãã
ã
å®è¡ä¾
oscer localhost 10000 /dummy
ã
å¼æ°ã«ã¯Int32ãFloat32ãStringãæå®ã§ãã¾ãã
oscer 192.168.1.10 12000 /hello 10 oscer 192.168.1.10 13000 /world 3.14 oscer 192.168.1.10 12000 /hello world
ã
IPv6ã対å¿ããã¶ãã
oscer fe80::1%lo0 11000 /foo
golangã§æ¸ããã®ã§ãã¯ãã¹ã³ã³ãã¤ã«ãç°¡åã
MacãWin32ãWin64ãLinux32ãLinux64ãLinuxARM(Raspberry Pi)ç¨ã«ãã«ããã¦ããã¾ãããgolangã¯åãã¦ä½¿ãã¾ãããçã½ã±ããéä¿¡ã¿ãããªã¢ããªã§ãå®ç§ã«Write once, run anywhereãªã®ã¯ã³ã£ãããå®è¡å´ã¯golangãã¯ããã©ã³ã¿ã¤ã ã©ã¤ãã©ãªçãªãã®ãä¸åä¸è¦ãªã®ãå¬ããã§ãã
ã
ãããªããã§è¯ãOSCã©ã¤ããã
ã
2016.06.13 追è¨
åä¿¡å´ãã»ãããªã£ãã®ã§åä¿¡æ©è½ãã¤ãã¾ããã
oscer receive 10000