We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
c := RSCanvas new. c color: Color black. colors := NSScale category20c. width := 720. height := 720. extent := width@ height. minRadius := 25. maxRadius := (width min: height) * 0.4. r := Random new. angleSP := 0.01. radiusSP := 2. tau := 6.2831855. frame := 0. eased := [ :x | x < 0.5 ifTrue: [ 0.5 * (2 * x raisedTo: 3) ] ifFalse: [ 0.5 * (2* (x-1) raisedTo: 3)+1 ] ]. arcs := (1 to: 75) collect: [ :i | | isMovingAngle radius angle angleV radiusV randomV cycle line rotateAngle rotateAngleTarget ratio frameOffset points comp | isMovingAngle := false. radius := r rsNext: minRadius and: maxRadius. angle := r next * Float twoPi. angleV := 0. radiusV := 0. randomV := [ angleV := r next > 0.5 ifTrue: [ r rsNext: angleSP * -1 and: angleSP * -0.1 ] ifFalse: [ r rsNext: angleSP and: angleSP * 0.1 ]. radiusV := radius > maxRadius ifTrue: [ r rsNext: radiusSP * -1 and: radiusSP * -0.1 ] ifFalse: [ r next > 0.5 ifTrue: [ r rsNext: radiusSP * 0.1 and: radiusSP ] ifFalse: [ r rsNext: radiusSP * -1 and: radiusSP * -0.1 ] ] ]. randomV value. cycle := (r rsNext: 200 and: 300) asInteger. rotateAngle := r next * tau. rotateAngleTarget := rotateAngle + (r rsNext: -1 and: 1). ratio := 0. frameOffset := (r next * cycle) asInteger. points := OrderedCollection new. line := RSPolyline new width: (r rsNext: 1 and: 2.5); color: (colors scale: i); yourself. comp := RSComposite new add: line; yourself. comp propertyAt: #update put: [ | cur count cycleRatio cycleRatioMult cycleRatioEased ang vertRatio | cur := (angle cos @ angle sin) * radius. points addLast: cur. points size > 120 ifTrue: [ points removeFirst ]. isMovingAngle ifTrue: [ angle := angle + angleV ] ifFalse: [ (radius < minRadius and: [ radiusV < 0 ]) ifTrue: [ radius := radius + 0 ] ifFalse: [ radius := radius + (radiusV * (1 + (radius * 0.005) )) ] ]. r next > 0.9 ifTrue: [ isMovingAngle := isMovingAngle not. randomV value. ]. count := frame + frameOffset. cycleRatio := (count % cycle) / cycle. cycleRatioMult := 1 min: cycleRatio * 4. cycleRatioEased := eased value: cycleRatioMult. ratio := cycleRatioEased. (count % cycle) isZero ifTrue: [ rotateAngle := rotateAngleTarget. rotateAngleTarget := rotateAngle + (r rsNext: -1 and: 1). ]. ang := rotateAngle interpolateTo: rotateAngleTarget at: ratio. vertRatio := (ratio * tau) sin * 0.01+1. line controlPoints: (points * vertRatio). comp matrix loadIdentity; rotateByRadians: ang. ]. comp ]. c addAll: arcs. c newAnimation repeat; onStepDo: [ :t | arcs do: [ :arc | (arc propertyAt: #update) value. ]. c signalUpdate. frame := frame + 0.5. ]. sound := SampledSound fromWaveFileNamed: '/Users/azazael/Downloads/levan.wav'. sound := sound sounds first. scale := NSScale pow domain: #(0 1); range: #(1 1.1). c newAnimation duration: sound duration asSeconds; onStepDo: [ :t | | index value | index := t * sound samples size + 1. value := (sound samples at: index) abs / 32768. c camera scale: (scale scale: value) ]. c videoExporter p720; duration: sound duration asSeconds; export
The text was updated successfully, but these errors were encountered:
No branches or pull requests
The text was updated successfully, but these errors were encountered: