Sunday, 12 January 2014

SHOWCASE: Roland JV880 Synthesizer Module

I have always had a keen interest in making music, I started when I was about 12 on a neat little freeware program called LMMS (I will be doing a tutorial on how to use that very very soon!) which is a software music sequencer. I was bought my first keyboard at the age of 8, a casio, and played it almost every single day. I progressed on to buying a CME UF50 MIDI controller keyboard to play directly into LMMS before purchasing FL Studio and using that to make some slightly better sounding beats. A few more years down the line I bought a Roland Juno Di synthesizer, but sold it after a year as it wasn't really my cup of tea. After taking a year or so out of music, walking home from school passing Cash Generator I saw out of the corner of my eye a synthesizer sat on display and I purchased it in a heartbeat. I give to you ladies and gentlemen, the Roland JV880 Multi Timbral Synthesizer Module!


The machine is 22 years of age and in remarkable condition! It's in a 19 inch 1U form factor, so it's a rather compact machine. The device has no build in means of playing it, this is done by hooking it up to an outboard MIDI keyboard via the MIDI input on the rear of the device. 

Lets take a look at what the front of the device has to offer:


At the very top we see the machines name obviously. Below that is the headphone output so you can play in complete silence and a multifunction volume control. Obviously rotating this alters the volume but pushing the knob allows you to quickly preview the selected sound. On the very right we see an LCD display which is a 2 line 23 character LCD display. 


After the display is where the buttons are at. Top right and working across we have: Data rotary encoder which allows you to alter the parameters of any options displayed on the screen, this is mainly used for selecting which sound you are using, it also doubles up as a button. The patch/perform button, this sets the device up for 8 part midi playback through a midi in allowing you to select up to 8 sounds across the 8 midi channels, patch mode allows you to play single sounds. Edit button allows you to change many parameters of the sound you are playing including envelopes and LFO settings. System button enters into the system set up menu to change keyboard tuning etc. Rhythm allows you to set up the drum kit, which sound is triggered on which key. Utility houses functions like loading from SR-JV80 cards and PCM/Data cards. Below we have the cursor buttons which changes the option on screen, there may be several alterable parameters on the screen which you scroll through using the cursor buttons. Tone select, I still have not worked out the usefulness of this button, the manual is huge! The tone switches also double up when in the perform mode to mute, monitor and info, but when in patch mode they allow you to turn off the different timbres of the sound, up to 4 oscillators per sound. 



At the very far right of the machine there are 2 card slots, one for PCM cards and one for data cards. PCM cards hold sounds or 'samples' that can be played back, the corresponding data slot tells the synthesizer how these sounds are to be set up for playback, therefor you must have both the PCM and Data card in the machine to make use of this function. There is a nice chunky power switch and a small light that tells you when there is MIDI activity being sent to and from the machine. 

Around the rear of the machine we have the power cord, which unfortunately is not a kettle lead and is fixed.


The unit is 240 volt AC at 20W, and is produced in Japan!


There are 3 MIDI ports on this device, an input for sending data to the machine, an output for machine to send data from the machine and a thru to allow daisy chaining of devices. 


There are 4 outputs on the device for audio, both boiling down to 2 balanced outputs (main and sub). Each output can however be used as a mono output. 


The sound quality of the device is amazing although the built in patches are in some places a bit miserable there are many classic sounding rich sounds. This device came with a pre-installed SR-JV80-04 card, which is to my liking as it is a classic synth expansion board which has many sounds from older synths on it, really making this a wonderful vintage-ish digital synthesizer. Editing patches on the machine is a bit of a pain due to the small display but with practice can be done fairly quickly.

Thanks for reading

Joseph Wright -SCOTECH

Monday, 6 January 2014

HOW-TO: Making a basic script to add an administrator account to windows.

One of the best things about windows that people tend to shy away from is the command prompt, this little beauty:


The command prompt is a very powerful tool that allows you to perform complex tasks incredibly quickly. But if you need to perform routine tasks then there is something even quicker than directly using the command prompt, creating scripts that use the command prompt on your behalf, and the best thing is that you don't need any new software to do this. 

