Skill 詳細

pattrns

Renoise向けLuaパターンシーケンスエンジンPattrnsで生成的なアルゴリズミック音楽を作成するためのガイドで、ユークリッドリズムと生成メロディを扱います。

一致度一致の可能性音楽生成 向けにレビュー済み
出典bfollington/​terma外部ソース
報告インストール数22人気度の参考値

使用前に確認

自動レビューは関連性のみを確認し、安全性や推奨を保証しません。使用前に出典の説明を読んでください。

保存された出典プレビュー

SKILL.md

これはレビュー時に保存された抜粋です。完全で最新の内容は外部ソースを確認してください。

---
name: pattrns
description: Guide for creating generative, emergent music with Pattrns, the Lua-based pattern sequencing engine for Renoise. Use when composing algorithmic patterns, generating evolving breakbeats/rhythms, creating generative melodies/harmonies, designing textures, or working with euclidean rhythms and live coding patterns. Covers breakbeat/jungle/DnB, IDM/experimental, jazz, industrial/trip-hop, and ambient styles.
---

# Pattrns - Generative Music Creation

## Overview

Pattrns is a Lua-based pattern generation engine for Renoise that enables algorithmic, generative music creation. Use this skill when working with Pattrns to create emergent, evolving musical patterns across genres including breakbeat/jungle, IDM, jazz, industrial/trip-hop, and ambient music.

**Core Architecture:** Pattrns separates rhythm from melody through a **Pulse → Gate → Event** pipeline:
- **Pulse**: Defines when events occur (rhythm)
- **Gate**: Optional filter for pulse values (probability, complexity)
- **Event**: Generates notes, chords, or sequences (melody/harmony)

This separation enables powerful generative techniques where rhythms and melodies can evolve independently and be recombined in creative ways.

## When to Use This Skill

Invoke this skill when:
- Creating generative or algorithmic patterns in Renoise
- Working with euclidean rhythms or polyrhythms
- Designing evolving, emergent musical structures
- Generating breakbeats, complex drum patterns, or rhythmic variations
- Creating generative melodies, harmonies, or chord progressions
- Building textural, ambient, or atmospheric patterns
- Using Tidal Cycles mini-notation for pattern creation
- Developing patterns that resample and resequence for iterative composition

## Quick Start

### Basic Pattern Structure

Every Pattrns pattern follows this structure:

```lua
return pattern {
  unit = "1/16",              -- Time grid (1/16, 1/8, 1/4, bars, etc.)
  resolution = 1,             -- Multiplier (2/3 for triplets)
  offset = 0,                 -- Delay pattern start
  repeats = true,             -- Loop pattern
  pulse = {1, 0, 1, 1},      -- Static rhythm array
  event = {"c4", "e4", "g4"} -- Static note sequence
}
```

### Essential Techniques at a Glance

**Euclidean Rhythms** (most common starting point):
```lua
pulse = pulse.euclidean(7, 16)  -- 7 hits distributed in 16 steps
```

**Scale-Based Melodies**:
```lua
local s = scale("c4", "minor")
event = s.notes  -- Use scale notes as sequence
```

**Random Generation with Control**:
```lua
event = function(context)
  local notes = scale("c4", "pentatonic minor").notes
  return notes[math.random(#notes)]
end
```

**Tidal Cycles Mini-Notation**:
```lua
return cycle("kd ~ sn ~, [hh hh]*4"):map({
  kd = "c4 #1",  -- Kick drum
  sn = "c4 #2",  -- Snare
  hh = "c4 #3 v0.5"  -- Hi-hat, quieter
})
```

## Core Workflow

### 1. Choose Musical Goal

Identify what to create:
- **Rhythmic**: Drum pattern, breakbeat, groove
- **Melodic**: Bassline, lead, arpeggio
- **Harmonic**: Chord progression, pad, texture
- **Textural**: Atmosphere, drone, evolving soundscape

### 2. Design Rhythm (Pulse)

Start with rhythmic foundation:

**Static Arrays:**
```lua
pulse = {1, 0, 1, 1, 0, 1, 0, 0}  -- Hand-crafted rhythm
```

**Euclidean Distribution:**
```lua
pulse = pulse.euclidean(5, 8)     -- Algorithmic rhythm
```

**Dynamic/Generative:**
```lua
pulse = function(context)
  return math.random() > 0.5      -- Probabilistic rhythm
end
```

**Subdivisions (Cramming):**
```lua
pulse = {1, {1, 1, 1}, 1, 0}      -- Quarter + triplet + quarter + rest
```

### 3. Design Note Generation (Event)

Create melodic/harmonic content:

**Static Sequence:**
```lua
event = {"c4", "e4", "g4", "b4"}
```

**Scale-Based:**
```lua
local s = scale("c4", "minor")
event = function(context)
  return s.notes[math.imod(context.step, #s.notes)]
end
```

**Chord Progressions:**
```lua
local s = scale("c4", "minor")
event = sequence(
  s:chord("i"),   -- Tonic
  s:ch
GitHub で全文を読む (外部ページ)
関連情報

関連する仕事