このページでわかること

球技、格闘技リズムトレーニングを、「三要素の統合躍動するパスの構造」「小脳が導く無意識の運動学習」「あらゆる球技に適用リズムが運動能…」など4つの観点から解説します。

  • 三要素の統合躍動するパスの構造
  • 小脳が導く無意識の運動学習
  • あらゆる球技に適用リズムが運動能力を解放する
  • パス練習音響システム

監修:宮崎要輔(合同会社GETTAプランニング代表・一本歯下駄GETTA開発者)





ホーム > サイトマップ > 競技力向上
競技力向上

 球技、格闘技リズムトレーニング

⏱ 読了 約169分☰ 13セクション

★ この記事のポイント

  • 三要素の統合躍動するパスの構造
  • 小脳が導く無意識の運動学習
  • あらゆる球技に適用リズムが運動能力を解放する
  • パス練習音響システム

 球技、格闘技リズムトレーニングについて詳しく解説します。一本歯下駄GETTAを活用した球技は、従来のトレーニング方法では得られない独自の身体感覚と体幹強化効果をもたらします。本記事では、スポーツ科学の知見に基づき、球技、格闘技リズムトレーニングの具体的な方法と効果を実践的な視点からお伝えします。

SPORTS RHYTHM SOUND LAB

 球技、格闘技リズムトレーニング

サッカー、バスケ、テニス、バレー、野球、卓球。あらゆる球技に対応した変則パターンと中丹田活性化音でタイミング精度を極限まで高める。一本歯下駄(一本下駄)との併用で高重心の身体感覚を獲得し、躍動するプレーを実現します。

RHYTHM
変則リズム
TANDEN
中丹田活性
VITALITY
生命の衝動
SCROLL

三要素の統合
躍動するパスの構造

PILLAR 01
変則リズム
予測不能への適応
PILLAR 02
中丹田
高重心の身体感覚
PILLAR 03
躍動音
生命の衝動
FLOW
躍動状態

変則リズムによる予測不能への適応力、中丹田から湧き上がる高重心の身体感覚、そして躍動音による生命の衝動。この三要素が統合されることで、アスリートは「フロー状態」に入り、直感的なプレーが可能になります。

小脳が導く
無意識の運動学習

小脳は「運動の指揮者」と呼ばれ、タイミング調整・予測・協調運動を司ります。音響リズムトレーニングは、この小脳を直接刺激し、意識を介さない自動化された動きを構築します。

小脳
CEREBELLUM
タイミング調整
ミリ秒単位の精密な動作制御
予測モデル
次の瞬間を先読みする能力
運動学習
反復による自動化と最適化
協調運動
全身の筋肉を統合的に制御

音響リズムによる運動学習の深化
01
聴覚入力
リズム音が聴覚野を刺激
02
リズム同調
身体が音に自然と同期
03
予測形成
小脳が次のタイミングを予測
04
自動化
意識せず最適な動きが出る

一本歯下駄GETTAで体幹トレーニングを始めてみませんか?

公式ショップを見る

あらゆる球技に適用
リズムが運動能力を解放する

サッカー、バスケットボール、テニス、バレーボール、野球。あらゆる球技において、リズム感タイミング精度は成功の鍵を握ります。本システムは各スポーツ特有のリズムパターンに対応し、競技パフォーマンスを根本から向上させます。

SOCCER
サッカー
理論的背景

パス交換における「出し手」と「受け手」のタイミング同期が試合の質を決定します。研究では、リズムトレーニングを行った選手はパス成功率が23%向上することが報告されています。

推奨設定
モード グランダー + 変則
テンポ 70-90 BPM
パターン トライアングル
パス精度向上 オフザボール改善 予測力強化

BASKETBALL
バスケットボール
理論的背景

ドリブルのリズム、パスのテンポ、シュートのタイミング。バスケットボールは「リズムのスポーツ」です。特にピック&ロールでのタイミング合わせがプレーの成否を分けます。

推奨設定
モード バウンド + 変則
テンポ 100-140 BPM
パターン ランダム変則
ドリブルリズム 速攻連携 シュートタイミング

TENNIS
テニス
理論的背景

ボールのバウンドタイミングに合わせたスイング開始が、パワーと正確性を両立させます。「スプリットステップ」のタイミングもリズム感が決め手です。

推奨設定
モード バウンド(減衰)
テンポ 80-120 BPM
パターン サドンファスト
打点タイミング スプリットステップ リターン反応

VOLLEYBALL
バレーボール
理論的背景

レシーブ→トス→スパイクの3段階リズムが攻撃の基本。特にセッターとアタッカーの呼吸を合わせるタイミング感覚が得点力を左右します。

推奨設定
モード バウンド(トリプル)
テンポ 60-100 BPM
パターン ウェーブ
コンビ連携 助走タイミング ブロック予測

BASEBALL
野球
理論的背景

投球動作のリズム、打撃のタイミング、守備の連携。特にバッティングでは投手のリズムを読むことが打率向上に直結します。

推奨設定
モード 変則パターン
テンポ 50-80 BPM
パターン カオス
打撃タイミング 投球リズム 変化球対応

TABLE TENNIS
卓球
理論的背景

最速0.2秒での反応が求められる超高速スポーツ。小脳による無意識の予測反応がラリーを制します。リズム変化への即座の適応が勝敗を分けます。

推奨設定
モード バウンド + 変則
テンポ 120-180 BPM
パターン サドンファスト
反射速度 ラリーリズム 緩急対応

MARTIAL ARTS
格闘技
理論的背景

空手・柔道・ボクシング・キックボクシング・MMA。90-110 BPMの「タメ」が相手のOODAループを攪乱。中丹田で速度、下丹田で威力を制御。

推奨設定
モード 格闘技タブ
テンポ 90-110 BPM
パターン ポリリズム
打撃タイミング 間合い制御 丹田活性化

SYNERGY EFFECT 一本歯下駄との相乗効果

一本歯下駄(一本下駄)を履いた状態でリズムトレーニングを行うことで、小脳への刺激が倍増します。不安定な足元がバランス感覚を研ぎ澄まし、音響リズムとの同調がより深い運動学習を促進。全てのスポーツにおいて、正中線感覚高重心の身体操作が身につきます。

01
足裏感覚の覚醒でリズム同調が深まる
02
体幹の自動調整でタイミング精度が向上
03
小脳-脊髄ループの強化で反射速度アップ

パス練習音響システム

バウンドパス練習モード

バウンドするボールのリズムに合わせてパス練習を行います。音のタイミングでトラップ、次の音でパス。一本歯下駄を履いた状態で行うことで、足裏感覚とリズムの同調効果が最大化されます。

80 BPM
70%
待機中

バウンドパス練習の効果

  • タイミング精度の向上:バウンドの頂点でトラップする感覚を体得
  • リズム感の強化:一定のリズムでパス交換することで再現性が高まる
  • 一本下駄との併用:不安定な足元でのリズムキープが深層筋を活性化
  • 視覚に頼らない感覚の養成:音を頼りにすることで身体感覚が研ぎ澄まされる

グランダーパス練習モード

地を這うグランダーパスのリズムトレーニング。パスの「出し」と「受け」のタイミングを音で体得します。一本歯下駄を履いた状態でのステップワークと組み合わせることで、足裏感覚と連動した正確なパスが可能になります。

72 BPM
70%
PASS
RECEIVE
待機中

グランダーパス練習の効果

  • パス精度の向上:一定のリズムでパスを出すことで再現性が高まる
  • ファーストタッチの改善:音に合わせてトラップすることで足元の技術が向上
  • パス&ゴーの習慣化:パスを出した直後に動く意識が自然と身につく
  • 一本下駄との併用:不安定な足元でのパス練習が深層筋と連動した蹴り方を習得
  • 視野の拡大:音を頼りにすることで顔が上がり周囲を見る余裕が生まれる

複合練習モード

グランダーパスにバウンドを混ぜた実戦的な練習パターン。予測不能な状況に対応する力を養います。

80 BPM
70%
NEXT
待機中

変則パターンモード

予測不能なリズム変化に対応する能力を養います。急に速くなったり遅くなったりするパターンで、試合中の予測不能な状況への適応力を高めます。

90 BPM
50%
8拍ごと
70%
待機中

変則パターンの効果

  • 予測不能への適応力:試合中の急な状況変化に対応できる
  • 反射神経の強化:予測できないタイミングへの即座の反応
  • 集中力の持続:常に変化を予測しようとすることで集中が途切れない
  • 心理的耐性:予測と違う展開にも動じない精神力

格闘技リズムトレーニング

空手、柔道、ボクシング、キックボクシング、総合格闘技に対応した音響システム。技のタイミング、間合い、コンビネーションのリズムを体得します。一本歯下駄との併用で正中線感覚と重心移動が強化されます。

100 BPM
90-110: 推奨(タメのあるリズム) 120-140: 要注意(予測されやすい) 160-200: 超高速(神経系訓練)

鳩尾奥に響く上昇音。スピード・コントロール・回転数を高めます。

手技の速度UP 技の精度UP 回転技強化
50%

お腹の奥に響く重低音。力強さ・安定感を高めます。

打撃の威力UP 投げの安定UP グラウンド強化
50%
70%
待機中

格闘技別 推奨設定

空手

型の呼吸と技のキレを磨く

90-100 BPMアップビート中丹田重視

柔道

崩しと投げのタイミング習得

80-95 BPM波状強度下丹田重視

ボクシング

ジャブとコンビネーション強化

100-120 BPMコンビネーション中丹田重視

キックボクシング

パンチとキックの連携習得

95-110 BPMポリリズム両丹田バランス

総合格闘技

打撃と組技の切り替え強化

90-130 BPM不規則両丹田フル活用

格闘技リズムトレーニングの理論

  • 90-110 BPM(推奨):「タメ」のあるリズムで相手のOODAループを攪乱。カウンターされにくい
  • ポリリズム(2拍→3拍):物理的速度は同じでも知覚速度が2倍に。「相手が消える」現象を創出
  • 中丹田活性化:鳩尾から上半身の回転力・スピードが生まれる。手技の速度と精度が向上
  • 下丹田活性化:丹田(臍下三寸)から全身の安定と力強さが生まれる。投げ・グラウンドが強化
  • 一本歯下駄との相乗効果:正中線感覚の獲得により、技の軸が安定し威力が増大

中丹田活性化モード

鳩尾のインナーユニット(中丹田)を活性化する特殊音響。グイングインと上昇するような周波数変化で、高重心に導く身体感覚を呼び覚まします。生命の衝動、躍動をテーマにした音響システムです。

5(中速)
60%
待機中

中丹田活性化の効果

  • インナーユニットの覚醒:鳩尾周辺の深層筋が活性化され体幹が安定
  • 高重心の身体感覚:上昇する周波数が重心を引き上げる感覚を誘導
  • 生命エネルギーの循環:躍動感のある音が全身のエネルギー循環を促進
  • 一本歯下駄との相乗効果:高重心感覚と足裏感覚が統合され、軽やかな動きが可能に

中丹田の覚醒
高重心への導き

TANDEN
UPPER
上丹田(眉間)
MIDDLE
中丹田(鳩尾)
LOWER
下丹田(臍下)

中丹田(鳩尾のインナーユニット)は、横隔膜・腹横筋・多裂筋・骨盤底筋群が統合される身体の要です。ここが活性化されると、重心が自然と引き上がり、軽やかで躍動感のある動きが可能になります。

一本歯下駄 × 躍動音
二つの変革による進化

AUDITORY
躍動音による誘導

上昇する周波数が
中丹田を活性化

周波数スイープ
脈動リズム
高重心誘導
FUSION
PHYSICAL
一本歯下駄の刺激

足裏から全身の
深層筋を覚醒させる

バランス強化
正中線感覚
インナーユニット
VITALITY

一本歯下駄が足裏から深層筋を刺激する一方、躍動音が聴覚から中丹田を活性化。この二重のアプローチにより、生命の衝動が全身に満ち溢れ、サッカー選手に必要な躍動感のある動きが自然と生まれます。

NEXT STEP

一本歯下駄で
躍動するプレーを手に入れる

SPORTS RHYTHM SOUND LABと一本歯下駄の組み合わせで、タイミング精度と躍動感を最大化しましょう。プロも愛用する伝統の道具が、あなたの可能性を引き出します。

// Variables var audioContext = null; var bounceInterval = null; var irregularInterval = null; var tandenOscillators = []; var tandenActive = false; var tandenAnimationId = null; var currentBpm = 90; var beatCount = 0;

// Initialize AudioContext function initAudioContext() { if (!audioContext) { try { audioContext = new (window.AudioContext || window.webkitAudioContext)(); } catch (e) { console.error('Web Audio API is not supported'); return null; } } if (audioContext.state === 'suspended') { audioContext.resume(); } return audioContext; }

// Tab Navigation var tabs = document.querySelectorAll('.getta-sps-tab'); var panels = document.querySelectorAll('.getta-sps-panel');