Ingredients: 
Microsoft Windows
Notepad application

Basic CMD commands:

First of all, try out some of these commands in command prompt to get a feel of what commands do. You can access the command prompt by simply typing in 'cmd' into the search bar on Windows Vista and 7 and by going to the Run application on XP and Windows 8 and typing in cmd. 

1. Change the current directory to root. This is done by typing 'cd c:\' - cd stands for change directory, and c:\ is the root of your computers hard drive, the point where it cannot go any further back.


2. Lets view all the users on our computer, I will now be doing this within my sandbox computer so none of you can steal personal stuff from me! Type in: 'net user', this will show a list of all users on the computer:



3. Now lets learn how to clear the screen, simply type 'cls':



4. Lets have a look at the user groups on the computer type in: 'net localgroup'


5. Once again clear the screen, now we are going to have a look at the users assigned to the 'administrators' localgroup. Type in 'net localgroup administrators':


6. Now clear the screen again, we are going to have a look at the contents of the C drive of your computer! Type in 'dir' which stands for directory and you will be granted with a list of folders and files immediately visible in your C drive's root directory:


Adding an administrator user:

1. Clear the command prompt with the 'cls' command and type 'net user testaccount testpassword /add'.
net user - Tells the computer you are referring to a set of commands to modify or view users
testaccount - This is the username of the account we are adding. The username comes after 'net user' when                         we are adding an account.
testpassword - As the name would suggest this is the accounts password. The password always comes after                        the username when adding an account.
/add - This is a flag telling the command prompt to add the user to the global users on the computer.


2. Don't worry about clearing the command prompt now, next we need to add the user account to the administrators local group. We do this by administering the command: 'net localgroup administrators testaccount /add'.
localgroup - This is referring to the fact that the user groups are located locally on the machine rather than on                    a network.
administrators - This is referring to the administrators localgroup of which we are wanting to add the new                               user to.
testaccount - This is referring to the user account we have just created, this always comes after the group                           name when adding a user to a specific group in the command prompt.

3. There we have it, the user has been added to the administrator local group, to test this out simply type: 'net localgroup administrators' and you will find the 'testaccount' in the list.

4. Next we are going to do one more thing, run a command prompt as this administrator, just in case you want to cause mischief and you, yourself are not an administrator. Type in: 'runas /profile /user:[DOMAIN]\testaccount cmd'. This command is a little tricky as you will need to know the local domain name of the computer you are working on, to do this, type in 'echo %userdomain%' into the command prompt and this will give you the name of the domain that you are to write into the command. Say your domain was 'MY-PC' then the command would look like this: 'runas /profile /user:MY-PC\testaccount cmd'. This will run a new instance of command prompt as the administrator user.



Turning this into a Script:


The final thing we want to do is create a script to automate this process for you, so you can run this on any computer and create a new administrator account called 'testaccount'. First open up a command prompt and type: 'net user testaccount /delete', this will simply remove the user that we have just created so it doesn't conflict with the script we are about to write. Good, now open up notepad and we will type exactly what we have been entering into the command prompt as before, but all together in one text file!:

@echo off (this just makes sure that the command prompt doesn't display text as it executes)
net user testaccount testpassword /add
net localgroup administrators testaccount /add

now click on save-as, save the file as anything you want but make sure you write at the end of its name '.bat' and change the file type from a text file to 'any file'. Run this and it will automatically create a brand new administrator account to have fun with!



Thanks for reading: 

Joseph Wright, SCOTECH

Sunday, 5 January 2014

Site update: Facebook!

Just a quick note to say that you can now like Scotech on Facebook to keep up to date with the latest posts and tips from me!

https://www.facebook.com/scotechofficial

Thank you!

Joseph Wright - SCOTECH

NEWS: 05/01/2014 Tech News Roundup

Today in tech:


  • Samsung announces 'smart home' system at CES that will allow you to control your home appliances and utilities with a mobile phone app or smartphone app. 

  • Royal Air Force jets are now being produced with parts produced using 3D printers, these parts have been tested and are now in use on functioning RAF tornado jets.

  • The National Security Agency are currently developing a quantum computer that will aid them to break encryption methods faster potentially putting even more stress on public concerns.

  • Facebook has been sued due to scanning users private messages for keywords so that they can harvest user information for advertising and web activity profiles.

  • Kirsty Cox from Newton Aycliffe has been jailed for 2 years after scamming the general public of £450,000, claiming that she could source iPads at a reduced price but in fact was just scamming people of their hard earned money.

SHOWCASE: Cheapo poundworld SD card reader


I love cheap tech accessories and boy have I got something exciting for you today. BOOM. Poundworld's own brand of technology (doesn't even have a brand on it...) brings for your delectation a 'USB Card Reader'.


