Hey there lovely patrons,
who’s tried the new v3 BETA for Windows? What do you think? I’d love to hear your thoughts…
Hey there lovely patrons,
who’s tried the new v3 BETA for Windows? What do you think? I’d love to hear your thoughts…
Not yet. Been thinking about doing so, been a bit busier than expected and haven’t used my Lenovo in a while (my partner mostly uses that one).
From prior experience, it does sound like proper testing is needed on the Windows, especially with MIDI. In fact, haven’t found a proper way to get MIDI to work between apps, yet.
I’m hoping that MIDI in/out now works well on Windows - I’ve made quite a bit of progress with each beta release.
The issue you mention with MIDI not working between apps is (I think) an operating system limitation with Windows. I don’t believe that there’s a virtual MIDI driver on Windows like there is for macOS and Linux.
Super - great to hear that there’s a solution
Indeed!
Did install LoopMIDI but have yet to make it work with my setup.
I did get the dreaded thread death message this morning with some code that I snagged from someone on Dropbox. I only had about 2 minutes before class so wasn’t able to investigate further. I’ll check it out later.
Does the Pi come with MIDI capability?
What kind of thread death did you encounter? Was it an out of time issue?
I’m still yet to see any of these on my varied windows vms and laptops so would be very grateful for a simple reliable way of replicating one
OK, just ran the code again. No errors and it played fine.
?
Sounds like it was an out of time thread death then - which can happen when the computer can’t keep up with what the code is asking to do. This could be due a number of reasons, including:
sleep
Of course, all these are exacerbated when running on a low-powered machine too.
I’ve been running it since a few hours and it works fine. With four simultaneous live_loop it has a constant memory use of 300 MB, and everything sounds in sync so far. I’ve heard occasional glitches though, especially when running a reverb on hoover/blade synths.
I haven’t tried the MIDI features yet – not really sure how to. For example I’d like to send something to my DAW (FL Studio) and see what could happen when paired with Mixtikl, but I still have to think about how to set up the whole thing.
What happens around line 194
?
@lectronice the glitches you mention are likely to be SuperCollider struggling to keep up with the number of synths you’ve triggered. Reverb is a very expensive synth and if you’ve got it in a live_loop
which is constantly creating new ones:
live_loop :foo do
with_fx :reverb, room: 1 do
play 70, release: 0.1
end
sleep 0.125
end
The above code will actually trigger 8 reverb synths a second, with each reverb lasting ~10 seconds - so after ~10 seconds of play, there will actually be ~80 reverb synths all trying to get a slice of CPU!
In the future, I’d love to find a nice visual way of communicating load like this to the user so it’s all a bit more transparent and understandable
It starts to run the bass line.
#bass line
#1
play :c2
sleep 1
play :g2
sleep 0.5
play :c3
sleep 2
play :d2
sleep 0.5
line 194 is the first sleep 1
Is the whole file just play
and sleep
, no threads, loops, fx or iteration? What’s the shortest sleep time?
Here’s the code. Sorry for the length…
use_bpm 80
use_synth :pretty_bell
in_thread do #melody line
#1st bar
play :c4
sleep 0.5
play :e4
sleep 0.5
play :g4
sleep 0.5
play [:a3, :d4, :fs4], amp: 3, release: 1.5
sleep 1.5
play [:c4, :e4, :g4], amp: 3
sleep 1
#2
play :c4
sleep 0.5
play :e4
sleep 0.5
play :g4
sleep 0.5
play [:a3, :d4, :fs4], amp: 3, release: 2.5
sleep 2.5
#3
in_thread do
play :a4
sleep 1
play :d5
sleep 0.5
play :b4, release: 2.5
sleep 2.5
end
play :c4
sleep 0.5
play :e4
sleep 0.5
play :g4
sleep 0.5
play [:d4, :fs4], amp: 2, release: 1.5
sleep 1.5
play [:c4, :e4, :g4], amp: 3
sleep 1
#4
in_thread do
play :a4
sleep 0.5
play :e4, amp: 0.5
sleep 0.5
play :a4
sleep 0.5
play :fs4, release: 2.5
sleep 2.5
end
play :c4
sleep 0.5
play :e4, amp: 0.5
sleep 0.5
play :g4
sleep 0.5
play [:d4, :a3], amp: 2, release: 1.5
sleep 1.5
play :d4
sleep 0.5
play :c4
sleep 0.5
2.times do
2.times do
#5+6
play [:g4, :b4], amp: 2
sleep 0.5
play [:g4, :b4], amp: 2
sleep 0.5
play [:b4, :d5], amp: 2
sleep 0.5
play [:b4, :d5], amp: 2
sleep 0.5
play [:e5, :a5], amp: 2
sleep 1
play [:d5, :fs5], amp: 2
sleep 0.5
play [:e5, :g5], amp: 2, release: 4.5
sleep 4.5
#7+8
play [:c5, :e5], amp: 2
sleep 0.5
play [:c5, :e5], amp: 2
sleep 0.5
play [:e5, :g5], amp: 2
sleep 0.5
play [:e5, :g5], amp: 2
sleep 0.5
play [:g5, :b5], amp: 2
sleep 1
play [:e5, :g5], amp: 2
sleep 0.5
play :d5, release: 1.5
sleep 1.5
play :c5
sleep 0.5
play [:a4, :c5], amp: 2, release: 2.5
sleep 2.5
end
#9
play [:b4, :g4], amp: 2
sleep 0.5
play [:a4, :fs4], amp: 2
sleep 0.5
play [:g4, :e4], amp: 2
sleep 0.5
play [:a4, :fs4], amp: 2
sleep 0.5
play [:b4, :g4], amp: 2
sleep 1
play [:e5, :b4], amp: 2
sleep 1
#10
play [:g5, :d5], amp: 2
sleep 1
play [:b5, :g5], amp: 2
sleep 1
play :e6, release: 1.5
sleep 1.5
play [:b5, :g5], amp: 2
sleep 0.5
#11
play [:g5, :e5], amp: 2
sleep 0.5
play [:fs5, :d5], amp: 2
sleep 0.5
play [:e5, :c5], amp: 2
sleep 0.5
play [:fs5, :d5], amp: 2
sleep 0.5
play [:g5, :e5], amp: 2
sleep 0.5
play [:fs5, :d5], amp: 2
sleep 0.5
play [:e5, :c5], amp: 2
sleep 0.5
play [:fs5, :d5], amp: 2
sleep 0.5
#12
in_thread do
play [:g5, :b4], amp: 2, release: 4
sleep 4
end
play :g4
sleep 0.5
play :fs4
sleep 0.5
play :d4
sleep 0.5
play :a3
sleep 0.5
play :g3
sleep 0.5
play :fs3, release: 1.5
sleep 1.5
#13+14+15+16
4.times do
play [:g4, :d4, :b3], amp: 3
sleep 1
play [:g4, :d4, :b3], amp: 3
sleep 0.5
play [:g4, :fs4, :d4], amp: 3, release: 1.5
sleep 1.5
play [:g4, :e4, :c4], amp: 3
sleep 1
end
end
#17 play :g4
play [:d4, :b3], amp: 2, release: 4
sleep 4
end
#bass line
#1
play :c2
sleep 1
play :g2
sleep 0.5
play :c3
sleep 2
play :d2
sleep 0.5
#2
play :c2
sleep 1
play :g2
sleep 0.5
play :c3
sleep 2.5
#3
play :c2
sleep 1
play :g2
sleep 0.5
play :c3
sleep 2
play :d2
sleep 0.5
#4
play :c2
sleep 1
play :g2
sleep 0.5
play :c3
sleep 1.5
play :b2
sleep 0.5
play :a2
sleep 0.5
2.times do
2.times do
#5
in_thread do
sleep 0.5
play :b3
sleep 0.5
play :d4
sleep 0.5
play :g4, release: 0.5
sleep 1
play :a3
sleep 0.5
play :d4
sleep 0.5
play :fs4
sleep 0.5
end
play :g2, release: 2
sleep 2
play :fs2, release: 2
sleep 2
#6
in_thread do
sleep 0.5
play :g3
sleep 0.5
play :b3
sleep 0.5
play :e4, release: 0.5
sleep 1
play :g3
sleep 0.5
play :b3
sleep 0.5
play :d4
sleep 0.5
end
play :e2, release: 2
sleep 2
play :d2, release: 2
sleep 2
#7
in_thread do
sleep 0.5
play :c4
sleep 0.5
play :e4
sleep 0.5
play :g4, release: 0.5
sleep 1
play :b3
sleep 0.5
play :d4
sleep 0.5
play :g4
sleep 0.5
end
play :c2, release: 2
sleep 2
play :b1, release: 2
sleep 2
#8
in_thread do
sleep 0.5
play :bf3
sleep 0.5
play :d4
sleep 0.5
play :f4, release: 0.5
sleep 2.5
end
play :bf1, release: 2
sleep 2
play :a1
sleep 1
play :d2
sleep 1
end
#9
in_thread do
sleep 1
play [:b3, :g3], amp: 2
sleep 2
play [:b3, :g3], amp: 2
sleep 1
end
play :e2, release: 2
sleep 2
play :ef2, release: 2
sleep 2
#10
in_thread do
sleep 1
play [:b3, :g3], amp: 2
sleep 2
play [:b3, :g3], amp: 2
sleep 1
end
play :d2, release: 2
sleep 2
play :df2, release: 2
sleep 2
#11
in_thread do
sleep 1
play [:c4, :g3], amp: 2
sleep 2
play [:e4, :c4], amp: 2
sleep 1
end
play :c2, release: 2
sleep 2
play :d2, release: 2
sleep 2
#12
play :g2, release: 4
sleep 4
#13
play :g1, release: 1.5
sleep 1.5
play :c2, release: 1.5
sleep 1.5
play :b2
sleep 0.5
play :c3
sleep 0.5
#14
play :g1, release: 1.5
sleep 1.5
play :c2, release: 1.5
sleep 1.5
play :b2
sleep 0.5
play :d3
sleep 0.5
#15
play :g1, release: 1.5
sleep 1.5
play :c2, release: 1.5
sleep 1.5
play :b2
sleep 0.5
play :c3
sleep 0.5
#16
play :g1, release: 1.5
sleep 1.5
play :c2, release: 1.5
sleep 1.5
play :b2
sleep 0.5
play :d3
sleep 0.5
end
#17
play :g1, release: 4
Looks like simple enough code - I’m very surprised it’s triggering a late error.
I tried it on my Win 7 VM a couple of times and unfortunately wasn’t able to reproduce the error (btw, it sounds lovely )
Which OS are you running this on and how old is your machine?
I’m running it on Win10 with 16G of RAM. Lenovo laptop less than a year old.
Amount of RAM isn’t an issue here - Sonic Pi uses very little memory (unless you load in a lot of samples). The issue is CPU-related. Either you have a low-powered CPU (which seems very unlikely indeed) , Windows is doing funky things with the CPU (typically for power efficiency) or you have a lot of demanding processes running at the same time. My bet is on the second option.
Taking a look at this site: http://www.techrepublic.com/article/balance-efficiency-and-performance-with-windows-10-power-options/ there seems to be a few settings to play with. For example, do you have “Power saver” mode enabled?