tabs.forEach(function(tab) { tab.addEventListener('click', function() { var targetTab = this.getAttribute('data-tab');

tabs.forEach(function(t) { t.classList.remove('sps-active'); t.setAttribute('aria-selected', 'false'); }); this.classList.add('sps-active'); this.setAttribute('aria-selected', 'true');

panels.forEach(function(panel) { panel.classList.remove('sps-active'); }); var targetPanel = document.getElementById('panel-' + targetTab); if (targetPanel) { targetPanel.classList.add('sps-active'); } }); });

// Slider value updates function setupSlider(sliderId, displayId, suffix, callback) { var slider = document.getElementById(sliderId); var display = document.getElementById(displayId); if (slider && display) { slider.addEventListener('input', function() { var value = this.value; if (callback) { display.textContent = callback(value); } else { display.textContent = value + suffix; } }); } }

setupSlider('sps-bpm', 'sps-bpm-value', ' BPM'); setupSlider('sps-volume-bounce', 'sps-volume-bounce-value', '%'); setupSlider('sps-grounder-bpm', 'sps-grounder-bpm-value', ' BPM'); setupSlider('sps-volume-grounder', 'sps-volume-grounder-value', '%'); setupSlider('sps-combo-bpm', 'sps-combo-bpm-value', ' BPM'); setupSlider('sps-volume-combo', 'sps-volume-combo-value', '%'); setupSlider('sps-base-bpm', 'sps-base-bpm-value', ' BPM'); setupSlider('sps-martial-bpm', 'sps-martial-bpm-value', ' BPM'); setupSlider('sps-volume-martial', 'sps-volume-martial-value', '%'); setupSlider('sps-middle-tanden-intensity', 'sps-middle-tanden-intensity-value', '%'); setupSlider('sps-lower-tanden-intensity', 'sps-lower-tanden-intensity-value', '%'); setupSlider('sps-variation-intensity', 'sps-variation-intensity-value', '%'); setupSlider('sps-change-frequency', 'sps-change-frequency-value', '拍ごと'); setupSlider('sps-volume-irregular', 'sps-volume-irregular-value', '%'); setupSlider('sps-rise-speed', 'sps-rise-speed-value', '', function(v) { var labels = ['', '1(極遅)', '2(遅い)', '3(やや遅)', '4(やや遅)', '5(中速)', '6(やや速)', '7(やや速)', '8(速い)', '9(高速)', '10(極速)']; return labels[parseInt(v)] || v; }); setupSlider('sps-volume-tanden', 'sps-volume-tanden-value', '%');

// ======================================== // GROUNDER PASS TRAINING // ======================================== var grounderInterval = null; var grounderCount = 0; var grounderDirection = 1; // 1 = left to right, -1 = right to left

var startGrounderBtn = document.getElementById('sps-start-grounder'); var stopGrounderBtn = document.getElementById('sps-stop-grounder');

if (startGrounderBtn) { startGrounderBtn.addEventListener('click', function() { var ctx = initAudioContext(); if (!ctx) return;

var bpm = parseInt(document.getElementById('sps-grounder-bpm').value) || 72; var volume = (parseInt(document.getElementById('sps-volume-grounder').value) || 70) / 100; var pattern = document.getElementById('sps-grounder-pattern').value; var intensity = document.getElementById('sps-grounder-intensity').value; var rhythmType = document.getElementById('sps-grounder-rhythm').value;

grounderCount = 0; grounderDirection = 1; var baseBpm = bpm;

startGrounderBtn.disabled = true; stopGrounderBtn.disabled = false; document.getElementById('sps-grounder-status').textContent = '再生中 - ' + getPatternLabel(pattern); document.getElementById('sps-grounder-indicator').classList.add('sps-active');

function playNextGrounder() { if (startGrounderBtn.disabled === false) return;

// Calculate current BPM based on rhythm type var currentBpm = calculateGrounderBpm(baseBpm, rhythmType, grounderCount);

// Play sound and animate playGrounderSound(volume, pattern, intensity, grounderCount); animateGrounderBall(pattern, grounderCount);

grounderCount++;

var interval = 60000 / currentBpm;

// Adjust for pattern if (pattern === 'twotouch') { interval = interval * 0.5; // Two sounds per beat } else if (pattern === 'triangle') { interval = interval * 0.67; // Faster for triangle }

grounderInterval = setTimeout(playNextGrounder, interval); }

playNextGrounder(); }); }

if (stopGrounderBtn) { stopGrounderBtn.addEventListener('click', function() { stopGrounder(); }); }