The packaging is nice and minimalist, showing the product in all of its glory. If you're wondering, the text at the top reads: "Suitable for use with SD / MMC / RS-MMC". The back of the packaging is a little more wordy however:


The blurb is nice and concise explaining exactly the uses of such a dark and magical piece of technology, detailing how portable it is as well.

Opening the packaging is nice and easy to my surprise, no faffing about with scissors! Once the device is out you can immediately feel the cheapness. Horrible tacky plastic that feels like you could break it just by looking in its direction, but it hasn't done that yet.


And yes, the USB plug is normal shape and size:


DOES IT WORK?


Yes. Yes it does. 


Once again thank you for reading and good night!
contact me at: scotechnology.official@gmail.com or leave a comment

Joseph Wright - SCOTECH

FIX IT: Dell Optiplex GX260 (Freebie Computer)

A little while ago while taking rubbish down to the communal bins I noticed 2 computers by the side of one of the bins. One was a Compaq Presario (I forget the model number) and the other was a Dell Optiplex GX260. The Compaq was not to much use to me as most of it's insides had been stripped and the remains were rusting away... However the Dell was in pretty good shape.

The front of the computer is a little beat up, with a missing USB panel door.

The rear of the computer shows good health with minimal signs of weather damage.


The side of the computer is ruined by scratches, but it's all superficial. 


 Moving on to actually opening the computer there is a difference to modern dells in which there is no spring loaded tab, you have to press on two recessed indents on the top and bottom of the case. My computer though I didn't even need to do this, it's permanently open as the case won't sit flush. Once the case is unlocked all you need to do is tilt the lid towards the front of the computer to gain access.



Once the two buttons have been pressed the lid will become loose, ready to be lifted open upon its hinge. 


The lid should lift right up until its perpendicular to the rest of the case. 

The Dell Optiplex GX260 is by no means a tidy computer on the inside (not at least in the state that previous owner has left it) but the compact form factor does mean cramming a lot into a small space. The whole computer is modular and tool-less which for the time is a remarkable thing. Lets get stuck into pulling this computer apart:

From left to right: CPU Heatsink, Chipset Heatsink, AGP Port, PCI Port
Top of image: RAM ports with 2x RAM sticks in.

Top of image: Power supply exhaust
Bottom of image: PCI Riser board

Left to right: 24Pin ATX connector, 2x RAM cards and CPU Heatsink

12V CPU Heatsink fan with side blower

The mother board is pretty crowded and I'm not going to remove the heatsink for this review as I don't have enough thermal compound in my toolbox to replace what is lost when removing the heatsink. Moving on from the motherboard we can now draw our attention to the media devices attached to the lid of the computer:

This is the bay where the hard drive should be, but the previous owner was savvy enough to remove it before putting it out for rubbish collection! Check out the DIY wire splicing, doesn't seem at all dangerous...

This mess of cables is covering up our view so we can remove them by simply pulling them out. The IDE cables (Ribbon cable) can be pulled out with the use of the orange tab and the 12V molex (4 pin power) can be removed by giving it a hard pull.


To remove the optical disk drive, simply squeeze the green tabs and pull the whole drive assembly upwards, sliding it out of its hole. 

