diff --git a/about.html b/about.html index 86b7f9f..e61a8dc 100644 --- a/about.html +++ b/about.html @@ -5,19 +5,19 @@ About — Elevator Three @@ -559,9 +561,9 @@ glitch: {def:.90}, evolution: {def:.90}, mutate: {def:.80}, - shift: {def:.5}, // 平行移動の転調の強さ (two:D-65)。0 で従来どおり。既定は two:D-70 で 0.5 - lush: {def:.5}, // 開いた和声の強さ (two:D-66)。0 で従来どおり。既定は two:D-70 で 0.5 - jev: {def:.8}, // 判断のうち Jev に任せる割合 (D-5)。0 なら two と同じ + shift: {def:.8}, // 平行移動の転調の強さ (two:D-65)。0 で従来どおり。既定は 0.8 + lush: {def:.8}, // 開いた和声の強さ (two:D-66)。0 で従来どおり。既定は 0.8 + jev: {def:1}, // 判断のうち Jev に任せる割合 (D-5)。0 なら two と同じ }; /* ============================================================ @@ -580,8 +582,8 @@ rim: {label:'rim'}, perc: {label:'perc'}, cowbell: {label:'cowbell', tip:'Electro kit only'}, - bassFunk: {label:'funk bass', tip:'Bass level in electro funk scenes'}, - bass: {label:'other bass', tip:'Bass level in every other scene'}, + bassFunk: {def:.5, label:'funk bass', tip:'Bass level in electro funk scenes'}, + bass: {def:.5, label:'other bass', tip:'Bass level in every other scene'}, strings: {label:'strings', tip:'Sustained chords, arpeggio and high riff'}, chop: {label:'chord chop'}, stab: {label:'stab'}, @@ -607,7 +609,7 @@ try{ saved = JSON.parse(localStorage.getItem(MIX_STORE)||'{}') || {}; }catch(_){ /* 読めなければ既定値 */ } for(const k in MIX){ const v=saved[k], min=MIX[k].min??0, max=MIX[k].max??2; - mix[k] = (typeof v==='number' && v>=min && v<=max) ? v : 1; + mix[k] = (typeof v==='number' && v>=min && v<=max) ? v : (MIX[k].def??1); } } function saveMix(){ @@ -3708,7 +3710,7 @@ const pad=ind+' '; const items = Array.isArray(v) ? v.map(x=>pad+fmtJson(x,depth+1,pad)) - : Object.entries(v).map(([k,x])=>pad+JSON.stringify(k)+': '+fmtJson(x,depth+1,pad)); + : Object.entries(v).filter(([k])=>k!=='history').map(([k,x])=>pad+JSON.stringify(k)+': '+fmtJson(x,depth+1,pad)); if(!items.length) return Array.isArray(v) ? '[]' : '{}'; const [o,c]=Array.isArray(v) ? ['[',']'] : ['{','}']; return o+'\n'+items.join(',\n')+'\n'+ind+c; @@ -4428,13 +4430,13 @@ // 波形の色。テーマを変えたときに拾い直す let scopeColorCache='', scopeBgCache=''; -function scopeColor(){ return scopeColorCache || '#d8b2ff'; } +function scopeColor(){ return scopeColorCache || '#cfcfe8'; } function draw(){ requestAnimationFrame(draw); updateLeds(); // キャンバスが隠れている (狭い画面の別タブ) ときも回す const w=cv.clientWidth, h=cv.clientHeight; if(!w||!h) return; - g2.fillStyle=scopeBgCache||'#1c005e'; g2.fillRect(0,0,w,h); + g2.fillStyle=scopeBgCache||'#313178'; g2.fillRect(0,0,w,h); // 波形。いま出ている音をそのまま横に引き伸ばして描く。 // 立ち上がりが左端に来るよう、上りのゼロ交差を探して起点にする @@ -4459,7 +4461,7 @@ // 拍の明滅。無音の段階でも拍が見えるようにしておく if(uiStep>=0 && uiStep%4===0){ - g2.fillStyle=`rgba(178,102,255,${.05+ (uiStep===0?.05:0)})`; + g2.fillStyle=`rgba(255,255,238,${.05+ (uiStep===0?.05:0)})`; g2.fillRect(0,0,w,h); } } diff --git a/tests/interaction.spec.js b/tests/interaction.spec.js index e6b7487..00b16f8 100644 --- a/tests/interaction.spec.js +++ b/tests/interaction.spec.js @@ -92,9 +92,9 @@ test('見た目は EK 固定で、切り替えは無い', async ({ page }) => { // two:D-37。テーマの切り替えは廃止した (2026-09-12) await expect(page.locator('.themebtn')).toHaveCount(0); expect(await page.getAttribute('html', 'data-theme')).toBeNull(); - // 紫の5色 (D-13)。地は #3100a2 + // 青紫の背景 const bg = await page.evaluate(() => getComputedStyle(document.body).backgroundColor); - expect(bg).toBe('rgb(49, 0, 162)'); + expect(bg).toBe('rgb(116, 116, 176)'); }); test('UI は英語だけで、言語の切り替えは無い', async ({ page }) => { @@ -276,7 +276,7 @@ test('タイトルの左に、上の階層へのアイコンのリンクがあ await expect(link).toHaveAttribute('target', '_blank'); await expect(link.locator('svg path')).toHaveCount(3); await expect(link).toBeVisible(); - expect(await link.evaluate(el => getComputedStyle(el).color)).toBe('rgb(216, 178, 255)'); // --ink (D-13) + expect(await link.evaluate(el => getComputedStyle(el).color)).toBe('rgb(255, 255, 255)'); // --ink // タイトルより左にある const icon = await link.boundingBox(); const title = await page.locator('header .mark').boundingBox(); diff --git a/tests/jev.spec.js b/tests/jev.spec.js index e14b3f8..aa45ffc 100644 --- a/tests/jev.spec.js +++ b/tests/jev.spec.js @@ -39,7 +39,7 @@ async function start(page, query = '') { test('jev のスライダーと monitor の表示がある', async ({ page }) => { await page.goto('/index.html'); await expect(page.locator('#s_jev')).toBeVisible(); - await expect(page.locator('#s_jev')).toHaveValue('0.8'); + await expect(page.locator('#s_jev')).toHaveValue('1'); await expect(page.locator('#pjev')).toBeVisible(); // 雰囲気の操作ではないので (edit) を付けない。付くと陰陽が波に従わなくなる await page.locator('#s_jev').fill('0.5');