Difference between revisions of "Pcsvnrelease"

From ProgClub
Jump to: navigation, search
(Just how to Jam on Guitar - Jamming For Beginners)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
How to Jam on Guitar - Jamming For Beginners
+
Pcsvnrelease is the ProgClub project release script. That's the software that helps us manage versioned releases of our projects as specified on the [[versions]] page. For other projects see [[projects]].
+
 
Guitar jam sessions are the perfect way to improve your playing skills and your confidence while a guitarist. They could even become very daunting for guitarists who are brand-new to jamming, certain beginners. But jamming will be supposed to become fun, and is going to be if you know what to expect, and go ready. It content takes a appear at what's involved, getting started with with the techniques needed when jamming, followed of the different situations through which you can make use of them.  
+
= Status =
+
 
Component 1: Jamming On Guitar - Exactly how To Do It
+
Under way. Not released yet, there's stuff [[#TODO|TODO]].
+
 
Basically, jamming is improvising with other musicians - normally one particular or much more people play rhythm parts, to get a beat going, and others improvise solos over the top. A jam may always be fully free-form, or may always be based on a particular song or chord series. Unfortunately, though you may not always end up being preparing to play any specific song or item, you can (and should) prepare your yourself by ensuring you have a good understand of the instrument. This particular means practicing chords and scales in various keys, so that you'll end up being able to play both rhythm and solo parts while jamming. You don't need to be a very expert guitarist to jam, but you do need to at least comprehend the fundamentals.  
+
= Administration =
+
 
Skills needed for jamming:  
+
== Contributors ==
   
+
 
Strumming chords in a variety of keys, with the ability to improve chords cleanly. If you're brand new to the guitar, start off with the principal chords in the more common keys (this sort of since C, G, D, A, E, F etc), and progress from there.  
+
Members who have contributed to this project. Newest on top.
The ability to play in time. You don'big t have to play complex rhythms if you're not cozy with that, but you has to be able to preserve to the beat. If you're playing a solo, the rhythm must take priority - in other words, if you come unglued, it'utes ok to miss out a couple of notes with the melody, but you must preserve way up with the beat. Learn to listen closely to the bass and/or drums - this particular will help you to definitely remain in the right place, and to steer clear of being distracted by nerves or other things going on all-around you.  
+
 