The same is applied to the floppy disk drive (what are floppy disks again?). One of my tabs has unfortunately snapped off meaning I had to poke the remainder of the tab with a screwdriver to free the floppy drive from it's hole. 


Turning out attention back to the motherboard, I pull out the RAM sticks using the white catches (pushing on them automatically ejects the RAM, as with on any motherboard) and inspect them more closely. This computer has 2x 256MB sticks of Samsung DDR RAM. 

The riser card has 2 PCI slots in it, turning the one slot into two. This is handy in particular if you want a PCI (non express) graphics card in the computer or have large profile PCI cards to install as they wont fit into the low profile case normally.

To remove the riser board simply lift the large green handle and pull.

The case looks empty without the riser. Underneath the riser is the Power Supply.

The riser board as you can see has two PCI slots to accommodate large profile cards in a low profile case

And there we have it, one stripped down Dell Optiplex GX260 Computer. To install all the parts just retrace your steps, but for the RAM make sure the notches are lined up and for the riser card ensure that the contacts are aligned properly before pushing back in.


If you have any questions please email me at: scotechnology.official@gmail.com or comment on this post

Thank you for reading:

Joseph Wright - SCOTECH






HOW TO: Programming: Episode 3 - Basic Number Input

INTRODUCTION

By now you should be getting pretty good at programming; we have now looked at basic output and basic maths. Now we are going to combine the two and add input!

Resources: 
IDEONE: www.ideone.com

If you need to check back on our other lessons:
Basics: http://scotechnologyofficial.blogspot.co.uk/2014/01/programming-why-not-give-it-go.html
Maths: http://scotechnologyofficial.blogspot.co.uk/2014/01/how-to-programming-episode-2-basic-maths.html

LESSON

Once again load up IDEONE and select VB.NET as your language of choice, you should now be able to do this without a problem. Delete the code there and retype it again to help you memorize it:

Imports System
Public Class Test
Public Shared Sub Main()

Like last time we are going to dimension our variables, but we are not going to initialize them with any values as we did last time:

Dim integer_1 as Integer
Dim integer_2 as Integer
Dim result as Integer

Now we want to output some text to prompt the user to enter some information. For this program we will be adding two numbers together, so we will tell the user this. 

Console.Writeline("Please enter first number to add: ")

Next we are going to try something new, we are going to take input from the user:

integer_1 = Console.Readline()

As you can see this is very similar to something we tried in our basic maths tutorial where we did this:
"Result = integer_1 + integer_2". To take input, the statement is very similar to the Console.Writeline statement, but instead of writing something to the console we are reading something into the console. We want the integer_1 variable to be set as our input so we read the input in to the variable. The console readline statement reads in any input you make from the next line and will wait until you press enter to take the input in. We can now repeat this process for integer_2:

Console.Writeline("Please enter second number to add:")
integer_2 = Console.Readline()

Now we can use our mathematical programming knowledge to add these two numbers and output the result to the screen:

result = integer_1 + integer_2
Console.Writeline("{0}",result)
End Sub
End Class

There is however one more thing that we can do to tidy this code up:

If you are not displaying any text in the output other than the contents of a variable then you do not have to waste time putting curly brackets in or the referencing number, all you need to do is write the variable name inside of the brackets without quotation marks like so:

Console.Writeline(result)


Bringing all this together, we should have the complete source code as follows:

Imports System
Public Class Test
Public Shared Sub Main()
Dim integer_1 as Integer
Dim integer_2 as Integer
Dim result as Integer
Console.Writeline("Please enter first number to add: ")
integer_1 = Console.Readline()
Console.Writeline("Please enter second number to add:")
integer_2 = Console.Readline()
result = integer_1 + integer_2
Console.Writeline(result)
End Sub
End Class

Looking like this:


Input on IDEONE is done by clicking the button on your code window marked: 'stdin'. Clicking on this will drop down a box allowing you to enter input, enter a number, press the return key and enter another number.


 Once you have two numbers click the run button and you will see the result of adding the two numbers in the stdout box!





Once again thank you for reading:

