Sistema que transforma dados de bolhas tecnológicas em música algorítmica, mapeando métricas quantitativas para parâmetros musicais.
| Índice | Risco | Modo | Característica | Som | |--------|-------|------|----------------|-----| | 0-30% | Baixo | Jônico (C D E F G A B) | Consonante, maior | Alegre, estável | | 30-50% | Moderado | Dórico (D E F G A B C) | Menor jazzy | Sofisticado, tenso | | 50-70% | Alto | Frígio (E F G A B C D) | Menor espanhol | Dramático, sombrio | | 70-100% | Crítico | Lócrio (B C D E F G A) | Diminuto | Caótico, dissonante |
┌─────────────────┬──────────────────────┬──────────────────────┐
│ Métrica │ Parâmetro Musical │ Efeito │
├─────────────────┼──────────────────────┼──────────────────────┤
│ Adoção (75%) │ Densidade de notas │ 16th notes (rápido) │
│ Hype (58%) │ BPM (138) │ Energético │
│ Investment (70%)│ Volume/Velocity │ Forte (ff) │
│ Network (65%) │ Harmonias/Reverb │ Espacial, denso │
│ Feedback (17%) │ Padrões rítmicos │ Ostinato estável │
│ Divergência (9%)│ Dissonância │ Consonante │
└─────────────────┴──────────────────────┴──────────────────────┘
Track 1: MELODY → Adoption + Hype + Divergence
Track 2: BASS → Investment (fundamento)
Track 3: CHORDS → Network (harmonias)
Track 4: DRUMS → Feedback (ritmo)
Intro (4 bars) → Estabelece modo
A (8 bars) → Tema principal (métricas atuais)
B (8 bars) → Desenvolvimento (variações)
A' (8 bars) → Retorno (consolidação)
Outro (4 bars) → Finalização
Total: 32 bars ≈ 2 minutos
1. Selecione asset (ChatGPT, Bitcoin, etc)
2. Clique "Analisar & Gerar Música"
3. Aguarde análise (2-5 segundos)
4. Clique "▶️ Play"
5. Ouça em tempo real (Tone.js)
Visualizações:
/api/generate-music
curl -X POST http://localhost:8000/api/generate-music \
-H "Content-Type: application/json" \
-d '{"asset":"chatgpt"}' | jq
Response:
{
"asset": "ChatGPT/OpenAI",
"bubble_index": 32.4,
"musical_parameters": {
"mode": "dorian",
"bpm": 138,
"style": "Funk / Fusion - Expectativas elevadas"
},
"download_url": "/api/download-music/chatgpt",
"file": "/tmp/bubble_music/chatgpt.mid"
}
Download MIDI:
curl -O http://localhost:8000/api/download-music/chatgpt
Arquivo: chatgpt_bubble_music.mid
Modo: Jônico (C Major)
BPM: 100-110
Ritmo: 4/4 swing, sincopado suave
Density: Quarter + 8th notes
Volume: mf (mezzo-forte)
Sensação: Confiante, relaxado, otimista
Referência: Tom Jobim, Bill Evans
Exemplo: Claude/Anthropic (25%)
C4 E4 G4 B4 | C5 A4 F4 G4 | E4 G4 B4 D5 | C5...
Bass: C3 . . . | F3 . . . | G3 . . . | C3...
Modo: Dórico (D minor)
BPM: 120-140
Ritmo: Sincopado, groove marcado
Density: 8th notes + 16th fills
Volume: mf → f (crescendo)
Sensação: Energético, jazzy, tension
Referência: Herbie Hancock, Weather Report
Exemplo: ChatGPT (32%)
D4 F4 A4 C5 | D5 C5 A4 G4 | F4 A4 D5 E5 | D5...
Syncopated bass + funky drums
Modo: Frígio (E minor espanhol)
BPM: 140-160, mudanças de compasso
Ritmo: 7/8, 5/4, síncopes complexas
Density: 16th notes, triplets
Volume: f → ff (forte)
Sensação: Tenso, dramático, imprevisível
Referência: Tool, King Crimson, Meshuggah
Exemplo: Tech Bubble 2000 (60%)
7/8: E4 F4 G4 A4 B4 C5 D5 |
5/4: E5 D5 C5 B4 A4 |
Complex polyrhythms
Modo: Lócrio (B diminished)
BPM: 180+ ou rubato caótico
Ritmo: Irregular, glitches, breaks
Density: Clusters, random
Volume: Extremos (pp ↔ fff)
Sensação: Caos, colapso, ansiedade
Referência: Xenakis, Merzbow, Venetian Snares
Exemplo: Metaverse 2021 (82%)
B3 C4 D4 E4 F4 (cluster) |
Random pitch |
Distortion |
Breakcore drums |
Noise textures
bubble < 0.30: 'sine' // Suave, puro
bubble < 0.50: 'triangle' // Balanceado
bubble < 0.70: 'sawtooth' // Brilhante, agressivo
bubble >= 0.70: 'square' // Distorcido, digital
Attack: 0.01 + (1 - adoption) * 0.5 // 0.01-0.51s
Decay: 0.05 + (1 - hype) * 0.3 // 0.05-0.35s
Sustain: 0.3 + investment * 0.6 // 0.3-0.9
Release: 0.1 + network * 0.9 // 0.1-1.0s
Reverb: investment * 5 seconds // Espacialidade
Delay: network * 0.7 feedback // Efeito de rede
Distortion: divergence * 100 drive // Dissonância
LFO: hype * 10 Hz // Modulação
Filter: adoption * 5000 Hz cutoff // Brilho
A(t) = (p+q)e^((p+q)t) / (1+(q/p)e^((p+q)t))
Curva S traduzida para pitch:
t=0: C4 (grave, início)
t=0.5: G4 (crescimento)
t=1.0: C5 (saturação, agudo)
Technology Trigger: p (piano)
Peak: fff (fortississimo)
Trough: pp (pianissimo)
Enlightenment: mf (crescendo)
Plateau: f (estável)
N(A) = A^1.5
A=0.2: 1 voz (monodia)
A=0.5: 3 vozes (tríade)
A=0.8: 6 vozes (orquestra!)
Vozes = round(1 + A^1.5 * 5)
Adoption: 75%
Hype: 58%
Investment: 70%
Network: 65%
Feedback: 17%
Divergence: 9%
Bubble: 32.4%
Música Gerada:
Modo: Dórico (D minor)
BPM: 138
Estilo: Funk/Fusion
Feeling: Energético mas controlado
Melodia: D4 F4 A4 C5 | D5 C5 A4 G4 | (8th notes)
Bass: D2 . . . | G2 . . . | (quarters)
Chords: Dm7 | G7 | Cmaj7 | (whole notes)
Drums: Syncopated funk groove
Bubble: 45%
Hype: 75%
Investment: 85%
Música:
Modo: Dórico → Frígio (modulação)
BPM: 160 (frenético)
Volume: ff (muito forte)
Feeling: Excitação, risco crescente
Bubble: 82%
Divergence: 87%
Hype: 95%
Adoption: 8%
Música:
Modo: Lócrio (caótico)
BPM: 180+ (frenético)
Ritmo: Irregular, breaks
Feeling: Colapso iminente, caos
Clusters cromáticos
Noise textures
Breakcore drums
MIDI generation
pip install mido --break-system-packages
backend/music_generator.py # MIDI generator
backend/music_endpoints.py # API endpoints
frontend/sonification.html # Web player
1. Gerar MIDI via API:
POST /api/generate-music {"asset":"chatgpt"}
2. Download:
GET /api/download-music/chatgpt
3. Importar em DAW:
- Ableton Live
- Logic Pro
- FL Studio
- Reaper
4. Editar:
- Trocar instrumentos
- Adicionar FX
- Mixar
- Masterizar
Track 1: Piano (GM 0) → Melodia
Track 2: Bass (GM 33) → Linha de baixo
Track 3: E.Piano (GM 4) → Acordes
Track 4: Drums (Channel 10)→ Bateria
music_generator.py
self.base_note = 60 # C4
Alterar para:
self.base_note = 64 # E4 (mais agudo)
self.base_note = 57 # A3 (mais grave)
def calculate_bpm(self, hype: float) -> int:
return int(80 + hype * 100) # 80-180
# Mudar para:
return int(60 + hype * 80) # 60-140 (mais lento)
GM Program numbers
melody_track.append(Message('program_change', program=0)) # Piano
Alterar para:
0: Piano
24: Nylon Guitar
33: Acoustic Bass
40: Violin
73: Flute
80: Synth Lead
Analisar série temporal
dates = ["2022-11", "2023-01", "2023-04", "2024-11"]
assets = ["chatgpt"] * 4
for date, asset in zip(dates, assets):
analysis = analyze_historical(asset, date)
generate_music(analysis, f"{asset}_{date}.mid")
Resultado:
chatgpt_2022-11.mid → 15% (Jônico, calmo)
chatgpt_2023-01.mid → 45% (Dórico, peak)
chatgpt_2023-04.mid → 35% (Dórico, queda)
chatgpt_2024-11.mid → 32% (Dórico, estável)
Concatenar em playlist temporal
Jônico (I): T T s T T T s (Maior, feliz)
Dórico (II): T s T T T s T (Menor, jazzy)
Frígio (III): s T T T s T T (Menor, espanhol)
Lídio (IV): T T T s T T s (Maior, etéreo)
Mixolídio (V): T T s T T s T (Maior, blues)
Eólio (VI): T s T T s T T (Menor natural)
Lócrio (VII): s T T s T T T (Diminuto, instável)
T = Tom (2 semitons)
s = Semitom (1 semitom)
Consonantes (estável):
- 8ª justa (0 ou 12)
- 5ª justa (7)
- 3ª maior (4), 3ª menor (3)
Dissonantes (tensão):
- 2ª menor (1) - muito tenso
- Trítono (6) - "diabolus in musica"
- 7ª maior (11)
I - IV - V - I (C - F - G - C)
Tônica → Subdominante → Dominante → Tônica
Estável, clássico
Moderado:
ii - V - I (Dm - G - C)
Jazz turnaround, sofisticado
Alto Risco:
i - bVII - bVI - V (Cm - Bb - Ab - G)
Modal interchange, tenso
Crítico:
Clusters cromáticos
Politonalidade
Sem centro tonal
- Gerar música de diferentes assets
- Tocar durante apresentação
- "Ouça o som da bolha"
- Monitor tempo real
- Sonificação contínua
- Mudanças gradativas
- Sonificação de dados
- Análise temporal auditiva
- Publicações interdisciplinares
- Alert sonoro de bolha
- Diferentes tons por risco
- Integração com plataformas
---
Próximo: Integração com STRATAGO para cenários multi-temporais!