Wikipedia:Reference desk/Archives/Computing/2015 July 31

From Wikipedia, the free encyclopedia
Computing desk
< July 30 << Jun | July | Aug >> August 1 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


July 31[edit]

Updating to Windows 10[edit]

I have four computers in my office and I reserved the Windows 10 upgrade on all of them. I upgraded two of them yesterday and one more today. On the fourth one, until recently, it said that Windows 10 was reserved and it would let me know when I could update. But starting an hour or two ago, the Windows 10 stuff is gone and checking for updates doesn't show anything. What happened? Bubba73 You talkin' to me? 01:53, 31 July 2015 (UTC)[reply]

You got and W10 ISO image? If any trouble was on the system, backup all data, and perform a clean install from the DVD, means all data is wiped from the computer until backup is restored. I recommend to do so, I never made good experience when upgrading an existing system of any operating system. --Hans Haase (有问题吗) 11:15, 31 July 2015 (UTC)[reply]
You can "manually" upgrade to Win10 or create an ISO using the tool on this site: http://www.microsoft.com/en-us/software-download/windows10. Justin15w (talk) 16:23, 31 July 2015 (UTC)[reply]

Two Questions About Windows 10 Upgrade[edit]

  • 1. Is it true that the upgrade is only free for one year? After which, what happens?
  • 2. I tried to upgrade, but before the upgrade was complete, my computer was unable to connect to the internet - I am thinking of compatibility issues with the wi-fi driver - so I had to perform a system restore. If I decide not to continue with Windows 10 after the first year is up, can I roll-back?

KägeTorä - () (もしもし!) 11:30, 31 July 2015 (UTC)[reply]

1. The upgrade is available for a year - i.e. if you upgrade now, you keep it forever (though it's bound to the device - if you get a new computer, you'll need a new copy). If you reserve your upgrade now, but don't actually upgrade by 29 July 2016, you would have to pay for a copy of Windows 10. See the footnote on this page [1] MChesterMC (talk) 14:25, 31 July 2015 (UTC)[reply]
2. According to this BBC article, there's a rollback option available for 30 days after install (final line of the article). MChesterMC (talk) 14:53, 31 July 2015 (UTC)[reply]

A few questions about accessing audio streams and sending data to a USB port with python[edit]

Hello everyone. I have recently gotten a hold of a Raspberry Pi 2. I got it for a project that I am about to embark on. The project is simple; put this credit card sized computer into my electric guitar to run VST effects on my guitar's sound and output the result to the jack. The logistics behind this are quite complicated. The first thing i need to know is how to retrieve the PCM data from the DIN pin on the Pi's GPIO connectors. As a note, any code I will be writing I hope to only use python. If I absolutely have to, I will do some C++. My next question is how would I send data to a USB port on the Pi? I ask this because I am going to setup a feature that will allow me to plugin a USB chord from the Pi to my Windows PC to record the sound. I am completely new to Linux and have used windows pretty much my whole life. I have many more questions but this is just a start. Thanks for your help in advance. —SGA314 I am not available on weekends (talk) 15:41, 31 July 2015 (UTC)[reply]

