some slightly better examples
This commit is contained in:
@ -28,7 +28,7 @@ export const makeExampleFactory = (application: Editor): Function => {
|
|||||||
) => {
|
) => {
|
||||||
const codeId = `codeExample${application.exampleCounter++}`;
|
const codeId = `codeExample${application.exampleCounter++}`;
|
||||||
// Store the code snippet in the data structure
|
// Store the code snippet in the data structure
|
||||||
application.api.codeExamples[codeId] = "bpm(120);\n" + code;
|
application.api.codeExamples[codeId] = code;
|
||||||
|
|
||||||
return `
|
return `
|
||||||
<details ${open ? "open" : ""}>
|
<details ${open ? "open" : ""}>
|
||||||
|
|||||||
@ -69,7 +69,7 @@ ${makeExample(
|
|||||||
"pulse is the OG rhythmic function in Topos",
|
"pulse is the OG rhythmic function in Topos",
|
||||||
`
|
`
|
||||||
pulse([48, 24, 16].beat(4)) :: sound('linnhats').out()
|
pulse([48, 24, 16].beat(4)) :: sound('linnhats').out()
|
||||||
beat(1)::snd('bd').out()
|
beat(1)::snd(['bd', '808oh'].beat(1)).out()
|
||||||
`,
|
`,
|
||||||
false
|
false
|
||||||
)};
|
)};
|
||||||
@ -80,7 +80,7 @@ ${makeExample(
|
|||||||
"Some simple yet detailed rhythms",
|
"Some simple yet detailed rhythms",
|
||||||
`
|
`
|
||||||
onbeat(1,2,3,4)::snd('kick').out() // Bassdrum on each beat
|
onbeat(1,2,3,4)::snd('kick').out() // Bassdrum on each beat
|
||||||
onbeat(2,4)::snd('snare').n([0,2].beat(2.5)).out() // Snare on acccentuated beats
|
onbeat(2,4)::snd('snare').n([8,4].beat(4)).out() // Snare on acccentuated beats
|
||||||
onbeat(1.5,2.5,3.5, 3.75)::snd('hat').gain(r(0.9,1.1)).out() // Cool high-hats
|
onbeat(1.5,2.5,3.5, 3.75)::snd('hat').gain(r(0.9,1.1)).out() // Cool high-hats
|
||||||
`,
|
`,
|
||||||
true
|
true
|
||||||
@ -103,13 +103,12 @@ beat([.25, 1/8].beat(1.5))::snd('hat').n(2)
|
|||||||
${makeExample(
|
${makeExample(
|
||||||
"Using oncount to create more variation in the rhythm",
|
"Using oncount to create more variation in the rhythm",
|
||||||
`
|
`
|
||||||
bpm(120)
|
z1('1/16 (0 2 3 4)+(0 2 4 6)').scale('pentatonic').sound('sawtooth')
|
||||||
z1('0.125 (0 2 3 4)+(0 2 4 6)').sound('sawtooth')
|
.cutoff([400,500,1000,2000].beat(1))
|
||||||
.cutoff([400,500,1000,2000].beat(1))
|
.lpadsr(2, 0, .2, 0, 0)
|
||||||
.lpadsr(2, 0, .2, 0, 0)
|
.delay(0.5).delayt(0.25).room(0.9).size(0.9).out()
|
||||||
.delay(0.5).delayt(0.25).room(0.9).size(0.9).out()
|
onbeat(1,1.5,2,3,4) :: sound('bd').gain(2.0).out()
|
||||||
onbeat(1,1.5,2,3,4) :: sound('bd').gain(2.0).out()
|
oncount([1,3,5.5,7,7.5,8],8) :: sound('hh').gain(irand(1.0,4.0)).out()
|
||||||
oncount([1,3,5.5,7,7.5,8],8) :: sound('hh').gain(irand(1.0,4.0)).out()
|
|
||||||
`,
|
`,
|
||||||
true
|
true
|
||||||
)}
|
)}
|
||||||
@ -117,12 +116,11 @@ ${makeExample(
|
|||||||
${makeExample(
|
${makeExample(
|
||||||
"Using oncount to create rhythms with a custom meter",
|
"Using oncount to create rhythms with a custom meter",
|
||||||
`
|
`
|
||||||
bpm(200)
|
bpm(200)
|
||||||
oncount([1, 5, 9, 13],16) :: sound('bd').gain(1.0).out()
|
oncount([1, 5, 9, 13],16) :: sound('808bd').n(4).shape(0.5).gain(1.0).out()
|
||||||
oncount([5, 6, 13],16) :: sound('cp').gain(0.9).out()
|
oncount([5, 6, 13],16) :: sound('shaker').room(0.25).gain(0.9).out()
|
||||||
oncount([2, 3, 3.5, 6, 7, 10, 15],16) :: sound('hh').n(8).gain(0.8).out()
|
oncount([2, 3, 3.5, 6, 7, 10, 15],16) :: sound('hh').n(8).gain(0.8).out()
|
||||||
oncount([1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16],16) ::
|
oncount([1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16],16) :: sound('hh').out()
|
||||||
sound('hh').out()
|
|
||||||
`,
|
`,
|
||||||
true
|
true
|
||||||
)}
|
)}
|
||||||
@ -136,9 +134,14 @@ We included a bunch of popular rhythm generators in Topos such as the euclidian
|
|||||||
${makeExample(
|
${makeExample(
|
||||||
"Classic euclidian club music patterns",
|
"Classic euclidian club music patterns",
|
||||||
`
|
`
|
||||||
beat(.5) && euclid($(1), 5, 8) && snd('kick').out()
|
beat(.5) && euclid($(1), 4, 8) && snd('kick').n(4).out()
|
||||||
beat(.5) && euclid($(2), 2, 8) && snd('sd').out()
|
beat(.25) && euclid($(2), 5, 8) && snd('dr').n(21).out()
|
||||||
beat(4) :: sound('cp').out()
|
beat(.25) && euclid($(3), 3, 8) && snd('shaker')
|
||||||
|
.gain(r(0.7, 1)).cutoff(1000 + usine(1/8) * 3000)
|
||||||
|
.n(11).out()
|
||||||
|
beat(.25) && euclid($(3), 6, 8) && snd('shaker')
|
||||||
|
.gain(r(0.7, 1)).cutoff(1000 + usine(1/4) * 4000)
|
||||||
|
.speed(2).n(11).out()
|
||||||
`,
|
`,
|
||||||
true
|
true
|
||||||
)}
|
)}
|
||||||
@ -149,7 +152,7 @@ ${makeExample(
|
|||||||
bpm(145); // Setting a faster BPM
|
bpm(145); // Setting a faster BPM
|
||||||
beat(.5) && euclid($(1), 5, 8) :: sound('bd').out()
|
beat(.5) && euclid($(1), 5, 8) :: sound('bd').out()
|
||||||
beat(.5) && euclid($(2), [1,0].beat(8), 8)
|
beat(.5) && euclid($(2), [1,0].beat(8), 8)
|
||||||
:: sound('ST03').n(3).room(1).size(1).o(1).out()
|
:: sound('ST03').n(5).room(1).size(1).o(1).out()
|
||||||
beat(.5) && euclid($(6), [6,7].beat(8), 8) :: sound('hh').out()
|
beat(.5) && euclid($(6), [6,7].beat(8), 8) :: sound('hh').out()
|
||||||
`,
|
`,
|
||||||
false
|
false
|
||||||
@ -158,9 +161,11 @@ beat(.5) && euclid($(6), [6,7].beat(8), 8) :: sound('hh').out()
|
|||||||
${makeExample(
|
${makeExample(
|
||||||
"Adding more rhythmic density",
|
"Adding more rhythmic density",
|
||||||
`
|
`
|
||||||
beat(.5) && euclid($(1), 5, 9) && snd('kick').out()
|
beat(.5) && euclid($(1), 5, 9) && snd('kick').shape(r(0.2,0.5)).out()
|
||||||
beat(.5) && euclid($(2), 2, 3, 1) && snd('east').end(0.5).n(5).speed([1,2].beat(2)).out()
|
beat(.5) && euclid($(2), 2, 3, 1) && snd('dr').end(0.5).n([8,9,13].beat(0.25))
|
||||||
beat(.5) && euclid($(3), 6, 9, 1) && snd('east').end(0.5).n(5).freq(200).speed([2,1].beat(2)).out()
|
.gain(r(0.5,1)).speed(1).out()
|
||||||
|
beat(.5) && euclid($(3), 6, 9, 1) && snd('dr').end(0.5).n(2).freq(200).speed(1)
|
||||||
|
.gain(r(0.5,1)).out()
|
||||||
beat(.25) && euclid($(4), 7, 9, 1) && snd('hh').out()
|
beat(.25) && euclid($(4), 7, 9, 1) && snd('hh').out()
|
||||||
`,
|
`,
|
||||||
false
|
false
|
||||||
@ -200,8 +205,8 @@ ${makeExample(
|
|||||||
"Change the integers for a surprise rhythm!",
|
"Change the integers for a surprise rhythm!",
|
||||||
`
|
`
|
||||||
bpm(135);
|
bpm(135);
|
||||||
beat(.5) && bin($(1), 34) && snd('kick').n([1,3].beat(1)).out()
|
beat(.5) && bin($(1), 12) && snd('kick').n([4,9].beat(1.5)).out()
|
||||||
beat(.5) && bin($(2), 48) && snd('snare').n([1,4].beat(1)).out()
|
beat(.5) && bin($(2), 34) && snd('snare').n([3,5].beat(1)).out()
|
||||||
`,
|
`,
|
||||||
true
|
true
|
||||||
)}
|
)}
|
||||||
@ -372,8 +377,16 @@ beat(.5)::snd(flip(4) ? 'kick' : 'hat').out()
|
|||||||
${makeExample(
|
${makeExample(
|
||||||
"Thinking music over bars",
|
"Thinking music over bars",
|
||||||
`
|
`
|
||||||
flipbar(2) :: beat(1):: snd('kick').out()
|
let roomy = (n) => n.room(1).size(1).cutoff(500 + usaw(1/8) * 5000);
|
||||||
flipbar(3) :: beat(.5):: snd('hat').out()
|
function a() {
|
||||||
|
beat(1) && roomy(sound('kick')).out()
|
||||||
|
beat(.5) && roomy(sound('hat')).out()
|
||||||
|
}
|
||||||
|
function b() {
|
||||||
|
beat(1/4) && roomy(sound('shaker')).out()
|
||||||
|
}
|
||||||
|
flipbar(2) && a()
|
||||||
|
flipbar(3) && b()
|
||||||
`,
|
`,
|
||||||
true
|
true
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user