function stopGrounder() { if (grounderInterval) { clearTimeout(grounderInterval); grounderInterval = null; } if (startGrounderBtn) startGrounderBtn.disabled = false; if (stopGrounderBtn) stopGrounderBtn.disabled = true; var statusEl = document.getElementById('sps-grounder-status'); var indicatorEl = document.getElementById('sps-grounder-indicator'); if (statusEl) statusEl.textContent = '停止'; if (indicatorEl) indicatorEl.classList.remove('sps-active');

// Reset ball position var ball = document.getElementById('sps-grounder-ball'); if (ball) ball.style.left = '60px'; }

function getPatternLabel(pattern) { var labels = { 'onetouch': 'ワンタッチ', 'twotouch': 'ツータッチ', 'passgo': 'パス&ゴー', 'triangle': 'トライアングル', 'wallpass': '壁パス' }; return labels[pattern] || pattern; }

function calculateGrounderBpm(baseBpm, rhythmType, count) { if (rhythmType === 'constant') { return baseBpm; } else if (rhythmType === 'accelerate') { return Math.min(baseBpm * 1.5, baseBpm + count * 2); } else if (rhythmType === 'decelerate') { return Math.max(baseBpm * 0.5, baseBpm - count * 2); } else if (rhythmType === 'swing') { // Swing feel - long-short pattern return (count % 2 === 0) ? baseBpm * 0.9 : baseBpm * 1.3; } return baseBpm; }

function playGrounderSound(volume, pattern, intensity, count) { if (!audioContext) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

// Base frequency based on intensity var baseFreq = 200; if (intensity === 'soft') baseFreq = 180; else if (intensity === 'medium') baseFreq = 220; else if (intensity === 'hard') baseFreq = 280; else if (intensity === 'mixed') baseFreq = (count % 2 === 0) ? 180 : 280;

var duration = 0.2;

// Pattern variations if (pattern === 'onetouch') { osc.frequency.setValueAtTime(baseFreq, audioContext.currentTime); osc.frequency.exponentialRampToValueAtTime(baseFreq * 0.7, audioContext.currentTime + duration); osc.type = 'triangle'; } else if (pattern === 'twotouch') { // Alternate between trap sound and pass sound if (count % 2 === 0) { // Trap sound - softer osc.frequency.setValueAtTime(baseFreq * 0.8, audioContext.currentTime); osc.type = 'sine'; volume = volume * 0.6; } else { // Pass sound - sharper osc.frequency.setValueAtTime(baseFreq * 1.2, audioContext.currentTime); osc.type = 'triangle'; } } else if (pattern === 'passgo') { // Pass sound with rising tone for "go" osc.frequency.setValueAtTime(baseFreq, audioContext.currentTime); if (count % 2 === 1) { osc.frequency.exponentialRampToValueAtTime(baseFreq * 1.5, audioContext.currentTime + duration); } osc.type = 'triangle'; } else if (pattern === 'triangle') { // Three-note pattern var triFreqs = [baseFreq, baseFreq * 1.1, baseFreq * 1.25]; osc.frequency.setValueAtTime(triFreqs[count % 3], audioContext.currentTime); osc.type = 'triangle'; } else if (pattern === 'wallpass') { // Quick one-two rhythm if (count % 2 === 0) { osc.frequency.setValueAtTime(baseFreq, audioContext.currentTime); } else { osc.frequency.setValueAtTime(baseFreq * 1.3, audioContext.currentTime); duration = 0.15; } osc.type = 'triangle'; }

gain.gain.setValueAtTime(volume, audioContext.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + duration);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + duration); }

function animateGrounderBall(pattern, count) { var ball = document.getElementById('sps-grounder-ball'); var leftPlayer = document.querySelector('.getta-sps-grounder-player-left'); var rightPlayer = document.querySelector('.getta-sps-grounder-player-right');

if (!ball) return;

// Calculate positions var leftPos = 60; var rightPos = ball.parentElement.offsetWidth - 60; var midPos = (leftPos + rightPos) / 2;

// Remove active class from both players if (leftPlayer) leftPlayer.classList.remove('sps-active'); if (rightPlayer) rightPlayer.classList.remove('sps-active');

ball.classList.add('sps-rolling'); setTimeout(function() { ball.classList.remove('sps-rolling'); }, 300);

if (pattern === 'onetouch' || pattern === 'wallpass') { // Alternate between left and right if (count % 2 === 0) { ball.style.left = rightPos + 'px'; if (rightPlayer) rightPlayer.classList.add('sps-active'); } else { ball.style.left = leftPos + 'px'; if (leftPlayer) leftPlayer.classList.add('sps-active'); } } else if (pattern === 'twotouch') { // Slower alternation (every 2 sounds) if (Math.floor(count / 2) % 2 === 0) { ball.style.left = (count % 2 === 0) ? midPos + 'px' : rightPos + 'px'; if (count % 2 === 1 && rightPlayer) rightPlayer.classList.add('sps-active'); } else { ball.style.left = (count % 2 === 0) ? midPos + 'px' : leftPos + 'px'; if (count % 2 === 1 && leftPlayer) leftPlayer.classList.add('sps-active'); } } else if (pattern === 'passgo') { if (count % 2 === 0) { ball.style.left = rightPos + 'px'; if (rightPlayer) rightPlayer.classList.add('sps-active'); } else { ball.style.left = leftPos + 'px'; if (leftPlayer) leftPlayer.classList.add('sps-active'); } } else if (pattern === 'triangle') { // Three positions var triPositions = [leftPos, midPos, rightPos]; ball.style.left = triPositions[count % 3] + 'px'; if (count % 3 === 0 && leftPlayer) leftPlayer.classList.add('sps-active'); if (count % 3 === 2 && rightPlayer) rightPlayer.classList.add('sps-active'); } }

// ======================================== // MARTIAL ARTS TRAINING // ======================================== var martialInterval = null; var martialCount = 0; var martialOscillators = []; var martialAnimationId = null; var martialActive = false;

var startMartialBtn = document.getElementById('sps-start-martial'); var stopMartialBtn = document.getElementById('sps-stop-martial');

// Preset configurations var martialPresets = { karate: { bpm: 95, pattern: 'upbeat', intensity: 'buildup', middleTanden: true, lowerTanden: false, middleIntensity: 70, lowerIntensity: 30 }, judo: { bpm: 85, pattern: 'downbeat', intensity: 'wave', middleTanden: false, lowerTanden: true, middleIntensity: 30, lowerIntensity: 80 }, boxing: { bpm: 110, pattern: 'combination', intensity: 'buildup', middleTanden: true, lowerTanden: false, middleIntensity: 80, lowerIntensity: 40 }, kickboxing: { bpm: 100, pattern: 'polyrhythm', intensity: 'explosive', middleTanden: true, lowerTanden: true, middleIntensity: 60, lowerIntensity: 60 }, mma: { bpm: 105, pattern: 'irregular', intensity: 'wave', middleTanden: true, lowerTanden: true, middleIntensity: 70, lowerIntensity: 70 } };

// Apply preset function (global) window.applyMartialPreset = function(preset) { var config = martialPresets[preset]; if (!config) return;

document.getElementById('sps-martial-type').value = preset; document.getElementById('sps-martial-bpm').value = config.bpm; document.getElementById('sps-martial-bpm-value').textContent = config.bpm + ' BPM'; document.getElementById('sps-martial-pattern').value = config.pattern; document.getElementById('sps-martial-intensity').value = config.intensity; document.getElementById('sps-martial-middle-tanden').checked = config.middleTanden; document.getElementById('sps-martial-lower-tanden').checked = config.lowerTanden; document.getElementById('sps-middle-tanden-intensity').value = config.middleIntensity; document.getElementById('sps-middle-tanden-intensity-value').textContent = config.middleIntensity + '%'; document.getElementById('sps-lower-tanden-intensity').value = config.lowerIntensity; document.getElementById('sps-lower-tanden-intensity-value').textContent = config.lowerIntensity + '%'; };

if (startMartialBtn) { startMartialBtn.addEventListener('click', function() { var ctx = initAudioContext(); if (!ctx) return;

stopMartial();

var bpm = parseInt(document.getElementById('sps-martial-bpm').value) || 100; var volume = (parseInt(document.getElementById('sps-volume-martial').value) || 70) / 100; var pattern = document.getElementById('sps-martial-pattern').value; var intensity = document.getElementById('sps-martial-intensity').value; var middleTanden = document.getElementById('sps-martial-middle-tanden').checked; var lowerTanden = document.getElementById('sps-martial-lower-tanden').checked; var middleIntensity = (parseInt(document.getElementById('sps-middle-tanden-intensity').value) || 50) / 100; var lowerIntensity = (parseInt(document.getElementById('sps-lower-tanden-intensity').value) || 50) / 100;

martialCount = 0; martialActive = true;

startMartialBtn.disabled = true; stopMartialBtn.disabled = false; document.getElementById('sps-martial-status').textContent = '再生中 - ' + getPatternName(pattern); document.getElementById('sps-martial-indicator').classList.add('sps-active');

// Update visual tanden indicators var middleTandenVisual = document.getElementById('sps-visual-middle-tanden'); var lowerTandenVisual = document.getElementById('sps-visual-lower-tanden'); if (middleTanden && middleTandenVisual) middleTandenVisual.classList.add('sps-active'); if (lowerTanden && lowerTandenVisual) lowerTandenVisual.classList.add('sps-active');

// Start main rhythm createMartialRhythm(bpm, volume, pattern, intensity);

// Start tanden sounds if enabled if (middleTanden) { createMiddleTandenSound(volume * middleIntensity, bpm); } if (lowerTanden) { createLowerTandenSound(volume * lowerIntensity, bpm); }

// Start visualizer animation animateMartialVisualizer(bpm); }); }

if (stopMartialBtn) { stopMartialBtn.addEventListener('click', function() { stopMartial(); }); }

function stopMartial() { martialActive = false; if (martialInterval) { clearTimeout(martialInterval); martialInterval = null; } martialOscillators.forEach(function(item) { if (item.osc) { try { item.osc.stop(); } catch (e) {} } if (item.interval) { clearInterval(item.interval); } if (item.timeout) { clearTimeout(item.timeout); } }); martialOscillators = []; if (martialAnimationId) { cancelAnimationFrame(martialAnimationId); martialAnimationId = null; } if (startMartialBtn) startMartialBtn.disabled = false; if (stopMartialBtn) stopMartialBtn.disabled = true; var statusEl = document.getElementById('sps-martial-status'); var indicatorEl = document.getElementById('sps-martial-indicator'); if (statusEl) statusEl.textContent = '停止'; if (indicatorEl) indicatorEl.classList.remove('sps-active');

var middleTandenVisual = document.getElementById('sps-visual-middle-tanden'); var lowerTandenVisual = document.getElementById('sps-visual-lower-tanden'); if (middleTandenVisual) middleTandenVisual.classList.remove('sps-active'); if (lowerTandenVisual) lowerTandenVisual.classList.remove('sps-active'); }

function getPatternName(pattern) { var names = { 'upbeat': 'アップビート', 'downbeat': 'ダウンビート', 'polyrhythm': 'ポリリズム', 'combination': 'コンビネーション', 'irregular': '不規則' }; return names[pattern] || pattern; }

function createMartialRhythm(bpm, volume, pattern, intensity) { if (!audioContext || !martialActive) return;

var interval = 60000 / bpm;

function playBeat() { if (!martialActive) return;

var shouldPlay = true; var beatVolume = volume;

// Pattern logic if (pattern === 'upbeat') { shouldPlay = martialCount % 2 === 1; } else if (pattern === 'downbeat') { shouldPlay = martialCount % 2 === 0; } else if (pattern === 'polyrhythm') { // 2-beat then 3-beat pattern var phase = Math.floor(martialCount / 8) % 2; if (phase === 0) { shouldPlay = martialCount % 2 === 0; } else { shouldPlay = martialCount % 3 === 0; } } else if (pattern === 'combination') { // 1-2, 1-2-3 pattern var comboPhase = martialCount % 8; shouldPlay = comboPhase === 0 || comboPhase === 1 || comboPhase === 4 || comboPhase === 5 || comboPhase === 6; } else if (pattern === 'irregular') { shouldPlay = Math.random() > 0.3; }

// Intensity logic if (intensity === 'buildup') { beatVolume = volume * (0.5 + (martialCount % 16) / 32); } else if (intensity === 'explosive') { beatVolume = (martialCount % 8 === 0) ? volume * 1.2 : volume * 0.4; } else if (intensity === 'wave') { beatVolume = volume * (0.6 + 0.4 * Math.sin(martialCount * 0.3)); }

if (shouldPlay) { playMartialSound(beatVolume, martialCount); }

martialCount++; martialInterval = setTimeout(playBeat, interval); }

playBeat(); }

function playMartialSound(volume, count) { if (!audioContext) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

// Different sounds for accent beats var isAccent = count % 4 === 0; var freq = isAccent ? 500 : 400; var duration = isAccent ? 0.15 : 0.1;

osc.frequency.setValueAtTime(freq, audioContext.currentTime); osc.frequency.exponentialRampToValueAtTime(freq * 0.7, audioContext.currentTime + duration); osc.type = isAccent ? 'triangle' : 'sine';

gain.gain.setValueAtTime(volume * (isAccent ? 1.2 : 0.8), audioContext.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + duration);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + duration); }

function createMiddleTandenSound(volume, bpm) { if (!audioContext || !martialActive) return;

var cycleDuration = 60 / bpm * 2; // 2 beats per cycle

function startCycle() { if (!martialActive) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

// Middle tanden: 150-400Hz, rising frequency for speed/control var startFreq = 180; var endFreq = 380;

osc.frequency.setValueAtTime(startFreq, audioContext.currentTime); osc.frequency.exponentialRampToValueAtTime(endFreq, audioContext.currentTime + cycleDuration * 0.7); osc.frequency.setValueAtTime(startFreq, audioContext.currentTime + cycleDuration * 0.75); osc.type = 'sine';

// Pulsing envelope (グイングイン effect) gain.gain.setValueAtTime(0.01, audioContext.currentTime); gain.gain.linearRampToValueAtTime(volume, audioContext.currentTime + cycleDuration * 0.2); gain.gain.linearRampToValueAtTime(volume * 0.3, audioContext.currentTime + cycleDuration * 0.4); gain.gain.linearRampToValueAtTime(volume * 0.9, audioContext.currentTime + cycleDuration * 0.6); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + cycleDuration);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + cycleDuration);

var timeout = setTimeout(startCycle, cycleDuration * 1000); martialOscillators.push({ osc: osc, timeout: timeout }); }

startCycle(); }

function createLowerTandenSound(volume, bpm) { if (!audioContext || !martialActive) return;

var cycleDuration = 60 / bpm * 4; // 4 beats per cycle

function startCycle() { if (!martialActive) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

// Lower tanden: 50-150Hz, deep resonating frequency for power/stability var baseFreq = 80;

osc.frequency.setValueAtTime(baseFreq, audioContext.currentTime); osc.frequency.setValueAtTime(baseFreq * 1.1, audioContext.currentTime + cycleDuration * 0.5); osc.frequency.setValueAtTime(baseFreq, audioContext.currentTime + cycleDuration * 0.75); osc.type = 'sine';

// Sustained, stable envelope gain.gain.setValueAtTime(0.01, audioContext.currentTime); gain.gain.linearRampToValueAtTime(volume, audioContext.currentTime + cycleDuration * 0.15); gain.gain.setValueAtTime(volume * 0.9, audioContext.currentTime + cycleDuration * 0.5); gain.gain.linearRampToValueAtTime(volume * 0.8, audioContext.currentTime + cycleDuration * 0.8); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + cycleDuration);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + cycleDuration);

// Add sub-bass for deep resonance var subOsc = audioContext.createOscillator(); var subGain = audioContext.createGain(); subOsc.connect(subGain); subGain.connect(audioContext.destination); subOsc.frequency.value = 50; subOsc.type = 'sine'; subGain.gain.setValueAtTime(volume * 0.4, audioContext.currentTime); subGain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + cycleDuration); subOsc.start(audioContext.currentTime); subOsc.stop(audioContext.currentTime + cycleDuration);

var timeout = setTimeout(startCycle, cycleDuration * 1000); martialOscillators.push({ osc: osc, timeout: timeout }); martialOscillators.push({ osc: subOsc }); }

startCycle(); }

function animateMartialVisualizer(bpm) { if (!martialActive) return;

var bars = document.querySelectorAll('.getta-sps-martial-bar'); var time = Date.now() * 0.005; var beatPhase = (time * bpm / 60) % 1;

bars.forEach(function(bar, i) { var wave = Math.sin(time + i * 0.8) * 0.5 + 0.5; var beat = Math.sin(beatPhase * Math.PI * 2) * 0.3 + 0.7; var height = 20 + wave * beat * 60; bar.style.height = height + '%'; });

martialAnimationId = requestAnimationFrame(function() { animateMartialVisualizer(bpm); }); }

// ======================================== // COMBO TRAINING (Grounder + Bounce) // ======================================== var comboInterval = null; var comboCount = 0; var comboSequence = [];

var startComboBtn = document.getElementById('sps-start-combo'); var stopComboBtn = document.getElementById('sps-stop-combo');

if (startComboBtn) { startComboBtn.addEventListener('click', function() { var ctx = initAudioContext(); if (!ctx) return;

var bpm = parseInt(document.getElementById('sps-combo-bpm').value) || 80; var volume = (parseInt(document.getElementById('sps-volume-combo').value) || 70) / 100; var pattern = document.getElementById('sps-combo-pattern').value;

comboCount = 0; comboSequence = generateComboSequence(pattern);

startComboBtn.disabled = true; stopComboBtn.disabled = false; document.getElementById('sps-combo-status').textContent = '再生中 - 複合パターン'; document.getElementById('sps-combo-indicator').classList.add('sps-active');

var interval = 60000 / bpm;

function playNextCombo() { if (startComboBtn.disabled === false) return;

var currentType = comboSequence[comboCount % comboSequence.length]; var nextType = comboSequence[(comboCount + 1) % comboSequence.length];

// Update display updateComboDisplay(nextType);

// Play appropriate sound if (currentType === 'grounder') { playComboGrounderSound(volume); } else { playComboBounceSound(volume); }

comboCount++; comboInterval = setTimeout(playNextCombo, interval); }

playNextCombo(); }); }

if (stopComboBtn) { stopComboBtn.addEventListener('click', function() { stopCombo(); }); }

function stopCombo() { if (comboInterval) { clearTimeout(comboInterval); comboInterval = null; } if (startComboBtn) startComboBtn.disabled = false; if (stopComboBtn) stopComboBtn.disabled = true; var statusEl = document.getElementById('sps-combo-status'); var indicatorEl = document.getElementById('sps-combo-indicator'); if (statusEl) statusEl.textContent = '停止'; if (indicatorEl) indicatorEl.classList.remove('sps-active');

var typeDisplay = document.getElementById('sps-combo-type-display'); var typeValue = document.getElementById('sps-combo-type-value'); if (typeDisplay) { typeDisplay.classList.remove('sps-grounder', 'sps-bounce'); } if (typeValue) typeValue.textContent = '---'; }

function generateComboSequence(pattern) { if (pattern === 'ground3bounce1') { return ['grounder', 'grounder', 'grounder', 'bounce']; } else if (pattern === 'alternate') { return ['grounder', 'bounce']; } else if (pattern === 'random') { var seq = []; for (var i = 0; i 0.5 ? 'grounder' : 'bounce'); } return seq; } else if (pattern === 'progressive') { return ['grounder', 'grounder', 'bounce', 'bounce', 'grounder', 'bounce', 'grounder', 'bounce']; } return ['grounder', 'bounce']; }

function updateComboDisplay(type) { var typeDisplay = document.getElementById('sps-combo-type-display'); var typeValue = document.getElementById('sps-combo-type-value');

if (typeDisplay && typeValue) { typeDisplay.classList.remove('sps-grounder', 'sps-bounce'); if (type === 'grounder') { typeDisplay.classList.add('sps-grounder'); typeValue.textContent = 'GROUNDER'; } else { typeDisplay.classList.add('sps-bounce'); typeValue.textContent = 'BOUNCE'; } } }

function playComboGrounderSound(volume) { if (!audioContext) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

osc.frequency.setValueAtTime(220, audioContext.currentTime); osc.frequency.exponentialRampToValueAtTime(160, audioContext.currentTime + 0.2); osc.type = 'triangle';

gain.gain.setValueAtTime(volume, audioContext.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.2);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + 0.2); }

function playComboBounceSound(volume) { if (!audioContext) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

osc.frequency.setValueAtTime(400, audioContext.currentTime); osc.frequency.exponentialRampToValueAtTime(200, audioContext.currentTime + 0.15); osc.type = 'sine';

gain.gain.setValueAtTime(volume, audioContext.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.15);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + 0.15); }

// ======================================== // BOUNCE PASS TRAINING // ======================================== var startBounceBtn = document.getElementById('sps-start-bounce'); var stopBounceBtn = document.getElementById('sps-stop-bounce');

if (startBounceBtn) { startBounceBtn.addEventListener('click', function() { var ctx = initAudioContext(); if (!ctx) return;

var bpm = parseInt(document.getElementById('sps-bpm').value) || 80; var volume = (parseInt(document.getElementById('sps-volume-bounce').value) || 70) / 100; var pattern = document.getElementById('sps-bounce-pattern').value; var interval = 60000 / bpm;

startBounceBtn.disabled = true; stopBounceBtn.disabled = false; document.getElementById('sps-bounce-status').textContent = '再生中 - ' + pattern; document.getElementById('sps-bounce-indicator').classList.add('sps-active');

var bounceCount = 0; bounceInterval = setInterval(function() { playBounceSound(volume, pattern, bounceCount); animateBall(pattern, bounceCount); bounceCount++; }, interval); }); }

if (stopBounceBtn) { stopBounceBtn.addEventListener('click', function() { stopBounce(); }); }

function stopBounce() { if (bounceInterval) { clearInterval(bounceInterval); bounceInterval = null; } if (startBounceBtn) startBounceBtn.disabled = false; if (stopBounceBtn) stopBounceBtn.disabled = true; var statusEl = document.getElementById('sps-bounce-status'); var indicatorEl = document.getElementById('sps-bounce-indicator'); if (statusEl) statusEl.textContent = '停止'; if (indicatorEl) indicatorEl.classList.remove('sps-active'); }

function playBounceSound(volume, pattern, count) { if (!audioContext) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

var baseFreq = 300; var duration = 0.15;

if (pattern === 'single') { baseFreq = 400; } else if (pattern === 'double') { baseFreq = (count % 2 === 0) ? 400 : 350; } else if (pattern === 'triple') { var freqs = [400, 360, 320]; baseFreq = freqs[count % 3]; } else if (pattern === 'decay') { var decay = 1 - (count % 5) * 0.15; baseFreq = 400 * decay; volume = volume * decay; }

osc.frequency.setValueAtTime(baseFreq, audioContext.currentTime); osc.frequency.exponentialRampToValueAtTime(baseFreq * 0.5, audioContext.currentTime + duration); osc.type = 'sine';

gain.gain.setValueAtTime(volume, audioContext.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + duration);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + duration); }

function animateBall(pattern, count) { var ball = document.getElementById('sps-bounce-ball'); if (!ball) return;

var maxHeight = 100; var height = maxHeight;

if (pattern === 'decay') { var decay = 1 - (count % 5) * 0.2; height = maxHeight * Math.max(decay, 0.2); }

ball.style.bottom = (20 + height) + 'px'; setTimeout(function() { ball.style.bottom = '20px'; }, 150); }

// ======================================== // IRREGULAR PATTERN TRAINING // ======================================== var startIrregularBtn = document.getElementById('sps-start-irregular'); var stopIrregularBtn = document.getElementById('sps-stop-irregular');

if (startIrregularBtn) { startIrregularBtn.addEventListener('click', function() { var ctx = initAudioContext(); if (!ctx) return;

currentBpm = parseInt(document.getElementById('sps-base-bpm').value) || 90; var volume = (parseInt(document.getElementById('sps-volume-irregular').value) || 70) / 100; var variationType = document.getElementById('sps-variation-type').value; var intensity = parseInt(document.getElementById('sps-variation-intensity').value) || 50; var changeFreq = parseInt(document.getElementById('sps-change-frequency').value) || 8;

beatCount = 0;

startIrregularBtn.disabled = true; stopIrregularBtn.disabled = false; document.getElementById('sps-irregular-status').textContent = '再生中 - ' + variationType; document.getElementById('sps-irregular-indicator').classList.add('sps-active');

function playNextBeat() { if (!startIrregularBtn.disabled) return;

// Calculate variation if (beatCount % changeFreq === 0 && beatCount > 0) { currentBpm = calculateNewBpm(currentBpm, variationType, intensity, document.getElementById('sps-base-bpm').value); document.getElementById('sps-irregular-status').textContent = '再生中 - ' + currentBpm + ' BPM'; }

playIrregularSound(volume, beatCount); animateIrregularVisualizer(); beatCount++;

var interval = 60000 / currentBpm; irregularInterval = setTimeout(playNextBeat, interval); }

playNextBeat(); }); }

if (stopIrregularBtn) { stopIrregularBtn.addEventListener('click', function() { stopIrregular(); }); }

function stopIrregular() { if (irregularInterval) { clearTimeout(irregularInterval); irregularInterval = null; } if (startIrregularBtn) startIrregularBtn.disabled = false; if (stopIrregularBtn) stopIrregularBtn.disabled = true; var statusEl = document.getElementById('sps-irregular-status'); var indicatorEl = document.getElementById('sps-irregular-indicator'); if (statusEl) statusEl.textContent = '停止'; if (indicatorEl) indicatorEl.classList.remove('sps-active'); }

function calculateNewBpm(current, type, intensity, baseBpm) { var base = parseInt(baseBpm) || 90; var variation = intensity / 100; var range = 60 * variation;

if (type === 'sudden-fast') { return Math.min(180, base + range); } else if (type === 'sudden-slow') { return Math.max(40, base - range); } else if (type === 'random') { return base + (Math.random() - 0.5) * range * 2; } else if (type === 'wave') { var phase = Math.sin(beatCount * 0.3); return base + phase * range; } else if (type === 'chaos') { var chaos = (Math.random() - 0.5) * range * 3; return Math.max(40, Math.min(180, base + chaos)); } return base; }

function playIrregularSound(volume, count) { if (!audioContext) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

var freq = (count % 4 === 0) ? 600 : 450; osc.frequency.value = freq; osc.type = 'triangle';

gain.gain.setValueAtTime(volume, audioContext.currentTime); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.1);

osc.start(audioContext.currentTime); osc.stop(audioContext.currentTime + 0.1); }

