So another thing I want to improve is my music production/songwriting etc.
I use Logic 9 mainly now but have used Reason, Fruity Loops, Cubase, Sibelius and Guitar Pro to create music previously.
Not really knowing where to start I thought that I should just do something random and then go from there.
I figured a good way to get the ball rolling with posting stuff about music is to set myself a task to create a song using XXXX limitations.
So I shall create a song(some music) using the following limitations and then post a link.
It will be 1m 30s, I will probably keep it at 120 bpm to keep things simple for now. I will not use any synthesised sounds (by this I mean I will use a sampler with samples) and will only set the levels and panning. I will not use any other effects etc. I will create it in Logic 9.
Wednesday, 2 February 2011
Musical Improvements
Tuesday, 1 February 2011
Terratec Axon AX50, Problem with Noise
On my guitar I have a midi pickup (PU100) connected to an Axon AX50 USB interface. I have been having a problem with it causing excess noise when its connected to my computer with guitar etc. I have found that using a usb/midi to connect it instead seems to solve the problem (rather than the normal usb -> usb).
This means that I cannot use the editor, but if I want to change settings I can put up with the noise for a while and adjust it via the standard USB.
This is just a quick post so i don't forget this, I'm currently experimenting with my AX50 to try and get the most out of it. Information I discover on this subject will also end up on this blog.
**EDIT**
After a while of that working the noise came back, I now have my guitar running straight in to my amp and use the AXON AX50 only as a midi control box. Having the USB plugged in rather than the midi/usb converter doesn't seem to make much difference.
This means that I cannot use the editor, but if I want to change settings I can put up with the noise for a while and adjust it via the standard USB.
This is just a quick post so i don't forget this, I'm currently experimenting with my AX50 to try and get the most out of it. Information I discover on this subject will also end up on this blog.
**EDIT**
After a while of that working the noise came back, I now have my guitar running straight in to my amp and use the AXON AX50 only as a midi control box. Having the USB plugged in rather than the midi/usb converter doesn't seem to make much difference.
Tuesday, 25 January 2011
First Problem!
Problem with continuing my Audoballs, is that now I have gotten so excited about being able to post it on the internet all working etc, I am determined to get them working on the blog.
Now that doesn't sound that bad, as you will see, so far so good. All the sketches up at the moment are working.
The problem is that, as far as I can tell, I cannot use third party libraries with processingJS. Which means that I cannot use the 'themidibus' library that I am using at the moment.... Midi balls don't work so well if they don't do midi stuff!!
So I am currently looking for a way around this. I am hoping there is a clever way to get the libraries working.
If not then I am wondering if it is possible to accomplish it in another way. Like having the note values output to a separate script that can produce midi notes...
Confused :(
Now that doesn't sound that bad, as you will see, so far so good. All the sketches up at the moment are working.
The problem is that, as far as I can tell, I cannot use third party libraries with processingJS. Which means that I cannot use the 'themidibus' library that I am using at the moment.... Midi balls don't work so well if they don't do midi stuff!!
So I am currently looking for a way around this. I am hoping there is a clever way to get the libraries working.
If not then I am wondering if it is possible to accomplish it in another way. Like having the note values output to a separate script that can produce midi notes...
Confused :(
Sunday, 23 January 2011
Audoballs: The circle is Bouncing!
So as you can see here we now have a bouncing ball :D Result! The code is:
float xpos, ypos;
int Size = 60;
float xspeed = 3.5;
float yspeed = 3.2;
int xdirection = 1;
int ydirection = 1;
void setup() {
size(320, 240);
background(255);
smooth();
noStroke();
frameRate(30);
xpos = width/2;
ypos = height/2;
}
void draw() {
background(255);
xpos = xpos + (xspeed * xdirection);
ypos = ypos + (yspeed * ydirection);
if (xpos > width-Size || xpos < 0) { xdirection *= -1;} if (ypos > height-Size || ypos < 0) {
ydirection *= -1;
}
fill(144);
ellipse(xpos+Size/2, ypos+Size/2, Size, Size);
}
So as you (We, I) can see we have created a few more float's representing various numbers. (size, xspeed, yspeed, x/ypos)
We have told it the size of the ellipse and the x and y location to draw it: ellipse(xpos+Size/2, ypos+Size/2, Size, Size);
Then we make the xpos and ypos move by making a calculation that changes the value. So each run through the draw() command changes the value of the xpos to xpos + (xspeed * xdirection).
Therefore on initialising the xpos value is the width/2 (320/2 = 160). Then the draw command will run the lines "xpos = xpos + (xspeed * xdirection)
So the first time it runs will be something like xpos(currently 160) = 160(xpos) + (3.5 * 1). The same applies for ypos.
xpos = xpos + (xspeed * xdirection);
ypos = ypos + (yspeed * ydirection);
The other part that has been added in is the "if".
Essentially this means that if the statements in the brackets are true then the direction is multiplied by -1. This has the effect of reversing the direction. (so rather than it being 160 + (3.5 * 1), which would cause the ball to move along the x axis at a rate of 3.5 pixels per run through (the xpos value increases by 3.5) it is xpos + (3.5 * -1) which causes the xpos value to decrease by 3.5 each run through (xpos + -3.5). This has the effect of making the circle reverse.
A few of the other commands:
smooth() makes the sketch draw shapes with smooth edges.
noStroke() stops the sketch from drawing an outline.
frameRate() specifies the speed of the sketch.
So there we have a moving circle :D
Audoballs: Drawing a circle in the display area.
Now that I have a display area I need a circle, which will eventually become my bouncing ball. This looks like:
float xpos, ypos;
void setup() {
size(320, 200);
smooth();
background(255);
}
void draw() {
xpos = width/2;
ypos = height/2;
fill(144);
ellipse(xpos, ypos, 60, 60);
}
I have added a few extra lines in and as you will see below we now have a nice grey circle in the middle of the display area.
float allows you to assign a floating point number to a value. A floating point number has a decimal place in it and allows 'a greater resolution than integers' as is explained here. So float xpos, ypos; is instructing processing that xpos and ypos are floating point numbers.
the draw() command is used after setup and continuously executes the code within. Explanation here
So within the draw command I am basically doing 4 things. I am saying that "xpos" has the value of the width divided by 2. I am saying that the 'ypos" has the value of the height divided by 2.
I am then saying the colour of the fill of the ellipse is (144), a grayscale colour. (/shade, grey isn't really a colour)
Then I am instructing it to draw an ellipse(x, y, width, height) - the brackets contain the properties of the ellipse.
The result of this is:
float xpos, ypos;
void setup() {
size(320, 200);
smooth();
background(255);
}
void draw() {
xpos = width/2;
ypos = height/2;
fill(144);
ellipse(xpos, ypos, 60, 60);
}
I have added a few extra lines in and as you will see below we now have a nice grey circle in the middle of the display area.
float allows you to assign a floating point number to a value. A floating point number has a decimal place in it and allows 'a greater resolution than integers' as is explained here. So float xpos, ypos; is instructing processing that xpos and ypos are floating point numbers.
the draw() command is used after setup and continuously executes the code within. Explanation here
So within the draw command I am basically doing 4 things. I am saying that "xpos" has the value of the width divided by 2. I am saying that the 'ypos" has the value of the height divided by 2.
I am then saying the colour of the fill of the ellipse is (144), a grayscale colour. (/shade, grey isn't really a colour)
Then I am instructing it to draw an ellipse(x, y, width, height) - the brackets contain the properties of the ellipse.
The result of this is:
ProcessingJS/HTML
Ok so I need to figure out how adding scripts using the HTML works. I know that I can load an external script from another webpage and can therefore load the processing script and run the processing sketches in the blog.
Link to my post with the code I found that allows you to do this.
So....
< script type="application/processing" >
I think you would describe it as a declaration of what script(type?!) to use. Type and name maybe? so its an application called processing?
Useful little explanation of scripts:
"A client-side script is a program that may accompany an HTML document or be embedded directly in it. The program executes on the client's machine when the document loads, or at some other time such as when a link is activated. HTML's support for scripts is independent of the scripting language."
Scripts offer authors a means to extend HTML documents in highly active and interactive ways. For example:
There are two types of scripts authors may attach to an HTML document:
I am going to assume that canvas width/height is the size of the display area for the moment, although there is a size() command in the processing script also, I shall have to find out.
< canvas width="320" height="240" >
The next line indicates the destination to get the script from
< script src='http://processingjs.org/source/current/pjs-init.js' >
Seems fairly simple, I understand this if my posts have working examples in them! (other than the expanding/contracting blue and white circle once, as that is simply a copy and pasted example/test.
I also learned(put into practice) the tiniest bit of HTML formatting writing this post WOOOP! (for example the bullet point list)
Link to my post with the code I found that allows you to do this.
So....
< script type="application/processing" >
I think you would describe it as a declaration of what script(type?!) to use. Type and name maybe? so its an application called processing?
Useful little explanation of scripts:
"A client-side script is a program that may accompany an HTML document or be embedded directly in it. The program executes on the client's machine when the document loads, or at some other time such as when a link is activated. HTML's support for scripts is independent of the scripting language."
Scripts offer authors a means to extend HTML documents in highly active and interactive ways. For example:
- Scripts may be evaluated as a document loads to modify the contents of the document dynamically.
- Scripts may accompany a form to process input as it is entered. Designers may dynamically fill out parts of a form based on the values of other fields. They may also ensure that input data conforms to predetermined ranges of values, that fields are mutually consistent, etc.
- Scripts may be triggered by events that affect the document, such as loading, unloading, element focus, mouse movement, etc.
- Scripts may be linked to form controls (e.g., buttons) to produce graphical user interface elements.
There are two types of scripts authors may attach to an HTML document:
- Those that are executed one time when the document is loaded by the user agent. Scripts that appear within a SCRIPT element are executed when the document is loaded. For user agents that cannot or will not handle scripts, authors may include alternate content via the NOSCRIPT element.
- Those that are executed every time a specific event occurs. These scripts may be assigned to a number of elements via the intrinsic event attributes.
I am going to assume that canvas width/height is the size of the display area for the moment, although there is a size() command in the processing script also, I shall have to find out.
< canvas width="320" height="240" >
The next line indicates the destination to get the script from
< script src='http://processingjs.org/source/current/pjs-init.js' >
Seems fairly simple, I understand this if my posts have working examples in them! (other than the expanding/contracting blue and white circle once, as that is simply a copy and pasted example/test.
I also learned(put into practice) the tiniest bit of HTML formatting writing this post WOOOP! (for example the bullet point list)
Blogger HTML
1
2
3
4
5
Realised that to use this blog more effectively I am going to have to learn some HTML stuff also, especially if i want to incorporate sketch examples into my posts.
Now I know how to get a sketch working in the post but I do not understand HTML and I do not really like copy and pasting stuff without understanding it. Plus what will I do when something goes wrong?
Some links to some HTML info at the top for me to trawl through (or you, if you aren't me reading this)
First step will be to get links working, so if you see clickable links in my posts then I have achieved this at least :D
2
3
4
5
Realised that to use this blog more effectively I am going to have to learn some HTML stuff also, especially if i want to incorporate sketch examples into my posts.
Now I know how to get a sketch working in the post but I do not understand HTML and I do not really like copy and pasting stuff without understanding it. Plus what will I do when something goes wrong?
Some links to some HTML info at the top for me to trawl through (or you, if you aren't me reading this)
First step will be to get links working, so if you see clickable links in my posts then I have achieved this at least :D
Subscribe to:
Posts (Atom)