Joseph Wright - SCOTECH

Saturday, 4 January 2014

HOW TO: Programming: Episode 2: Basic Maths

If you've not checked out my introduction to programming go and look at it before you read this article here.

So you've come back for more I see? I'm glad that you want to continue your path in programming. As before we will be using Visual Basic .Net and IDEONE which we will be using again for out programming platform. 

This lesson we will be doing some simple mathematics, exploring the uses of operators and creating variable dimensions. Remember when you are entering code, make sure that you put capital letters exactly where I put them, or your results may vary!

1. Open IDEONE in a new window or tab on your browser and select Visual Basic .NET from the list of programming languages as we did in lesson 1. 



2. Clear all of the pre-made code in the window so we can input our own code. Clearing the code and re-writing it will help you to memorize the code for later use. So input the following into the code window:

Imports System
Public Class Test
Public Shared Sub Main()


3. At this stage we are now going to do something different from last time. We are going to write this into the code window:

Dim integer_1 as Integer = 5
Dim integer_2 as Integer = 10
Dim result_add as integer
Dim result_sub as integer
Dim result_mul as integer
Dim result_div as integer
Dim result_combi as integer

'Dim' stands for dimension, meaning you are setting the dimensions for the variable, and a variable is something which holds raw data. In this case our variable is 'integer_x'. You can set variables as something called an array which can hold multiple values by putting:

Dim integer_3(x) as Integer 1 Dimensional Array
Dim integer_4(x, x) as Integer 2 Dimensional Array

However we will be working with non array variables today. There are many different variable types within Visual Basic .NET including:
  • Integer - 4 bytes of data
  • Single - 4 bytes of data
  • Double - 8 bytes of data
  • Long - 8 bytes of data
  • String - A string of unicode text up to 2 billion characters 
  • Char - One unicode character 
  • Date - 8 bytes of data to hold a date
And of course a few more!

The part of the code we entered where we have placed '= x' is where we pre-define data for the variable, but we have not done that for the result as we want the code to generate data for the result automatically. You may have also noticed we have Dim'd a result variable for each operation and one for a combination of operations. 

There are several 'operators' in visual basic, but we will be focusing out attention on the four basic ones: Adding, Subtracting, Multiplying and Dividing; represented of course as '+,-,* and /'. 

Code time:

4. Now we can begin doing some maths, first we will add:

result_add = integer_1 + integer_2

'result_add' is at the start of the sum as we need to tell the computer that we want the value of 'result_add' to be equal to the sum of 'integer_1 + integer_2" as opposed to on a calculator where we would do 'integer_1 + integer_2 = result_add". 

Now we can finish off the other 3 operators using the same formula:

result_sub = integer_1 - integer_2
result_mul = integer_1 * integer_2
result_div = integer_1 / integer_2

Now to be really fancy we will combine some operators using brackets:

result_combi = (integer_1 + integer_2) * integer_2


Your code should now look like this:


5. Time to output your results, you may remember the 'console.writeline' statement from out last program, well we are going to use it again, this time a little more complexly):

Console.Writeline("Adding = {0}", result_add)
Console.Writeline("Subtracting = {0}", result_sub)
Console.Writeline("Multiplying = {0}", result_mul)
Console.Writeline("Dividing = {0}", result_div)
Console.Writeline("Adding then Multiplying = {0}", result_combi)

Lets dissect this part a bit:
'{0}', these curly brackets are holding the reference number to the argument outside of the speech marks. 0 is always the first number, no matter how many times you use this, always start with 0 and work up if there is more than one argument in your statement. 
', result_x', Here we place a comma marking the next argument, which is our variable.

This is the easiest way of having text and a variable appear in the same writeline statement. You could of course write multiple writeline statements, but this is untidy and will produce multiple lines when we really only need one.


6. Now we just need to round off our code with our closing statements:

End Sub
End Class

Now click run and see what it's like to be a true programming mathematician!


Your results should be:



Next time we will try our hand at inputting data!

Once again, thanks for reading.

Joseph Wright - SCOTECH