function animateIrregularVisualizer() { var bars = document.querySelectorAll('#sps-irregular-visualizer .getta-sps-visualizer-bar'); bars.forEach(function(bar, i) { var height = 20 + Math.random() * 60 + (currentBpm / 180) * 20; bar.style.height = height + '%'; }); }

// ======================================== // TANDEN ACTIVATION // ======================================== var startTandenBtn = document.getElementById('sps-start-tanden'); var stopTandenBtn = document.getElementById('sps-stop-tanden');

if (startTandenBtn) { startTandenBtn.addEventListener('click', function() { var ctx = initAudioContext(); if (!ctx) return;

stopTanden();

var speed = parseInt(document.getElementById('sps-rise-speed').value) || 5; var pattern = document.getElementById('sps-energy-pattern').value; var freqRange = document.getElementById('sps-freq-range').value; var volume = (parseInt(document.getElementById('sps-volume-tanden').value) || 60) / 100;

var addHeartbeat = document.getElementById('sps-add-heartbeat').checked; var addBreath = document.getElementById('sps-add-breath').checked; var addOvertone = document.getElementById('sps-add-overtone').checked;

// Frequency ranges var freqMin, freqMax; if (freqRange === 'low') { freqMin = 80; freqMax = 200; } else if (freqRange === 'mid') { freqMin = 150; freqMax = 400; } else if (freqRange === 'high') { freqMin = 300; freqMax = 800; } else { freqMin = 80; freqMax = 800; }

// Main rising oscillator createRisingOscillator(freqMin, freqMax, speed, pattern, volume);

// Additional effects if (addHeartbeat) { createHeartbeat(volume * 0.4); } if (addBreath) { createBreathSound(volume * 0.2); } if (addOvertone) { createOvertone(freqMin, freqMax, speed, volume * 0.3); }

tandenActive = true; startTandenBtn.disabled = true; stopTandenBtn.disabled = false; document.getElementById('sps-tanden-status').textContent = '活性化中 - ' + pattern; document.getElementById('sps-tanden-indicator').classList.add('sps-active'); document.getElementById('sps-tanden-indicator').classList.add('sps-energy');

animateTandenVisualizer(); }); }