Audio effects processing of this nature requires low latency. In plain english: every instant that the sound is delayed because of your input electronics, software, and output electronics, will cause annoying audible effects (similar to reverberation). This is not usually desired (at least, not for most guitar effects - a handful of effects intentionally use reverb or delay).
The short of it is that python is rarely a good choice for real-time hardware I/O. Python's runtime requires a buffer; the OS runtime requires a buffer; the audio device driver requires a buffer; the audio input hardware requires a buffer. Your processing may be nearly instantaneous; but the output must be buffered in Python, and again at the operating system runtime, and the device driver, and the hardware ... and before you know it, you've got 200 milliseconds of audible delay without even considering how long your effects processing calculations actually require.
Here's a website with details to set up low latency audio on a Pi. If you aren't already familiar with JACK on Linux, you'll want to brush up on that, too. Here is the introductory documentation. Nimur (talk) 16:03, 31 July 2015 (UTC)[reply]
I will be sure to take a look at those 2 very useful links. Ok so python no go. I know all about latency(this is why I love ASIO) and I messed with Jack a little bit yesterday. I take it that I will have to use some C++ or C, right? Because in the end, I am going to send the audio to a USB port on the Pi to be outputted to my Windows PC(Yes I know this I will have to write a driver to make it show up in the list of connect audio devices). For my next question, I will ask, how would I use Jack to access the audio coming from the DIN GPIO pin on the Pi? And would there be any way that I could send an analog signal to that pin and convert it to digital on the software level? This would eliminate the need for me to use an external Analog-to-Digital converter. —SGA314 I am not available on weekends (talk) 16:14, 31 July 2015 (UTC)[reply]
Where do you get this thing about quadruple buffering? There's no reason you can't get direct access to the audio hardware's buffers from Python. -- BenRG (talk) 16:50, 31 July 2015 (UTC)[reply]
Well how would you do that? —SGA314 I am not available on weekends (talk) 16:56, 31 July 2015 (UTC)[reply]
(edit conflict - same question, with fancier language):
Using which Python API may one access or control the Raspberry Pi audio hardware? Are you aware of any such method? If we remit ourselves from real software that does exist, and venture into the realm of theoretical programming, then of course the hardware can be controlled directly from python... or Lisp or Forth. In fact, one could run python on bare metal without an operating system, and a purist could access I/O using only native python code! But these implementations do not exist today, and creating an implementation in that fashion is not an accessible task for programmers with finite time. Nimur (talk) 17:00, 31 July 2015 (UTC)[reply]
I've never programmed for the Raspberry Pi, but buffering and Python have nothing to do with one another. Whatever you plan to do in C, you can do in Python with ctypes. The idea that Python requires a buffer, and the OS and audio drivers require their own buffers (but apparently only when you're using Python, not when you're using C), is something that you made up. There's no reality to it. -- BenRG (talk) 17:49, 31 July 2015 (UTC)[reply]
BenRG, direct access to audio hardware I/O in Linux occurs inside the kernel. (Here's the Raspberry Pi implementation for kernel-4.2). If you wish to bypass these software buffers, you must not use user-space APIs; you must not use ALSA kernel modules; you must directly write to the hardware. Are you seriously suggesting that python modules can be compiled and linked into a Linux kernel - and furthermore, that this task is accessible to a novice programmer?
If you can live with a little latency, and want to stay in user-space, you can write code to jack; you could, in principle, do that in python or any other user-space programming infrastructure. If you use existing code, like py-jack, you relinquish control of scheduling (it creates a thread for you) and you relinquish control of buffering (the API does dumb software copies of every buffer). If you write your own code - in any language - the best you can ever do is "as good as jack in user space."
On a Raspberry Pi, at about 700 MHz, this is probably not good enough for a real-time audio effects processor. When you care about audio I/O, latency means everything (and FLOPs are not very important - "you'll always have enough" for human-audible sample rates). You would probably do better on a processor a thousand times slower than a Pi, if it provides the programmer direct hardware access. I've had great success with Renesas development boards. They're cheap, they're easy, their on-chip analog-inputs are versatile and perform well above the requirements for reasonable audio signal processing; and the CPUs are so simple that you don't need an operating system. You can actually manage your I/O in real-time. (... and for completeness: the last I checked, nobody had ever ported Python to an M16C CPU; it could be done, but you'd probably need more memory).
Nimur (talk) 19:36, 31 July 2015 (UTC)[reply]
No, No, No. I am using A Raspberry Pi 2. It runs at 900Mhz and has 4 cores. I have overclocked mine to 1Ghz. And I don't want to do conventional DSP. I want to run VST effects. Not do normal DSP.—SGA314 I am not available on weekends (talk) 19:48, 31 July 2015 (UTC)[reply]
You may do that. You will probably find that any solution you produce using this technology stack suffers from significant latency. This will make your effect "sound late" as you play your musical instrument. Nimur (talk) 21:01, 31 July 2015 (UTC)[reply]
I have found out that QEMU can run x86 windows programs on the Pi. However, I don't know if it can run a single program. Not an entire copy of windows. If I were to run a copy of windows on the pi, this would require at least 16gb of space. and I only have 18gb of space left on the sd card. Now this does not include the space that the VST software will take up(which is a few gigs). So obviously this option is not very workable. In the end I would like to get permission from all the authors of the Pi's software(and the windows software that I will be running) to sell a guitar that has a Raspberry Pi running my custom setup. If I had to run an entire copy of windows, it would be impossible for me to sell the Pi all setup and ready to go. Instead, I would have to give a tutorial on how to set it all up and the user would have to buy another copy of windows as well. This is why I need to figure out how to run just 1 program, just like WINE can do. As for latency issues, I am sure if I fiddle with QEMU and the latency compensation settings on the VST host, I can kill any delay that may result. Thank you for explaining the latency problem. I have run into this problem on my Windows PC before. I was able to defeat it messing with the latency compensation settings in ASIO4ALL's control panel(What I probably did was I just reset the ASIO drive and therefore fixed the latency issue). —SGA314 I am not available on weekends (talk) 17:54, 1 August 2015 (UTC)[reply]

So onto the next question. How would I send data to a USB port on the Pi. I would prefer to do this in python but because of latency issues, I don't think I will be able to do this in python. —SGA314 I am not available on weekends (talk) 17:14, 31 July 2015 (UTC)[reply]

Are you familiar with the USB device protocol? If you are not already profoundly familiar with these specifications, start at the USB Device Class documentation on the USB Developers webpage. Nimur (talk) 22:31, 31 July 2015 (UTC)[reply]
No I am not familiar with the USB device protocol, I will be sure to take a look at this, thank you. When It comes to accessing audio streams, sending data to USB devices, using QEMU, and using Linux in general I am a complete newbie. —SGA314 I am not available on weekends (talk) 17:54, 1 August 2015 (UTC)[reply]

After creating back-up disks, can I delete files on C drive?[edit]

I run an ASUS laptop with Windows 7. The computer did not come with installation disks. I was prompted to burn Windows restoral disks on 4 DVD's. At no point after the creation of the restoral disks was I prompted whether I wanted to delete those files (must be at least 12GB-16GB) from my hard drive. Can I free up that space? What files should I be looking for? I have googled this and searched windows help, but the kewy words are to vague to get a meaningful result. Thanks. μηδείς (talk) 19:12, 31 July 2015 (UTC)[reply]

The few laptops I've installed Linux on tend to have a partition on the drive that contains the installation software. I wipe that partition because it won't be used. If that is how your system is set up, you have to work with a partition manager to erase the partition and expand your main partition to use the space. 209.149.113.45 (talk) 19:30, 31 July 2015 (UTC)[reply]
You need to know what files have been stored in the backup. A backup is least a backup if it can be restored successful. Never trust a single backup. If you are out of disk space, use CCleaner or similar tool. --Hans Haase (有问题吗) 18:52, 1 August 2015 (UTC)[reply]