The ability to hear chord progressions and follow along. Ear skills are vital for jamming - you can exercise by recognising when chord changes happen in the music you listen to, and later by studying to identify the specific chords that are being used. You'll discover that the same patterns tend to recur a lot (incredibly in popular music), and will eventually be able to recognise them instantly. For far more advanced ear training, specialised programs are available.
+
* [[User:John|John]]
Having the ability to improvise lead melodies. You might not want to do that straight away, which is actually fine - you can just strum along with the rhythm if you like. But having the capacity to improvise melodies is actually a key element of a lot more advanced jamming, and requires some lead guitar skills. Scale training is truly crucial below, while is actually some basic theory, which means you realize which notes might be very well played over which chords.
+
 
   
+
All contributors have agreed to the terms of the [[ProgClub:Copyrights#ProgClub_projects|Contributor License Agreement]]. This excludes any upstream contributors who tend to have different administrative frameworks.
Jamming step by step
+
 
+
Upstream contributors:
Jamming will be by it's nature a relatively unstructured procedure, however , if you're new to it, you don'big t have to jump in at the strong end. Instead, you can develop your jamming skills gradually. First of most, you will need to realize which key the music is actually in - for simple pieces, this unique will set the chords and notes that you will must be able to play (more complex jams may involve lots of key changes and the use of more obscure chords - try to get experience of jamming with less complicated songs and sequences first!). Having determined the main element, you can decide the method that you want to take part in the jam, depending on your skill and confidence level. For example:
+
 
+
* TBA
Step a single - supposing which you're basing the jam close to a song you realize or a predetermined chord sequence, just strum along with a single strum to each and every beat using simple downstrokes (or if the pace is truly too fast - try strumming every other beat, or on the first beat of each club).  
+
 
Step two - strum along, but somewhat than just using downstrokes, use upstrokes too to play far more complex rhythms that blend with what the others are doing.
+
== Copyright ==
Step three - create some simple riffs. These might be repeated with the chord changes, or varied somewhat to make things far more interesting.  
+
 
Step six - try improvising some solo melodies. You can carry on them very simple at first, sticking with the notes of every single chord, then get a lot more adventurous because your skills and confidence advancement.
+
Copyright 2012, [[#Contributors|Contributors]].
+
 
If you're playing a helpful electrical guitar, you can in addition experiment with adding negative effects at any stage in the process, if appropriate.
+
== License ==
   
+
 
Part II: Putting It Into Exercise - 3 Jamming Scenarios
+
Licensed under the [[New BSD license|New BSD]] license.
+
 
So, right now you have a helpful notion of just how to jam on guitar, lets require a consider the main situations which you can train your fresh skills, and how to make the a lot of them.  
+
= Resources =
+
 
1. Jamming With Other folks
+
== Source code ==
+
 
Jamming in a are living surroundings with other musicians can't always be beat. After practising individually at property every night, it is truly great to get out and connect by incorporating like-minded others. It in addition provides invaluable experience if you would like to play in a band or other are living situation - playing with others requires listening, improvisation and rhythm skills beyond those you'll normally use when playing by yourself.  
+
The repository can be browsed online:
   
+
 
So, what exactly happens at a jam session? This unique can vary, with respect to the situation. For instance, at times people gather to jam over active songs (or song areas), or that they may follow a chord range suggested by a single fellow member, and tabs or chord charts may or are most likely not used. At times, like with many free-form jams, there'ersus no predetermined structure at every single one, and everyone just improvises based on what they're hearing. The music may include various styles (these kinds of while jazz, rock and roll, blues etc). If you're brand new to jamming, you'll most probably come across it less difficult at sessions that follow a familiar song or chord progression, with simple structures this sort of while three chord songs or a 12 pub blues.  
+
  https://www.progclub.org/pcrepo/pcsvnrelease
+
 
In a group situation, you may be predicted to play a targeted role during each and every bit - this kind of since playing rhythm, or soloing. Make sure you stick to your task, but additionally stay aware of what the other people in your session are doing. Eye contact can be specifically vital if you're most improvising freely (because opposed to following a predetermined structure), like people will play with it to transmission when they're about to switch chords or rhythms, or finish a solo and many more.  
+
The latest stable released version of the code is available from:
+
 
You might feel nervous when jamming with others for the first time - this really is normal, but you shouldn'n worry also much about making mistakes - they will're inevitable. It will help if you're playing with other consumers who aren't as well advanced, or are able to include some less complicated songs in the session for the benefit from the much less experienced. Most musicians are going to be welcoming to newcomers and will eventually remember how it felt to end up being brand-new to jamming - should they're not, discover somewhere else to play! If you don'testosterone have musician friends to jam with already, you can often locate neighborhood jam sessions organised by music stores, cafes and the like - these will at times end up being geared towards players of different standards, so look out for beginner jam sessions to commence with.
+
https://www.progclub.org/svn/pcrepo/pcsvnrelease/tags/latest
+
 
If you're unable to jam with other musicians in man or woman, or you want to improve your jamming skills in between session, you can additionally jam along with recorded tracks, along with with tools as being a drum appliance.  
+
Or if you want the latest version for development purposes:
+
 
two. Jamming With Recorded Tracks
+
svn://www.progclub.org/svn/pcrepo/pcsvnrelease/trunk
+
 
Jamming along with recordings may be the next best thing to playing reside. While it doesn'testosterone have the same aspect of unpredictability, it provides you the possibility to practice focusing on developing your personal improvisational skills up against a constant musical backdrop. You can of course play along with recordings of songs by artists you like - this really is a good way to get to know the songs that are probable to be played at your are living sessions too.
+
== Links ==
+
 
You can even use tracks which were recorded specifically with jamming in mind - there are lots of free guitar jam tracks in many styles available online (wedding party exceptional does vary a lot), and there are also professionally recorded tracks available for sale at low prices. These often come in two versions - a single with a guitar solo included, and 'minus a single' versions where the lead track is truly absent, so that you will can fill it in yourself.
+
* [[Versions]], for information about the ProgClub version number system.
   
+
 
3. Jamming With Software package and also other Understanding Assists
+
= Specifications =
+
 
Another option is to practice jamming with a virtual drummer or bassist in the form of your drum appliance or application equivalent. This is definitely a very excellent way to build up your rhythm skills, which are vital to successful jamming. Computer software that enables you to program your possess drum or basslines, and/or which is actually pre-programmed with a variety of presets is truly widely available online. Some computer software additionally provides full backing tracks in various keys.  
+
== Functional specification ==
+
 
If you're still brand-new to playing the guitar, you'll come across that practising playing along with others from a good early stage in the mastering course of action will help one particular jam far more confidently. Deciding on a course of leading guitar classes that contains jam tracks that gives you experience of playing with a virtual band right coming from the starting is one particular of the best things you can do - I recommend Jamorama, a downloadable course which features professionally recorded jam track in a variety of styles, right from the first lessons. Locate out far more about it at http://learntheguitaronline.info. You can furthermore read much more about my experience with the Jamorama guitar training at my site.
+
=== Standard /etc scripts ===
http://socialbyte.info/search.php?search=http://www.tremille.com/id/19-jam
+
 
 +
Within a branch there might be an /etc folder, and in /etc might be a 'test' or 'set-version' script as standard.
 +
 
 +
==== /etc/test ====
 +
 
 +
The 'test' script, if it exists, will be executed by pcsvnrelease before beginning a release to confirm that the software is fit for release. If the 'test' script exits with a non-zero error level the release is aborted because crucial tests have failed.
 +
 
 +
==== /etc/set-version ====
 +
 
 +
The 'set-version' script, if it exists, will be called by pcsvnrelease after the VERSION* and RELEASE files have been updated so that if the project version number needs to be copied in to other files before a release the 'set-version' script can take care of that if necessary.
 +
 
 +
=== SUBPROJECTS file ===
 +
 
 +
The SUBPROJECTS file lives in the branch root and lists the projects that are managed as subprojects and released in conjunction with the main project. The format of the SUBPROJECTS file is:
 +
 
 +
  externals_path subproject_path subproject_url subproject_branch
 +
 
 +
For example, the 'slib' project might be included as a subproject with an entry in the SUBPROJECTS file like this:
 +
 
 +
lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /trunk
 +
 
 +
Or if you wanted to use the latest maintenance release of version 1 of slib and ignore newer major versions:
 +
 
 +
lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /branches/version/1
 +
 
 +
Note: when subprojects are released they are always minor releases even if the main project is having a major release.
 +
 
 +
Any svn:externals definitions that are defined on a project's subfolders that aren't listed in the SUBPROJECTS file don't get treated as subprojects and released but they do get set to a specific revision (with a revision and peg revision both set to the revision the repository is at at the time of the release). So if you didn't want to manage slib as a subproject but rather wanted to use a specific release of slib you could just define the svn:externals for slib to point at:
 +
 
 +
svn://www.progclub.org/svn/pcrepo/slib/tags/version/1/4
 +
 
 +
Or:
 +
 
 +
  svn://www.progclub.org/svn/pcrepo/slib/tags/release/2012/03/15/001
 +
 
 +
Or if you just wanted to use the latest release (but not manage slib as a subproject) you could specify an svn:externals of:
 +
 
 +
svn://www.progclub.org/svn/pcrepo/slib/tags/latest
 +
 
 +
=== Minor release ===
 +
 
 +
To do a typical minor release of the pcsvnrelease project:
 +
 
 +
$ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk
 +
 
 +
Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:
 +
 
 +
  $ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1
 +
 
 +
=== Major release ===
 +
 
 +
To do a typical major release of the pcsvnrelease project:
 +
 
 +
$ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk
 +
 
 +
Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:
 +
 
 +
$ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1
 +
 
 +
== Technical specification ==
 +
 
 +
Pcsvnrelease is implemented as a BASH script that uses the svn command-line utility to manipulate the repository.
 +
 
 +
= Tasks =
 +
 
 +
== TODO ==
 +
 
 +
Things to do, in rough order of priority:
 +
 
 +
* Implement minor releases
 +
* Implement major releases
 +
 
 +
== Done ==
 +
 
 +
Stuff that's done. Latest stuff on top.
 +
 
 +
* [[User:John|JE]] 2012-03-15: created project in svn with prototype release script and test repos.
 +
* [[User:John|JE]] 2012-03-15: created project page.
 +
 
 +
= Notes =
 +
 
 +
== Notes for implementers ==
 +
 
 +
If you are interested in incorporating this software into your project, here's what you need to know:
 +
 
 +
Just copy and paste your way to victory, this script is pretty much stand-alone.
 +
 
 +
== Notes for developers ==
 +
 
 +
If you're looking to set up a development environment for this project here's what you need to know:
 +
 
 +
There are testing repositories at:
 +
 
 +
* svn://www.progclub.org/svn/pctestrepo-a
 +
* svn://www.progclub.org/svn/pctestrepo-b
 +
 
 +
Those repositories have been setup with projects and dependencies so that you can test the release script on the 'testproj-a' project like this:
 +
 
 +
  $ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
 +
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
 +
$ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1
 +
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1
 +
 
 +
When you release 'testproj-a' from 'pctestrepo-a' it should trigger a sub-release of 'testproj-b' from 'pctestrepo-b' and 'testproj-c' from 'pctestrepo-a'.

Latest revision as of 15:17, 11 December 2017

Pcsvnrelease is the ProgClub project release script. That's the software that helps us manage versioned releases of our projects as specified on the versions page. For other projects see projects.

Status

Under way. Not released yet, there's stuff TODO.

Administration

Contributors

Members who have contributed to this project. Newest on top.

All contributors have agreed to the terms of the Contributor License Agreement. This excludes any upstream contributors who tend to have different administrative frameworks.

Upstream contributors:

  • TBA

Copyright

Copyright 2012, Contributors.

License

Licensed under the New BSD license.

Resources

Source code

The repository can be browsed online:

https://www.progclub.org/pcrepo/pcsvnrelease

The latest stable released version of the code is available from:

https://www.progclub.org/svn/pcrepo/pcsvnrelease/tags/latest

Or if you want the latest version for development purposes:

svn://www.progclub.org/svn/pcrepo/pcsvnrelease/trunk

Links

  • Versions, for information about the ProgClub version number system.

Specifications

Functional specification

Standard /etc scripts

Within a branch there might be an /etc folder, and in /etc might be a 'test' or 'set-version' script as standard.

/etc/test

The 'test' script, if it exists, will be executed by pcsvnrelease before beginning a release to confirm that the software is fit for release. If the 'test' script exits with a non-zero error level the release is aborted because crucial tests have failed.

/etc/set-version

The 'set-version' script, if it exists, will be called by pcsvnrelease after the VERSION* and RELEASE files have been updated so that if the project version number needs to be copied in to other files before a release the 'set-version' script can take care of that if necessary.

SUBPROJECTS file

The SUBPROJECTS file lives in the branch root and lists the projects that are managed as subprojects and released in conjunction with the main project. The format of the SUBPROJECTS file is:

externals_path subproject_path subproject_url subproject_branch

For example, the 'slib' project might be included as a subproject with an entry in the SUBPROJECTS file like this:

lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /trunk

Or if you wanted to use the latest maintenance release of version 1 of slib and ignore newer major versions:

lib/slib slib svn://www.progclub.org/svn/pcrepo/slib /branches/version/1

Note: when subprojects are released they are always minor releases even if the main project is having a major release.

Any svn:externals definitions that are defined on a project's subfolders that aren't listed in the SUBPROJECTS file don't get treated as subprojects and released but they do get set to a specific revision (with a revision and peg revision both set to the revision the repository is at at the time of the release). So if you didn't want to manage slib as a subproject but rather wanted to use a specific release of slib you could just define the svn:externals for slib to point at:

svn://www.progclub.org/svn/pcrepo/slib/tags/version/1/4

Or:

svn://www.progclub.org/svn/pcrepo/slib/tags/release/2012/03/15/001

Or if you just wanted to use the latest release (but not manage slib as a subproject) you could specify an svn:externals of:

svn://www.progclub.org/svn/pcrepo/slib/tags/latest

Minor release

To do a typical minor release of the pcsvnrelease project:

$ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk

Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:

$ pcsvnrelease minor svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1

Major release

To do a typical major release of the pcsvnrelease project:

$ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /trunk

Or to release a specific branch (e.g. the version 1 branch) of the pcsvnrelease project:

$ pcsvnrelease major svn://www.progclub.org/svn/pcrepo/pcsvnrelease /branches/version/1

Technical specification

Pcsvnrelease is implemented as a BASH script that uses the svn command-line utility to manipulate the repository.

Tasks

TODO

Things to do, in rough order of priority:

  • Implement minor releases
  • Implement major releases

Done

Stuff that's done. Latest stuff on top.

  • JE 2012-03-15: created project in svn with prototype release script and test repos.
  • JE 2012-03-15: created project page.

Notes

Notes for implementers

If you are interested in incorporating this software into your project, here's what you need to know:

Just copy and paste your way to victory, this script is pretty much stand-alone.

Notes for developers

If you're looking to set up a development environment for this project here's what you need to know:

There are testing repositories at:

Those repositories have been setup with projects and dependencies so that you can test the release script on the 'testproj-a' project like this:

$ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a trunk
$ pcsvnrelease minor svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1
$ pcsvnrelease major svn://www.progclub.org/svn/pctestrepo-a/testproj-a branches/version/1

When you release 'testproj-a' from 'pctestrepo-a' it should trigger a sub-release of 'testproj-b' from 'pctestrepo-b' and 'testproj-c' from 'pctestrepo-a'.