if (stopTandenBtn) { stopTandenBtn.addEventListener('click', function() { stopTanden(); }); }

function stopTanden() { tandenOscillators.forEach(function(item) { if (item.osc) { try { item.osc.stop(); } catch (e) {} } if (item.interval) { clearInterval(item.interval); } if (item.timeout) { clearTimeout(item.timeout); } }); tandenOscillators = []; tandenActive = false; if (tandenAnimationId) { cancelAnimationFrame(tandenAnimationId); tandenAnimationId = null; } if (startTandenBtn) startTandenBtn.disabled = false; if (stopTandenBtn) stopTandenBtn.disabled = true; var statusEl = document.getElementById('sps-tanden-status'); var indicatorEl = document.getElementById('sps-tanden-indicator'); if (statusEl) statusEl.textContent = '停止'; if (indicatorEl) { indicatorEl.classList.remove('sps-active'); indicatorEl.classList.remove('sps-energy'); } }

function createRisingOscillator(freqMin, freqMax, speed, pattern, volume) { if (!audioContext) return;

var cycleDuration = (11 - speed) * 0.5; // 0.5s to 5s

function startCycle() { if (!tandenActive) return;

var osc = audioContext.createOscillator(); var gain = audioContext.createGain();

osc.connect(gain); gain.connect(audioContext.destination);

osc.type = 'sine';

if (pattern === 'continuous') { // Smooth continuous rise (グイーン) osc.frequency.setValueAtTime(freqMin, audioContext.currentTime); osc.frequency.exponentialRampToValueAtTime(freqMax, audioContext.currentTime + cycleDuration); gain.gain.setValueAtTime(volume, audioContext.currentTime); gain.gain.setValueAtTime(volume * 0.8, audioContext.currentTime + cycleDuration * 0.8); gain.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + cycleDuration); } else if (pattern === 'pulse') { // Pulsing rise (グイングイン) var pulseCount = 4; var pulseTime = cycleDuration / pulseCount; for (var i = 0; i

M

宮崎要輔

一本歯下駄GETTA開発者 / スポーツトレーナー

一本歯下駄GETTA開発者。文化身体論を提唱し、プロアスリートから子どもまで幅広く指導。科学的エビデンスに基づくトレーニング理論を追求。

── ◆ ──

CERTIFIED INSTRUCTOR

一本歯下駄インストラクターになろう

一本歯下駄の正しい使い方を学び、認定インストラクターとして活動しませんか?
接骨院・整体院・パーソナルトレーナー・スポーツ指導者の方に最適です。

インストラクター制度を詳しく見る →

一本歯下駄GETTA公式 認定インストラクター制度


よくある質問

Q. 三要素の統合躍動するパスの構造とは?

A. 変則リズムによる予測不能への適応力、中丹田から湧き上がる高重心の身体感覚、そして躍動音による生命の衝動。この三要素が統合されることで、アスリートは「フロー状態」に入り、直感的なプレーが可能になります。 小脳は「運動の指揮者」と呼ばれ、タイミング調整・予測・協調運動を司ります。音響リズムトレーニングは、この小脳を直接刺激し、意識を介さない自動化された動きを構築します。

Q. 小脳が導く無意識の運動学習とは?

A. 小脳は「運動の指揮者」と呼ばれ、タイミング調整・予測・協調運動を司ります。音響リズムトレーニングは、この小脳を直接刺激し、意識を介さない自動化された動きを構築します。 一本歯下駄GETTAで体幹トレーニングを始めてみませんか? サッカー、バスケットボール、テニス、バレーボール、野球。あらゆる球技において、リズム感とタイミング精度は成功の鍵を握ります。

Q. あらゆる球技に適用リズムが運動能力を解放するとは?

A. サッカー、バスケットボール、テニス、バレーボール、野球。あらゆる球技において、リズム感とタイミング精度は成功の鍵を握ります。本システムは各スポーツ特有のリズムパターンに対応し、競技パフォーマンスを根本から向上させます。 パス交換における「出し手」と「受け手」のタイミング同期が試合の質を決定します。研究では、リズムトレーニングを行った選手はパス成功率が23%向上することが報告されています。

Q. パス練習音響システムとは?

A. バウンドするボールのリズムに合わせてパス練習を行います。音のタイミングでトラップ、次の音でパス。一本歯下駄を履いた状態で行うことで、足裏感覚とリズムの同調効果が最大化されます。 地を這うグランダーパスのリズムトレーニング。パスの「出し」と「受け」のタイミングを音で体得します。一本歯下駄を履いた状態でのステップワークと組み合わせることで、足裏感覚と連動した正確なパスが可能になります。

Q. 中丹田の覚醒高重心への導きとは?

A. 中丹田(鳩尾のインナーユニット)は、横隔膜・腹横筋・多裂筋・骨盤底筋群が統合される身体の要です。ここが活性化されると、重心が自然と引き上がり、軽やかで躍動感のある動きが可能になります。 上昇する周波数が中丹田を活性化 足裏から全身の深層筋を覚醒させる 一本歯下駄が足裏から深層筋を刺激する一方、躍動音が聴覚から中丹田を活性化。


この記事の監修者

宮崎要輔

合同会社GETTAプランニング代表 / 一本歯下駄GETTA開発者

文化身体論提唱者。「鍛えるな醸せ」を核心原理とし、一本歯下駄GETTAを通じた体幹トレーニング・身体教育の革新を推進。進化思考に基づく身体知の体系化と、トレーナー資格認定制度を設計。





PAGE TOP